submitting form triggers a JSON response from server, added more error checking closes #36

pull/73/head
jonsowman 2010-06-11 14:37:17 +01:00
rodzic cddba7a20e
commit 81e8fb3d38
2 zmienionych plików z 25 dodań i 22 usunięć

Wyświetl plik

@ -73,31 +73,31 @@ case "getModelByUUID":
case "submitForm": case "submitForm":
$pred_model = array(); $pred_model = array();
$json_return = array();
$json_return['valid'] = "false";
if ( isset($_POST['submit'])) { if ( isset($_POST['submit'])) {
// form was submitted, let's run a pred! // form was submitted, let's run a pred!
// first, make a model from the form data // first, make a model from the form data
if ( !$pred_model = createModel($_POST)) { if ( !$pred_model = createModel($_POST)) {
echo false; $json_return['error'] = "Server couldn't make a model from the form data";
break; // if that worked, make sure the model is valid
} } else if ( !verifyModel($pred_model, $software_available) ) {
$json_return['error'] = "The server said the model it made was invalid";
// verify the model // if we have a valid model, try and make a UUID
if ( !verifyModel($pred_model, $software_available) ) { } else if ( !$pred_model['uuid'] = makesha1hash($pred_model) ) {
echo false; $json_return['error'] = "Couldn't make the SHA1 hash";
break; // if all of the above worked, let's run the prediction
}
// make a sha1 hash of the model for uuid
$pred_model['uuid'] = makesha1hash($pred_model);
// now we have a populated model, run the predictor
runPred($pred_model);
echo true . "|" . $pred_model['uuid'] . "|" . $pred_model['timestamp'];
} else { } else {
echo "The form submit function was called without any data"; runPred($pred_model);
echo false; $json_return['valid'] = "true";
$json_return['uuid'] = $pred_model['uuid'];
$json_return['timestamp'] = $pred_model['timestamp'];
} }
} else {
$json_return['error'] = "The form submit function was called without any data";
}
echo json_encode($json_return);
break; break;
default: default:

Wyświetl plik

@ -497,20 +497,23 @@ function setupEventHandlers() {
$("#modelForm").ajaxForm({ $("#modelForm").ajaxForm({
url: 'ajax.php?action=submitForm', url: 'ajax.php?action=submitForm',
type: 'POST', type: 'POST',
dataType: 'json',
success: function(data) { success: function(data) {
var data_split = data.split("|"); if ( data.valid == "false" ) {
if ( data_split[0] == 0 ) {
appendDebug("The server rejected the submitted form data"); appendDebug("The server rejected the submitted form data");
throwError("The server rejected the submitted form data"); throwError("The server rejected the submitted form data: \n" +
data.error);
resetGUI(); resetGUI();
} else { } else if ( data.valid == "true" ) {
predSub(); predSub();
appendDebug("The server accepted the form data"); appendDebug("The server accepted the form data");
// update the global current_uuid variable // update the global current_uuid variable
current_uuid = data_split[1]; current_uuid = data.uuid;
appendDebug("The server gave us uuid:<br>" + current_uuid); appendDebug("The server gave us uuid:<br>" + current_uuid);
appendDebug("Starting to poll for progress JSON"); appendDebug("Starting to poll for progress JSON");
handlePred(current_uuid); handlePred(current_uuid);
} else {
appendDebug("data.valid was not a recognised state: " + data.valid);
} }
} }
}); });