# HG changeset patch # User paulb # Date 1129565982 0 # Node ID 1df73d4b422cd93f3da986c1af42e3e203121e58 # Parent 6afca08c7bf74d33b7f9edf46a7d5df9cf260853 [project @ 2005-10-17 16:19:37 by paulb] Introduced an "area update" function which accepts field name prefixes, finding all fields whose names begin with such prefixes and sending the values of such fields to the application. diff -r 6afca08c7bf7 -r 1df73d4b422c examples/Common/Configurator/Resources/scripts/XSLForms.js --- a/examples/Common/Configurator/Resources/scripts/XSLForms.js Mon Oct 17 00:14:51 2005 +0000 +++ b/examples/Common/Configurator/Resources/scripts/XSLForms.js Mon Oct 17 16:19:42 2005 +0000 @@ -1,4 +1,52 @@ -function requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath) { +// Area update functions. + +function requestUpdateArea(url, sourceAreasStr, targetName, targetAreasStr, elementPath) { + + var fieldNames = new Array(); + var targetFieldNames = new Array(); + + for (var i = 0; i < document.forms.length; i++) { + var form = document.forms[i]; + for (var j = 0; j < form.elements.length; j++) { + var fieldName = form.elements[j].name; + checkField(fieldName, sourceAreasStr, fieldNames); + checkField(fieldName, targetAreasStr, targetFieldNames); + } + } + + return _requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath); +} + +// Field list update functions. + +function requestUpdate(url, fieldNamesStr, targetName, targetFieldNamesStr, elementPath) { + + return _requestUpdate(url, fieldNamesStr.split(","), targetName, targetFieldNamesStr.split(","), elementPath); +} + +// Internal functions. + +function checkField(fieldName, areasStr, areaFieldNames) { + + // Process each area name. + + var areaArray = areasStr.split(","); + for (var i = 0; i < areaArray.length; i++) { + var areaName = areaArray[i]; + + // Skip empty area names (arising through empty elements in the CSV list). + + if (areaName == "") { + continue; + } + + if (fieldName.indexOf(areaName) == 0) { + areaFieldNames.push(fieldName); + } + } +} + +function _requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath) { // Note that XMLHttpRequest access may be denied if Mozilla believes that // this resource's URL and the supplied URL are different. @@ -47,22 +95,13 @@ function addFields(fieldNames, disable) { - // If no field names exist do not attempt to collect their values. - - if (fieldNames == "") { - return ""; - } - var requestBody = ""; // Process each target field name. - - var fieldNameArray = fieldNames.split(","); - // Add the values of the dependent fields. - for (var i = 0; i < fieldNameArray.length; i++) { - var fieldName = fieldNameArray[i]; + for (var i = 0; i < fieldNames.length; i++) { + var fieldName = fieldNames[i]; // Skip empty field names (arising through empty elements in the CSV list). diff -r 6afca08c7bf7 -r 1df73d4b422c examples/Common/Dictionary/Resources/scripts/XSLForms.js --- a/examples/Common/Dictionary/Resources/scripts/XSLForms.js Mon Oct 17 00:14:51 2005 +0000 +++ b/examples/Common/Dictionary/Resources/scripts/XSLForms.js Mon Oct 17 16:19:42 2005 +0000 @@ -1,4 +1,52 @@ -function requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath) { +// Area update functions. + +function requestUpdateArea(url, sourceAreasStr, targetName, targetAreasStr, elementPath) { + + var fieldNames = new Array(); + var targetFieldNames = new Array(); + + for (var i = 0; i < document.forms.length; i++) { + var form = document.forms[i]; + for (var j = 0; j < form.elements.length; j++) { + var fieldName = form.elements[j].name; + checkField(fieldName, sourceAreasStr, fieldNames); + checkField(fieldName, targetAreasStr, targetFieldNames); + } + } + + return _requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath); +} + +// Field list update functions. + +function requestUpdate(url, fieldNamesStr, targetName, targetFieldNamesStr, elementPath) { + + return _requestUpdate(url, fieldNamesStr.split(","), targetName, targetFieldNamesStr.split(","), elementPath); +} + +// Internal functions. + +function checkField(fieldName, areasStr, areaFieldNames) { + + // Process each area name. + + var areaArray = areasStr.split(","); + for (var i = 0; i < areaArray.length; i++) { + var areaName = areaArray[i]; + + // Skip empty area names (arising through empty elements in the CSV list). + + if (areaName == "") { + continue; + } + + if (fieldName.indexOf(areaName) == 0) { + areaFieldNames.push(fieldName); + } + } +} + +function _requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath) { // Note that XMLHttpRequest access may be denied if Mozilla believes that // this resource's URL and the supplied URL are different. @@ -47,22 +95,13 @@ function addFields(fieldNames, disable) { - // If no field names exist do not attempt to collect their values. - - if (fieldNames == "") { - return ""; - } - var requestBody = ""; // Process each target field name. - - var fieldNameArray = fieldNames.split(","); - // Add the values of the dependent fields. - for (var i = 0; i < fieldNameArray.length; i++) { - var fieldName = fieldNameArray[i]; + for (var i = 0; i < fieldNames.length; i++) { + var fieldName = fieldNames[i]; // Skip empty field names (arising through empty elements in the CSV list). diff -r 6afca08c7bf7 -r 1df73d4b422c examples/Common/PEP241/Resources/scripts/XSLForms.js --- a/examples/Common/PEP241/Resources/scripts/XSLForms.js Mon Oct 17 00:14:51 2005 +0000 +++ b/examples/Common/PEP241/Resources/scripts/XSLForms.js Mon Oct 17 16:19:42 2005 +0000 @@ -1,4 +1,52 @@ -function requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath) { +// Area update functions. + +function requestUpdateArea(url, sourceAreasStr, targetName, targetAreasStr, elementPath) { + + var fieldNames = new Array(); + var targetFieldNames = new Array(); + + for (var i = 0; i < document.forms.length; i++) { + var form = document.forms[i]; + for (var j = 0; j < form.elements.length; j++) { + var fieldName = form.elements[j].name; + checkField(fieldName, sourceAreasStr, fieldNames); + checkField(fieldName, targetAreasStr, targetFieldNames); + } + } + + return _requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath); +} + +// Field list update functions. + +function requestUpdate(url, fieldNamesStr, targetName, targetFieldNamesStr, elementPath) { + + return _requestUpdate(url, fieldNamesStr.split(","), targetName, targetFieldNamesStr.split(","), elementPath); +} + +// Internal functions. + +function checkField(fieldName, areasStr, areaFieldNames) { + + // Process each area name. + + var areaArray = areasStr.split(","); + for (var i = 0; i < areaArray.length; i++) { + var areaName = areaArray[i]; + + // Skip empty area names (arising through empty elements in the CSV list). + + if (areaName == "") { + continue; + } + + if (fieldName.indexOf(areaName) == 0) { + areaFieldNames.push(fieldName); + } + } +} + +function _requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath) { // Note that XMLHttpRequest access may be denied if Mozilla believes that // this resource's URL and the supplied URL are different. @@ -47,22 +95,13 @@ function addFields(fieldNames, disable) { - // If no field names exist do not attempt to collect their values. - - if (fieldNames == "") { - return ""; - } - var requestBody = ""; // Process each target field name. - - var fieldNameArray = fieldNames.split(","); - // Add the values of the dependent fields. - for (var i = 0; i < fieldNameArray.length; i++) { - var fieldName = fieldNameArray[i]; + for (var i = 0; i < fieldNames.length; i++) { + var fieldName = fieldNames[i]; // Skip empty field names (arising through empty elements in the CSV list). diff -r 6afca08c7bf7 -r 1df73d4b422c examples/Common/VerySimple/Resources/scripts/XSLForms.js --- a/examples/Common/VerySimple/Resources/scripts/XSLForms.js Mon Oct 17 00:14:51 2005 +0000 +++ b/examples/Common/VerySimple/Resources/scripts/XSLForms.js Mon Oct 17 16:19:42 2005 +0000 @@ -1,4 +1,52 @@ -function requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath) { +// Area update functions. + +function requestUpdateArea(url, sourceAreasStr, targetName, targetAreasStr, elementPath) { + + var fieldNames = new Array(); + var targetFieldNames = new Array(); + + for (var i = 0; i < document.forms.length; i++) { + var form = document.forms[i]; + for (var j = 0; j < form.elements.length; j++) { + var fieldName = form.elements[j].name; + checkField(fieldName, sourceAreasStr, fieldNames); + checkField(fieldName, targetAreasStr, targetFieldNames); + } + } + + return _requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath); +} + +// Field list update functions. + +function requestUpdate(url, fieldNamesStr, targetName, targetFieldNamesStr, elementPath) { + + return _requestUpdate(url, fieldNamesStr.split(","), targetName, targetFieldNamesStr.split(","), elementPath); +} + +// Internal functions. + +function checkField(fieldName, areasStr, areaFieldNames) { + + // Process each area name. + + var areaArray = areasStr.split(","); + for (var i = 0; i < areaArray.length; i++) { + var areaName = areaArray[i]; + + // Skip empty area names (arising through empty elements in the CSV list). + + if (areaName == "") { + continue; + } + + if (fieldName.indexOf(areaName) == 0) { + areaFieldNames.push(fieldName); + } + } +} + +function _requestUpdate(url, fieldNames, targetName, targetFieldNames, elementPath) { // Note that XMLHttpRequest access may be denied if Mozilla believes that // this resource's URL and the supplied URL are different. @@ -47,22 +95,13 @@ function addFields(fieldNames, disable) { - // If no field names exist do not attempt to collect their values. - - if (fieldNames == "") { - return ""; - } - var requestBody = ""; // Process each target field name. - - var fieldNameArray = fieldNames.split(","); - // Add the values of the dependent fields. - for (var i = 0; i < fieldNameArray.length; i++) { - var fieldName = fieldNameArray[i]; + for (var i = 0; i < fieldNames.length; i++) { + var fieldName = fieldNames[i]; // Skip empty field names (arising through empty elements in the CSV list).