0
1
Fork 0
hedera-web-mindshore/js/hedera/login.js

130 lines
2.2 KiB
JavaScript

var Css = require ('./login.css');
var Tpl = require ('./login.xml');
module.exports = new Class
({
Extends: Htk.Component,
Properties:
{
conn:
{
type: Db.Connection
,set: function (x)
{
this.link ({_conn: x}, {'loading-changed': this._onConnLoadChange});
}
,get: function ()
{
return this._conn;
}
}
}
,initialize: function (props)
{
this.parent (props);
this.builderInitString (Tpl);
this.$('social-bar').conn = this._conn;
var self = this;
this.$('form').onsubmit = function ()
{
self._onSubmit ();
return false;
};
}
,_onConnLoadChange: function (conn, isLoading)
{
if (isLoading)
this.$('spinner').start ();
else
this.$('spinner').stop ();
}
,show: function ()
{
document.body.appendChild (this.node);
var lastUser = localStorage.getItem ('hederaLastUser');
if (lastUser)
this.$('user').value = lastUser;
this._focusUserInput ();
}
,_onSubmit: function ()
{
this._conn.open (
this.$('user').value,
this.$('pass').value,
this.$('remember').checked,
this._onConnOpen.bind (this)
);
this._disableUi (true);
}
,_onConnOpen: function (conn, success, error)
{
this.$('pass').value = '';
this._disableUi (false);
if (success)
{
var user = this.$('user').value;
if (user)
localStorage.setItem ('hederaLastUser', user);
this.signalEmit ('login');
}
else
{
this._focusUserInput ();
throw error;
}
}
,hide: function ()
{
Vn.Node.remove (this.node);
}
,_focusUserInput: function ()
{
var userEntry = this.$('user');
userEntry.focus ();
userEntry.select ();
}
,_disableUi: function (disabled)
{
this.$('user').disabled = disabled;
this.$('pass').disabled = disabled;
this.$('submit').disabled = disabled;
}
,onPasswordLost: function ()
{
var user = this.$('user').value;
if (!user)
Htk.Toast.showError (_('Please write your user name'));
else
this._conn.send ('core/recover-password', {'recoverUser': user},
this._onPasswordRecovered.bind (this));
}
,_onPasswordRecovered: function (json, error)
{
if (error)
throw error;
Htk.Toast.showMessage (_('A mail has been sent wich you can recover your password'));
}
});