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 "
-
- + __('Unsubscribe').""; + + $pubsub_state = db_fetch_result($result, 0, "pubsub_state"); + + $pubsub_btn_disabled = ($pubsub_state == 2) ? "" : "disabled=\"1\""; + + print ""; + + print "
"; + + print "
". + __('Resets PubSubHubbub subscription status for push-enabled feeds.')."
"; + + print " "; @@ -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"]));