diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-12-20 23:40:03 +0200 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-12-20 23:48:18 +0200 |
commit | efd962f6583e9cf04d8d5621a9126e015caba4fb (patch) | |
tree | 42f80a0f1fc3e010f1f18386321a6bc915237b73 | |
parent | 94c899f9d40ce4e0db8e6bd4ec19babc6260be67 (diff) | |
download | acf2-efd962f6583e9cf04d8d5621a9126e015caba4fb.tar.bz2 acf2-efd962f6583e9cf04d8d5621a9126e015caba4fb.tar.xz |
hidden fields in models
-rw-r--r-- | acf2/model/field.lua | 27 | ||||
-rw-r--r-- | web/client.js | 15 |
2 files changed, 23 insertions, 19 deletions
diff --git a/acf2/model/field.lua b/acf2/model/field.lua index fd3c61f..31dc5ee 100644 --- a/acf2/model/field.lua +++ b/acf2/model/field.lua @@ -60,7 +60,8 @@ function M.Field:init(params) params, { addr=params.compute and node.null_addr or nil, - editable=(params.store or not params.compute) and true or false + editable=(params.store or not params.compute) and true or false, + visible=true } ) @@ -101,17 +102,19 @@ function M.Field:_choice(context) return self.choice end function M.Field:meta(context) assert(self.dtype) - local res = super(self, M.Field):meta(context) - - res.type = self.dtype - res.editable = self:editable(context) - res.condition = self.condition - res.required = self.required - res.default = self.default - res.choice = self:_choice(context) - res.widget = self.widget - - return res + return util.update( + super(self, M.Field):meta(context), + { + type=self.dtype, + visible=self.visible, + editable=self:editable(context), + condition=self.condition, + required=self.required, + default=self.default, + choice=self:_choice(context), + widget=self.widget + } + ) end function M.Field:topology(context) diff --git a/web/client.js b/web/client.js index e4b4726..4292ffb 100644 --- a/web/client.js +++ b/web/client.js @@ -813,13 +813,14 @@ $(function() { if (meta.type == "model") { this.fields = {}; _.each(meta.fields, function(field) { - self.fields[field.name] = self.renderField( - field.name, - field, - field["ui-name"], - true, - false - ); + if (field.visible) + self.fields[field.name] = self.renderField( + field.name, + field, + field["ui-name"], + true, + false + ); }); _.each(this.fields, function(f1, name) { |