diff options
author | Cesar Enrique Garcia Dabo <enrique@engarda.org> | 2020-04-11 02:21:56 +0200 |
---|---|---|
committer | Benjamin Brahmer <info@b-brahmer.de> | 2020-04-23 12:37:24 +0200 |
commit | 5b4f3d29e4800f12297092ba6b6813581de77169 (patch) | |
tree | 69a25e4c8d9468b91f7dd3f506532d6caca9555c | |
parent | a69ec8edd84511dfd760b6911ded8fdeea8c5aaa (diff) |
Always show the unread articles.
The unread articles folder will always be visible, regardless
of the "Show all" setting. If that setting is on, then an
additional "All articles" folder will be show as before, but
it doesn't substitute the "Uread articles" one.
A new URL /apps/news/#/items/unread is also created that jumps
to the unread articles.
Signed-off-by: Cesar Enrique Garcia Dabo <cquike@arcor.de>
-rw-r--r-- | js/app/Config.js | 9 | ||||
-rw-r--r-- | js/app/Run.js | 10 | ||||
-rw-r--r-- | lib/Db/FeedType.php | 1 | ||||
-rw-r--r-- | lib/Db/ItemMapper.php | 2 | ||||
-rw-r--r-- | templates/part.navigation.unreadfeed.php | 41 |
5 files changed, 52 insertions, 11 deletions
diff --git a/js/app/Config.js b/js/app/Config.js index 3b808063d..f7c62e7ae 100644 --- a/js/app/Config.js +++ b/js/app/Config.js @@ -16,7 +16,8 @@ app.config(function ($routeProvider, $provide, $httpProvider, $locationProvider) STARRED: 2, SUBSCRIPTIONS: 3, SHARED: 4, - EXPLORE: 5 + EXPLORE: 5, + UNREAD: 6 }; // default hashPrefix changed in angular 1.6 to '!' @@ -190,6 +191,12 @@ app.config(function ($routeProvider, $provide, $httpProvider, $locationProvider) resolve: getItemResolve(feedType.STARRED), type: feedType.STARRED }) + .when('/items/unread', { + controller: 'ContentController as Content', + templateUrl: 'content.html', + resolve: getItemResolve(feedType.UNREAD), + type: feedType.UNREAD + }) .when('/items/feeds/:id', { controller: 'ContentController as Content', templateUrl: 'content.html', diff --git a/js/app/Run.js b/js/app/Run.js index 0500faa35..1a1572864 100644 --- a/js/app/Run.js +++ b/js/app/Run.js @@ -17,7 +17,7 @@ app.run(function ($rootScope, $location, $http, $q, $interval, $route, Loading, // listen to keys in returned queries to automatically distribute the // incoming values to models Publisher.subscribe(ItemResource).toChannels(['items', 'newestItemId', - 'starred']); + 'starred', 'unread']); Publisher.subscribe(FolderResource).toChannels(['folders']); Publisher.subscribe(FeedResource).toChannels(['feeds']); Publisher.subscribe(SettingsResource).toChannels(['settings']); @@ -49,12 +49,16 @@ app.run(function ($rootScope, $location, $http, $q, $interval, $route, Loading, url = '/explore'; break; + case FEED_TYPE.UNREAD: + url = '/items/unread'; + break; + default: url = '/items'; } // only redirect if url is empty or faulty - if (!/^\/items(\/(starred|explore|feeds\/\d+|folders\/\d+))?\/?$/ + if (!/^\/items(\/(starred|unread|explore|feeds\/\d+|folders\/\d+))?\/?$/ .test(path)) { $location.path(url); } @@ -126,4 +130,4 @@ app.run(function ($rootScope, $location, $http, $q, $interval, $route, Loading, $location.path('/items'); }); -});
\ No newline at end of file +}); diff --git a/lib/Db/FeedType.php b/lib/Db/FeedType.php index 23adbefb3..bf487992c 100644 --- a/lib/Db/FeedType.php +++ b/lib/Db/FeedType.php @@ -21,4 +21,5 @@ class FeedType const SUBSCRIPTIONS = 3; const SHARED = 4; const EXPLORE = 5; + const UNREAD = 6; } diff --git a/lib/Db/ItemMapper.php b/lib/Db/ItemMapper.php index 82a38d67d..f0442aee9 100644 --- a/lib/Db/ItemMapper.php +++ b/lib/Db/ItemMapper.php @@ -64,7 +64,7 @@ class ItemMapper extends NewsMapper if (isset($type) && $type === FeedType::STARRED) { $sql = 'AND `items`.`starred` = '; $sql .= $this->db->quote(true, IQueryBuilder::PARAM_BOOL) . ' '; - } elseif (!$showAll) { + } elseif (!$showAll || $type === FeedType::UNREAD) { $sql .= 'AND `items`.`unread` = '; $sql .= $this->db->quote(true, IQueryBuilder::PARAM_BOOL) . ' '; } diff --git a/templates/part.navigation.unreadfeed.php b/templates/part.navigation.unreadfeed.php index a5de750d2..902365c68 100644 --- a/templates/part.navigation.unreadfeed.php +++ b/templates/part.navigation.unreadfeed.php @@ -4,14 +4,10 @@ }" class="subscriptions-feed with-counter with-menu"> - <a class="icon-rss" ng-href="#/items/" ng-if="!Navigation.isShowAll()"> + <a class="icon-rss" ng-href="#/items/unread" > <?php p($l->t('Unread articles'))?> </a> - <a class="icon-rss" ng-href="#/items/" ng-if="Navigation.isShowAll()"> - <?php p($l->t('All articles'))?> - </a> - <div class="app-navigation-entry-utils" ng-show="Navigation.isUnread()"> <ul> <li class="app-navigation-entry-utils-counter" @@ -38,4 +34,37 @@ </ul> </div> -</li>
\ No newline at end of file +</li> + +<li ng-class="{ + active: Navigation.isSubscriptionsActive(), + unread: Navigation.isUnread() + }" + class="all-subscriptions-feed with-counter with-menu"> + + <a class="icon-rss" ng-href="#/items/" ng-if="Navigation.isShowAll()"> + <?php p($l->t('All articles'))?> + </a> + + <div class="app-navigation-entry-utils" ng-if="Navigation.isShowAll()"> + <ul> + <li class="app-navigation-entry-utils-menu-button"> + <button + ng-click="optionsId = (optionsId == 'all' ? -1 : 'all')"> + </button> + </li> + </ul> + </div> + + <div class="app-navigation-entry-menu" ng-if="navigation.isShowAll()"> + <ul> + <li class="mark-read"> + <button ng-click="Navigation.markRead()"> + <span class="icon-checkmark"></span> + <span><?php p($l->t('Mark read')); ?></span> + </button> + </li> + </ul> + </div> + +</li> |