]> git.wh0rd.org Git - tt-rss.git/commitdiff
cute icon for updated posts
authorAndrew Dolgov <fox@madoka.spb.ru>
Mon, 22 Aug 2005 09:04:38 +0000 (10:04 +0100)
committerAndrew Dolgov <fox@madoka.spb.ru>
Mon, 22 Aug 2005 09:04:38 +0000 (10:04 +0100)
backend.php
functions.php
tt-rss.css
tt-rss.js
ttrss_schema.sql
updated.png [new file with mode: 0644]

index 5fe962c353a11aa73023c1d96d22e1b8df1e2d48..d7e2b157f28f616ed679a73c5a8b7c11803fd0ea 100644 (file)
@@ -70,7 +70,7 @@
 
                $id = $_GET["id"];
 
-               $result = pg_query("UPDATE ttrss_entries SET unread = false WHERE id = '$id'");
+               $result = pg_query("UPDATE ttrss_entries SET unread = false,last_read = NOW() WHERE id = '$id'");
 
                $result = pg_query("SELECT title,link,content FROM ttrss_entries
                        WHERE   id = '$id'");
 
                                if ($ext == "MarkAllRead")  {
 
-                                       pg_query("UPDATE ttrss_entries SET unread = false 
+                                       pg_query("UPDATE ttrss_entries SET unread = false,last_read = NOW() 
                                                WHERE feed_id = '$feed'");
                                }
 
 
                print "<tr><td class=\"search\" colspan=\"2\">
                        Search: <input onchange=\"javascript:search($feed,this);\"></td></tr>"; 
-               print "<tr><td colspan=\"2\" class=\"title\">" . $line["title"] . "</td></tr>"; 
+               print "<tr><td colspan=\"3\" class=\"title\">" . $line["title"] . "</td></tr>"; 
 
                if ($ext == "SEARCH") {
                        $search = $_GET["search"];
                                OR content LIKE '%$search%') AND";
                }
 
-               $result = pg_query("SELECT id,title,updated,unread,feed_id FROM
-                       ttrss_entries WHERE
+               $result = pg_query("SELECT 
+                               id,title,updated,unread,feed_id,
+                               EXTRACT(EPOCH FROM last_read) AS last_read_ts,
+                               EXTRACT(EPOCH FROM updated) AS updated_ts
+                       FROM
+                               ttrss_entries 
+                       WHERE
                        $search_query_part
                        feed_id = '$feed' ORDER BY updated DESC LIMIT ".HEADLINES_PER_PAGE." OFFSET $skip");
 
 
                        $class = ($lnum % 2) ? "even" : "odd";
 
+                       if ($line["last_read_ts"] < $line["updated_ts"] && $line["unread"] == "f") {
+                               $update_pic = "<img src=\"updated.png\" alt=\"Updated\">";
+                       } else {
+                               $update_pic = "&nbsp;";
+                       }
+
                        if ($line["unread"] == "t") 
                                $class .= "Unread";
 
-                       $content_link = "<a href=\"javascript:view(".$line["id"].",".$line["feed_id"].");\">".$line["title"]."</a>";
-                       
-                       print "<tr class='$class' id='RROW-".$line["id"]."'>";
+                       $id = $line["id"];
+                       $feed_id = $line["feed_id"];
+
+                       $content_link = "<a href=\"javascript:view($id,$feed_id);\">" .
+                               $line["title"] . "</a>";
+                               
+                       print "<tr class='$class' id='RROW-$id'>";
+
+                       print "<td id='FUPDPIC-$id' valign='center' class='headlineUpdateMark'>$update_pic</td>";
+
                        print "<td class='headlineUpdated'>".$line["updated"]."</td>";
                        print "<td class='headlineTitle'>$content_link</td>";
 
 
                }
 
-               print "<tr><td colspan=\"2\" class=\"headlineToolbar\">";
+               print "<tr><td colspan=\"3\" class=\"headlineToolbar\">";
 
                $next_skip = $skip + HEADLINES_PER_PAGE;
                $prev_skip = $skip - HEADLINES_PER_PAGE;
                print "<a class=\"button\" 
                        href=\"javascript:viewfeed($feed, $next_skip);\">Next Page</a>";
                print "&nbsp;";
-//             print "<a class=\"button\" 
-//                     href=\"javascript:viewfeed($feed, $skip, '');\">Refresh</a>";
-//             print "&nbsp;";
+               print "<a class=\"button\" 
+                       href=\"javascript:viewfeed($feed, $skip, '');\">Refresh Page</a>";
+               print "&nbsp;";
                print "<a class=\"button\" 
                        href=\"javascript:viewfeed($feed, 0, 'ForceUpdate');\">Update</a>";
                print "&nbsp;&nbsp;Mark as read: ";
                if ($subop == "read") {
                        $ids = split(",", $_GET["ids"]);
                        foreach ($ids as $id) {
-                               pg_query("UPDATE ttrss_entries SET unread = false WHERE feed_id = '$id'");
+                               pg_query("UPDATE ttrss_entries 
+                                       SET unread = false,last_read = NOW() WHERE feed_id = '$id'");
                        }
 
                        print "Marked selected feeds as unread.";
index 0d28016fa38186a4aa72c97e9cb59a0091661d77..d89e6bc8397928b4c94ceb683812f3d6dc833430 100644 (file)
                                $rss_2_date = $item['pubdate'];
                                $rss_1_date = $item['dc']['date'];
                                $atom_date = $item['issued'];
-                               
+                       
                                if ($atom_date != "") $entry_timestamp = parse_w3cdtf($atom_date);
                                if ($rss_1_date != "") $entry_timestamp = parse_w3cdtf($rss_1_date);
                                if ($rss_2_date != "") $entry_timestamp = strtotime($rss_2_date);
-                               if ($entry_timestamp == "") $entry_timestamp = time();
+                               if ($entry_timestamp == "") $entry_timestamp = 0;
+
+                               if (!$entry_timestamp) continue;
 
                                $entry_title = $item["title"];
                                $entry_link = $item["link"];
@@ -75,7 +77,8 @@
        
                                $result = pg_query($link, "
                                        SELECT 
-                                               id,unread,md5_hash
+                                               id,unread,md5_hash,
+                                               EXTRACT(EPOCH FROM updated) as updated_timestamp
                                        FROM
                                                ttrss_entries 
                                        WHERE
                                } else {
        
                                        $entry_id = pg_fetch_result($result, 0, "id");
-                                       $entry_timestamp = strftime("%Y/%m/%d %H:%M:%S", $entry_timestamp);
+                                       $updated_timestamp = pg_fetch_result($result, 0, "updated_timestamp");
+                                       $entry_timestamp_fmt = strftime("%Y/%m/%d %H:%M:%S", $entry_timestamp);
        
                                        $unread = pg_fetch_result($result, 0, "unread");
                                        $md5_hash = pg_fetch_result($result, 0, "md5_hash");
                                        if ($md5_hash != $content_md5 && CONTENT_CHECK_MD5) 
                                                $unread = "true";
                                
-                                       if ($unread || !CONTENT_CHECK_MD5) {
-                                               $updated_query_part = "updated = '$entry_timestamp',";
-                                       }
-                               
+//                                     if ($unread || !CONTENT_CHECK_MD5) {
+//                                             $updated_query_part = "updated = '$entry_timestamp',";
+//                                     }
+
+//                                     if ($updated_timestamp > $entry_timestamp) {
+//                                             $unread = "true";
+//                                             print "$updated_timestamp : $entry_timestamp<br>";
+//                                     }                       
+
                                        $query = "UPDATE ttrss_entries 
                                                SET 
                                                        title ='$entry_title', 
                                                        link = '$entry_link', 
-                                                       $updated_query_part
+                                                       updated = '$entry_timestamp_fmt',
                                                        content = '$entry_content',
                                                        md5_hash = '$content_md5',
                                                        unread = '$unread'
index 63a2fc26c84e850fffbb4959e5ca27b58ba4585c..a225056bd55980971190c5d8f84a086f007882db 100644 (file)
@@ -263,3 +263,8 @@ a.buttonWarn:hover {
        text-decoration : none;
        color : black;
 }
+
+td.headlineUpdateMark {
+       width : 25px;
+       text-align : center;
+}
index 285d667e253fb2ab8f375ccd5448d7d98b61d88d..24c5a88c61f51c618ed064bfb154af5648b4a7b1 100644 (file)
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -121,12 +121,18 @@ function view(id,feed_id) {
                        var feedr = document.getElementById("FEEDR-" + feed_id);
                        feedr.className = feedr.className.replace("Unread", "");
                }
-               
+       
                total_unread--;
 
-               update_title();
+               update_title(); 
        }       
 
+       var upd_img_pic = document.getElementById("FUPDPIC-" + id);
+
+       if (upd_img_pic) {
+               upd_img_pic.innerHTML = "";
+       } 
+
        document.getElementById('content').innerHTML='Loading, please wait...';         
 
        xmlhttp.open("GET", "backend.php?op=view&id=" + param_escape(id), true);
index d9cc38b9e533bd790929e7b7e16b56ade3f6271f..20237ce7efb94ee856e9bb813e4cb13194e5ec25 100644 (file)
@@ -33,5 +33,6 @@ create table ttrss_entries (id serial not null primary key,
        link varchar(300) not null unique, 
        md5_hash varchar(200) not null unique,
        content text not null,
+       last_read timestamp,
        unread boolean default true);
        
diff --git a/updated.png b/updated.png
new file mode 100644 (file)
index 0000000..1cff4c6
Binary files /dev/null and b/updated.png differ