kind: "Control",
style: "float: right",
classes: "blerg-controls",
+ username: null,
published: {
loggedIn: false
},
+ handlers: {
+ onLogin: "login",
+ onLogout: "logout"
+ },
components: [
{name: "loggedOutControls", components: [
- {tag: "form", onsubmit: "doLogin", classes: "login", components: [
+ {tag: "form", onsubmit: "loginClicked", classes: "login", components: [
{kind: "onyx.Groupbox", components: [
{kind: "onyx.InputDecorator", components: [
{name: "username", kind: "onyx.Input", placeholder: "Username"}
{name: "password", kind: "onyx.Input", placeholder: "Password", type: "password"}
]},
]},
- {kind: "onyx.Button", content: "Login", onclick: "doLogin"}
+ {kind: "onyx.Button", content: "Login", onclick: "loginClicked"}
]}
]},
{name: "loggedInControls", showing: false, components: [
- {name: "greeting"},
- {kind: "onyx.Toolbar", components: [
- {kind: "onyx.Button", content: "Write", onClick: "writeClicked"},
- {kind: "onyx.Button", content: "Hearsay", onClick: "chatterClicked"},
- {kind: "onyx.Button", content: "Stalking", onClick: "feedClicked"}
+ {name: "greeting", components: [
+ {noDom: true, content: "Hello, "},
+ {name: "userlink", tag: "a"},
+ {noDom: true, content: "."}
+ ]},
+ {classes: "onyx-toolbar-inline", components: [
+ {kind: "onyx.Button", content: "Write", onclick: "writeClicked"},
+ {kind: "onyx.Button", content: "Hearsay", onclick: "chatterClicked"},
+ {kind: "onyx.Button", content: "Stalking", onclick: "feedClicked"},
+ {kind: "onyx.Button", content: "Logout", onclick: "logoutClicked"}
]},
{components: [
{name: "rssButton", showing: false, kind: "blerg.Link", components: [
this.$.loggedInControls.hide();
}
},
- doLogin: function() {
+ loginClicked: function(inSender, inEvent) {
this.bubble('onTryLogin', {
username: this.$.username.getValue(),
password: this.$.password.getValue()
});
+ inEvent.preventDefault();
+ return true;
+ },
+ logoutClicked: function() {
+ this.bubble('onTryLogout');
+ },
+ login: function(inSender, inEvent) {
+ this.$.password.setValue('');
+ this.setLoggedIn(true);
+ this.$.userlink.setAttribute('href', '/#' + inEvent.username);
+ this.$.userlink.setContent('@' + inEvent.username);
+ this.username = inEvent.username;
+ },
+ logout: function(inSender, inEvent) {
+ this.setLoggedIn(false);
}
});