define [ "../session", "dijit/_WidgetBase", "dijit/_TemplatedMixin", "dijit/_WidgetsInTemplateMixin", "dijit/registry", "dojo/_base/declare", "dojo/_base/event", "dojo/_base/lang", "dojo/on", "dojo/text!./templates/LoginDialogWrapper.html" ], (session, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, registry, declare, event, lang, _on, template) -> declare [_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin], templateString: template startup: () -> if @_started then return @inherited arguments _on session, 'change', (lang.hitch @, 'onUserChange') @onUserChange session.get() onLogin: (evt) -> if @loginForm.validate() value = @loginForm.get 'value' session.login value.username, value.password .then () => @loginDialog.hide() , () => alert "Login failed!" event.stop evt if evt false onUserChange: (user) -> if user @loginDialog.hide() else @loginDialog.show() null