Sync notification count when clicking on them or marking all as read

Refs #500.
This commit is contained in:
Franz Liedke 2015-09-29 01:28:14 +02:00
parent f5b5d9ca5c
commit ce094be83e
2 changed files with 5 additions and 2 deletions

View File

@ -77,6 +77,7 @@ export default class Notification extends Component {
* Mark the notification as read.
*/
markAsRead() {
app.session.user.pushAttributes({unreadNotificationsCount: app.session.user.unreadNotificationsCount() - 1});
this.props.notification.save({isRead: true});
}
}

View File

@ -110,7 +110,7 @@ export default class NotificationList extends Component {
* been loaded.
*/
load() {
if (app.cache.notifications && !app.session.user.unreadNotificationsCount()) {
if (app.cache.notifications && !app.session.user.newNotificationsCount()) {
return;
}
@ -118,7 +118,7 @@ export default class NotificationList extends Component {
m.redraw();
app.store.find('notifications').then(notifications => {
app.session.user.pushAttributes({unreadNotificationsCount: 0});
app.session.user.pushAttributes({newNotificationsCount: 0});
app.cache.notifications = notifications.sort((a, b) => b.time() - a.time());
this.loading = false;
@ -132,6 +132,8 @@ export default class NotificationList extends Component {
markAllAsRead() {
if (!app.cache.notifications) return;
app.session.user.pushAttributes({unreadNotificationsCount: 0});
app.cache.notifications.forEach(notification => {
if (!notification.isRead()) {
notification.save({isRead: true});