From e1a92d2983d36266873e379a650b212d9b89d793 Mon Sep 17 00:00:00 2001 From: Ariel Backenroth Date: Mon, 18 Sep 2006 09:28:35 +0000 Subject: [PATCH] get edit working again - looks like reading back model data got broken in a merge. still doesn't work %100 for repeats - need an xpath interpreter in order to do that. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3817 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- source/web/jsp/dialog/edit-xml-inline.jsp | 2 +- source/web/scripts/ajax/xforms.js | 192 +++++++++++----------- 2 files changed, 99 insertions(+), 95 deletions(-) diff --git a/source/web/jsp/dialog/edit-xml-inline.jsp b/source/web/jsp/dialog/edit-xml-inline.jsp index 1d6d946a09..5cb3c8f2e4 100644 --- a/source/web/jsp/dialog/edit-xml-inline.jsp +++ b/source/web/jsp/dialog/edit-xml-inline.jsp @@ -46,7 +46,7 @@ final InstanceData instanceData = new InstanceData() { { try { - return ccb.getDocumentContent() != null ? ts.parseXML(ccb.getDocumentContent()) : null; + return ccb.getEditorOutput() != null ? ts.parseXML(ccb.getEditorOutput()) : null; } catch (Exception e) { diff --git a/source/web/scripts/ajax/xforms.js b/source/web/scripts/ajax/xforms.js index eb684d0533..4a94da8573 100644 --- a/source/web/scripts/ajax/xforms.js +++ b/source/web/scripts/ajax/xforms.js @@ -44,112 +44,116 @@ dojo.declare("alfresco.xforms.Widget", parent: null, domContainer: null, _getBinding: function() - { - return this.xform.getBinding(this.node); - }, + { + return this.xform.getBinding(this.node); + }, getDepth: function() + { + var result = 1; + var p = this.parent; + while (p) { - var result = 1; - var p = this.parent; - while (p) - { - result++; - p = p.parent; - } - return result; - }, - isRequired: function() - { - var binding = this._getBinding(); - var required = binding && binding.required == "true()"; - return required; - }, - getInitialValue: function() - { - var b = this._getBinding(); - var a = []; - do - { - a.push(b.nodeset); - b = b.parent; - } - while (b); - var node = this.xform.getInstance(); - for (var i = a.length - 1; i >= 0; i--) - { - var element_name = (a[i].match(/^\//) - ? a[i].replace(/^\/(.+)/, "$1") - : a[i]); - dojo.debug("locating " + a[i] + "(" + element_name + ")" + - " in " + node.nodeName); - if (element_name.match(/^@/)) - return node.getAttribute(a[i].replace(/^@(.+)/, "$1")); - else if (element_name == '.') - break; - node = node.getElementsByTagName(element_name)[0]; - if (node) - dojo.debug("got node " + node.nodeName); - else - return null; - } - var result = dojo.dom.textContent(node); - dojo.debug("got '" + result + "' for " + a.reverse().join("/")); - return result; - }, - _getLabelNode: function() - { - var labels = this.node.getElementsByTagName("label"); - for (var i = 0; i < labels.length; i++) - { - dojo.debug("parent " + labels[i].parentNode.nodeName + - " o " + this.node.nodeName); - if (labels[i].parentNode == this.node) - return labels[i]; - } - return null; - }, - getLabel: function() - { - var node = this._getLabelNode(); - return node ? dojo.dom.textContent(node) : ""; + result++; + p = p.parent; } + return result; + }, + isRequired: function() + { + var binding = this._getBinding(); + var required = binding && binding.required == "true()"; + return required; + }, + getModelNode: function() + { + ///XXXarielb todo + }, + getInitialValue: function() + { + var b = this._getBinding(); + var a = []; + do + { + a.push(b.nodeset); + b = b.parent; + } + while (b); + var node = this.xform.getInstance(); + for (var i = a.length - 1; i >= 0; i--) + { + var element_name = (a[i].match(/^\//) + ? a[i].replace(/^\/(.+)/, "$1") + : a[i]); + dojo.debug("locating " + a[i] + "(" + element_name + ")" + + " in " + node.nodeName); + if (element_name.match(/^@/)) + return node.getAttribute(a[i].replace(/^@(.+)/, "$1")); + else if (element_name == '.') + break; + node = node.getElementsByTagName(element_name)[0]; + if (node) + dojo.debug("got node " + node.nodeName); + else + return null; + } + var result = dojo.dom.textContent(node); + dojo.debug("got '" + result + "' for " + a.reverse().join("/")); + return result; + }, + _getLabelNode: function() + { + var labels = this.node.getElementsByTagName("label"); + for (var i = 0; i < labels.length; i++) + { + dojo.debug("parent " + labels[i].parentNode.nodeName + + " o " + this.node.nodeName); + if (labels[i].parentNode == this.node) + return labels[i]; + } + return null; + }, + getLabel: function() + { + var node = this._getLabelNode(); + return node ? dojo.dom.textContent(node) : ""; + } }); dojo.declare("alfresco.xforms.NumericStepper", alfresco.xforms.Widget, { initializer: function(xform, node, stepper_type) - { - this.inherited("initializer", [ xform, node ]); - this.stepper_type = stepper_type; - }, + { + this.inherited("initializer", [ xform, node ]); + this.stepper_type = stepper_type; + }, render: function(attach_point) - { - var nodeRef = document.createElement("div"); - attach_point.appendChild(nodeRef); - var initial_value = this.getInitialValue() || ""; - var w = dojo.widget.createWidget(this.stepper_type == "double" - ? "SpinnerRealNumberTextBox" - : "SpinnerIntegerTextBox", - { - widgetId: this.id, - required: this.isRequired(), - value: initial_value - }, - nodeRef); - w.widget = this; - this.widget = w; - dojo.event.connect(w, "adjustValue", this, this._widget_changeHandler); - dojo.event.connect(w, "onkeyup", this, this._widget_changeHandler); - }, + { + var nodeRef = document.createElement("div"); + attach_point.appendChild(nodeRef); + var initial_value = this.getInitialValue() || ""; + var w = dojo.widget.createWidget((this.stepper_type == "double" + ? "SpinnerRealNumberTextBox" + : "SpinnerIntegerTextBox"), + { + widgetId: this.id, + required: this.isRequired(), + value: initial_value + }, + nodeRef); + w.widget = this; + this.widget = w; + dojo.event.connect(w, "adjustValue", this, this._widget_changeHandler); + dojo.event.connect(w, "onkeyup", this, this._widget_changeHandler); + }, getValue: function() - { - return this.widget.getValue(); - }, + { + return this.widget.getValue(); + }, _widget_changeHandler: function(event) - { - this.xform.setXFormsValue(this.id, this.getValue()); - } + { + this.xform.setXFormsValue(this.id, this.getValue()); + } }); dojo.declare("alfresco.xforms.DatePicker",