luci-base: add tooltip handling
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
This commit is contained in:
parent
bcb489a74d
commit
e951236e36
2 changed files with 33 additions and 0 deletions
|
@ -3602,13 +3602,35 @@ var CBIFlagValue = CBIValue.extend(/** @lends LuCI.form.FlagValue.prototype */ {
|
||||||
* @default 0
|
* @default 0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set a tooltip for the flag option.
|
||||||
|
*
|
||||||
|
* If set to a string, it will be used as-is as a tooltip.
|
||||||
|
*
|
||||||
|
* If set to a function, the function will be invoked and the return
|
||||||
|
* value will be shown as a tooltip. If the return value of the function
|
||||||
|
* is `null` no tooltip will be set.
|
||||||
|
*
|
||||||
|
* @name LuCI.form.TypedSection.prototype#tooltip
|
||||||
|
* @type string|function
|
||||||
|
* @default null
|
||||||
|
*/
|
||||||
|
|
||||||
/** @private */
|
/** @private */
|
||||||
renderWidget: function(section_id, option_index, cfgvalue) {
|
renderWidget: function(section_id, option_index, cfgvalue) {
|
||||||
|
var tooltip = null;
|
||||||
|
|
||||||
|
if (typeof(this.tooltip) == 'function')
|
||||||
|
tooltip = this.tooltip.apply(this, [section_id]);
|
||||||
|
else if (typeof(this.tooltip) == 'string')
|
||||||
|
tooltip = (arguments.length > 1) ? ''.format.apply(this.tooltip, this.varargs(arguments, 1)) : this.tooltip;
|
||||||
|
|
||||||
var widget = new ui.Checkbox((cfgvalue != null) ? cfgvalue : this.default, {
|
var widget = new ui.Checkbox((cfgvalue != null) ? cfgvalue : this.default, {
|
||||||
id: this.cbid(section_id),
|
id: this.cbid(section_id),
|
||||||
value_enabled: this.enabled,
|
value_enabled: this.enabled,
|
||||||
value_disabled: this.disabled,
|
value_disabled: this.disabled,
|
||||||
validate: L.bind(this.validate, this, section_id),
|
validate: L.bind(this.validate, this, section_id),
|
||||||
|
tooltip: tooltip,
|
||||||
disabled: (this.readonly != null) ? this.readonly : this.map.readonly
|
disabled: (this.readonly != null) ? this.readonly : this.map.readonly
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -610,6 +610,17 @@ var UICheckbox = UIElement.extend(/** @lends LuCI.ui.Checkbox.prototype */ {
|
||||||
|
|
||||||
frameEl.appendChild(E('label', { 'for': id }));
|
frameEl.appendChild(E('label', { 'for': id }));
|
||||||
|
|
||||||
|
if (this.options.tooltip != null) {
|
||||||
|
frameEl.appendChild(
|
||||||
|
E('label', { 'class': 'cbi-tooltip-container' },[
|
||||||
|
"⚠️",
|
||||||
|
E('div', { 'class': 'cbi-tooltip' },
|
||||||
|
this.options.tooltip
|
||||||
|
)
|
||||||
|
])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return this.bind(frameEl);
|
return this.bind(frameEl);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue