Author: jleroux
Date: Sun Sep 5 08:42:04 2010 New Revision: 992729 URL: http://svn.apache.org/viewvc?rev=992729&view=rev Log: Closes "Dependent dropdowns mechanism does not work anymore" (https://issues.apache.org/jira/browse/OFBIZ-3922) - OFBIZ-3922 The getDependentDropdownValues() function uses now jQuery instead of Prototype (I used jQuery.post()) Modified: ofbiz/branches/jquery/framework/images/webapp/images/getDependentDropdownValues.js Modified: ofbiz/branches/jquery/framework/images/webapp/images/getDependentDropdownValues.js URL: http://svn.apache.org/viewvc/ofbiz/branches/jquery/framework/images/webapp/images/getDependentDropdownValues.js?rev=992729&r1=992728&r2=992729&view=diff ============================================================================== --- ofbiz/branches/jquery/framework/images/webapp/images/getDependentDropdownValues.js (original) +++ ofbiz/branches/jquery/framework/images/webapp/images/getDependentDropdownValues.js Sun Sep 5 08:42:04 2010 @@ -28,59 +28,52 @@ // selected = optional name of a selected option // callback = optional javascript function called at end function getDependentDropdownValues(request, paramKey, paramField, targetField, responseName, keyName, descName, selected, callback) { - // parameters - var params = new Array(); - params[paramKey] = $F(paramField); - - var optionList = []; - var requestToSend = request; - new Ajax.Request(requestToSend, { - asynchronous: false, - parameters: params, - onSuccess: function(transport) { - var data = transport.responseText.evalJSON(true); - list = data[responseName]; - list.each(function(value) { - if (typeof value == 'string') { - values = value.split(': '); - if (values[1].indexOf(selected) >=0) { - optionList.push("<option selected='selected' value = "+values[1]+" >"+values[0]+"</option>"); - } else { - optionList.push("<option value = "+values[1]+" >"+values[0]+"</option>"); - } - } else { - if (value[keyName] == selected) { - optionList.push("<option selected='selected' value = " + value[keyName] +" >"+ value[descName] + "</option>"); - } else { - optionList.push("<option value = " + value[keyName] + " >" + value[descName] + "</option>"); - } - } - }); - $(targetField).update(optionList); - if ((list.size() < 1) || ((list.size() == 1) && list[0].indexOf("_NA_") >=0)) { - if ($(targetField).visible()) { - Effect.Fade(targetField, {duration: 1.5}); + data = [ { name: paramKey, value: jQuery('#' + paramField).val()} ]; // get requested value from parent dropdown field + jQuery.post(request, data, function(result) { + optionList = ''; + list = result[responseName]; + // Create and show dependent select options + jQuery.each(list, function (key, value) { + if (typeof value == 'string') { + values = value.split(': '); + if (values[1].indexOf(selected) >=0) { + optionList += "<option selected='selected' value = " + values[1] + " >" + values[0] + "</option>"; + } else { + optionList += "<option value = " + values[1] + " >" + values[0] + "</option>"; } } else { - if (!$(targetField).visible()) { - Effect.Appear(targetField, {duration: 0.0}); + if (value[keyName] == selected) { + optionList += "<option selected='selected' value = " + value[keyName] + " >" + value[descName] + "</option>"; + } else { + optionList += "<option value = " + value[keyName] + " >" + value[descName] + "</option>"; } } - if (callback != null) - eval(callback); + }); + target = '#' + targetField; + jQuery(target).html(optionList); + // Hide/show the dependent dropdown + if ((list.size() < 1) || ((list.size() == 1) && list[0].indexOf("_NA_") >=0)) { + if (jQuery(target).is(':visible')) { + jQuery(target).fadeOut(); + } + } else { + if (!jQuery(target).is(':visible')) { + jQuery(target).fadeIn(); + } } - }); + if (callback != null) eval(callback); + }, 'json'); } - + // calls any service already mounted as an event function getServiceResult(request, params) { - var data; - new Ajax.Request(request, { + var data; + new Ajax.Request(request, { asynchronous: false, parameters: params, onSuccess: function(transport) { - data = transport.responseText.evalJSON(true); - } - }); - return data; -} + data = transport.responseText.evalJSON(true); + } + }); + return data; +} \ No newline at end of file |
Free forum by Nabble | Edit this page |