diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-05-31 01:34:08 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-05-31 01:34:08 +0200 |
commit | 0675405a8cb0a35797e4f0b96bd9072986bd1507 (patch) | |
tree | f8cd6825daa2cdd12d00be5ea3bcfe3b3c289225 | |
parent | 82f0a877a001ead0bd0cdd76d96fe46a071535d8 (diff) |
show unreadcount in title
-rw-r--r-- | js/build/app.js | 27 | ||||
-rw-r--r-- | js/controller/NavigationController.js | 16 | ||||
-rw-r--r-- | js/directive/NewsTitleUnreadCount.js | 32 | ||||
-rw-r--r-- | templates/main.php | 1 | ||||
-rw-r--r-- | templates/part.feed.unread.php | 2 |
5 files changed, 67 insertions, 11 deletions
diff --git a/js/build/app.js b/js/build/app.js index 9d544268f..33c8b6ae3 100644 --- a/js/build/app.js +++ b/js/build/app.js @@ -369,16 +369,16 @@ var $__build_47_app__ = function () { return false; }; this.isSubscriptionsActive = function () { - return $route.current.$$route.type === FEED_TYPE.SUBSCRIPTIONS; + return $route.current && $route.current.$$route.type === FEED_TYPE.SUBSCRIPTIONS; }; this.isStarredActive = function () { - return $route.current.$$route.type === FEED_TYPE.STARRED; + return $route.current && $route.current.$$route.type === FEED_TYPE.STARRED; }; this.isFolderActive = function (folderId) { - return $route.current.$$route.type === FEED_TYPE.FOLDER && $route.current.params.id === folderId; + return $route.current && $route.current.$$route.type === FEED_TYPE.FOLDER && $route.current.params.id === folderId; }; this.isFeedActive = function (feedId) { - return $route.current.$$route.type === FEED_TYPE.FEED && $route.current.params.id === feedId; + return $route.current && $route.current.$$route.type === FEED_TYPE.FEED && $route.current.params.id === feedId; }; this.isAddingFolder = function () { return true; @@ -1750,6 +1750,25 @@ var $__build_47_app__ = function () { }; } ]); + app.directive('newsTitleUnreadCount', [ + '$window', + function ($window) { + 'use strict'; + var baseTitle = $window.document.title; + return { + restrict: 'E', + scope: { unreadCount: '@' }, + link: function (scope, elem, attrs) { + attrs.$observe('unreadCount', function (value) { + var titles = baseTitle.split('-'); + if (value !== '0') { + $window.document.title = titles[0] + '(' + value + ') - ' + titles[1]; + } + }); + } + }; + } + ]); app.directive('newsTooltip', function () { 'use strict'; return function (scope, elem) { diff --git a/js/controller/NavigationController.js b/js/controller/NavigationController.js index 17ef923aa..d91f14d88 100644 --- a/js/controller/NavigationController.js +++ b/js/controller/NavigationController.js @@ -8,8 +8,8 @@ * @copyright Bernhard Posselt 2014 */ app.controller('NavigationController', -function ($route, FEED_TYPE, - FeedResource, FolderResource, ItemResource, SettingsResource) { +function ($route, FEED_TYPE, FeedResource, FolderResource, ItemResource, + SettingsResource) { 'use strict'; this.feedError = ''; @@ -88,20 +88,24 @@ function ($route, FEED_TYPE, }; this.isSubscriptionsActive = () => { - return $route.current.$$route.type === FEED_TYPE.SUBSCRIPTIONS; + return $route.current && + $route.current.$$route.type === FEED_TYPE.SUBSCRIPTIONS; }; this.isStarredActive = () => { - return $route.current.$$route.type === FEED_TYPE.STARRED; + return $route.current && + $route.current.$$route.type === FEED_TYPE.STARRED; }; this.isFolderActive = (folderId) => { - return $route.current.$$route.type === FEED_TYPE.FOLDER && + return $route.current && + $route.current.$$route.type === FEED_TYPE.FOLDER && $route.current.params.id === folderId; }; this.isFeedActive = (feedId) => { - return $route.current.$$route.type === FEED_TYPE.FEED && + return $route.current && + $route.current.$$route.type === FEED_TYPE.FEED && $route.current.params.id === feedId; }; diff --git a/js/directive/NewsTitleUnreadCount.js b/js/directive/NewsTitleUnreadCount.js new file mode 100644 index 000000000..709b910ed --- /dev/null +++ b/js/directive/NewsTitleUnreadCount.js @@ -0,0 +1,32 @@ +/** + * ownCloud - News + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @copyright Bernhard Posselt 2014 + */ +app.directive('newsTitleUnreadCount', ($window) => { + 'use strict'; + + let baseTitle = $window.document.title; + + return { + restrict: 'E', + scope: { + unreadCount: '@' + }, + link: (scope, elem, attrs) => { + attrs.$observe('unreadCount', (value) => { + let titles = baseTitle.split('-'); + + if (value !== '0') { + $window.document.title = titles[0] + + '(' + value + ') - ' + titles[1]; + } + }); + } + }; + +});
\ No newline at end of file diff --git a/templates/main.php b/templates/main.php index d0cac8fa6..e2679115a 100644 --- a/templates/main.php +++ b/templates/main.php @@ -22,6 +22,7 @@ <!-- navigation --> <div id="app-navigation" ng-controller="NavigationController as Navigation" ng-hide="App.loading.isLoading('global')"> + <news-title-unread-count unread-count="{{ Navigation.getUnreadCount() }}"></news-title-unread-count> <ul class="with-icon" data-folder-id="0" news-droppable> <?php print_unescaped($this->inc('part.addnew')) ?> diff --git a/templates/part.feed.unread.php b/templates/part.feed.unread.php index ff91c55c1..f3375cef0 100644 --- a/templates/part.feed.unread.php +++ b/templates/part.feed.unread.php @@ -15,7 +15,7 @@ </div> <span class="utils"> - <span class="unread-counter" ng-show="getUnreadCount() > 0"> + <span class="unread-counter" ng-show="Navigation.getUnreadCount() > 0"> {{ Navigation.getUnreadCount() | unreadCountFormatter }} </span> <!-- |