diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2015-12-17 02:39:23 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2015-12-17 02:39:23 +0100 |
commit | 967bb1f36f9f30d19e13aecf3a550eea5fd73c6b (patch) | |
tree | 253ae8cee5f3e8aa8dc2a40efdc677f25188bf41 /modules/luci-base | |
parent | 0dcb549841edc951646e90eda6956399aea7c209 (diff) | |
parent | 03786ed853fb2d538bd3448f778e9d0cfe50691e (diff) |
Merge pull request #464 from remakeelectric/pulls/list-operations
get/set list operations and documentation
Diffstat (limited to 'modules/luci-base')
-rw-r--r-- | modules/luci-base/luasrc/model/uci.lua | 5 | ||||
-rw-r--r-- | modules/luci-base/luasrc/model/uci.luadoc | 8 |
2 files changed, 9 insertions, 4 deletions
diff --git a/modules/luci-base/luasrc/model/uci.lua b/modules/luci-base/luasrc/model/uci.lua index 165913774..577c6cde0 100644 --- a/modules/luci-base/luasrc/model/uci.lua +++ b/modules/luci-base/luasrc/model/uci.lua @@ -111,7 +111,7 @@ function Cursor.get_list(self, config, section, option) local val = self:get(config, section, option) return ( type(val) == "table" and val or { val } ) end - return nil + return {} end function Cursor.get_first(self, conf, stype, opt, def) @@ -139,6 +139,9 @@ end function Cursor.set_list(self, config, section, option, value) if config and section and option then + if not value or #value == 0 then + return self:delete(config, section, option) + end return self:set( config, section, option, ( type(value) == "table" and value or { value } ) diff --git a/modules/luci-base/luasrc/model/uci.luadoc b/modules/luci-base/luasrc/model/uci.luadoc index 7591b68b0..49093c793 100644 --- a/modules/luci-base/luasrc/model/uci.luadoc +++ b/modules/luci-base/luasrc/model/uci.luadoc @@ -88,7 +88,8 @@ Get an option or list and return values as table. @param config UCI config @param section UCI section name @param option UCI option -@return UCI value +@return table. If the option was not found, you will simply get +-- an empty table. ]] ---[[ @@ -104,14 +105,15 @@ Get the given option from the first section with the given type. ]] ---[[ -Set given values as list. +Set given values as list. Setting a list option to an empty list +has the same effect as deleting the option. @class function @name Cursor.set_list @param config UCI config @param section UCI section name @param option UCI option -@param value UCI value +@param value value or table. Raw values will become a single item table. @return Boolean whether operation succeeded ]] |