diff options
author | Andrew Dolgov <[email protected]> | 2011-04-02 14:39:46 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2011-04-02 14:39:46 +0400 |
commit | 5de271146be39d7a1d495688b66076b50923a4e7 (patch) | |
tree | 9523b92320fb6e25ef27bb26060391aeceb9793b | |
parent | 7b8931889b89a6a65e019225c913ca34d0194b0e (diff) |
add feed editor button to reset pubsub subscription state
-rw-r--r-- | functions.js | 21 | ||||
-rw-r--r-- | modules/pref-feeds.php | 29 |
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"])); |