mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
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
This commit is contained in:
@@ -46,7 +46,7 @@ final InstanceData instanceData = new InstanceData() {
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return ccb.getDocumentContent() != null ? ts.parseXML(ccb.getDocumentContent()) : null;
|
return ccb.getEditorOutput() != null ? ts.parseXML(ccb.getEditorOutput()) : null;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@@ -44,112 +44,116 @@ dojo.declare("alfresco.xforms.Widget",
|
|||||||
parent: null,
|
parent: null,
|
||||||
domContainer: null,
|
domContainer: null,
|
||||||
_getBinding: function()
|
_getBinding: function()
|
||||||
{
|
{
|
||||||
return this.xform.getBinding(this.node);
|
return this.xform.getBinding(this.node);
|
||||||
},
|
},
|
||||||
getDepth: function()
|
getDepth: function()
|
||||||
|
{
|
||||||
|
var result = 1;
|
||||||
|
var p = this.parent;
|
||||||
|
while (p)
|
||||||
{
|
{
|
||||||
var result = 1;
|
result++;
|
||||||
var p = this.parent;
|
p = p.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) : "";
|
|
||||||
}
|
}
|
||||||
|
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",
|
dojo.declare("alfresco.xforms.NumericStepper",
|
||||||
alfresco.xforms.Widget,
|
alfresco.xforms.Widget,
|
||||||
{
|
{
|
||||||
initializer: function(xform, node, stepper_type)
|
initializer: function(xform, node, stepper_type)
|
||||||
{
|
{
|
||||||
this.inherited("initializer", [ xform, node ]);
|
this.inherited("initializer", [ xform, node ]);
|
||||||
this.stepper_type = stepper_type;
|
this.stepper_type = stepper_type;
|
||||||
},
|
},
|
||||||
render: function(attach_point)
|
render: function(attach_point)
|
||||||
{
|
{
|
||||||
var nodeRef = document.createElement("div");
|
var nodeRef = document.createElement("div");
|
||||||
attach_point.appendChild(nodeRef);
|
attach_point.appendChild(nodeRef);
|
||||||
var initial_value = this.getInitialValue() || "";
|
var initial_value = this.getInitialValue() || "";
|
||||||
var w = dojo.widget.createWidget(this.stepper_type == "double"
|
var w = dojo.widget.createWidget((this.stepper_type == "double"
|
||||||
? "SpinnerRealNumberTextBox"
|
? "SpinnerRealNumberTextBox"
|
||||||
: "SpinnerIntegerTextBox",
|
: "SpinnerIntegerTextBox"),
|
||||||
{
|
{
|
||||||
widgetId: this.id,
|
widgetId: this.id,
|
||||||
required: this.isRequired(),
|
required: this.isRequired(),
|
||||||
value: initial_value
|
value: initial_value
|
||||||
},
|
},
|
||||||
nodeRef);
|
nodeRef);
|
||||||
w.widget = this;
|
w.widget = this;
|
||||||
this.widget = w;
|
this.widget = w;
|
||||||
dojo.event.connect(w, "adjustValue", this, this._widget_changeHandler);
|
dojo.event.connect(w, "adjustValue", this, this._widget_changeHandler);
|
||||||
dojo.event.connect(w, "onkeyup", this, this._widget_changeHandler);
|
dojo.event.connect(w, "onkeyup", this, this._widget_changeHandler);
|
||||||
},
|
},
|
||||||
getValue: function()
|
getValue: function()
|
||||||
{
|
{
|
||||||
return this.widget.getValue();
|
return this.widget.getValue();
|
||||||
},
|
},
|
||||||
_widget_changeHandler: function(event)
|
_widget_changeHandler: function(event)
|
||||||
{
|
{
|
||||||
this.xform.setXFormsValue(this.id, this.getValue());
|
this.xform.setXFormsValue(this.id, this.getValue());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
dojo.declare("alfresco.xforms.DatePicker",
|
dojo.declare("alfresco.xforms.DatePicker",
|
||||||
|
Reference in New Issue
Block a user