From efd962f6583e9cf04d8d5621a9126e015caba4fb Mon Sep 17 00:00:00 2001 From: Kaarle Ritvanen Date: Fri, 20 Dec 2013 23:40:03 +0200 Subject: hidden fields in models --- acf2/model/field.lua | 27 +++++++++++++++------------ 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) { -- cgit v1.2.3