forked from verdnatura/hedera-web
102 lines
1.6 KiB
JavaScript
Executable File
102 lines
1.6 KiB
JavaScript
Executable File
|
|
Vn.includeCss ('js/hedera/login.css');
|
|
Vn.resource ('js/hedera/login.xml');
|
|
Vn.define (function () {
|
|
|
|
Vn.Login = new Class
|
|
({
|
|
Extends: Htk.Widget,
|
|
Properties:
|
|
{
|
|
conn:
|
|
{
|
|
type: Db.Conn
|
|
,set: function (x)
|
|
{
|
|
this.link ({_conn: x}, {'loading-changed': this._onConnLoadChange});
|
|
}
|
|
,get: function ()
|
|
{
|
|
return this._conn;
|
|
}
|
|
}
|
|
}
|
|
|
|
,initialize: function (props)
|
|
{
|
|
this.builderInit ('js/hedera/login.xml');
|
|
|
|
var self = this;
|
|
this.$('form').onsubmit = function ()
|
|
{
|
|
self._onSubmit ();
|
|
return false;
|
|
};
|
|
|
|
this.parent (props);
|
|
}
|
|
|
|
,_onConnLoadChange: function (conn, isLoading)
|
|
{
|
|
this._disableUi (isLoading);
|
|
}
|
|
|
|
,_disableUi: function (disabled)
|
|
{
|
|
if (disabled)
|
|
this.$('spinner').start ();
|
|
else
|
|
this.$('spinner').stop ();
|
|
|
|
this.$('user').disabled = disabled;
|
|
this.$('pass').disabled = disabled;
|
|
this.$('submit').disabled = disabled;
|
|
}
|
|
|
|
,show: function ()
|
|
{
|
|
document.body.appendChild (this.node);
|
|
|
|
if (Vn.Cookie.check ('vn_user'))
|
|
this.$('user').value = Vn.Cookie.get ('vn_user');
|
|
|
|
this._focusUserInput ();
|
|
}
|
|
|
|
,hide: function ()
|
|
{
|
|
Vn.Node.remove (this.node);
|
|
}
|
|
|
|
,_focusUserInput: function ()
|
|
{
|
|
var userEntry = this.$('user');
|
|
userEntry.focus ();
|
|
userEntry.select ();
|
|
}
|
|
|
|
,_onSubmit: function ()
|
|
{
|
|
this._conn.open (
|
|
this.$('user').value,
|
|
this.$('pass').value,
|
|
this.$('remember').value,
|
|
this._onConnOpen.bind (this)
|
|
);
|
|
}
|
|
|
|
,_onConnOpen: function (conn, success)
|
|
{
|
|
this.$('pass').value = '';
|
|
|
|
if (!success)
|
|
Htk.Toast.showError (_('Invalid login'));
|
|
else
|
|
this.signalEmit ('login');
|
|
|
|
this._focusUserInput ();
|
|
}
|
|
});
|
|
|
|
});
|