summaryrefslogtreecommitdiff
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
parent10249c41b763a373926d9b1f78b7b8cef68e411b (diff)
properly handle on-the-fly adding of categories
-rw-r--r--functions.js20
-rw-r--r--functions.php13
-rw-r--r--modules/backend-rpc.php2
3 files changed, 24 insertions, 11 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;
}
diff --git a/functions.php b/functions.php
index f9de0622f..d9754a2f7 100644
--- a/functions.php
+++ b/functions.php
@@ -3047,17 +3047,19 @@
WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title");
if (db_num_rows($result) > 0 && $include_all_cats) {
- print "<option disabled>--------</option>";
+ print "<option disabled=\"1\">--------</option>";
}
while ($line = db_fetch_assoc($result)) {
if ($line["id"] == $default_id) {
$is_selected = "selected=\"1\"";
} else {
- $is_selected = "";
+ $is_selected = "";
}
- printf("<option $is_selected value='%d'>%s</option>",
- $line["id"], htmlspecialchars($line["title"]));
+
+ if ($line["title"])
+ printf("<option $is_selected value='%d'>%s</option>",
+ $line["id"], htmlspecialchars($line["title"]));
}
print "<option value=\"ADD_CAT\">" .__("Add category...") . "</option>";
@@ -6609,6 +6611,9 @@
}
function add_feed_category($link, $feed_cat) {
+
+ if (!$feed_cat) return false;
+
db_query($link, "BEGIN");
$result = db_query($link,
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php
index 54d636d18..8f31cd748 100644
--- a/modules/backend-rpc.php
+++ b/modules/backend-rpc.php
@@ -1108,9 +1108,7 @@
$id = 0;
}
- print "<payload><![CDATA[";
print_feed_cat_select($link, "cat_id", $id);
- print "]]></payload>";
print "</rpc-reply>";