allow adding cats from feed editor
This commit is contained in:
parent
8b640f50e0
commit
5c7c7da9e1
47
functions.js
47
functions.js
|
@ -2169,3 +2169,50 @@ function has_local_storage() {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function catSelectOnChange(elem) {
|
||||
try {
|
||||
var value = elem[elem.selectedIndex].value;
|
||||
var def = elem.getAttribute('default');
|
||||
|
||||
if (value == "ADD_CAT") {
|
||||
|
||||
if (def)
|
||||
dropboxSelect(elem, def);
|
||||
else
|
||||
elem.selectedIndex = 0;
|
||||
|
||||
quickAddCat(elem);
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
exception_error("catSelectOnChange", e);
|
||||
}
|
||||
}
|
||||
|
||||
function quickAddCat(select) {
|
||||
try {
|
||||
var cat = prompt(__("Please enter category title:"));
|
||||
|
||||
if (cat) {
|
||||
|
||||
var query = "?op=rpc&subop=quickAddCat&cat=" + param_escape(cat);
|
||||
|
||||
new Ajax.Request("backend.php", {
|
||||
parameters: query,
|
||||
onComplete: function (transport) {
|
||||
var response = transport.responseXML;
|
||||
|
||||
var payload = response.getElementsByTagName("payload")[0];
|
||||
|
||||
if (payload)
|
||||
select.innerHTML = payload.firstChild.nodeValue;
|
||||
|
||||
} });
|
||||
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
exception_error("quickAddCat", e);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3018,7 +3018,7 @@
|
|||
function print_feed_cat_select($link, $id, $default_id = "",
|
||||
$attributes = "", $include_all_cats = true) {
|
||||
|
||||
print "<select id=\"$id\" name=\"$id\" $attributes>";
|
||||
print "<select id=\"$id\" name=\"$id\" default=\"$default_id\" onchange=\"catSelectOnChange(this)\" $attributes>";
|
||||
|
||||
if ($include_all_cats) {
|
||||
print "<option value=\"0\">".__('Uncategorized')."</option>";
|
||||
|
@ -3041,6 +3041,8 @@
|
|||
$line["id"], htmlspecialchars($line["title"]));
|
||||
}
|
||||
|
||||
print "<option value=\"ADD_CAT\">" .__("Add category...") . "</option>";
|
||||
|
||||
print "</select>";
|
||||
}
|
||||
|
||||
|
@ -6577,6 +6579,27 @@
|
|||
}
|
||||
}
|
||||
|
||||
function add_feed_category($link, $feed_cat) {
|
||||
db_query($link, "BEGIN");
|
||||
|
||||
$result = db_query($link,
|
||||
"SELECT id FROM ttrss_feed_categories
|
||||
WHERE title = '$feed_cat' AND owner_uid = ".$_SESSION["uid"]);
|
||||
|
||||
if (db_num_rows($result) == 0) {
|
||||
|
||||
$result = db_query($link,
|
||||
"INSERT INTO ttrss_feed_categories (owner_uid,title)
|
||||
VALUES ('".$_SESSION["uid"]."', '$feed_cat')");
|
||||
|
||||
db_query($link, "COMMIT");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function remove_feed_category($link, $id, $owner_uid) {
|
||||
|
||||
db_query($link, "DELETE FROM ttrss_feed_categories
|
||||
|
|
|
@ -1094,6 +1094,31 @@
|
|||
return;
|
||||
}
|
||||
|
||||
if ($subop == "quickAddCat") {
|
||||
print "<rpc-reply>";
|
||||
|
||||
$cat = db_escape_string($_REQUEST["cat"]);
|
||||
|
||||
add_feed_category($link, $cat);
|
||||
|
||||
$result = db_query($link, "SELECT id FROM ttrss_feed_categories WHERE
|
||||
title = '$cat' AND owner_uid = " . $_SESSION["uid"]);
|
||||
|
||||
if (db_num_rows($result) == 1) {
|
||||
$id = db_fetch_result($result, 0, "id");
|
||||
} else {
|
||||
$id = 0;
|
||||
}
|
||||
|
||||
print "<payload><![CDATA[";
|
||||
print_feed_cat_select($link, "cat_id", $id);
|
||||
print "]]></payload>";
|
||||
|
||||
print "</rpc-reply>";
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
print "<rpc-reply><error>Unknown method: $subop</error></rpc-reply>";
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1031,24 +1031,10 @@
|
|||
|
||||
if ($action == "add") {
|
||||
|
||||
|
||||
$feed_cat = db_escape_string(trim($_REQUEST["cat"]));
|
||||
|
||||
$result = db_query($link,
|
||||
"SELECT id FROM ttrss_feed_categories
|
||||
WHERE title = '$feed_cat' AND owner_uid = ".$_SESSION["uid"]);
|
||||
|
||||
if (db_num_rows($result) == 0) {
|
||||
|
||||
$result = db_query($link,
|
||||
"INSERT INTO ttrss_feed_categories (owner_uid,title)
|
||||
VALUES ('".$_SESSION["uid"]."', '$feed_cat')");
|
||||
|
||||
} else {
|
||||
|
||||
print_warning(T_sprintf("Category <b>$%s</b> already exists in the database.",
|
||||
$feed_cat));
|
||||
}
|
||||
if (!add_feed_category($link, $feed_cat))
|
||||
print_warning(T_sprintf("Category <b>$%s</b> already exists in the database.", $feed_cat));
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue