diff options
author | ArthurHoaro <arthur@hoa.ro> | 2020-05-22 11:02:56 +0200 |
---|---|---|
committer | ArthurHoaro <arthur@hoa.ro> | 2020-07-23 21:19:21 +0200 |
commit | af290059d10319e76d1e7d78b592cab99c26d91a (patch) | |
tree | b088526052182d4b4f3c0af20db89f7d28fc3d9a /index.php | |
parent | 893f5159c64e5bcff505c8367e6dc22cc2a7b14d (diff) | |
download | Shaarli-af290059d10319e76d1e7d78b592cab99c26d91a.tar.gz Shaarli-af290059d10319e76d1e7d78b592cab99c26d91a.tar.zst Shaarli-af290059d10319e76d1e7d78b592cab99c26d91a.zip |
Process session filters through Slim controllers
Including:
- visibility
- links per page
- untagged only
Diffstat (limited to 'index.php')
-rw-r--r-- | index.php | 57 |
1 files changed, 16 insertions, 41 deletions
@@ -457,57 +457,19 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM | |||
457 | 457 | ||
458 | // -------- User wants to change the number of bookmarks per page (linksperpage=...) | 458 | // -------- User wants to change the number of bookmarks per page (linksperpage=...) |
459 | if (isset($_GET['linksperpage'])) { | 459 | if (isset($_GET['linksperpage'])) { |
460 | if (is_numeric($_GET['linksperpage'])) { | 460 | header('Location: ./links-per-page?nb='. $_GET['linksperpage']); |
461 | $_SESSION['LINKS_PER_PAGE']=abs(intval($_GET['linksperpage'])); | ||
462 | } | ||
463 | |||
464 | if (! empty($_SERVER['HTTP_REFERER'])) { | ||
465 | $location = generateLocation($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'], array('linksperpage')); | ||
466 | } else { | ||
467 | $location = '?'; | ||
468 | } | ||
469 | header('Location: '. $location); | ||
470 | exit; | 461 | exit; |
471 | } | 462 | } |
472 | 463 | ||
473 | // -------- User wants to see only private bookmarks (toggle) | 464 | // -------- User wants to see only private bookmarks (toggle) |
474 | if (isset($_GET['visibility'])) { | 465 | if (isset($_GET['visibility'])) { |
475 | if ($_GET['visibility'] === 'private') { | 466 | header('Location: ./visibility/'. $_GET['visibility']); |
476 | // Visibility not set or not already private, set private, otherwise reset it | ||
477 | if (empty($_SESSION['visibility']) || $_SESSION['visibility'] !== 'private') { | ||
478 | // See only private bookmarks | ||
479 | $_SESSION['visibility'] = 'private'; | ||
480 | } else { | ||
481 | unset($_SESSION['visibility']); | ||
482 | } | ||
483 | } elseif ($_GET['visibility'] === 'public') { | ||
484 | if (empty($_SESSION['visibility']) || $_SESSION['visibility'] !== 'public') { | ||
485 | // See only public bookmarks | ||
486 | $_SESSION['visibility'] = 'public'; | ||
487 | } else { | ||
488 | unset($_SESSION['visibility']); | ||
489 | } | ||
490 | } | ||
491 | |||
492 | if (! empty($_SERVER['HTTP_REFERER'])) { | ||
493 | $location = generateLocation($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'], array('visibility')); | ||
494 | } else { | ||
495 | $location = '?'; | ||
496 | } | ||
497 | header('Location: '. $location); | ||
498 | exit; | 467 | exit; |
499 | } | 468 | } |
500 | 469 | ||
501 | // -------- User wants to see only untagged bookmarks (toggle) | 470 | // -------- User wants to see only untagged bookmarks (toggle) |
502 | if (isset($_GET['untaggedonly'])) { | 471 | if (isset($_GET['untaggedonly'])) { |
503 | $_SESSION['untaggedonly'] = empty($_SESSION['untaggedonly']); | 472 | header('Location: ./untagged-only'); |
504 | |||
505 | if (! empty($_SERVER['HTTP_REFERER'])) { | ||
506 | $location = generateLocation($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'], array('untaggedonly')); | ||
507 | } else { | ||
508 | $location = '?'; | ||
509 | } | ||
510 | header('Location: '. $location); | ||
511 | exit; | 473 | exit; |
512 | } | 474 | } |
513 | 475 | ||
@@ -1549,6 +1511,19 @@ $app->group('', function () { | |||
1549 | 1511 | ||
1550 | $this->get('/add-tag/{newTag}', '\Shaarli\Front\Controller\TagController:addTag')->setName('add-tag'); | 1512 | $this->get('/add-tag/{newTag}', '\Shaarli\Front\Controller\TagController:addTag')->setName('add-tag'); |
1551 | $this->get('/remove-tag/{tag}', '\Shaarli\Front\Controller\TagController:removeTag')->setName('remove-tag'); | 1513 | $this->get('/remove-tag/{tag}', '\Shaarli\Front\Controller\TagController:removeTag')->setName('remove-tag'); |
1514 | |||
1515 | $this | ||
1516 | ->get('/links-per-page', '\Shaarli\Front\Controller\SessionFilterController:linksPerPage') | ||
1517 | ->setName('filter-links-per-page') | ||
1518 | ; | ||
1519 | $this | ||
1520 | ->get('/visibility/{visibility}', '\Shaarli\Front\Controller\SessionFilterController:visibility') | ||
1521 | ->setName('visibility') | ||
1522 | ; | ||
1523 | $this | ||
1524 | ->get('/untagged-only', '\Shaarli\Front\Controller\SessionFilterController:untaggedOnly') | ||
1525 | ->setName('untagged-only') | ||
1526 | ; | ||
1552 | })->add('\Shaarli\Front\ShaarliMiddleware'); | 1527 | })->add('\Shaarli\Front\ShaarliMiddleware'); |
1553 | 1528 | ||
1554 | $response = $app->run(true); | 1529 | $response = $app->run(true); |