From 506736171d38cb045b7e7f86210b4e5aee5c28b6 Mon Sep 17 00:00:00 2001 From: Kaarle Ritvanen Date: Wed, 12 Mar 2014 21:52:55 +0200 Subject: model: context-dependent editability of collections --- aconf/model/field.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'aconf/model/field.lua') diff --git a/aconf/model/field.lua b/aconf/model/field.lua index 80f08c5..658aa7f 100644 --- a/aconf/model/field.lua +++ b/aconf/model/field.lua @@ -17,6 +17,7 @@ local super = object.super local util = require('aconf.util') local map = util.map local setdefaults = util.setdefaults +local update = util.update M.Member = class() @@ -122,7 +123,7 @@ function M.Field:_choice(context) return self.choice end function M.Field:meta(context) assert(self.dtype) local choice = self:_choice(context) - return util.update( + return update( super(self, M.Field):meta(context), { type=self.dtype, @@ -309,6 +310,7 @@ function M.TreeNode:init(params) super(self, M.TreeNode):init( setdefaults(params, {detail=true, widget='link'}) ) + self.iparams = {} end function M.TreeNode:topology(context) @@ -324,7 +326,9 @@ function M.TreeNode:load(context, options) options or {}, 'create', self.create ) or self:_load(context) ) then return end - return self.itype(context, self.iparams) + return self.itype( + context, update({editable=self:_editable(context)}, self.iparams) + ) end function M.TreeNode:save(context, value) -- cgit v1.2.3