summaryrefslogtreecommitdiffstats
path: root/web/widget/abstract/fields.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/widget/abstract/fields.js')
-rw-r--r--web/widget/abstract/fields.js31
1 files changed, 21 insertions, 10 deletions
diff --git a/web/widget/abstract/fields.js b/web/widget/abstract/fields.js
index de018e8..360364d 100644
--- a/web/widget/abstract/fields.js
+++ b/web/widget/abstract/fields.js
@@ -34,16 +34,16 @@ define(
});
});
- this.widgets = {};
- var labels = {};
- _.each(meta.fields, function(field) {
- if (field.visible) {
- self.widgets[field.name] = self.createWidget(
- field.name, field, true, false
- );
- labels[field.name] = field["ui-name"];
- }
- });
+ this.createModelWidgets(
+ _.filter(meta.fields, function(field) {
+ return field.visible;
+ }),
+ true
+ );
+
+ var labels = _.object(_.map(meta.fields, function(field) {
+ return [field.name, field["ui-name"]];
+ }));
_.each(this.widgets, function(f1, name) {
self.setupWidget(f1, labels[name]);
@@ -69,6 +69,17 @@ define(
});
},
+ createModelWidgets: function(fields, editable) {
+ this.widgets = {};
+ var self = this;
+ _.each(fields, function(field) {
+ var widget = self.createWidget(
+ field.name, field, editable, false
+ );
+ if (widget) self.widgets[field.name] = widget;
+ });
+ },
+
createWidget: function(name, meta, editable, removable) {
var widget = this.widget(meta);
if (widget)