Permalink
Browse files

Display notifications in the header.

chapter11-2
  • Loading branch information...
tmeasday committed Apr 8, 2013
1 parent a6a68b0 commit 6b09046b785fcb86f263beecf59343f1f01dd8ed
@@ -11,7 +11,14 @@
</div>
<div class="collapse navbar-collapse" id="navigation">
<ul class="nav navbar-nav">
- {{#if currentUser}}<li><a href="{{pathFor 'postSubmit'}}">Submit Post</a></li>{{/if}}
+ {{#if currentUser}}
+ <li>
+ <a href="{{pathFor 'postSubmit'}}">Submit Post</a>
+ </li>
+ <li class="dropdown">
+ {{> notifications}}
+ </li>
+ {{/if}}
</ul>
<ul class="nav navbar-nav navbar-right">
{{> loginButtons}}
@@ -0,0 +1,26 @@
+<template name="notifications">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+ Notifications
+ {{#if notificationCount}}
+ <span class="badge badge-inverse">{{notificationCount}}</span>
+ {{/if}}
+ <b class="caret"></b>
+ </a>
+ <ul class="notification dropdown-menu">
+ {{#if notificationCount}}
+ {{#each notifications}}
+ {{> notificationItem}}
+ {{/each}}
+ {{else}}
+ <li><span>No Notifications</span></li>
+ {{/if}}
+ </ul>
+</template>
+
+<template name="notificationItem">
+ <li>
+ <a href="{{notificationPostPath}}">
+ <strong>{{commenterName}}</strong> commented on your post
+ </a>
+ </li>
+</template>
@@ -0,0 +1,20 @@
+Template.notifications.helpers({
+ notifications: function() {
+ return Notifications.find({userId: Meteor.userId(), read: false});
+ },
+ notificationCount: function(){
+ return Notifications.find({userId: Meteor.userId(), read: false}).count();
+ }
+});
+
+Template.notificationItem.helpers({
+ notificationPostPath: function() {
+ return Router.routes.postPage.path({_id: this.postId});
+ }
+})
+
+Template.notificationItem.events({
+ 'click a': function() {
+ Notifications.update(this._id, {$set: {read: true}});
+ }
+})

0 comments on commit 6b09046

Please sign in to comment.