diff --git a/classes/feeds.php b/classes/feeds.php index 0b46155cf..2826f175e 100644 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -835,8 +835,20 @@ class Feeds extends Handler_Protected { ccache_update($this->link, $feed, $_SESSION["uid"], $cat_view); } +/* if (is_numeric($feed) && $feed > 0) { + $view_settings = db_escape_string($this->link, json_encode(array( + "view_mode" => $view_mode, "order_by" => $order_by))); + + $table = $cat_view ? "ttrss_feed_categories" : "ttrss_feeds"; + + db_query($this->link, "UPDATE $table SET view_settings = '$view_settings' + WHERE id = '$feed' AND owner_uid = " . $_SESSION["uid"]); + } else { + set_pref($this->link, "_DEFAULT_VIEW_MODE", $view_mode); + set_pref($this->link, "_DEFAULT_VIEW_ORDER_BY", $order_by); + } */ + set_pref($this->link, "_DEFAULT_VIEW_MODE", $view_mode); - set_pref($this->link, "_DEFAULT_VIEW_LIMIT", $limit); set_pref($this->link, "_DEFAULT_VIEW_ORDER_BY", $order_by); /* bump login timestamp if needed */ diff --git a/include/functions.php b/include/functions.php index 3bb158c05..1c1b73a37 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1138,7 +1138,7 @@ array_push($ret_arr, $cv); - $result = db_query($link, "SELECT id AS cat_id, value AS unread, + $result = db_query($link, "SELECT id AS cat_id, view_settings, value AS unread, (SELECT COUNT(id) FROM ttrss_feed_categories AS c2 WHERE c2.parent_cat = ttrss_feed_categories.id) AS num_children FROM ttrss_feed_categories, ttrss_cat_counters_cache @@ -1149,6 +1149,13 @@ while ($line = db_fetch_assoc($result)) { $line["cat_id"] = (int) $line["cat_id"]; + /* if ($line["view_settings"]) + $view_settings = @json_decode($line["view_settings"]); + else + $view_settings = null; */ + + $view_settings = null; + if ($line["num_children"] > 0) { $child_counter = getCategoryChildrenUnread($link, $line["cat_id"], $_SESSION["uid"]); } else { @@ -1156,6 +1163,7 @@ } $cv = array("id" => $line["cat_id"], "kind" => "cat", + "vs" => $view_settings, "counter" => $line["unread"] + $child_counter); array_push($ret_arr, $cv); @@ -1465,7 +1473,7 @@ $ret_arr = array(); - $query = "SELECT ttrss_feeds.id, + $query = "SELECT ttrss_feeds.id, view_settings, ttrss_feeds.title, ".SUBSTRING_FOR_DATE."(ttrss_feeds.last_updated,1,19) AS last_updated, last_error, value AS count @@ -1490,8 +1498,16 @@ if (date('Y') - date('Y', strtotime($line['last_updated'])) > 2) $last_updated = ''; + /* if ($line["view_settings"]) + $view_settings = @json_decode($line["view_settings"]); + else + $view_settings = null; */ + + $view_settings = null; + $cv = array("id" => $id, "updated" => $last_updated, + "vs" => $view_settings, "counter" => (int) $count, "has_img" => (int) $has_img); diff --git a/index.php b/index.php index 371c4aff3..6753ed59d 100644 --- a/index.php +++ b/index.php @@ -169,7 +169,7 @@ << - - - + +
diff --git a/js/feedlist.js b/js/feedlist.js index 9d643142b..bde96c4db 100644 --- a/js/feedlist.js +++ b/js/feedlist.js @@ -2,6 +2,7 @@ var _infscroll_disable = 0; var _infscroll_request_sent = 0; var _search_query = false; var _viewfeed_last = 0; +var view_settings = []; var counters_last_request = 0; @@ -92,6 +93,37 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) { Form.enable("main_toolbar_form"); + /* var toolbar = document.forms["main_toolbar_form"]; + var ft = is_cat ? 'C' : 'F'; + + _viewmode_disabled = Math.round(new Date().getTime()); + + if (feed != getActiveFeedId() || is_cat != activeFeedIsCat()) { + var vs = view_settings[ft + ':' + feed]; + if (vs) { + dijit.getEnclosingWidget(toolbar.view_mode).attr('value', + vs.view_mode); + + dijit.getEnclosingWidget(toolbar.order_by).attr('value', + vs.order_by); + } else { + dijit.getEnclosingWidget(toolbar.view_mode).attr('value', + getInitParam("default_view_mode")); + + dijit.getEnclosingWidget(toolbar.order_by).attr('value', + getInitParam("default_view_order_by")); + } + + } else if (parseInt(feed) > 0) { + var ft = is_cat ? 'C' : 'F'; + + var view_mode = dijit.getEnclosingWidget(toolbar.view_mode).attr('value'); + var order_by = dijit.getEnclosingWidget(toolbar.order_by).attr('value'); + + view_settings[ft + ':' + feed] = {'view_mode': view_mode, + 'order_by': order_by}; + } */ + var toolbar_query = Form.serialize("main_toolbar_form"); var query = "?op=feeds&method=view&feed=" + feed + "&" + @@ -214,6 +246,12 @@ function parse_counters(elems, scheduled_call) { var error = elems[l].error; var has_img = elems[l].has_img; var updated = elems[l].updated; + var vs = elems[l].vs; + + if (vs) { + var ft = (kind == "cat") ? "C" : "F"; + view_settings[ft + ":" + id] = vs; + } if (id == "global-unread") { global_unread = ctr; diff --git a/js/tt-rss.js b/js/tt-rss.js index 6c921c258..5f8604f94 100644 --- a/js/tt-rss.js +++ b/js/tt-rss.js @@ -752,10 +752,6 @@ function viewModeChanged() { return viewCurrentFeed(''); } -function viewLimitChanged() { - return viewCurrentFeed(''); -} - function rescoreCurrentFeed() { var actid = getActiveFeedId(); diff --git a/js/viewfeed.js b/js/viewfeed.js index 0ef890622..a163dda21 100644 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -52,9 +52,9 @@ function headlines_callback2(transport, offset, background, infscroll_req) { setActiveFeedId(feed_id, is_cat); - dijit.getEnclosingWidget( + /* dijit.getEnclosingWidget( document.forms["main_toolbar_form"].update).attr('disabled', - is_cat || feed_id <= 0); + is_cat || feed_id <= 0); */ try { if (infscroll_req == false) {