summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--aconf/model/field.lua8
-rw-r--r--aconf/model/init.lua1
2 files changed, 6 insertions, 3 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)
diff --git a/aconf/model/init.lua b/aconf/model/init.lua
index a4c7a4b..e58d2f0 100644
--- a/aconf/model/init.lua
+++ b/aconf/model/init.lua
@@ -208,7 +208,6 @@ function M.Collection:init(params, itype)
self.itype = itype or node.Collection
self.iparams = {
destroy=self.destroy,
- editable=self:_editable(),
key=self.key,
layout=self.layout,
required=self.required,