diff options
| author | 2020-05-18 18:45:47 +0200 | |
|---|---|---|
| committer | 2020-05-18 18:45:47 +0200 | |
| commit | 0442243037fc7fb80228790a871328629a1aa882 (patch) | |
| tree | 690cde0ab388a341d22e436032d329d46dd07284 /app/Controllers/indexController.php | |
| parent | fa56f90223ce44c34b2919567d163ca4f2e81f65 (diff) | |
Fix nav_menu mark-as-read (#2909)
* Fix nav_menu mark-as-read
#Fix https://github.com/FreshRSS/FreshRSS/issues/2905
Fix regression from https://github.com/FreshRSS/FreshRSS/pull/2588
We need info about the first item (id_max) before being able to output
nav_menu. Before https://github.com/FreshRSS/FreshRSS/pull/2588 we used
to output everything in memory before starting to produce an output. Now
that we stream the output, we need a temporary buffer until we have
received the first item/article.
* Repair loading page
* Simplify CSS
Make it work in Chrome as well
* Lint
* Partial revert
* Base max_id solely on current time
Diffstat (limited to 'app/Controllers/indexController.php')
| -rwxr-xr-x | app/Controllers/indexController.php | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/app/Controllers/indexController.php b/app/Controllers/indexController.php index ddd51455d..ff746f4bf 100755 --- a/app/Controllers/indexController.php +++ b/app/Controllers/indexController.php @@ -48,6 +48,8 @@ class FreshRSS_index_Controller extends Minz_ActionController { } Minz_View::prependTitle($title . ' ยท '); + FreshRSS_Context::$id_max = time() . '000000'; + $this->view->callbackBeforeFeeds = function ($view) { try { $tagDAO = FreshRSS_Factory::createTagDao(); @@ -66,29 +68,20 @@ class FreshRSS_index_Controller extends Minz_ActionController { FreshRSS_Context::$number++; //+1 for pagination $view->entries = FreshRSS_index_Controller::listEntriesByContext(); FreshRSS_Context::$number--; - ob_start(); + ob_start(); //Buffer "one entry at a time" } catch (FreshRSS_EntriesGetter_Exception $e) { Minz_Log::notice($e->getMessage()); Minz_Error::error(404); } }; - $this->view->callbackBeforePagination = function ($view, $nbEntries, $firstEntry, $lastEntry) { + $this->view->callbackBeforePagination = function ($view, $nbEntries, $lastEntry) { if ($nbEntries >= FreshRSS_Context::$number) { //We have enough entries: we discard the last one to use it for the next pagination ob_clean(); FreshRSS_Context::$next_id = $lastEntry->id(); } ob_end_flush(); - - FreshRSS_Context::$id_max = $firstEntry === null ? (time() - 1) . '000000' : $firstEntry->id(); - if (FreshRSS_Context::$order === 'ASC') { - // In this case we do not know but we guess id_max - $id_max = (time() - 1) . '000000'; - if (strcmp($id_max, FreshRSS_Context::$id_max) > 0) { - FreshRSS_Context::$id_max = $id_max; - } - } }; } |
