summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2011-04-02 14:39:46 +0400
committerAndrew Dolgov <[email protected]>2011-04-02 14:39:46 +0400
commit5de271146be39d7a1d495688b66076b50923a4e7 (patch)
tree9523b92320fb6e25ef27bb26060391aeceb9793b
parent7b8931889b89a6a65e019225c913ca34d0194b0e (diff)
add feed editor button to reset pubsub subscription state
-rw-r--r--functions.js21
-rw-r--r--modules/pref-feeds.php29
2 files changed, 47 insertions, 3 deletions
diff --git a/functions.js b/functions.js
index 9352984be..b4c085a09 100644
--- a/functions.js
+++ b/functions.js
@@ -1015,6 +1015,27 @@ function quickAddFilter() {
}
}
+function resetPubSub(feed_id, title) {
+
+ var msg = __("Reset subscription? Tiny Tiny RSS will try to subscribe to the notification hub again on next feed update.").replace("%s", title);
+
+ if (title == undefined || confirm(msg)) {
+ notify_progress("Loading, please wait...");
+
+ var query = "?op=pref-feeds&quiet=1&subop=resetPubSub&ids=" + feed_id;
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ dijit.byId("pubsubReset_Btn").attr('disabled', true);
+ notify_info("Subscription reset.");
+ } });
+ }
+
+ return false;
+}
+
+
function unsubscribeFeed(feed_id, title) {
var msg = __("Unsubscribe from %s?").replace("%s", title);
diff --git a/modules/pref-feeds.php b/modules/pref-feeds.php
index e202c2ca4..48ad88e53 100644
--- a/modules/pref-feeds.php
+++ b/modules/pref-feeds.php
@@ -505,9 +505,22 @@
print "<div class='dlgButtons'>
<div style=\"float : left\">
<button dojoType=\"dijit.form.Button\" onclick='return unsubscribeFeed($feed_id, \"$title\")'>".
- __('Unsubscribe')."</button>
- </div>
- <button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('feedEditDlg').execute()\">".__('Save')."</button>
+ __('Unsubscribe')."</button>";
+
+ $pubsub_state = db_fetch_result($result, 0, "pubsub_state");
+
+ $pubsub_btn_disabled = ($pubsub_state == 2) ? "" : "disabled=\"1\"";
+
+ print "<button dojoType=\"dijit.form.Button\" id=\"pubsubReset_Btn\" $pubsub_btn_disabled
+ onclick='return resetPubSub($feed_id, \"$title\")'>".__('Resubscribe to push updates').
+ "</button>";
+
+ print "</div>";
+
+ print "<div dojoType=\"dijit.Tooltip\" connectId=\"pubsubReset_Btn\" position=\"below\">".
+ __('Resets PubSubHubbub subscription status for push-enabled feeds.')."</div>";
+
+ print "<button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('feedEditDlg').execute()\">".__('Save')."</button>
<button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('feedEditDlg').hide()\">".__('Cancel')."</button>
</div>";
@@ -828,6 +841,16 @@
return;
}
+ if ($subop == "resetPubSub") {
+
+ $ids = db_escape_string($_REQUEST["ids"]);
+
+ db_query($link, "UPDATE ttrss_feeds SET pubsub_state = 0 WHERE id IN ($ids)
+ AND owner_uid = " . $_SESSION["uid"]);
+
+ return;
+ }
+
if ($subop == "remove") {
$ids = split(",", db_escape_string($_REQUEST["ids"]));