From 20919a06a15e7695ec8e0de29fd097f7c892d82e Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 4 Feb 2009 10:07:15 +0300 Subject: [PATCH] move offline stuff to offline.js --- feedlist.js | 293 ---------------------------------------------------- tt-rss.js | 113 -------------------- tt-rss.php | 1 + viewfeed.js | 20 ---- 4 files changed, 1 insertion(+), 426 deletions(-) diff --git a/feedlist.js b/feedlist.js index 6ee3de1cc..9f431fe84 100644 --- a/feedlist.js +++ b/feedlist.js @@ -187,226 +187,6 @@ function viewNextFeedPage() { } } -function viewfeed_offline(feed_id, subop, is_cat, subop_param, skip_history, offset) { - try { - notify(''); - - if (!offset) offset = 0; - - loading_set_progress(100); - - clean_feed_selections(); - - setActiveFeedId(feed_id, is_cat); - - if (!is_cat) { - var feedr = document.getElementById("FEEDR-" + feed_id); - if (feedr && !feedr.className.match("Selected")) { - feedr.className = feedr.className + "Selected"; - } - } else { - var feedr = document.getElementById("FCAT-" + feed_id); - if (feedr && !feedr.className.match("Selected")) { - feedr.className = feedr.className + "Selected"; - } - } - - disableContainerChildren("headlinesToolbar", false); - Form.enable("main_toolbar_form"); - - var f = document.getElementById("headlines-frame"); - try { - if (reply.offset == 0) { - debug("resetting headlines scrollTop"); - f.scrollTop = 0; - } - } catch (e) { }; - - - var container = document.getElementById("headlines-frame"); - - var tmp = ""; - - rs = db.execute("SELECT title FROM feeds WHERE id = ?", [feed_id]); - - if (rs.isValidRow() || feed_id == -1 || feed_id == -4) { - - feed_title = rs.field(0); - - if (feed_id == -1) { - feed_title = __("Starred articles"); - } - - if (feed_id == -4) { - feed_title = __("All articles"); - } - - if (offset == 0) { - tmp += "
"; - - tmp += "
"; - tmp += "
"; - tmp += feed_title; - tmp += "
"; - - var sel_all_link = "javascript:selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', true, '', true)"; - var sel_unread_link = "javascript:selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', true, 'Unread', true)"; - var sel_none_link = "javascript:selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', false)"; - var sel_inv_link = "javascript:invertHeadlineSelection()"; - - tmp += __('Select:')+ - " "+__('All')+", "+ - ""+__('Unread')+", "+ - ""+__('Invert')+", "+ - ""+__('None')+""; - - tmp += "  "; - - tmp += "
"; - - tmp += "
"; - - tmp += ""; - - } - - var rs; - - var limit = 30; - - var toolbar_form = document.forms["main_toolbar_form"]; - - var limit = toolbar_form.limit[toolbar_form.limit.selectedIndex].value; - var view_mode = toolbar_form.view_mode[toolbar_form.view_mode.selectedIndex].value; - - var limit_qpart = ""; - var strategy_qpart = ""; - var mode_qpart = ""; - - if (limit != 0) { - limit_qpart = "LIMIT " + limit; - } - - if (view_mode == "all_articles") { - mode_qpart = "1"; - } else if (view_mode == "adaptive") { - if (get_local_feed_unread(feed_id) > 0) { - mode_qpart = "unread = 1"; - } else { - mode_qpart = "1"; - } - } else if (view_mode == "marked") { - mode_qpart = "marked = 1"; - } else if (view_mode == "unread") { - mode_qpart = "unread = 1"; - } else { - mode_qpart = "1"; - } - - if (feed_id > 0) { - strategy_qpart = "feed_id = " + feed_id; - } else if (feed_id == -1) { - strategy_qpart = "marked = 1"; - } else if (feed_id == -4) { - strategy_qpart = "1"; - } - - var query = "SELECT * FROM articles WHERE " + - strategy_qpart + - " AND " + mode_qpart + - " ORDER BY updated DESC "+ - limit_qpart; - - var rs = db.execute(query); - - var line_num = 0; - - while (rs.isValidRow()) { - - var id = rs.fieldByName("id"); - var feed_id = rs.fieldByName("feed_id"); - - var marked_pic; - - var row_class = (line_num % 2) ? "even" : "odd"; - - if (rs.fieldByName("unread") == "1") { - row_class += "Unread"; - } - - if (rs.fieldByName("marked") == "1") { - marked_pic = ""; - } else { - marked_pic = ""; - } - - var mouseover_attrs = "onmouseover='postMouseIn($id)' "+ - "onmouseout='postMouseOut($id)'"; - - tmp += ""; - - tmp += ""; - - tmp += ""; - - tmp += ""; - - tmp += ""; - - tmp += ""; - - tmp += ""; - - rs.next(); - line_num++; - } - - if (offset == 0) { - tmp += "
"+ - ""+marked_pic+""; - - tmp += ""+ - rs.fieldByName("title"); - - var content_preview = truncate_string(strip_tags(rs.fieldByName("content")), - 100); - - tmp += " - "+content_preview+""; - - tmp += ""; - - tmp += ""+ - ""+rs.fieldByName("updated").substring(0,16)+"
"; - tmp += "
"; - } - - if (offset == 0) { - container.innerHTML = tmp; - } else { - var ids = getSelectedArticleIds2(); - - //container.innerHTML = container.innerHTML + tmp; - - for (var i = 0; i < ids.length; i++) { - markHeadline(ids[i]); - } - } - } - - remove_splash(); - - - } catch (e) { - exception_error("viewfeed_offline", e); - } -} function viewfeed(feed, subop, is_cat, subop_param, skip_history, offset) { try { @@ -1013,77 +793,4 @@ function request_counters() { } } -function set_feedlist_counter(id, ctr) { - try { - - var feedctr = document.getElementById("FEEDCTR-" + id); - var feedu = document.getElementById("FEEDU-" + id); - var feedr = document.getElementById("FEEDR-" + id); - - if (feedctr && feedu && feedr) { - - var row_needs_hl = (ctr > 0 && ctr > parseInt(feedu.innerHTML)); - feedu.innerHTML = ctr; - - if (ctr > 0) { - feedctr.className = "feedCtrHasUnread"; - if (!feedr.className.match("Unread")) { - var is_selected = feedr.className.match("Selected"); - - feedr.className = feedr.className.replace("Selected", ""); - feedr.className = feedr.className.replace("Unread", ""); - - feedr.className = feedr.className + "Unread"; - - if (is_selected) { - feedr.className = feedr.className + "Selected"; - } - - } - - if (row_needs_hl) { - new Effect.Highlight(feedr, {duration: 1, startcolor: "#fff7d5", - queue: { position:'end', scope: 'EFQ-' + id, limit: 1 } } ); - } - } else { - feedctr.className = "feedCtrNoUnread"; - feedr.className = feedr.className.replace("Unread", ""); - } - } - - } catch (e) { - exception_error("set_feedlist_counter", e); - } -} - -function update_local_feedlist_counters() { - try { - if (!db) return; - - var rs = db.execute("SELECT feeds.id,COUNT(articles.id) "+ - "FROM feeds LEFT JOIN articles ON (feed_id = feeds.id) "+ - "WHERE unread = 1 OR unread IS NULL GROUP BY feeds.id "+ - "ORDER BY feeds.title"); - - while (rs.isValidRow()) { - var id = rs.field(0); - var ctr = rs.field(1); - - set_feedlist_counter(id, ctr); - - rs.next(); - } - - set_feedlist_counter(-4, get_local_feed_unread(-4)); - set_feedlist_counter(-1, get_local_feed_unread(-1)); - - hideOrShowFeeds(getInitParam("hide_read_feeds") == 1); - - global_unread = get_local_feed_unread(-4); - updateTitle(); - - } catch (e) { - exception_error("update_local_feedlist_counters", e); - } -} diff --git a/tt-rss.js b/tt-rss.js index 96f0b3472..883eb2997 100644 --- a/tt-rss.js +++ b/tt-rss.js @@ -1544,117 +1544,4 @@ function init_gears() { } } -function init_offline() { - try { - offline_mode = true; - - Element.hide("dispSwitchPrompt"); - Element.hide("feedBrowserPrompt"); - Element.hide("quickMenuChooser"); - - init_params["theme"] = ""; - - render_offline_feedlist(); - remove_splash(); - } catch (e) { - exception_error("init_offline", e); - } -} - -function offline_download_parse(stage, transport) { - try { - if (transport.responseXML) { - - if (stage == 0) { - - var feeds = transport.responseXML.getElementsByTagName("feed"); - - if (feeds.length > 0) { - db.execute("DELETE FROM feeds"); - } - - for (var i = 0; i < feeds.length; i++) { - var id = feeds[i].getAttribute("id"); - var has_icon = feeds[i].getAttribute("has_icon"); - var title = feeds[i].firstChild.nodeValue; - - db.execute("INSERT INTO feeds (id,title,has_icon)"+ - "VALUES (?,?,?)", - [id, title, has_icon]); - } - - window.setTimeout("update_offline_data("+(stage+1)+")", 60*1000); - } else { - - var articles = transport.responseXML.getElementsByTagName("article"); - - var articles_found = 0; - - for (var i = 0; i < articles.length; i++) { - var a = eval("("+articles[i].firstChild.nodeValue+")"); - articles_found++; - if (a) { - - var date = new Date(); - var ts = Math.round(date.getTime() / 1000); - - db.execute("DELETE FROM articles WHERE id = ?", [a.id]); - db.execute("INSERT INTO articles "+ - "(id, feed_id, title, link, guid, updated, content, "+ - "unread, marked, tags, added) "+ - "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", - [a.id, a.feed_id, a.title, a.link, a.guid, a.updated, - a.content, a.unread, a.marked, a.tags, ts]); - - } - } - - if (articles_found > 0) { - window.setTimeout("update_offline_data("+(stage+1)+")", 60*1000); - } else { - window.setTimeout("update_offline_data(0)", 1800*1000); - - var date = new Date(); - var ts = Math.round(date.getTime() / 1000); - - db.execute("DELETE FROM articles WHERE added < ? - 2592000", [ts]); - - } - } - - } - } catch (e) { - exception_error("offline_download_parse", e); - } -} - -function update_offline_data(stage) { - try { - - if (!stage) stage = 0; - debug("update_offline_data: stage " + stage); - -// notify_progress("Loading, please wait... (" + stage +")", true); - - var query = "backend.php?op=rpc&subop=download&stage=" + stage; - - var rs = db.execute("SELECT MAX(id), MIN(id) FROM articles"); - if (rs.isValidRow() && rs.field(0)) { - var offline_dl_max_id = rs.field(0); - var offline_dl_min_id = rs.field(1); - - query = query + "&cidt=" + offline_dl_max_id; - query = query + "&cidb=" + offline_dl_min_id; - } - - new Ajax.Request(query, { - onComplete: function(transport) { - offline_download_parse(stage, transport); - debug("update_offline_data: done " + stage); - } }); - - } catch (e) { - exception_error("initiate_offline_download", e); - } -} diff --git a/tt-rss.php b/tt-rss.php index bb5ecc287..ae3567d7e 100644 --- a/tt-rss.php +++ b/tt-rss.php @@ -48,6 +48,7 @@ + diff --git a/viewfeed.js b/viewfeed.js index 5285e4d16..7aaa7f77b 100644 --- a/viewfeed.js +++ b/viewfeed.js @@ -385,26 +385,6 @@ function article_callback2(transport, id, feed_id) { } } -function view_offline(id, feed_id) { - try { - - enableHotkeys(); - showArticleInHeadlines(id); - - if (db) { - db.execute("UPDATE articles SET unread = 0 WHERE id = ?", [id]); - } - - render_article("FIXME"); - update_local_feedlist_counters(); - - return false; - - } catch (e) { - exception_error("view_offline", e); - } -} - function view(id, feed_id, skip_history) { try {