summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-12-20 23:40:03 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-12-20 23:48:18 +0200
commitefd962f6583e9cf04d8d5621a9126e015caba4fb (patch)
tree42f80a0f1fc3e010f1f18386321a6bc915237b73
parent94c899f9d40ce4e0db8e6bd4ec19babc6260be67 (diff)
downloadacf2-efd962f6583e9cf04d8d5621a9126e015caba4fb.tar.bz2
acf2-efd962f6583e9cf04d8d5621a9126e015caba4fb.tar.xz
hidden fields in models
-rw-r--r--acf2/model/field.lua27
-rw-r--r--web/client.js15
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) {