summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--i18n/english/luasrc/i18n/cbi.en.lua2
-rw-r--r--i18n/german/luasrc/i18n/cbi.de.lua2
-rw-r--r--libs/cbi/htdocs/luci-static/resources/cbi.js68
3 files changed, 38 insertions, 34 deletions
diff --git a/i18n/english/luasrc/i18n/cbi.en.lua b/i18n/english/luasrc/i18n/cbi.en.lua
index ca1285d0a..012d7c5f6 100644
--- a/i18n/english/luasrc/i18n/cbi.en.lua
+++ b/i18n/english/luasrc/i18n/cbi.en.lua
@@ -4,5 +4,5 @@ cbi_invalid = "Error: Invalid input value"
cbi_addopt = "-- Additional Field --"
cbi_optional = " (optional)"
cbi_sectempty = "This section contains no values yet"
-cbi_manual = "-- manual --"
+cbi_manual = "-- custom --"
cbi_select = "-- Please choose --"
diff --git a/i18n/german/luasrc/i18n/cbi.de.lua b/i18n/german/luasrc/i18n/cbi.de.lua
index f34cb59b5..f2ed5ecd2 100644
--- a/i18n/german/luasrc/i18n/cbi.de.lua
+++ b/i18n/german/luasrc/i18n/cbi.de.lua
@@ -3,5 +3,5 @@ cbi_del = "Eintrag entfernen"
cbi_invalid = "Error: Ungültige Eingabe"
cbi_addopt = "-- Zusätzliches Feld --"
cbi_sectempty = "Diese Sektion enthält noch keine Einträge"
-cbi_manual = "-- manuell --"
+cbi_manual = "-- benutzerdefiniert --"
cbi_select = "-- Bitte auswählen --" \ No newline at end of file
diff --git a/libs/cbi/htdocs/luci-static/resources/cbi.js b/libs/cbi/htdocs/luci-static/resources/cbi.js
index 38e27d8f4..7cb2f7c1d 100644
--- a/libs/cbi/htdocs/luci-static/resources/cbi.js
+++ b/libs/cbi/htdocs/luci-static/resources/cbi.js
@@ -60,46 +60,50 @@ function cbi_bind(obj, type, callback, mode) {
function cbi_combobox(id, values, def, man) {
var obj = document.getElementById(id)
- if (obj.value == "" || values[obj.value]) {
- var sel = document.createElement("select")
- obj.parentNode.appendChild(sel)
+ var sel = document.createElement("select");
+ obj.parentNode.appendChild(sel);
- if (obj.value == "") {
- var optdef = document.createElement("option")
- optdef.value = ""
- optdef.appendChild(document.createTextNode(def))
- sel.appendChild(optdef)
- }
-
- for (var i in values) {
- var opt = document.createElement("option")
- opt.value = i
+ if (obj.value == "") {
+ var optdef = document.createElement("option");
+ optdef.value = "";
+ optdef.appendChild(document.createTextNode(def));
+ sel.appendChild(optdef);
+ } else if (!values[obj.value]) {
+ var opt = document.createElement("option");
+ opt.value = obj.value;
+ opt.selected = "selected";
+ opt.appendChild(document.createTextNode(obj.value));
+ sel.appendChild(opt);
+ }
- if (obj.value == i) {
- opt.selected = "selected"
- }
+ for (var i in values) {
+ var opt = document.createElement("option");
+ opt.value = i;
- opt.appendChild(document.createTextNode(values[i]))
- sel.appendChild(opt)
+ if (obj.value == i) {
+ opt.selected = "selected";
}
- var optman = document.createElement("option")
- optman.value = ""
- optman.appendChild(document.createTextNode(man))
- sel.appendChild(optman)
+ opt.appendChild(document.createTextNode(values[i]));
+ sel.appendChild(opt);
+ }
+
+ var optman = document.createElement("option");
+ optman.value = "";
+ optman.appendChild(document.createTextNode(man));
+ sel.appendChild(optman);
- obj.style.display = "none"
+ obj.style.display = "none";
- cbi_bind(sel, "change", function() {
- obj.value = sel.options[sel.selectedIndex].value
+ cbi_bind(sel, "change", function() {
+ obj.value = sel.options[sel.selectedIndex].value;
- if (sel.selectedIndex == sel.options.length - 1) {
- obj.style.display = "inline"
- sel.parentNode.removeChild(sel)
- obj.focus()
- }
- })
- }
+ if (sel.selectedIndex == sel.options.length - 1) {
+ obj.style.display = "inline";
+ sel.parentNode.removeChild(sel);
+ obj.focus();
+ }
+ })
}
function cbi_combobox_init(id, values, def, man) {