]> git.wh0rd.org - tt-rss.git/blobdiff - offline.js
automatically extract i18n data from .js files
[tt-rss.git] / offline.js
index d9b32cf28b1701c51826ac73b032c40def1bcb4a..010bbe05e2b94e00425face108b46890e497bb79 100644 (file)
@@ -146,16 +146,29 @@ function viewfeed_offline(feed_id, subop, is_cat, subop_param, skip_history, off
                                var sel_none_link;
                                var sel_inv_link;
 
+                               var catchup_feed_link = "javascript:catchupCurrentFeed()";
+                               var catchup_sel_link = "javascript:catchupSelection()";
+
+                               var tog_unread_link;
+                               var tog_marked_link;
+
                                if ($("content-frame")) {
                                        sel_all_link = "javascript:selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', true, '', true)";
                                        sel_unread_link = "javascript:selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', true, 'Unread', true)";
                                        sel_none_link = "javascript:selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', false)";
                                        sel_inv_link = "javascript:invertHeadlineSelection()";
+
+                                       tog_unread_link = "javascript:selectionToggleUnread()";
+                                       tog_marked_link = "javascript:selectionToggleMarked()";
+
                                } else {
                                        sel_all_link = "javascript:cdmSelectArticles('all')";
                                        sel_unread_link = "javascript:cdmSelectArticles('unread')";
                                        sel_none_link = "javascript:cdmSelectArticles('none')";
                                        sel_inv_link = "javascript:invertHeadlineSelection()";
+
+                                       tog_unread_link = "javascript:selectionToggleUnread(true)";
+                                       tog_marked_link = "javascript:selectionToggleMarked(true)";
                                }
 
                                tmp += __('Select:')+
@@ -166,6 +179,25 @@ function viewfeed_offline(feed_id, subop, is_cat, subop_param, skip_history, off
        
                                tmp += "  ";
        
+                               tmp += "<span onmouseover=\"enable_selection(false)\" "+
+                                       "onmouseout=\"enable_selection(true) \"" +
+                                       "onclick=\"toggleHeadlineActions()\" id=\"headlineActionsDrop\">" +
+                                       __("Actions...") + "&nbsp;&nbsp;<img src=\"images/down_arrow.png\">" +
+                               "</span>";
+
+                               tmp += "<ul id=\"headlineActionsBody\" style=\"display : none\">";
+
+                               tmp += "<li class=\"insensitive\">"+__('Selection toggle:')+"</li>"+
+                               "<li onclick=\""+tog_unread_link+"\">&nbsp;&nbsp;"+__('Unread')+"</li>"+
+                               "<li onclick=\""+tog_marked_link+"\">&nbsp;&nbsp;"+__('Starred')+"</li>"+
+                               "<li class=\"insensitive\">"+__('Mark as read:')+"</li>"+
+                               "<li onclick=\""+catchup_sel_link+"\">&nbsp;&nbsp;"+__('Selection')+"</li>";
+
+                               tmp += "<li onclick=\""+catchup_feed_link+"\">&nbsp;&nbsp;"+__('Entire feed')+
+                                       "</li>";
+
+                               tmp += "</ul>";
+
                                tmp += "</div>";
        
                                tmp += "<div id=\"headlinesInnerContainer\" onscroll=\"headlines_scroll_handler()\">";
@@ -626,8 +658,17 @@ function offline_download_parse(stage, transport) {
                        if (sync_ok.length > 0) {
                                for (var i = 0; i < sync_ok.length; i++) {
                                        var id = sync_ok[i].getAttribute("id");
+                                       var unread = sync_ok[i].getAttribute("unread");
+                                       var marked = sync_ok[i].getAttribute("marked");
+
                                        if (id) {
                                                debug("synced offline info for id " + id);
+
+                                               if (unread != undefined && marked != undefined) {
+                                                       db.execute("UPDATE articles SET "+
+                                                               "unread = ?, marked = ? WHERE id = ?", [unread, marked, id]);
+
+                                               }
                                                db.execute("UPDATE articles SET modified = '' WHERE id = ?", [id]);
                                        }
                                }
@@ -813,8 +854,6 @@ function update_offline_data(stage) {
 
                if (!db || offline_mode || getInitParam("offline_enabled") != "1") return;
 
-//             notify_progress("Updating offline data... (" + stage +")", true);
-
                var query = "backend.php?op=rpc&subop=download";
                
                var rs = db.execute("SELECT MAX(id), MIN(id) FROM articles");
@@ -826,7 +865,7 @@ function update_offline_data(stage) {
                        query = query + "&cidt=" + offline_dl_max_id;
                        query = query + "&cidb=" + offline_dl_min_id;
 
-                       stage = 1;
+                       if (stage > 0) stage = 1;
                }
 
                rs.close();
@@ -1586,10 +1625,12 @@ function toggleOfflineModeInfo() {
        }
 }
 
-function offlineDownloadStart() {
+function offlineDownloadStart(stage) {
        try {
+               if (!stage) stage = 0;
+
                if (db && !sync_in_progress && getInitParam("offline_enabled") == "1") {
-                       window.setTimeout("update_offline_data(0)", 100);
+                       window.setTimeout("update_offline_data("+stage+")", 100);
                }
        } catch (e) {
                exception_error("offlineDownloadStart", e);