From 39ce45aa2abf8044370480318b79382459f2e156 Mon Sep 17 00:00:00 2001 From: Flavio Copes Date: Wed, 21 Oct 2015 19:46:51 +0200 Subject: [PATCH] Allow to filter pages by access level --- classes/controller.php | 24 ++++++++++++++++++++---- themes/grav/js/pages-all.js | 2 +- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/classes/controller.php b/classes/controller.php index b5a37f5f..7c68900a 100644 --- a/classes/controller.php +++ b/classes/controller.php @@ -10,6 +10,7 @@ use Grav\Common\Themes; use Grav\Common\Uri; use Grav\Common\Data; use Grav\Common\Page; +use Grav\Common\Page\Pages; use Grav\Common\Page\Collection; use Grav\Common\User\User; use Grav\Common\Utils; @@ -464,8 +465,25 @@ class AdminController // Filter by page type if (count($flags)) { - $types = $flags; - $collection = $collection->ofOneOfTheseTypes($types); + $types = []; + + $pageTypes = Pages::pageTypes(); + foreach ($pageTypes as $pageType) { + if (($pageType = array_search($pageType, $flags)) !== false) { + $types[] = $pageType; + unset($flags[$pageType]); + } + } + + if (count($types)) { + $collection = $collection->ofOneOfTheseTypes($types); + } + } + + // Filter by page type + if (count($flags)) { + $accessLevels = $flags; + $collection = $collection->ofOneOfTheseAccessLevels($accessLevels); } } @@ -473,8 +491,6 @@ class AdminController foreach ($collection as $page) { foreach ($queries as $query) { $query = trim($query); - - // $page->content(); if (stripos($page->getRawContent(), $query) === false && stripos($page->title(), $query) === false) { $collection->remove($page); } diff --git a/themes/grav/js/pages-all.js b/themes/grav/js/pages-all.js index 513c73b4..4412c4ad 100644 --- a/themes/grav/js/pages-all.js +++ b/themes/grav/js/pages-all.js @@ -27,7 +27,7 @@ $(function(){ }) jQuery.each(accessLevels, function(key, name){ - options.push({flag: name, key: key, cat: 'access'}); + options.push({flag: name, key: name, cat: 'access'}); }) pageFilter.selectize({