From dede2a91876e59b1c95139ba870e57e1755c6795 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Tue, 28 Apr 2020 09:50:28 +0200 Subject: [PATCH] luci-base: form.js: ListValue: support widget and orientation properties Signed-off-by: Jo-Philipp Wich (cherry picked from commit daa318c1b2cde1be9df370b1794d660902feab6b) --- .../htdocs/luci-static/resources/form.js | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/modules/luci-base/htdocs/luci-static/resources/form.js b/modules/luci-base/htdocs/luci-static/resources/form.js index 268cd378a..0e48041cb 100644 --- a/modules/luci-base/htdocs/luci-static/resources/form.js +++ b/modules/luci-base/htdocs/luci-static/resources/form.js @@ -3292,6 +3292,7 @@ var CBIListValue = CBIValue.extend(/** @lends LuCI.form.ListValue.prototype */ { __init__: function() { this.super('__init__', arguments); this.widget = 'select'; + this.orientation = 'horizontal'; this.deplist = []; }, @@ -3303,6 +3304,29 @@ var CBIListValue = CBIValue.extend(/** @lends LuCI.form.ListValue.prototype */ { * @default null */ + /** + * Set the type of the underlying form controls. + * + * May be one of `select` or `radio`. If set to `select`, an HTML + * select element is rendered, otherwise a collection of `radio` + * elements is used. + * + * @name LuCI.form.ListValue.prototype#widget + * @type string + * @default select + */ + + /** + * Set the orientation of the underlying radio or checkbox elements. + * + * May be one of `horizontal` or `vertical`. Only applies to non-select + * widget types. + * + * @name LuCI.form.ListValue.prototype#orientation + * @type string + * @default horizontal + */ + /** @private */ renderWidget: function(section_id, option_index, cfgvalue) { var choices = this.transformChoices(); @@ -3310,7 +3334,9 @@ var CBIListValue = CBIValue.extend(/** @lends LuCI.form.ListValue.prototype */ { id: this.cbid(section_id), size: this.size, sort: this.keylist, + widget: this.widget, optional: this.optional, + orientation: this.orientation, placeholder: this.placeholder, validate: L.bind(this.validate, this, section_id), disabled: (this.readonly != null) ? this.readonly : this.map.readonly -- 2.25.1