summaryrefslogtreecommitdiff
path: root/functions.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-11-09 13:28:10 +0300
committerAndrew Dolgov <[email protected]>2010-11-09 13:28:10 +0300
commitc00907f2ed4880a6ec8f06edfd21ee4b12c50c94 (patch)
tree7fcbd13bbfd0ba459d718c8c8a10671b1c15bf54 /functions.js
parent10249c41b763a373926d9b1f78b7b8cef68e411b (diff)
properly handle on-the-fly adding of categories
Diffstat (limited to 'functions.js')
-rw-r--r--functions.js20
1 files changed, 15 insertions, 5 deletions
diff --git a/functions.js b/functions.js
index a9d90f1aa..09582feaf 100644
--- a/functions.js
+++ b/functions.js
@@ -2166,7 +2166,7 @@ function catSelectOnChange(elem) {
}
}
-function quickAddCat(select) {
+function quickAddCat(elem) {
try {
var cat = prompt(__("Please enter category title:"));
@@ -2174,15 +2174,18 @@ function quickAddCat(select) {
var query = "?op=rpc&subop=quickAddCat&cat=" + param_escape(cat);
+ notify_progress("Loading, please wait...", true);
+
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function (transport) {
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)
- select.innerHTML = payload.firstChild.nodeValue;
+ notify('');
} });
@@ -2283,7 +2286,14 @@ function dropbox_replace_options(elem, options) {
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));
+
+ var option = new Option(text, value, issel);
+
+ if (options[i].getAttribute("disabled"))
+ option.setAttribute("disabled", true);
+
+ elem.insert(option);
+
if (issel) sel_idx = i;
}