define(['dojo/_base/declare','dojo/_base/lang','dojo/_base/event','dijit/Dialog', 'dijit/_WidgetsInTemplateMixin','../auth', 'dojo/text!./templates/LoginDialog.html', '../app/Router','dijit/form/Form','dijit/form/Button','dijit/form/TextBox'], function (declare, lang, event, Dialog, _WidgetsInTemplateMixin, auth, template, content) { return declare([Dialog,_WidgetsInTemplateMixin], { templateString: template, widgetsInTemplate: true, title: "Login/Register", baseClass: "rftLoginDialog", startup: function() { if ( this._started ){ return; } this.inherited(arguments); this.loginForm.on('submit',lang.hitch(this,'onLogin')); }, show: function() { this.loginErrors.innerHTML = ''; this.loginForm.reset(); this.inherited(arguments); }, onLogin: function(evt) { this.loginErrors.innerHTML = ''; var data = this.loginForm.get('value'); auth.login(data.email,data.password) .then(lang.hitch(this,function() { this.hide(); content.initial(); }),lang.hitch(this,function() { this.loginErrors.innerHTML = 'Login failed.'; })); event.stop(evt); return false; }, onRegister: function() { this.loginErrors.innerHTML = ''; var data = this.loginForm.get('value'); auth.register(data.email,data.password) .then(lang.hitch(this,function() { this.hide(); content.initial(); }),lang.hitch(this,function() { this.loginErrors.innerHTML = 'Register failed.'; })); } }); });