diff options
Diffstat (limited to 'aconf/model/field.lua')
-rw-r--r-- | aconf/model/field.lua | 8 |
1 files changed, 6 insertions, 2 deletions
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) |