Skip to content
Snippets Groups Projects
Commit 4802bcdb authored by Reinhold Kainhofer's avatar Reinhold Kainhofer
Browse files

Handle JSON parsing error (server not returning proper JSON); Fix IE and some JS bugs

parent ccbb8336
No related branches found
No related tags found
No related merge requests found
...@@ -68,6 +68,7 @@ class JFormFieldVmOrdernumberCounters extends JFormField { ...@@ -68,6 +68,7 @@ class JFormFieldVmOrdernumberCounters extends JFormField {
JText::script('PLG_ORDERNUMBER_JS_DELETECOUNTER'); JText::script('PLG_ORDERNUMBER_JS_DELETECOUNTER');
JText::script('PLG_ORDERNUMBER_JS_DELETE_FAILED'); JText::script('PLG_ORDERNUMBER_JS_DELETE_FAILED');
JText::script('PLG_ORDERNUMBER_JS_ADD_FAILED'); JText::script('PLG_ORDERNUMBER_JS_ADD_FAILED');
JText::script('PLG_ORDERNUMBER_JS_JSONERROR');
} }
protected function getInput() { protected function getInput() {
$pluginpath = '/plugins/vmshopper/ordernumber/ordernumber/'; $pluginpath = '/plugins/vmshopper/ordernumber/ordernumber/';
......
...@@ -64,5 +64,5 @@ PLG_ORDERNUMBER_JS_INVALID_COUNTERVALUE="You entered an invalid value for the co ...@@ -64,5 +64,5 @@ PLG_ORDERNUMBER_JS_INVALID_COUNTERVALUE="You entered an invalid value for the co
PLG_ORDERNUMBER_JS_MODIFY_FAILED="Failed modifying counter {0}" PLG_ORDERNUMBER_JS_MODIFY_FAILED="Failed modifying counter {0}"
PLG_ORDERNUMBER_JS_DELETE_FAILED="Failed deleting counter {0}" PLG_ORDERNUMBER_JS_DELETE_FAILED="Failed deleting counter {0}"
PLG_ORDERNUMBER_JS_ADD_FAILED="Failed adding counter {0}" PLG_ORDERNUMBER_JS_ADD_FAILED="Failed adding counter {0}"
PLG_ORDERNUMBER_JS_JSONERROR="Error reading response from server:"
...@@ -64,5 +64,5 @@ PLG_ORDERNUMBER_JS_INVALID_COUNTERVALUE="You entered an invalid value for the co ...@@ -64,5 +64,5 @@ PLG_ORDERNUMBER_JS_INVALID_COUNTERVALUE="You entered an invalid value for the co
PLG_ORDERNUMBER_JS_MODIFY_FAILED="Failed modifying counter {0}" PLG_ORDERNUMBER_JS_MODIFY_FAILED="Failed modifying counter {0}"
PLG_ORDERNUMBER_JS_DELETE_FAILED="Failed deleting counter {0}" PLG_ORDERNUMBER_JS_DELETE_FAILED="Failed deleting counter {0}"
PLG_ORDERNUMBER_JS_ADD_FAILED="Failed adding counter {0}" PLG_ORDERNUMBER_JS_ADD_FAILED="Failed adding counter {0}"
PLG_ORDERNUMBER_JS_JSONERROR="Error reading response from server:"
...@@ -60,8 +60,13 @@ var ajaxEditCounter = function (btn, nrtype, ctr, value) { ...@@ -60,8 +60,13 @@ var ajaxEditCounter = function (btn, nrtype, ctr, value) {
url: "index.php?option=com_virtuemart&view=plugin&type=vmshopper&name=ordernumber&action=setCounter&format=raw", url: "index.php?option=com_virtuemart&view=plugin&type=vmshopper&name=ordernumber&action=setCounter&format=raw",
data: { nrtype: counter.type, counter: counter.counter, value: value }, data: { nrtype: counter.type, counter: counter.counter, value: value },
success: function( data ) { success: function( data ) {
var json = data ? jQuery.parseJSON(data) : null; try {
handleJSONResponse(json, counter); var json = jQuery.parseJSON(data);
handleJSONResponse(json, counter);
} catch (e) {
alert(Joomla.JText._('PLG_ORDERNUMBER_JS_JSONERROR')+"\n"+e);
return;
}
if (json.success>0) { if (json.success>0) {
jQuery(counter.row).children(".counter_value").text(value); jQuery(counter.row).children(".counter_value").text(value);
} else { } else {
...@@ -88,10 +93,15 @@ var ajaxDeleteCounter = function (btn, nrtype, ctr, value) { ...@@ -88,10 +93,15 @@ var ajaxDeleteCounter = function (btn, nrtype, ctr, value) {
url: "index.php?option=com_virtuemart&view=plugin&type=vmshopper&name=ordernumber&action=deleteCounter&format=raw", url: "index.php?option=com_virtuemart&view=plugin&type=vmshopper&name=ordernumber&action=deleteCounter&format=raw",
data: { nrtype: counter.type, counter: counter.counter }, data: { nrtype: counter.type, counter: counter.counter },
success: function( data ) { success: function( data ) {
var json = data ? jQuery.parseJSON(data) : null; try {
handleJSONResponse(json, counter); var json = jQuery.parseJSON(data);
handleJSONResponse(json, counter);
} catch (e) {
alert(Joomla.JText._('PLG_ORDERNUMBER_JS_JSONERROR')+"\n"+e);
return;
}
if (json.success>0) { if (json.success>0) {
jQuery(counter.row).fadeOut(1500, function() { $(this).remove(); }); jQuery(counter.row).fadeOut(1500, function() { jQuery(counter.row).remove(); });
} else { } else {
alert (String.Format(Joomla.JText._('PLG_ORDERNUMBER_JS_DELETE_FAILED', "Failed deleting counter {0}"), counter.counter)); alert (String.Format(Joomla.JText._('PLG_ORDERNUMBER_JS_DELETE_FAILED', "Failed deleting counter {0}"), counter.counter));
} }
...@@ -114,16 +124,22 @@ var ajaxAddCounter = function (btn, nrtype) { ...@@ -114,16 +124,22 @@ var ajaxAddCounter = function (btn, nrtype) {
data: { nrtype: nrtype, counter: countername }, data: { nrtype: nrtype, counter: countername },
success: function( data ) { success: function( data ) {
var json = data ? jQuery.parseJSON(data) : null; var json = data ? jQuery.parseJSON(data) : null;
handleJSONResponse(json, { type: nrtype, counter: countername, value: 0, row: row }); try {
var json = jQuery.parseJSON(data);
handleJSONResponse(json, null);
} catch (e) {
alert(Joomla.JText._('PLG_ORDERNUMBER_JS_JSONERROR')+"\n"+e);
return;
}
if (json.success>0) { if (json.success>0) {
if (json.newrow) { if (json.newrow) {
jQuery(row).before(jQuery(json.newrow)); jQuery(row).before(jQuery(json.newrow));
} }
} else { } else {
alert (String.Format(Joomla.JText._('PLG_ORDERNUMBER_JS_ADD_FAILED', "Failed adding counter {0}"), counter.counter)); alert (String.Format(Joomla.JText._('PLG_ORDERNUMBER_JS_ADD_FAILED', "Failed adding counter {0}"), countername));
} }
}, },
error: function() { alert (String.Format(Joomla.JText._('PLG_ORDERNUMBER_JS_ADD_FAILED', "Failed adding counter {0}"), counter.counter)); }, error: function() { alert (String.Format(Joomla.JText._('PLG_ORDERNUMBER_JS_ADD_FAILED', "Failed adding counter {0}"), countername)); },
complete: function() { jQuery(loading).remove(); }, complete: function() { jQuery(loading).remove(); },
}); });
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment