From 8f70815592e1647e659e5005c508a5869a148b60 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 20 Jan 2009 17:48:38 +0100 Subject: [PATCH] category editor: properly initialize inline editors --- modules/pref-feeds.php | 37 +++++++++++++++++++++++++++++++------ prefs.js | 38 +++++++++++++++++++++++--------------- 2 files changed, 54 insertions(+), 21 deletions(-) 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 infobox_feed_cat_callback() { - if (xmlhttp.readyState == 4) { - try { - - infobox_callback(); - - if (document.getElementById("prefFeedCatList")) { - var elems = document.getElementById("prefFeedCatList").getElementsByTagName("SPAN"); +function init_cat_inline_editor() { + try { - 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-", ""); + 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); - } + '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(); + 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); }