diff options
author | Andrew Dolgov <[email protected]> | 2010-11-09 13:28:10 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2010-11-09 13:28:10 +0300 |
commit | c00907f2ed4880a6ec8f06edfd21ee4b12c50c94 (patch) | |
tree | 7fcbd13bbfd0ba459d718c8c8a10671b1c15bf54 /functions.js | |
parent | 10249c41b763a373926d9b1f78b7b8cef68e411b (diff) |
properly handle on-the-fly adding of categories
Diffstat (limited to 'functions.js')
-rw-r--r-- | functions.js | 20 |
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; } |