From 2bc2147f2e726b8db29f93e2a14da91b641ced7d Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 10 Aug 2007 05:03:56 +0100 Subject: optimize counter responses in markSelected, etc --- functions.php | 4 +- modules/backend-rpc.php | 6 +-- viewfeed.js | 123 +++++++++++++++++++++++++++++++----------------- 3 files changed, 85 insertions(+), 48 deletions(-) diff --git a/functions.php b/functions.php index f68768383..5fc20841a 100644 --- a/functions.php +++ b/functions.php @@ -1705,7 +1705,7 @@ } } - function getAllCounters($link, $omode = "tflc") { + function getAllCounters($link, $omode = "flc") { /* getLabelCounters($link); getFeedCounters($link); getTagCounters($link); @@ -1714,7 +1714,7 @@ getCategoryCounters($link); } */ - if (!$omode) $omode = "tflc"; + if (!$omode) $omode = "flc"; getGlobalCounters($link); diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php index b41709bcd..2705f45f5 100644 --- a/modules/backend-rpc.php +++ b/modules/backend-rpc.php @@ -180,7 +180,7 @@ print ""; print ""; - getAllCounters($link); + getAllCounters($link, $_GET["omode"]); print ""; print_runtime_info($link); print ""; @@ -195,7 +195,7 @@ print ""; print ""; - getAllCounters($link); + getAllCounters($link, $_GET["omode"]); print ""; print_runtime_info($link); print ""; @@ -210,7 +210,7 @@ print ""; print ""; - getAllCounters($link); + getAllCounters($link, $_GET["omode"]); print ""; print_runtime_info($link); print ""; diff --git a/viewfeed.js b/viewfeed.js index 74dad5edd..17a1b6b15 100644 --- a/viewfeed.js +++ b/viewfeed.js @@ -348,6 +348,14 @@ function toggleMark(id) { var query = "backend.php?op=rpc&id=" + id + "&subop=mark"; + query = query + "&afid=" + getActiveFeedId(); + + if (tagsAreDisplayed()) { + query = query + "&omode=tl"; + } else { + query = query + "&omode=flc"; + } + var mark_img = document.getElementById("FMPIC-" + id); var vfeedu = document.getElementById("FEEDU--1"); var crow = document.getElementById("RROW-" + id); @@ -395,56 +403,69 @@ function toggleMark(id) { function togglePub(id) { - if (!xmlhttp_ready(xmlhttp_rpc)) { - printLockingError(); - return; - } - - var query = "backend.php?op=rpc&id=" + id + "&subop=publ"; - - var mark_img = document.getElementById("FPPIC-" + id); - var vfeedu = document.getElementById("FEEDU--2"); - var crow = document.getElementById("RROW-" + id); - - if (mark_img.alt != "Unpublish") { - mark_img.src = "images/pub_set.png"; - mark_img.alt = "Unpublish"; - query = query + "&pub=1"; + try { - if (vfeedu && crow.className.match("Unread")) { - vfeedu.innerHTML = (+vfeedu.innerHTML) + 1; + if (!xmlhttp_ready(xmlhttp_rpc)) { + printLockingError(); + return; } - - } else { - mark_img.src = "images/pub_unset.png"; - mark_img.alt = "Publish"; - query = query + "&pub=0"; - - if (vfeedu && crow.className.match("Unread")) { - vfeedu.innerHTML = (+vfeedu.innerHTML) - 1; + + var query = "backend.php?op=rpc&id=" + id + "&subop=publ"; + + query = query + "&afid=" + getActiveFeedId(); + + if (tagsAreDisplayed()) { + query = query + "&omode=tl"; + } else { + query = query + "&omode=flc"; } - - } - - var vfeedctr = document.getElementById("FEEDCTR--2"); - var vfeedr = document.getElementById("FEEDR--2"); - - if (vfeedu && vfeedctr) { - if ((+vfeedu.innerHTML) > 0) { - if (crow.className.match("Unread") && !vfeedr.className.match("Unread")) { - vfeedr.className = vfeedr.className + "Unread"; - vfeedctr.className = "odd"; + + var mark_img = document.getElementById("FPPIC-" + id); + var vfeedu = document.getElementById("FEEDU--2"); + var crow = document.getElementById("RROW-" + id); + + if (mark_img.alt != "Unpublish") { + mark_img.src = "images/pub_set.png"; + mark_img.alt = "Unpublish"; + query = query + "&pub=1"; + + if (vfeedu && crow.className.match("Unread")) { + vfeedu.innerHTML = (+vfeedu.innerHTML) + 1; } + } else { - vfeedctr.className = "invisible"; - vfeedr.className = vfeedr.className.replace("Unread", ""); + mark_img.src = "images/pub_unset.png"; + mark_img.alt = "Publish"; + query = query + "&pub=0"; + + if (vfeedu && crow.className.match("Unread")) { + vfeedu.innerHTML = (+vfeedu.innerHTML) - 1; + } + } - } - - debug("toggle published for aid " + id); - - new Ajax.Request(query); + + var vfeedctr = document.getElementById("FEEDCTR--2"); + var vfeedr = document.getElementById("FEEDR--2"); + + if (vfeedu && vfeedctr) { + if ((+vfeedu.innerHTML) > 0) { + if (crow.className.match("Unread") && !vfeedr.className.match("Unread")) { + vfeedr.className = vfeedr.className + "Unread"; + vfeedctr.className = "odd"; + } + } else { + vfeedctr.className = "invisible"; + vfeedr.className = vfeedr.className.replace("Unread", ""); + } + } + + debug("toggle published for aid " + id); + + new Ajax.Request(query); + } catch (e) { + exception_error("togglePub", e); + } } function correctHeadlinesOffset(id) { @@ -670,6 +691,14 @@ function selectionToggleMarked(cdm_mode) { var query = "backend.php?op=rpc&subop=markSelected&ids=" + param_escape(rows.toString()) + "&cmode=2"; + query = query + "&afid=" + getActiveFeedId(); + + if (tagsAreDisplayed()) { + query = query + "&omode=tl"; + } else { + query = query + "&omode=flc"; + } + xmlhttp_rpc.open("GET", query, true); xmlhttp_rpc.onreadystatechange=all_counters_callback; xmlhttp_rpc.send(null); @@ -727,6 +756,14 @@ function selectionTogglePublished(cdm_mode) { var query = "backend.php?op=rpc&subop=publishSelected&ids=" + param_escape(rows.toString()) + "&cmode=2"; + query = query + "&afid=" + getActiveFeedId(); + + if (tagsAreDisplayed()) { + query = query + "&omode=tl"; + } else { + query = query + "&omode=flc"; + } + xmlhttp_rpc.open("GET", query, true); xmlhttp_rpc.onreadystatechange=all_counters_callback; xmlhttp_rpc.send(null); -- cgit v1.2.3