properly handle on-the-fly adding of labels
This commit is contained in:
parent
3acc0da647
commit
10249c41b7
37
functions.js
37
functions.js
|
@ -2250,18 +2250,47 @@ function labelSelectOnChange(elem) {
|
||||||
elem.selectedIndex = 0;
|
elem.selectedIndex = 0;
|
||||||
|
|
||||||
addLabel(elem, function(transport) {
|
addLabel(elem, function(transport) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
var response = transport.responseXML;
|
var response = transport.responseXML;
|
||||||
|
var select = response.getElementsByTagName("select")[0];
|
||||||
|
var options = select.getElementsByTagName("option");
|
||||||
|
|
||||||
var payload = response.getElementsByTagName("payload")[0];
|
dropbox_replace_options(elem, options);
|
||||||
|
|
||||||
if (payload)
|
notify('');
|
||||||
elem.innerHTML = payload.firstChild.nodeValue;
|
} catch (e) {
|
||||||
|
exception_error("addLabel", e);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
exception_error("catSelectOnChange", e);
|
exception_error("labelSelectOnChange", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function dropbox_replace_options(elem, options) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
while (elem.hasChildNodes())
|
||||||
|
elem.removeChild(elem.firstChild);
|
||||||
|
|
||||||
|
var sel_idx = -1;
|
||||||
|
|
||||||
|
for (var i = 0; i < options.length; i++) {
|
||||||
|
var text = options[i].firstChild.nodeValue;
|
||||||
|
var value = options[i].getAttribute("value");
|
||||||
|
var issel = options[i].getAttribute("selected") == "1";
|
||||||
|
elem.insert(new Option(text, value, issel));
|
||||||
|
if (issel) sel_idx = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Chrome doesn't seem to just select stuff when you pass new Option(x, y, true)
|
||||||
|
if (sel_idx >= 0) elem.selectedIndex = sel_idx;
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
exception_error("dropbox_replace_options", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -3020,7 +3020,7 @@
|
||||||
|
|
||||||
while ($line = db_fetch_assoc($result)) {
|
while ($line = db_fetch_assoc($result)) {
|
||||||
if ($line["id"] == $default_id) {
|
if ($line["id"] == $default_id) {
|
||||||
$is_selected = "selected";
|
$is_selected = "selected=\"1\"";
|
||||||
} else {
|
} else {
|
||||||
$is_selected = "";
|
$is_selected = "";
|
||||||
}
|
}
|
||||||
|
@ -3052,7 +3052,7 @@
|
||||||
|
|
||||||
while ($line = db_fetch_assoc($result)) {
|
while ($line = db_fetch_assoc($result)) {
|
||||||
if ($line["id"] == $default_id) {
|
if ($line["id"] == $default_id) {
|
||||||
$is_selected = "selected";
|
$is_selected = "selected=\"1\"";
|
||||||
} else {
|
} else {
|
||||||
$is_selected = "";
|
$is_selected = "";
|
||||||
}
|
}
|
||||||
|
|
|
@ -523,14 +523,14 @@
|
||||||
$result = db_query($link, "SELECT caption FROM ttrss_labels2
|
$result = db_query($link, "SELECT caption FROM ttrss_labels2
|
||||||
WHERE owner_uid = '".$_SESSION["uid"]."' ORDER BY caption");
|
WHERE owner_uid = '".$_SESSION["uid"]."' ORDER BY caption");
|
||||||
|
|
||||||
print "<select default=\"$value\" name=\"$name\" style=\"$style\"
|
print "<select default=\"$value\" name=\"" . htmlspecialchars($name) .
|
||||||
onchange=\"labelSelectOnChange(this)\" >";
|
"\" style=\"$style\" onchange=\"labelSelectOnChange(this)\" >";
|
||||||
|
|
||||||
while ($line = db_fetch_assoc($result)) {
|
while ($line = db_fetch_assoc($result)) {
|
||||||
|
|
||||||
$issel = ($line["caption"] == $value) ? "selected" : "";
|
$issel = ($line["caption"] == $value) ? "selected=\"1\"" : "";
|
||||||
|
|
||||||
print "<option $issel>" . $line["caption"] . "</option>";
|
print "<option $issel>" . htmlspecialchars($line["caption"]) . "</option>";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -107,12 +107,12 @@
|
||||||
if ($output == "select") {
|
if ($output == "select") {
|
||||||
header("Content-Type: text/xml");
|
header("Content-Type: text/xml");
|
||||||
|
|
||||||
print "<rpc-reply><payload><![CDATA[";
|
print "<rpc-reply><payload>";
|
||||||
|
|
||||||
print_label_select($link, "select_label",
|
print_label_select($link, "select_label",
|
||||||
$caption, "");
|
$caption, "");
|
||||||
|
|
||||||
print "]]></payload></rpc-reply>";
|
print "</payload></rpc-reply>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue