luci-base: ui.js: properly handle rich choices in Dropdowns, DynLists
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
5da676b44e
commit
4c52718dea
1 changed files with 26 additions and 6 deletions
|
@ -442,11 +442,17 @@ var UIDropdown = UIElement.extend({
|
||||||
if (!this.choices.hasOwnProperty(this.values[i]))
|
if (!this.choices.hasOwnProperty(this.values[i]))
|
||||||
keys.push(this.values[i]);
|
keys.push(this.values[i]);
|
||||||
|
|
||||||
for (var i = 0; i < keys.length; i++)
|
for (var i = 0; i < keys.length; i++) {
|
||||||
|
var label = this.choices[keys[i]];
|
||||||
|
|
||||||
|
if (L.dom.elem(label))
|
||||||
|
label = label.cloneNode(true);
|
||||||
|
|
||||||
sb.lastElementChild.appendChild(E('li', {
|
sb.lastElementChild.appendChild(E('li', {
|
||||||
'data-value': keys[i],
|
'data-value': keys[i],
|
||||||
'selected': (this.values.indexOf(keys[i]) > -1) ? '' : null
|
'selected': (this.values.indexOf(keys[i]) > -1) ? '' : null
|
||||||
}, this.choices[keys[i]] || keys[i]));
|
}, [ label || keys[i] ]));
|
||||||
|
}
|
||||||
|
|
||||||
if (this.options.create) {
|
if (this.options.create) {
|
||||||
var createEl = E('input', {
|
var createEl = E('input', {
|
||||||
|
@ -1339,9 +1345,14 @@ var UIDynamicList = UIElement.extend({
|
||||||
true, this.options.validate, 'blur', 'keyup');
|
true, this.options.validate, 'blur', 'keyup');
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < this.values.length; i++)
|
for (var i = 0; i < this.values.length; i++) {
|
||||||
this.addItem(dl, this.values[i],
|
var label = this.choices ? this.choices[this.values[i]] : null;
|
||||||
this.choices ? this.choices[this.values[i]] : null);
|
|
||||||
|
if (L.dom.elem(label))
|
||||||
|
label = label.cloneNode(true);
|
||||||
|
|
||||||
|
this.addItem(dl, this.values[i], label);
|
||||||
|
}
|
||||||
|
|
||||||
return this.bind(dl);
|
return this.bind(dl);
|
||||||
},
|
},
|
||||||
|
@ -1458,7 +1469,16 @@ var UIDynamicList = UIElement.extend({
|
||||||
sbVal.element.setAttribute('dynlistcustom', '');
|
sbVal.element.setAttribute('dynlistcustom', '');
|
||||||
}
|
}
|
||||||
|
|
||||||
this.addItem(dl, sbVal.value, sbVal.text, true);
|
var label = sbVal.text;
|
||||||
|
|
||||||
|
if (sbVal.element) {
|
||||||
|
label = E([]);
|
||||||
|
|
||||||
|
for (var i = 0; i < sbVal.element.childNodes.length; i++)
|
||||||
|
label.appendChild(sbVal.element.childNodes[i].cloneNode(true));
|
||||||
|
}
|
||||||
|
|
||||||
|
this.addItem(dl, sbVal.value, label, true);
|
||||||
},
|
},
|
||||||
|
|
||||||
handleKeydown: function(ev) {
|
handleKeydown: function(ev) {
|
||||||
|
|
Loading…
Reference in a new issue