properly handle on-the-fly adding of categories

This commit is contained in:
Andrew Dolgov 2010-11-09 13:28:10 +03:00
parent 10249c41b7
commit c00907f2ed
3 changed files with 24 additions and 11 deletions

View file

@ -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;
}

View file

@ -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,

View file

@ -1108,9 +1108,7 @@
$id = 0;
}
print "<payload><![CDATA[";
print_feed_cat_select($link, "cat_id", $id);
print "]]></payload>";
print "</rpc-reply>";