diff options
-rw-r--r-- | libs/cbi/luasrc/cbi.lua | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index 9e82ce9cef..6432a2590d 100644 --- a/libs/cbi/luasrc/cbi.lua +++ b/libs/cbi/luasrc/cbi.lua @@ -872,10 +872,10 @@ function AbstractValue.__init__(self, map, section, option, ...) self.tag_reqerror = {} self.tag_error = {} self.deps = {} - self.cast = "string" + --self.cast = "string" self.track_missing = false - self.rmempty = false + --self.rmempty = false self.default = nil self.size = nil self.optional = false @@ -886,11 +886,17 @@ function AbstractValue.prepare(self) if not self.override_scheme and self.map:get_scheme(self.section.sectiontype, self.option) then local vs = self.map:get_scheme(self.section.sectiontype, self.option) - self.rmempty = not vs.required - self.cast = (vs.type == "list") and "list" or "string" + if self.rmempty == nil then + self.rmempty = not vs.required + end + if self.cast == nil then + self.cast = (vs.type == "list") and "list" or "string" + end self.title = self.title or vs.title self.description = self.description or vs.descr - self.default = vs.default + if self.default == nil then + self.default = vs.default + end if vs.depends and not self.override_dependencies then for i, deps in ipairs(vs.depends) do @@ -901,6 +907,8 @@ function AbstractValue.prepare(self) end end end + + self.cast = self.cast or "string" end -- Add a dependencie to another section field |