diff options
-rw-r--r-- | classes/dlg.php | 155 | ||||
-rw-r--r-- | classes/pref/feeds.php | 157 | ||||
-rw-r--r-- | js/functions.js | 2 | ||||
-rw-r--r-- | js/prefs.js | 2 |
4 files changed, 158 insertions, 158 deletions
diff --git a/classes/dlg.php b/classes/dlg.php index 0a30dd8e3..d6a3a0fbe 100644 --- a/classes/dlg.php +++ b/classes/dlg.php @@ -444,161 +444,6 @@ class Dlg extends Handler_Protected { </div>"; } - function inactiveFeeds() { - - if (DB_TYPE == "pgsql") { - $interval_qpart = "NOW() - INTERVAL '3 months'"; - } else { - $interval_qpart = "DATE_SUB(NOW(), INTERVAL 3 MONTH)"; - } - - $result = db_query($this->link, "SELECT ttrss_feeds.title, ttrss_feeds.site_url, - ttrss_feeds.feed_url, ttrss_feeds.id, MAX(updated) AS last_article - FROM ttrss_feeds, ttrss_entries, ttrss_user_entries WHERE - (SELECT MAX(updated) FROM ttrss_entries, ttrss_user_entries WHERE - ttrss_entries.id = ref_id AND - ttrss_user_entries.feed_id = ttrss_feeds.id) < $interval_qpart - AND ttrss_feeds.owner_uid = ".$_SESSION["uid"]." AND - ttrss_user_entries.feed_id = ttrss_feeds.id AND - ttrss_entries.id = ref_id - GROUP BY ttrss_feeds.title, ttrss_feeds.id, ttrss_feeds.site_url, ttrss_feeds.feed_url - ORDER BY last_article"); - - print "<div class=\"dialogNotice\">" . __("These feeds have not been updated with new content for 3 months (oldest first):") . "</div>"; - - print "<div dojoType=\"dijit.Toolbar\">"; - print "<div dojoType=\"dijit.form.DropDownButton\">". - "<span>" . __('Select')."</span>"; - print "<div dojoType=\"dijit.Menu\" style=\"display: none;\">"; - print "<div onclick=\"selectTableRows('prefInactiveFeedList', 'all')\" - dojoType=\"dijit.MenuItem\">".__('All')."</div>"; - print "<div onclick=\"selectTableRows('prefInactiveFeedList', 'none')\" - dojoType=\"dijit.MenuItem\">".__('None')."</div>"; - print "</div></div>"; - print "</div>"; #toolbar - - print "<div class=\"inactiveFeedHolder\">"; - - print "<table width=\"100%\" cellspacing=\"0\" id=\"prefInactiveFeedList\">"; - - $lnum = 1; - - while ($line = db_fetch_assoc($result)) { - - $class = ($lnum % 2) ? "even" : "odd"; - $feed_id = $line["id"]; - $this_row_id = "id=\"FUPDD-$feed_id\""; - - # class needed for selectTableRows() - print "<tr class=\"placeholder\" $this_row_id>"; - - $edit_title = htmlspecialchars($line["title"]); - - # id needed for selectTableRows() - print "<td width='5%' align='center'><input - onclick='toggleSelectRow2(this);' dojoType=\"dijit.form.CheckBox\" - type=\"checkbox\" id=\"FUPDC-$feed_id\"></td>"; - print "<td>"; - - print "<a class=\"visibleLink\" href=\"#\" ". - "title=\"".__("Click to edit feed")."\" ". - "onclick=\"editFeed(".$line["id"].")\">". - htmlspecialchars($line["title"])."</a>"; - - print "</td><td class=\"insensitive\" align='right'>"; - print make_local_datetime($this->link, $line['last_article'], false); - print "</td>"; - print "</tr>"; - - ++$lnum; - } - - print "</table>"; - print "</div>"; - - print "<div class='dlgButtons'>"; - print "<div style='float : left'>"; - print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('inactiveFeedsDlg').removeSelected()\">" - .__('Unsubscribe from selected feeds')."</button> "; - print "</div>"; - - print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('inactiveFeedsDlg').hide()\">". - __('Close this window')."</button>"; - - print "</div>"; - - } - - function feedsWithErrors() { - print "<div class=\"dialogNotice\">" . __("These feeds have not been updated because of errors:") . "</div>"; - - $result = db_query($this->link, "SELECT id,title,feed_url,last_error,site_url - FROM ttrss_feeds WHERE last_error != '' AND owner_uid = ".$_SESSION["uid"]); - - print "<div dojoType=\"dijit.Toolbar\">"; - print "<div dojoType=\"dijit.form.DropDownButton\">". - "<span>" . __('Select')."</span>"; - print "<div dojoType=\"dijit.Menu\" style=\"display: none;\">"; - print "<div onclick=\"selectTableRows('prefErrorFeedList', 'all')\" - dojoType=\"dijit.MenuItem\">".__('All')."</div>"; - print "<div onclick=\"selectTableRows('prefErrorFeedList', 'none')\" - dojoType=\"dijit.MenuItem\">".__('None')."</div>"; - print "</div></div>"; - print "</div>"; #toolbar - - print "<div class=\"inactiveFeedHolder\">"; - - print "<table width=\"100%\" cellspacing=\"0\" id=\"prefErrorFeedList\">"; - - $lnum = 1; - - while ($line = db_fetch_assoc($result)) { - - $class = ($lnum % 2) ? "even" : "odd"; - $feed_id = $line["id"]; - $this_row_id = "id=\"FUPDD-$feed_id\""; - - # class needed for selectTableRows() - print "<tr class=\"placeholder\" $this_row_id>"; - - $edit_title = htmlspecialchars($line["title"]); - - # id needed for selectTableRows() - print "<td width='5%' align='center'><input - onclick='toggleSelectRow2(this);' dojoType=\"dijit.form.CheckBox\" - type=\"checkbox\" id=\"FUPDC-$feed_id\"></td>"; - print "<td>"; - - print "<a class=\"visibleLink\" href=\"#\" ". - "title=\"".__("Click to edit feed")."\" ". - "onclick=\"editFeed(".$line["id"].")\">". - htmlspecialchars($line["title"])."</a>: "; - - print "<span class=\"insensitive\">"; - print htmlspecialchars($line["last_error"]); - print "</span>"; - - print "</td>"; - print "</tr>"; - - ++$lnum; - } - - print "</table>"; - print "</div>"; - - print "<div class='dlgButtons'>"; - print "<div style='float : left'>"; - print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('errorFeedsDlg').removeSelected()\">" - .__('Unsubscribe from selected feeds')."</button> "; - print "</div>"; - - print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('errorFeedsDlg').hide()\">". - __('Close this window')."</button>"; - - print "</div>"; - } - function editArticleTags() { print __("Tags for this article (separated by commas):")."<br>"; diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php index 9dc2f7e6a..3a7da72d3 100644 --- a/classes/pref/feeds.php +++ b/classes/pref/feeds.php @@ -3,7 +3,7 @@ class Pref_Feeds extends Handler_Protected { function csrf_ignore($method) { $csrf_ignored = array("index", "getfeedtree", "add", "editcats", "editfeed", - "savefeedorder", "uploadicon"); + "savefeedorder", "uploadicon", "feedswitherrors", "inactivefeeds"); return array_search($method, $csrf_ignored) !== false; } @@ -1547,5 +1547,160 @@ class Pref_Feeds extends Handler_Protected { return $obj; } + function inactiveFeeds() { + + if (DB_TYPE == "pgsql") { + $interval_qpart = "NOW() - INTERVAL '3 months'"; + } else { + $interval_qpart = "DATE_SUB(NOW(), INTERVAL 3 MONTH)"; + } + + $result = db_query($this->link, "SELECT ttrss_feeds.title, ttrss_feeds.site_url, + ttrss_feeds.feed_url, ttrss_feeds.id, MAX(updated) AS last_article + FROM ttrss_feeds, ttrss_entries, ttrss_user_entries WHERE + (SELECT MAX(updated) FROM ttrss_entries, ttrss_user_entries WHERE + ttrss_entries.id = ref_id AND + ttrss_user_entries.feed_id = ttrss_feeds.id) < $interval_qpart + AND ttrss_feeds.owner_uid = ".$_SESSION["uid"]." AND + ttrss_user_entries.feed_id = ttrss_feeds.id AND + ttrss_entries.id = ref_id + GROUP BY ttrss_feeds.title, ttrss_feeds.id, ttrss_feeds.site_url, ttrss_feeds.feed_url + ORDER BY last_article"); + + print "<div class=\"dialogNotice\">" . __("These feeds have not been updated with new content for 3 months (oldest first):") . "</div>"; + + print "<div dojoType=\"dijit.Toolbar\">"; + print "<div dojoType=\"dijit.form.DropDownButton\">". + "<span>" . __('Select')."</span>"; + print "<div dojoType=\"dijit.Menu\" style=\"display: none;\">"; + print "<div onclick=\"selectTableRows('prefInactiveFeedList', 'all')\" + dojoType=\"dijit.MenuItem\">".__('All')."</div>"; + print "<div onclick=\"selectTableRows('prefInactiveFeedList', 'none')\" + dojoType=\"dijit.MenuItem\">".__('None')."</div>"; + print "</div></div>"; + print "</div>"; #toolbar + + print "<div class=\"inactiveFeedHolder\">"; + + print "<table width=\"100%\" cellspacing=\"0\" id=\"prefInactiveFeedList\">"; + + $lnum = 1; + + while ($line = db_fetch_assoc($result)) { + + $class = ($lnum % 2) ? "even" : "odd"; + $feed_id = $line["id"]; + $this_row_id = "id=\"FUPDD-$feed_id\""; + + # class needed for selectTableRows() + print "<tr class=\"placeholder\" $this_row_id>"; + + $edit_title = htmlspecialchars($line["title"]); + + # id needed for selectTableRows() + print "<td width='5%' align='center'><input + onclick='toggleSelectRow2(this);' dojoType=\"dijit.form.CheckBox\" + type=\"checkbox\" id=\"FUPDC-$feed_id\"></td>"; + print "<td>"; + + print "<a class=\"visibleLink\" href=\"#\" ". + "title=\"".__("Click to edit feed")."\" ". + "onclick=\"editFeed(".$line["id"].")\">". + htmlspecialchars($line["title"])."</a>"; + + print "</td><td class=\"insensitive\" align='right'>"; + print make_local_datetime($this->link, $line['last_article'], false); + print "</td>"; + print "</tr>"; + + ++$lnum; + } + + print "</table>"; + print "</div>"; + + print "<div class='dlgButtons'>"; + print "<div style='float : left'>"; + print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('inactiveFeedsDlg').removeSelected()\">" + .__('Unsubscribe from selected feeds')."</button> "; + print "</div>"; + + print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('inactiveFeedsDlg').hide()\">". + __('Close this window')."</button>"; + + print "</div>"; + + } + + function feedsWithErrors() { + print "<div class=\"dialogNotice\">" . __("These feeds have not been updated because of errors:") . "</div>"; + + $result = db_query($this->link, "SELECT id,title,feed_url,last_error,site_url + FROM ttrss_feeds WHERE last_error != '' AND owner_uid = ".$_SESSION["uid"]); + + print "<div dojoType=\"dijit.Toolbar\">"; + print "<div dojoType=\"dijit.form.DropDownButton\">". + "<span>" . __('Select')."</span>"; + print "<div dojoType=\"dijit.Menu\" style=\"display: none;\">"; + print "<div onclick=\"selectTableRows('prefErrorFeedList', 'all')\" + dojoType=\"dijit.MenuItem\">".__('All')."</div>"; + print "<div onclick=\"selectTableRows('prefErrorFeedList', 'none')\" + dojoType=\"dijit.MenuItem\">".__('None')."</div>"; + print "</div></div>"; + print "</div>"; #toolbar + + print "<div class=\"inactiveFeedHolder\">"; + + print "<table width=\"100%\" cellspacing=\"0\" id=\"prefErrorFeedList\">"; + + $lnum = 1; + + while ($line = db_fetch_assoc($result)) { + + $class = ($lnum % 2) ? "even" : "odd"; + $feed_id = $line["id"]; + $this_row_id = "id=\"FERDD-$feed_id\""; + + # class needed for selectTableRows() + print "<tr class=\"placeholder\" $this_row_id>"; + + $edit_title = htmlspecialchars($line["title"]); + + # id needed for selectTableRows() + print "<td width='5%' align='center'><input + onclick='toggleSelectRow2(this);' dojoType=\"dijit.form.CheckBox\" + type=\"checkbox\" id=\"FERDC-$feed_id\"></td>"; + print "<td>"; + + print "<a class=\"visibleLink\" href=\"#\" ". + "title=\"".__("Click to edit feed")."\" ". + "onclick=\"editFeed(".$line["id"].")\">". + htmlspecialchars($line["title"])."</a>: "; + + print "<span class=\"insensitive\">"; + print htmlspecialchars($line["last_error"]); + print "</span>"; + + print "</td>"; + print "</tr>"; + + ++$lnum; + } + + print "</table>"; + print "</div>"; + + print "<div class='dlgButtons'>"; + print "<div style='float : left'>"; + print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('errorFeedsDlg').removeSelected()\">" + .__('Unsubscribe from selected feeds')."</button> "; + print "</div>"; + + print "<button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('errorFeedsDlg').hide()\">". + __('Close this window')."</button>"; + + print "</div>"; + } + } ?> diff --git a/js/functions.js b/js/functions.js index 02aeb454f..97df318e5 100644 --- a/js/functions.js +++ b/js/functions.js @@ -1751,7 +1751,7 @@ function feedBrowser() { function showFeedsWithErrors() { try { - var query = "backend.php?op=dlg&method=feedsWithErrors"; + var query = "backend.php?op=pref-feeds&method=feedsWithErrors"; if (dijit.byId("errorFeedsDlg")) dijit.byId("errorFeedsDlg").destroyRecursive(); diff --git a/js/prefs.js b/js/prefs.js index 91d1e2783..ded6c3459 100644 --- a/js/prefs.js +++ b/js/prefs.js @@ -1296,7 +1296,7 @@ function createCategory() { function showInactiveFeeds() { try { - var query = "backend.php?op=dlg&method=inactiveFeeds"; + var query = "backend.php?op=pref-feeds&method=inactiveFeeds"; if (dijit.byId("inactiveFeedsDlg")) dijit.byId("inactiveFeedsDlg").destroyRecursive(); |