diff --git a/modules/pref-feeds.php b/modules/pref-feeds.php
index 8668c97ce..aae7ab453 100644
--- a/modules/pref-feeds.php
+++ b/modules/pref-feeds.php
@@ -933,11 +933,30 @@
$cat_title = db_escape_string(trim($_REQUEST["value"]));
$cat_id = db_escape_string($_GET["cid"]);
-
- $result = db_query($link, "UPDATE ttrss_feed_categories SET
- title = '$cat_title' WHERE id = '$cat_id' AND owner_uid = ".$_SESSION["uid"]);
- print $_REQUEST["value"];
+ db_query($link, "BEGIN");
+
+ $result = db_query($link, "SELECT title FROM ttrss_feed_categories
+ WHERE id = '$cat_id' AND owner_uid = ".$_SESSION["uid"]);
+
+ if (db_num_rows($result) == 1) {
+
+ $old_title = db_fetch_result($result, 0, "title");
+
+ if ($cat_title != "") {
+ $result = db_query($link, "UPDATE ttrss_feed_categories SET
+ title = '$cat_title' WHERE id = '$cat_id' AND
+ owner_uid = ".$_SESSION["uid"]);
+
+ print $cat_title;
+ } else {
+ print $old_title;
+ }
+ } else {
+ print $_REQUEST["value"];
+ }
+
+ db_query($link, "COMMIT");
return;
@@ -1370,8 +1389,14 @@
-
-
+ ";
+
+ if (FORCE_ARTICLE_PURGE == 0) {
+ print
+ "";
+ }
+
+ print "
";
diff --git a/prefs.js b/prefs.js
index ee5a814c6..9d46cde2b 100644
--- a/prefs.js
+++ b/prefs.js
@@ -240,24 +240,32 @@ function changepass_callback() {
}
}
+function init_cat_inline_editor() {
+ try {
+
+ if (document.getElementById("prefFeedCatList")) {
+ var elems = document.getElementById("prefFeedCatList").getElementsByTagName("SPAN");
+
+ for (var i = 0; i < elems.length; i++) {
+ if (elems[i].id && elems[i].id.match("FCATT-")) {
+ var cat_id = elems[i].id.replace("FCATT-", "");
+ new Ajax.InPlaceEditor(elems[i],
+ 'backend.php?op=pref-feeds&subop=editCats&action=save&cid=' + cat_id);
+ }
+ }
+ }
+
+ } catch (e) {
+ exception_error("init_cat_inline_editor", e);
+ }
+}
+
function infobox_feed_cat_callback() {
if (xmlhttp.readyState == 4) {
try {
infobox_callback();
-
- if (document.getElementById("prefFeedCatList")) {
- var elems = document.getElementById("prefFeedCatList").getElementsByTagName("SPAN");
-
- for (var i = 0; i < elems.length; i++) {
- if (elems[i].id && elems[i].id.match("FCATT-")) {
- var cat_id = elems[i].id.replace("FCATT-", "");
-
- new Ajax.InPlaceEditor(elems[i],
- 'backend.php?op=pref-feeds&subop=editCats&action=save&cid=' + cat_id);
- }
- }
- }
+ init_cat_inline_editor();
} catch (e) {
exception_error("infobox_feed_cat_callback", e);
@@ -388,7 +396,7 @@ function addFeedCat() {
xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=editCats&action=add&cat=" +
param_escape(cat.value), true);
- xmlhttp.onreadystatechange=infobox_callback;
+ xmlhttp.onreadystatechange=infobox_feed_cat_callback;
xmlhttp.send(null);
link.value = "";
@@ -763,7 +771,7 @@ function removeSelectedFeedCats() {
xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=editCats&action=remove&ids="+
param_escape(sel_rows.toString()), true);
- xmlhttp.onreadystatechange=infobox_callback;
+ xmlhttp.onreadystatechange=infobox_feed_cat_callback;
xmlhttp.send(null);
}