summaryrefslogtreecommitdiffstats
path: root/acf/model/field.lua
diff options
context:
space:
mode:
Diffstat (limited to 'acf/model/field.lua')
-rw-r--r--acf/model/field.lua40
1 files changed, 27 insertions, 13 deletions
diff --git a/acf/model/field.lua b/acf/model/field.lua
index 436ce2c..26d4621 100644
--- a/acf/model/field.lua
+++ b/acf/model/field.lua
@@ -29,12 +29,27 @@ local function auto_ui_name(name)
end
-Field = class()
+Member = class()
-function Field:init(params)
+function Member:init(params)
for k, v in pairs(params or {}) do
if self[k] == nil then self[k] = v end
end
+end
+
+function Member:meta(context)
+ return {
+ name=self.name,
+ description=self.description,
+ ['ui-name']=self['ui-name'] or auto_ui_name(self.name)
+ }
+end
+
+
+Field = class(Member)
+
+function Field:init(params)
+ super(self, Field):init(params)
if self.choice and not self['ui-choice'] then
self['ui-choice'] = map(auto_ui_name, self.choice)
@@ -47,17 +62,16 @@ end
function Field:meta(context)
assert(self.dtype)
- return {
- name=self.name,
- type=self.dtype,
- required=self.required,
- default=self.default,
- choice=self.choice,
- description=self.description,
- ['ui-name']=self['ui-name'] or auto_ui_name(self.name),
- widget=self.widget,
- ['ui-choice']=self['ui-choice']
- }
+ local res = super(self, Field):meta(context)
+
+ res.type = self.dtype
+ res.required = self.required
+ res.default = self.default
+ res.choice = self.choice
+ res.widget = self.widget
+ res['ui-choice'] = self['ui-choice']
+
+ return res
end
function Field:load(context)