aboutsummaryrefslogtreecommitdiff
path: root/app/Controllers/indexController.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2020-05-18 18:45:47 +0200
committerGravatar GitHub <noreply@github.com> 2020-05-18 18:45:47 +0200
commit0442243037fc7fb80228790a871328629a1aa882 (patch)
tree690cde0ab388a341d22e436032d329d46dd07284 /app/Controllers/indexController.php
parentfa56f90223ce44c34b2919567d163ca4f2e81f65 (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-xapp/Controllers/indexController.php15
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;
- }
- }
};
}