implement feed grouping display, remove unneeded server vgrlf passing
This commit is contained in:
parent
1369124fe0
commit
8f75b06835
|
@ -113,8 +113,7 @@ class Feeds extends Handler_Protected {
|
||||||
}
|
}
|
||||||
|
|
||||||
private function format_headlines_list($feed, $method, $view_mode, $limit, $cat_view,
|
private function format_headlines_list($feed, $method, $view_mode, $limit, $cat_view,
|
||||||
$offset, $vgr_last_feed = false,
|
$offset, $override_order = false, $include_children = false, $check_first_id = false,
|
||||||
$override_order = false, $include_children = false, $check_first_id = false,
|
|
||||||
$skip_first_id_check = false) {
|
$skip_first_id_check = false) {
|
||||||
|
|
||||||
$disable_cache = false;
|
$disable_cache = false;
|
||||||
|
@ -216,8 +215,7 @@ class Feeds extends Handler_Protected {
|
||||||
$highlight_words = $qfh_ret[5];
|
$highlight_words = $qfh_ret[5];
|
||||||
$reply['first_id'] = $qfh_ret[6];
|
$reply['first_id'] = $qfh_ret[6];
|
||||||
$reply['search_query'] = [$search, $search_language];
|
$reply['search_query'] = [$search, $search_language];
|
||||||
|
$reply['vfeed_group_enabled'] = $vfeed_group_enabled;
|
||||||
$vgroup_last_feed = $vgr_last_feed;
|
|
||||||
|
|
||||||
$reply['toolbar'] = $this->format_headline_subtoolbar($feed_site_url,
|
$reply['toolbar'] = $this->format_headline_subtoolbar($feed_site_url,
|
||||||
$feed_title,
|
$feed_title,
|
||||||
|
@ -737,8 +735,7 @@ class Feeds extends Handler_Protected {
|
||||||
|
|
||||||
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("H2", $timing_info);
|
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("H2", $timing_info);
|
||||||
|
|
||||||
return array($topmost_article_ids, $headlines_count, $feed, $disable_cache,
|
return array($topmost_article_ids, $headlines_count, $feed, $disable_cache, $reply);
|
||||||
$vgroup_last_feed, $reply);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function catchupAll() {
|
function catchupAll() {
|
||||||
|
@ -763,7 +760,6 @@ class Feeds extends Handler_Protected {
|
||||||
@$cat_view = $_REQUEST["cat"] == "true";
|
@$cat_view = $_REQUEST["cat"] == "true";
|
||||||
@$next_unread_feed = $_REQUEST["nuf"];
|
@$next_unread_feed = $_REQUEST["nuf"];
|
||||||
@$offset = $_REQUEST["skip"];
|
@$offset = $_REQUEST["skip"];
|
||||||
@$vgroup_last_feed = $_REQUEST["vgrlf"];
|
|
||||||
$order_by = $_REQUEST["order_by"];
|
$order_by = $_REQUEST["order_by"];
|
||||||
$check_first_id = $_REQUEST["fid"];
|
$check_first_id = $_REQUEST["fid"];
|
||||||
|
|
||||||
|
@ -851,18 +847,12 @@ class Feeds extends Handler_Protected {
|
||||||
|
|
||||||
$ret = $this->format_headlines_list($feed, $method,
|
$ret = $this->format_headlines_list($feed, $method,
|
||||||
$view_mode, $limit, $cat_view, $offset,
|
$view_mode, $limit, $cat_view, $offset,
|
||||||
$vgroup_last_feed, $override_order, true, $check_first_id, $skip_first_id_check);
|
$override_order, true, $check_first_id, $skip_first_id_check);
|
||||||
|
|
||||||
//$topmost_article_ids = $ret[0];
|
|
||||||
$headlines_count = $ret[1];
|
$headlines_count = $ret[1];
|
||||||
/* $returned_feed = $ret[2]; */
|
|
||||||
$disable_cache = $ret[3];
|
$disable_cache = $ret[3];
|
||||||
$vgroup_last_feed = $ret[4];
|
|
||||||
|
|
||||||
//$reply['headlines']['content'] =& $ret[5]['content'];
|
$reply['headlines'] = $ret[4];
|
||||||
//$reply['headlines']['toolbar'] =& $ret[5]['toolbar'];
|
|
||||||
|
|
||||||
$reply['headlines'] = $ret[5];
|
|
||||||
|
|
||||||
if (!$next_unread_feed)
|
if (!$next_unread_feed)
|
||||||
$reply['headlines']['id'] = $feed;
|
$reply['headlines']['id'] = $feed;
|
||||||
|
@ -874,7 +864,6 @@ class Feeds extends Handler_Protected {
|
||||||
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("05", $timing_info);
|
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("05", $timing_info);
|
||||||
|
|
||||||
$reply['headlines-info'] = array("count" => (int) $headlines_count,
|
$reply['headlines-info'] = array("count" => (int) $headlines_count,
|
||||||
"vgroup_last_feed" => $vgroup_last_feed,
|
|
||||||
"disable_cache" => (bool) $disable_cache);
|
"disable_cache" => (bool) $disable_cache);
|
||||||
|
|
||||||
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("30", $timing_info);
|
if ($_REQUEST["debug"]) $timing_info = print_checkpoint("30", $timing_info);
|
||||||
|
@ -921,7 +910,6 @@ class Feeds extends Handler_Protected {
|
||||||
$reply['headlines']['content'] .= "</span></p>";
|
$reply['headlines']['content'] .= "</span></p>";
|
||||||
|
|
||||||
$reply['headlines-info'] = array("count" => 0,
|
$reply['headlines-info'] = array("count" => 0,
|
||||||
"vgroup_last_feed" => '',
|
|
||||||
"unread" => 0,
|
"unread" => 0,
|
||||||
"disable_cache" => true);
|
"disable_cache" => true);
|
||||||
|
|
||||||
|
@ -938,7 +926,6 @@ class Feeds extends Handler_Protected {
|
||||||
$reply['headlines']['content'] = "<div class='whiteBox'>". $error . "</div>";
|
$reply['headlines']['content'] = "<div class='whiteBox'>". $error . "</div>";
|
||||||
|
|
||||||
$reply['headlines-info'] = array("count" => 0,
|
$reply['headlines-info'] = array("count" => 0,
|
||||||
"vgroup_last_feed" => '',
|
|
||||||
"unread" => 0,
|
"unread" => 0,
|
||||||
"disable_cache" => true);
|
"disable_cache" => true);
|
||||||
|
|
||||||
|
|
|
@ -680,7 +680,7 @@ body.ttrss_main #headlines-frame {
|
||||||
body.ttrss_main #headlines-frame div.feed-title {
|
body.ttrss_main #headlines-frame div.feed-title {
|
||||||
border: 0px solid #257aa7;
|
border: 0px solid #257aa7;
|
||||||
border-bottom-width: 1px;
|
border-bottom-width: 1px;
|
||||||
padding: 5px 3px 5px 5px;
|
padding: 5px 8px;
|
||||||
}
|
}
|
||||||
body.ttrss_main #headlines-frame div.feed-title a.title {
|
body.ttrss_main #headlines-frame div.feed-title a.title {
|
||||||
color: #555555;
|
color: #555555;
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -799,7 +799,7 @@ body.ttrss_main {
|
||||||
div.feed-title {
|
div.feed-title {
|
||||||
border: 0px solid @color-link;
|
border: 0px solid @color-link;
|
||||||
border-bottom-width: 1px;
|
border-bottom-width: 1px;
|
||||||
padding: 5px 3px 5px 5px;
|
padding: 5px 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.feed-title a.title {
|
div.feed-title a.title {
|
||||||
|
|
|
@ -340,11 +340,6 @@ define(["dojo/_base/declare"], function (declare) {
|
||||||
|
|
||||||
if (offset != 0) {
|
if (offset != 0) {
|
||||||
query.skip = offset;
|
query.skip = offset;
|
||||||
|
|
||||||
// to prevent duplicate feed titles when showing grouped vfeeds
|
|
||||||
if (Headlines.vgroup_last_feed != undefined) {
|
|
||||||
query.vgrlf = Headlines.vgroup_last_feed;
|
|
||||||
}
|
|
||||||
} else if (!is_cat && feed == this.getActive() && !params.method) {
|
} else if (!is_cat && feed == this.getActive() && !params.method) {
|
||||||
query.m = "ForceUpdate";
|
query.m = "ForceUpdate";
|
||||||
}
|
}
|
||||||
|
|
|
@ -248,6 +248,22 @@ define(["dojo/_base/declare"], function (declare) {
|
||||||
if (hl.published) row_class += " published";
|
if (hl.published) row_class += " published";
|
||||||
if (hl.unread) row_class += " Unread";
|
if (hl.unread) row_class += " Unread";
|
||||||
|
|
||||||
|
|
||||||
|
if (headlines.vfeed_group_enabled && hl.feed_title && this.vgroup_last_feed != hl.feed_id) {
|
||||||
|
let vgrhdr = `<div data-feed-id='${hl.feed_id}' class='feed-title'>
|
||||||
|
<div style='float : right'>${hl.feed_icon}</div>
|
||||||
|
<a class="title" href="#" onclick="Feeds.open({feed:${hl.feed_id}})">${hl.feed_title}
|
||||||
|
<a class="catchup" onclick="Feeds.catchupFeedInGroup(${hl.feed_id})" href="#">${__('mark feed as read')}</a>
|
||||||
|
</div>`
|
||||||
|
|
||||||
|
const tmp = document.createElement("div");
|
||||||
|
tmp.innerHTML = vgrhdr;
|
||||||
|
|
||||||
|
$("headlines-frame").appendChild(tmp.firstChild);
|
||||||
|
|
||||||
|
this.vgroup_last_feed = hl.feed_id;
|
||||||
|
}
|
||||||
|
|
||||||
if (App.isCombinedMode()) {
|
if (App.isCombinedMode()) {
|
||||||
row_class += App.getInitParam("cdm_expanded") ? " expanded" : " expandable";
|
row_class += App.getInitParam("cdm_expanded") ? " expanded" : " expandable";
|
||||||
|
|
||||||
|
@ -343,11 +359,13 @@ define(["dojo/_base/declare"], function (declare) {
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (row != null) {
|
||||||
const tmp = document.createElement("div");
|
const tmp = document.createElement("div");
|
||||||
tmp.innerHTML = row;
|
tmp.innerHTML = row;
|
||||||
dojo.parser.parse(tmp);
|
dojo.parser.parse(tmp);
|
||||||
|
|
||||||
$("headlines-frame").appendChild(tmp.firstChild);
|
$("headlines-frame").appendChild(tmp.firstChild);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onLoaded: function (transport, offset) {
|
onLoaded: function (transport, offset) {
|
||||||
const reply = App.handleRpcJson(transport);
|
const reply = App.handleRpcJson(transport);
|
||||||
|
@ -390,11 +408,12 @@ define(["dojo/_base/declare"], function (declare) {
|
||||||
|
|
||||||
console.log('received', headlines_count, 'headlines, infscroll disabled=', Feeds.infscroll_disabled);
|
console.log('received', headlines_count, 'headlines, infscroll disabled=', Feeds.infscroll_disabled);
|
||||||
|
|
||||||
this.vgroup_last_feed = reply['headlines-info']['vgroup_last_feed'];
|
//this.vgroup_last_feed = reply['headlines-info']['vgroup_last_feed'];
|
||||||
this.current_first_id = reply['headlines']['first_id'];
|
this.current_first_id = reply['headlines']['first_id'];
|
||||||
|
|
||||||
if (offset == 0) {
|
if (offset == 0) {
|
||||||
this.loaded_article_ids = [];
|
this.loaded_article_ids = [];
|
||||||
|
this.vgroup_last_feed = undefined;
|
||||||
|
|
||||||
dojo.html.set($("toolbar-headlines"),
|
dojo.html.set($("toolbar-headlines"),
|
||||||
reply['headlines']['toolbar'],
|
reply['headlines']['toolbar'],
|
||||||
|
|
|
@ -680,7 +680,7 @@ body.ttrss_main #headlines-frame {
|
||||||
body.ttrss_main #headlines-frame div.feed-title {
|
body.ttrss_main #headlines-frame div.feed-title {
|
||||||
border: 0px solid #257aa7;
|
border: 0px solid #257aa7;
|
||||||
border-bottom-width: 1px;
|
border-bottom-width: 1px;
|
||||||
padding: 5px 3px 5px 5px;
|
padding: 5px 8px;
|
||||||
}
|
}
|
||||||
body.ttrss_main #headlines-frame div.feed-title a.title {
|
body.ttrss_main #headlines-frame div.feed-title a.title {
|
||||||
color: #555555;
|
color: #555555;
|
||||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue