diff --git a/backend.php b/backend.php index 8652a1c4..974eb0a7 100644 --- a/backend.php +++ b/backend.php @@ -55,6 +55,8 @@ $fetch = $_GET["fetch"]; + setcookie("ttrss_icons_url", ICONS_URL); + function getAllCounters($link) { getLabelCounters($link); getFeedCounters($link); @@ -264,6 +266,8 @@ $count = $line["count"]; $last_error = $line["last_error"]; + $has_img = is_file(ICONS_DIR . "/$id.ico"); + if (!$smart_mode || $old_counters[$id] != $count) { $old_counters[$id] = $count; $fctrs_modified = true; @@ -273,8 +277,14 @@ } else { $error_part = ""; } - - print ""; + + if ($has_img) { + $has_img_part = "hi=\"$has_img\""; + } else { + $has_img_part = ""; + } + + print ""; } } @@ -407,7 +417,7 @@ AND owner_uid = '$owner_uid') as unread, (SELECT title FROM ttrss_feed_categories WHERE id = cat_id) AS category, - cat_id, + cat_id,last_error, (SELECT collapsed FROM ttrss_feed_categories WHERE id = cat_id) AS collapsed FROM ttrss_feeds WHERE owner_uid = '$owner_uid' ORDER BY $order_by_qpart"); @@ -441,8 +451,12 @@ } // $class = ($lnum % 2) ? "even" : "odd"; - - $class = "feed"; + + if ($line["last_error"]) { + $class = "error"; + } else { + $class = "feed"; + } if ($unread > 0) $class .= "Unread"; diff --git a/functions.js b/functions.js index 53cee530..9193d9b7 100644 --- a/functions.js +++ b/functions.js @@ -361,6 +361,8 @@ function parse_counters(reply, f_document) { var id = reply.childNodes[l].getAttribute("id"); var t = reply.childNodes[l].getAttribute("type"); var ctr = reply.childNodes[l].getAttribute("counter"); + var error = reply.childNodes[l].getAttribute("error"); + var has_img = reply.childNodes[l].getAttribute("hi"); if (id == "global-unread") { parent.global_unread = ctr; @@ -379,10 +381,25 @@ function parse_counters(reply, f_document) { var feedctr = f_document.getElementById("FEEDCTR-" + id); var feedu = f_document.getElementById("FEEDU-" + id); var feedr = f_document.getElementById("FEEDR-" + id); - + var feed_img = f_document.getElementById("FIMG-" + id); + if (feedctr && feedu && feedr) { feedu.innerHTML = ctr; + + if (has_img && feed_img) { + if (error) { +// feed_img.src = "images/update_error.png"; + feedr.className = feedr.className.replace("feed", "error"); + } else if (id > 0) { + feedr.className = feedr.className.replace("error", "feed"); +// if (has_img) { +// feed_img.src = getCookie("ttrss_icons_url") + "/" + id + ".ico"; +// } else { +// feed_img.src = "images/blank_icon.gif"; +// } + } + } if (ctr > 0) { feedctr.className = "odd"; diff --git a/functions.php b/functions.php index 5a4683bf..78238a06 100644 --- a/functions.php +++ b/functions.php @@ -596,9 +596,9 @@ function printFeedEntry($feed_id, $class, $feed_title, $unread, $icon_file, $link) { if (file_exists($icon_file) && filesize($icon_file) > 0) { - $feed_icon = ""; + $feed_icon = ""; } else { - $feed_icon = ""; + $feed_icon = ""; } $feed = "$feed_title"; diff --git a/tt-rss.css b/tt-rss.css index 577acbe7..55795e81 100644 --- a/tt-rss.css +++ b/tt-rss.css @@ -217,12 +217,18 @@ ul.feedlist } */ ul.feedlist li.feedUnread, +ul.feedlist li.errorUnread, ul.feedlist li.labelUnread, ul.feedlist li.virtUnread, ul.feedlist li.tagUnread { font-weight : bold; } +ul.feedlist li.errorSelected a, +ul.feedlist li.errorUnread a, +ul.feedlist li.errorUnreadSelected a { + color : #f04040; +} ul.feedlist li.feedSelected a, ul.feedlist li.labelSelected a, @@ -238,7 +244,8 @@ ul.feedlist li.tagUnreadSelected a { color : #5050aa; } -ul.feedlist li.feedUnreadSelected , +ul.feedlist li.feedUnreadSelected, +ul.feedlist li.errorUnreadSelected, ul.feedlist li.labelUnreadSelected, ul.feedlist li.virtUnreadSelected, ul.feedlist li.tagUnreadSelected {