Clear feed status when reading feed
[blerg.git] / www / jssrc / blerg / Controls.js
index 480e552..529df1e 100644 (file)
@@ -10,7 +10,8 @@ enyo.kind({
     handlers: {
         onLogin: "login",
         onLogout: "logout",
-        onPostVisibility: "postVisibilityUpdate"
+        onPostVisibility: "postVisibilityUpdate",
+        onClearFeedStatus: "clearFeedStatus"
     },
     components: [
         {name: "loggedOutControls", components: [
@@ -32,14 +33,11 @@ enyo.kind({
                 {name: "userlink", tag: "a"},
                 {tag: null, content: ". "},
                 {kind: "blerg.Link", content: "Logout", onNavigate: "logoutClicked"},
+                {tag: null, content: "."},
+                {tag: "br"},
+                {kind: "blerg.Link", content: "Change Password", onNavigate: "changePasswordClicked"},
                 {tag: null, content: "."}
             ]},
-            {components: [
-                {name: "rssButton", kind: "blerg.Link", showing: false, components: [
-                    {kind: "Image", src: "/images/rss.png", width: 16, height: 16},
-                    {tag: null, content: " RSS"}
-                ]}
-            ]},
             {classes: "blerg-controls-toolbar", components: [
                 {kind: "onyx.Button", content: "Feed Your Vanity", onclick: "chatterClicked"},
                 {name: "feedButton", kind: "onyx.Button", classes: "feed-button", content: "Stalk Your Victims", onclick: "feedClicked"},
@@ -85,15 +83,18 @@ enyo.kind({
         this.$.userlink.setContent('@' + inEvent.username);
         this.username = inEvent.username;
 
-        this.$.api.getFeedInfo();
+        this.updateFeedInfo();
         this.feedStatusUpdateInterval = setInterval(function() {
-            this.$.api.getFeedInfo();
+            this.updateFeedInfo();
         }.bind(this), 900000);
     },
     logout: function(inSender, inEvent) {
         this.setLoggedIn(false);
         clearInterval(this.feedStatusUpdateInterval);
     },
+    changePasswordClicked: function() {
+        this.bubble('onShowChangePassword');
+    },
     spewToggle: function(inSender, inEvent) {
         this.postShowing = !this.postShowing;
         this.bubble('onPostVisibility', {showing: this.postShowing});
@@ -102,6 +103,9 @@ enyo.kind({
         this.postShowing = inEvent.showing;
         this.$.spewButton.addRemoveClass('active', inEvent.showing);
     },
+    updateFeedInfo: function() {
+        this.$.api.getFeedInfo();
+    },
     gotFeedInfo: function(inSender, inEvent) {
         this.$.feedButton.addRemoveClass('new', inEvent.new > 0);
         if (inEvent.new > 0) {
@@ -117,5 +121,8 @@ enyo.kind({
     feedClicked: function() {
         window.location.href = '/#/feed';
         this.bubble('onNavigate');
+    },
+    clearFeedStatus: function() {
+        this.gotFeedInfo(this, {new: 0});
     }
 });