Clear feed status when reading feed
[blerg.git] / www / jssrc / blerg / Blerg.js
index f40a277..827dc06 100644 (file)
@@ -2,18 +2,22 @@ enyo.kind({
     name: "blerg.Blerg",
     kind: "Control",
     lastHash: null,
+    pathHandlers: [ blerg.User, blerg.Tag, blerg.Feed, blerg.ExternalURLPost, blerg.Welcome ],
     handlers: {
         onStartSignup: "showSignupDialog",
         onTryLogin: "tryLogin",
         onTryLogout: "tryLogout",
         onSetTitle: "setTitle",
-        onPostVisibility: "postVisibilityUpdate"
+        onPostVisibility: "postVisibilityUpdate",
+        onReload: "sendReload",
+        onShowChangePassword: "showChangePassword",
+        onClearFeedStatus: "clearFeedStatus"
     },
     components: [
         {classes: "blerg-header", components: [
             {name: "title", kind: "blerg.Title"},
             {name: "controls", kind: "blerg.Controls"},
-            {style: "clear: both"},
+            {style: "clear: both;"},
             {name: "post", kind: "blerg.Post", showing: false},
             {name: "help", kind: "blerg.Help"}
         ]},
@@ -25,13 +29,6 @@ enyo.kind({
          onLoginFailed: "loginFailed",
          onLogoutSuccessful: "logout"}
     ],
-    urlmap: [
-        ['search', /^\?post\/([^/]+)\/(.+)/, "blerg.ExternalURLPost"],
-        ['hash',   /^#\/(ref|tag)\/([A-Za-z0-9_-]+)(?:\/p(\d+))?$/, "blerg.Tag"],
-        ['hash',   /^#\/feed(?:\/p(\d+))?$/, "blerg.Feed"],
-        ['hash',   /^#([A-Za-z0-9_-]+)(?:\/(p)?(\d+))?$/, "blerg.User"]
-    ],
-    pathHandlers: [ blerg.User, blerg.Tag, blerg.Welcome ],
     rendered: function() {
         this.inherited(arguments);
 
@@ -42,10 +39,10 @@ enyo.kind({
 
         document.body.addEventListener('keyup', function(event) {
             if (event.shiftKey && event.keyCode == 32) {
-                this.$.post.show();
+                this.waterfall('onPostVisibility', {showing: true});
                 event.stopPropagation();
             }
-        }, false);
+        }.bind(this), false);
     },
     hashCheck: function() {
         if (location.hash != this.lastHash) {
@@ -81,10 +78,6 @@ enyo.kind({
         this.$.api.logout();
     },
     loginSuccessful: function(inSender, inEvent) {
-        this.$.api.requestFeedStatus();
-        this.feedStatusUpdateInterval = setInterval(function() {
-            this.$.api.requestFeedStatus();
-        }.bind(this), 900000);
         this.waterfall('onLogin', inEvent);
     },
     loginFailed: function(inSender, inEvent) {
@@ -98,5 +91,14 @@ enyo.kind({
     postVisibilityUpdate: function(inSender, inEvent) {
         this.$.post.waterfall('onPostVisibility', inEvent);
         this.$.controls.waterfall('onPostVisibility', inEvent);
+    },
+    sendReload: function() {
+        this.$.main.waterfall('onReload');
+    },
+    showChangePassword: function() {
+        this.$.passwdDialog.show();
+    },
+    clearFeedStatus: function() {
+        this.$.controls.waterfall('onClearFeedStatus');
     }
 });