summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-02-23 14:41:08 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-02-26 16:52:56 +0200
commit095de0678bca136947b4c49ab2867de7b93b8798 (patch)
tree8d7bfbe4a5beb4734707b2e113770992387beb95 /web
parenteb59350aaa9769f7d31606226b8912d6b1362b9c (diff)
downloadaconf-095de0678bca136947b4c49ab2867de7b93b8798.tar.bz2
aconf-095de0678bca136947b4c49ab2867de7b93b8798.tar.xz
web client: split renderField function into two in abstract/fields widget
Diffstat (limited to 'web')
-rw-r--r--web/widget/abstract/fields.js48
1 files changed, 26 insertions, 22 deletions
diff --git a/web/widget/abstract/fields.js b/web/widget/abstract/fields.js
index b62e4d2..de018e8 100644
--- a/web/widget/abstract/fields.js
+++ b/web/widget/abstract/fields.js
@@ -35,18 +35,19 @@ define(
});
this.widgets = {};
+ var labels = {};
_.each(meta.fields, function(field) {
- if (field.visible)
- self.widgets[field.name] = self.renderField(
- field.name,
- field,
- field["ui-name"],
- true,
- false
+ if (field.visible) {
+ self.widgets[field.name] = self.createWidget(
+ field.name, field, true, false
);
+ labels[field.name] = field["ui-name"];
+ }
});
_.each(this.widgets, function(f1, name) {
+ self.setupWidget(f1, labels[name]);
+
_.each(self.widgets, function(f2) {
if (f1 != f2)
f1.on("validated", function(event) {
@@ -68,35 +69,38 @@ define(
});
},
- renderField: function(
- name, meta, label, editable, removable
- ) {
- var widget = this.widget(meta).new(
- this.reqData,
- name,
- meta,
- this.level,
- editable,
- removable
- );
+ createWidget: function(name, meta, editable, removable) {
+ var widget = this.widget(meta);
+ if (widget)
+ return widget.new(
+ this.reqData,
+ name,
+ meta,
+ this.level,
+ editable,
+ removable
+ );
+ },
+
+ setupWidget: function(widget, label) {
var container = this.appendWidget(widget, label);
widget.on("setVisible", function(event, visible) {
if (visible) container.show();
else container.hide();
event.stopPropagation();
});
- return widget;
},
renderCollectionMember: function(name, meta) {
var set = meta.type == "set";
- this.renderField(
+ var widget = this.createWidget(
name,
meta.members,
- meta["ui-member"] + " " + name,
!set,
!set && _.contains(meta.removable, name)
- ).trigger("start");
+ );
+ this.setupWidget(widget, meta["ui-member"] + " " + name);
+ widget.trigger("start");
},
widget: function(meta) {