summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-02-26 14:10:49 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-02-26 16:52:57 +0200
commit6b6da4107d0a31199c8249827ffbe72be2104ada (patch)
tree6343807f7af6b968d191cc7d9dd1d157e512e96f
parente55cd03cf3afd5bd838de86c76ad858d882bd33f (diff)
downloadaconf-6b6da4107d0a31199c8249827ffbe72be2104ada.tar.bz2
aconf-6b6da4107d0a31199c8249827ffbe72be2104ada.tar.xz
model: allow inserting empty non-editable collection members
-rw-r--r--acf2/model/field.lua9
1 files changed, 7 insertions, 2 deletions
diff --git a/acf2/model/field.lua b/acf2/model/field.lua
index 76c8931..001a77b 100644
--- a/acf2/model/field.lua
+++ b/acf2/model/field.lua
@@ -328,8 +328,6 @@ function M.TreeNode:load(context, options)
end
function M.TreeNode:save(context, value)
- self:check_editable(context)
-
local path = context.path
if value == path then return end
@@ -338,6 +336,13 @@ function M.TreeNode:save(context, value)
return
end
+ local check = value ~= nil and next(value) ~= nil
+ if not check then
+ local old = self:_load(context)
+ if old and next(old) ~= nil then check = true end
+ end
+ if check then self:check_editable(context) end
+
self:_save(context)
if value then