summaryrefslogtreecommitdiffstats
path: root/acf2/model/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'acf2/model/init.lua')
-rw-r--r--acf2/model/init.lua17
1 files changed, 7 insertions, 10 deletions
diff --git a/acf2/model/init.lua b/acf2/model/init.lua
index 9383ad9..b614c6b 100644
--- a/acf2/model/init.lua
+++ b/acf2/model/init.lua
@@ -105,16 +105,18 @@ function M.Reference:_choice(context)
if M.path.is_subordinate(context.path, ch.ref) then ch = nil end
if ch then
ch['ui-value'] = M.path.name(ch.ref)
- ch.value = self.dereference and ch.ref or M.path.escape(
- ch['ui-value']
- )
+ ch.be_value = M.path.escape(ch['ui-value'])
+ ch.value = self.dereference and ch.ref or ch.be_value
if self.filter then
assert(isinstance(v, model.Model))
if not node.match(v, self.filter) then ch.enabled = false end
end
end
- else update(ch, {value=M.path.escape(v), ['ui-value']=v}) end
+ else
+ local ep = M.path.escape(v)
+ update(ch, {be_value=ep, value=ep, ['ui-value']=v})
+ end
if ch then table.insert(res, ch) end
end
@@ -159,15 +161,10 @@ function M.Reference:normalize(context, value)
rel = rel:sub(prefix:len() + 1, -1)
end
- -- assume one-level ref for now
- if #M.path.split(rel) > 1 then
- raise(path, 'Subtree references not yet supported')
- end
-
-- TODO check instance type
relabel(path, self.follow, self, context, rel)
- return self.dereference and value or rel, rel
+ return self.dereference and value or rel
end
function M.Reference:deleted(context, addr)