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;
|
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 = "",
|
function print_feed_cat_select($link, $id, $default_id = "",
|
||||||
$attributes = "", $include_all_cats = true) {
|
$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) {
|
if ($include_all_cats) {
|
||||||
print "<option value=\"0\">".__('Uncategorized')."</option>";
|
print "<option value=\"0\">".__('Uncategorized')."</option>";
|
||||||
|
@ -3041,6 +3041,8 @@
|
||||||
$line["id"], htmlspecialchars($line["title"]));
|
$line["id"], htmlspecialchars($line["title"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print "<option value=\"ADD_CAT\">" .__("Add category...") . "</option>";
|
||||||
|
|
||||||
print "</select>";
|
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) {
|
function remove_feed_category($link, $id, $owner_uid) {
|
||||||
|
|
||||||
db_query($link, "DELETE FROM ttrss_feed_categories
|
db_query($link, "DELETE FROM ttrss_feed_categories
|
||||||
|
|
|
@ -1094,6 +1094,31 @@
|
||||||
return;
|
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>";
|
print "<rpc-reply><error>Unknown method: $subop</error></rpc-reply>";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -1031,24 +1031,10 @@
|
||||||
|
|
||||||
if ($action == "add") {
|
if ($action == "add") {
|
||||||
|
|
||||||
|
|
||||||
$feed_cat = db_escape_string(trim($_REQUEST["cat"]));
|
$feed_cat = db_escape_string(trim($_REQUEST["cat"]));
|
||||||
|
|
||||||
$result = db_query($link,
|
if (!add_feed_category($link, $feed_cat))
|
||||||
"SELECT id FROM ttrss_feed_categories
|
print_warning(T_sprintf("Category <b>$%s</b> already exists in the database.", $feed_cat));
|
||||||
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));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue