diff options
Diffstat (limited to 'web/widget/abstract/fields.js')
-rw-r--r-- | web/widget/abstract/fields.js | 31 |
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) |