summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--js/build/app.js27
-rw-r--r--js/controller/NavigationController.js16
-rw-r--r--js/directive/NewsTitleUnreadCount.js32
-rw-r--r--templates/main.php1
-rw-r--r--templates/part.feed.unread.php2
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>
<!--