diff --git a/fields/vmordernumbercounters.php b/fields/vmordernumbercounters.php index bec25186d6870737c0472f2af6f67a8198864e5f..b3aff6341c3c71fe287a060629d0526ef0a0de60 100644 --- a/fields/vmordernumbercounters.php +++ b/fields/vmordernumbercounters.php @@ -68,6 +68,7 @@ class JFormFieldVmOrdernumberCounters extends JFormField { JText::script('PLG_ORDERNUMBER_JS_DELETECOUNTER'); JText::script('PLG_ORDERNUMBER_JS_DELETE_FAILED'); JText::script('PLG_ORDERNUMBER_JS_ADD_FAILED'); + JText::script('PLG_ORDERNUMBER_JS_JSONERROR'); } protected function getInput() { $pluginpath = '/plugins/vmshopper/ordernumber/ordernumber/'; diff --git a/language/en-GB/en-GB.plg_vmshopper_ordernumber.ini b/language/en-GB/en-GB.plg_vmshopper_ordernumber.ini index 0eb4e45ed3016518681501c3a30af30515dcb509..5c252783c7453847aacf3683630bdb72870e7818 100644 --- a/language/en-GB/en-GB.plg_vmshopper_ordernumber.ini +++ b/language/en-GB/en-GB.plg_vmshopper_ordernumber.ini @@ -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_DELETE_FAILED="Failed deleting counter {0}" PLG_ORDERNUMBER_JS_ADD_FAILED="Failed adding counter {0}" - +PLG_ORDERNUMBER_JS_JSONERROR="Error reading response from server:" diff --git a/language/en-GB/en-GB.plg_vmshopper_ordernumber.sys.ini b/language/en-GB/en-GB.plg_vmshopper_ordernumber.sys.ini index 0eb4e45ed3016518681501c3a30af30515dcb509..5c252783c7453847aacf3683630bdb72870e7818 100644 --- a/language/en-GB/en-GB.plg_vmshopper_ordernumber.sys.ini +++ b/language/en-GB/en-GB.plg_vmshopper_ordernumber.sys.ini @@ -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_DELETE_FAILED="Failed deleting counter {0}" PLG_ORDERNUMBER_JS_ADD_FAILED="Failed adding counter {0}" - +PLG_ORDERNUMBER_JS_JSONERROR="Error reading response from server:" diff --git a/ordernumber/assets/js/ordernumber.js b/ordernumber/assets/js/ordernumber.js index 9ef759b15e47226fdb70c31324ede991b166b46f..c7d64f839fe524bc935dabb5bd3806c91ddc42e4 100644 --- a/ordernumber/assets/js/ordernumber.js +++ b/ordernumber/assets/js/ordernumber.js @@ -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", data: { nrtype: counter.type, counter: counter.counter, value: value }, success: function( data ) { - var json = data ? jQuery.parseJSON(data) : null; - handleJSONResponse(json, counter); + try { + var json = jQuery.parseJSON(data); + handleJSONResponse(json, counter); + } catch (e) { + alert(Joomla.JText._('PLG_ORDERNUMBER_JS_JSONERROR')+"\n"+e); + return; + } if (json.success>0) { jQuery(counter.row).children(".counter_value").text(value); } else { @@ -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", data: { nrtype: counter.type, counter: counter.counter }, success: function( data ) { - var json = data ? jQuery.parseJSON(data) : null; - handleJSONResponse(json, counter); + try { + var json = jQuery.parseJSON(data); + handleJSONResponse(json, counter); + } catch (e) { + alert(Joomla.JText._('PLG_ORDERNUMBER_JS_JSONERROR')+"\n"+e); + return; + } if (json.success>0) { - jQuery(counter.row).fadeOut(1500, function() { $(this).remove(); }); + jQuery(counter.row).fadeOut(1500, function() { jQuery(counter.row).remove(); }); } else { 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) { data: { nrtype: nrtype, counter: countername }, success: function( data ) { 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.newrow) { jQuery(row).before(jQuery(json.newrow)); } } 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(); }, }); }