handlers: {
onLogin: "login",
onLogout: "logout",
- onPostVisibility: "postVisibilityUpdate"
+ onPostVisibility: "postVisibilityUpdate",
+ onClearFeedStatus: "clearFeedStatus"
},
components: [
{name: "loggedOutControls", components: [
{tag: "form", onsubmit: "loginClicked", classes: "login", components: [
{kind: "onyx.Groupbox", components: [
{kind: "onyx.InputDecorator", components: [
- {name: "username", kind: "onyx.Input", placeholder: "Username"}
+ {name: "username", kind: "onyx.Input", placeholder: "Username", attributes: {tabindex: 1}}
]},
{kind: "onyx.InputDecorator", components: [
- {name: "password", kind: "onyx.Input", placeholder: "Password", type: "password"}
+ {name: "password", kind: "onyx.Input", placeholder: "Password", type: "password", attributes: {tabindex: 2}}
]},
]},
- {kind: "onyx.Button", content: "Login", onclick: "loginClicked"}
+ {kind: "onyx.Button", content: "Login", onclick: "loginClicked", attributes: {tabindex: 3}}
]}
]},
{name: "loggedInControls", showing: false, components: [
- {name: "greeting", components: [
- {noDom: true, content: "Hello, "},
+ {name: "greeting", classes: "blerg-controls-greeting", components: [
+ {tag: null, content: "Hello, "},
{name: "userlink", tag: "a"},
- {noDom: true, content: ". "},
+ {tag: null, content: ". "},
{kind: "blerg.Link", content: "Logout", onNavigate: "logoutClicked"},
- {noDom: true, content: "."}
- ]},
- {components: [
- {name: "rssButton", kind: "blerg.Link", showing: false, components: [
- {kind: "Image", src: "/images/rss.png", width: 16, height: 16},
- {noDom: true, content: " RSS"}
- ]}
+ {tag: null, content: "."},
+ {tag: "br"},
+ {kind: "blerg.Link", content: "Change Password", onNavigate: "changePasswordClicked"},
+ {tag: null, content: "."}
]},
{classes: "blerg-controls-toolbar", components: [
{kind: "onyx.Button", content: "Feed Your Vanity", onclick: "chatterClicked"},
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});
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) {
feedClicked: function() {
window.location.href = '/#/feed';
this.bubble('onNavigate');
+ },
+ clearFeedStatus: function() {
+ this.gotFeedInfo(this, {new: 0});
}
});