summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-11-04 19:11:54 +0300
committerAndrew Dolgov <[email protected]>2010-11-04 19:11:54 +0300
commitfe1087fbb72959a2da5c71ef405e96c84c94381e (patch)
tree0baa4d5445ee65a483a796e17ee8c6db839b547c
parent85a922895f2865a658f98a7d0e795aec05da3d06 (diff)
implement a simple pseudo-dashboard feed; display feeds having update errors there instead of client-based 'no feed selected' whiteBox plug (closes #189)
-rw-r--r--backend.php9
-rw-r--r--feedlist.js1
-rw-r--r--functions.php27
-rw-r--r--tt-rss.js10
-rw-r--r--tt-rss.php4
5 files changed, 45 insertions, 6 deletions
diff --git a/backend.php b/backend.php
index 252548167..0182b2436 100644
--- a/backend.php
+++ b/backend.php
@@ -289,6 +289,15 @@
$csync = $_REQUEST["csync"];
$order_by = db_escape_string($_REQUEST["order_by"]);
+ /* Feed -5 is a special case: it is used to display auxiliary information
+ * when there's nothing to load - e.g. no stuff in fresh feed */
+
+ if ($feed == -5) {
+ generate_dashboard_feed($link);
+ print "</reply>";
+ return;
+ }
+
/* Updating a label ccache means recalculating all of the caches
* so for performance reasons we don't do that here */
diff --git a/feedlist.js b/feedlist.js
index 3d9acafd1..ddbcd6c0e 100644
--- a/feedlist.js
+++ b/feedlist.js
@@ -429,6 +429,7 @@ function feedlist_init() {
notify_silent_next();
setTimeout("viewfeed(-3)", 100);
} else {
+ setTimeout("viewfeed(-5)", 100);
remove_splash();
}
}
diff --git a/functions.php b/functions.php
index 259aaf556..c691039d8 100644
--- a/functions.php
+++ b/functions.php
@@ -6828,4 +6828,31 @@
return $headlines;
}
+ function generate_dashboard_feed($link) {
+ print "<headlines id=\"-5\" is_cat=\"\">";
+
+ print '<![CDATA[<div id="headlinesContainer">';
+
+ print "<div class='whiteBox'>".__('No feed selected.');
+
+ $result = db_query($link, "SELECT COUNT(id) AS num_errors
+ FROM ttrss_feeds WHERE last_error != '' AND owner_uid = ".$_SESSION["uid"]);
+
+ $num_errors = db_fetch_result($result, 0, "num_errors");
+
+ if ($num_errors > 0) {
+
+ print "<p><a class=\"insensitive\" href=\"#\" onclick=\"showFeedsWithErrors()\">".
+ __('Some feeds have update errors (click for details)')."</a>";
+ }
+
+ print "</div>]]>";
+ print "</headlines>";
+
+ print "<headlines-count value=\"0\"/>";
+ print "<vgroup-last-feed value=\"0\"/>";
+ print "<headlines-unread value=\"0\"/>";
+ print "<disable-cache value=\"1\"/>";
+
+ }
?>
diff --git a/tt-rss.js b/tt-rss.js
index e4469d8fe..8f5c28474 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -87,10 +87,7 @@ function toggleTags(show_all) {
function dlg_frefresh_callback(transport, deleted_feed) {
if (getActiveFeedId() == deleted_feed) {
- var h = $("headlines-frame");
- if (h) {
- h.innerHTML = "<div class='whiteBox'>" + __('No feed selected.') + "</div>";
- }
+ setTimeout("viewfeed(-5)", 100);
}
setTimeout('updateFeedList(false, false)', 50);
@@ -1327,3 +1324,8 @@ function reverseHeadlineOrder() {
exception_error("reverseHeadlineOrder", e);
}
}
+
+function showFeedsWithErrors() {
+ displayDlg('feedUpdateErrors');
+}
+
diff --git a/tt-rss.php b/tt-rss.php
index b9b6cbe00..bf6855741 100644
--- a/tt-rss.php
+++ b/tt-rss.php
@@ -242,7 +242,7 @@
<?php if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) { ?>
<div id="headlines-frame" class="headlines_normal">
- <div class="whiteBox"><?php echo __('No feed selected.') ?></div></div>
+ <div class="whiteBox"><?php echo __('Loading, please wait...') ?></div></div>
<div id="content-frame">
<div id="resize-grabber"
onmouseover="enable_resize(true)" onmouseout="enable_resize(false)"
@@ -256,7 +256,7 @@
<!-- <div class="whiteBox">&nbsp;</div> --> </div>
<?php } else { ?>
<div id="headlines-frame" class="headlines_cdm">
- <div class="whiteBox"><?php echo __('No feed selected.') ?></div></div>
+ <div class="whiteBox"><?php echo __('Loading, please wait...') ?></div></div>
<?php } ?>
<div id="footer">