1.1 --- a/examples/Common/Configurator/Resources/scripts/XSLForms.js Mon Oct 17 00:14:51 2005 +0000
1.2 +++ b/examples/Common/Configurator/Resources/scripts/XSLForms.js Mon Oct 17 16:19:42 2005 +0000
1.3 @@ -1,4 +1,52 @@
1.4 -function requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath) {
1.5 +// Area update functions.
1.6 +
1.7 +function requestUpdateArea(url, sourceAreasStr, targetName, targetAreasStr, elementPath) {
1.8 +
1.9 + var fieldNames = new Array();
1.10 + var targetFieldNames = new Array();
1.11 +
1.12 + for (var i = 0; i < document.forms.length; i++) {
1.13 + var form = document.forms[i];
1.14 + for (var j = 0; j < form.elements.length; j++) {
1.15 + var fieldName = form.elements[j].name;
1.16 + checkField(fieldName, sourceAreasStr, fieldNames);
1.17 + checkField(fieldName, targetAreasStr, targetFieldNames);
1.18 + }
1.19 + }
1.20 +
1.21 + return _requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath);
1.22 +}
1.23 +
1.24 +// Field list update functions.
1.25 +
1.26 +function requestUpdate(url, fieldNamesStr, targetName, targetFieldNamesStr, elementPath) {
1.27 +
1.28 + return _requestUpdate(url, fieldNamesStr.split(","), targetName, targetFieldNamesStr.split(","), elementPath);
1.29 +}
1.30 +
1.31 +// Internal functions.
1.32 +
1.33 +function checkField(fieldName, areasStr, areaFieldNames) {
1.34 +
1.35 + // Process each area name.
1.36 +
1.37 + var areaArray = areasStr.split(",");
1.38 + for (var i = 0; i < areaArray.length; i++) {
1.39 + var areaName = areaArray[i];
1.40 +
1.41 + // Skip empty area names (arising through empty elements in the CSV list).
1.42 +
1.43 + if (areaName == "") {
1.44 + continue;
1.45 + }
1.46 +
1.47 + if (fieldName.indexOf(areaName) == 0) {
1.48 + areaFieldNames.push(fieldName);
1.49 + }
1.50 + }
1.51 +}
1.52 +
1.53 +function _requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath) {
1.54
1.55 // Note that XMLHttpRequest access may be denied if Mozilla believes that
1.56 // this resource's URL and the supplied URL are different.
1.57 @@ -47,22 +95,13 @@
1.58
1.59 function addFields(fieldNames, disable) {
1.60
1.61 - // If no field names exist do not attempt to collect their values.
1.62 -
1.63 - if (fieldNames == "") {
1.64 - return "";
1.65 - }
1.66 -
1.67 var requestBody = "";
1.68
1.69 // Process each target field name.
1.70 -
1.71 - var fieldNameArray = fieldNames.split(",");
1.72 -
1.73 // Add the values of the dependent fields.
1.74
1.75 - for (var i = 0; i < fieldNameArray.length; i++) {
1.76 - var fieldName = fieldNameArray[i];
1.77 + for (var i = 0; i < fieldNames.length; i++) {
1.78 + var fieldName = fieldNames[i];
1.79
1.80 // Skip empty field names (arising through empty elements in the CSV list).
1.81