Commit b7689644 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Move #submitLogin method from controller to view.

It deals with extracting data from form, and the form is described in
view.  So it really is the specifics that should belong to view.

So the view now does the extracting of data and then calls Auth.login().
parent d31299e4
Loading
Loading
Loading
Loading
+4 −19
Original line number Diff line number Diff line
@@ -96,11 +96,10 @@ Ext.define('Docs.controller.Auth', {
     * Authenticates a user
     * @param {String} username
     * @param {String} password
     * @param {Boolean} remember
     * @param {Ext.Element} submitEl
     * @private
     * @param {Boolean} remember True if "Remember Me" was checked.
     * @param {Ext.Element} tipTarget Target where to anchor login failure messages.
     */
    login: function(username, password, remember, submitEl) {
    login: function(username, password, remember, tipTarget) {
        Ext.Ajax.request({
            url: Docs.baseUrl + '/login',
            method: 'POST',
@@ -116,7 +115,7 @@ Ext.define('Docs.controller.Auth', {
                    this.setSid(data.sessionID, { remember: remember });
                    this.setLoggedIn();
                } else {
                    Docs.Tip.show(data.reason, submitEl, 'bottom');
                    Docs.Tip.show(data.reason, tipTarget, 'bottom');
                }
            },
            scope: this
@@ -189,20 +188,6 @@ Ext.define('Docs.controller.Auth', {
        } else {
            Ext.util.Cookies.clear('sid');
        }
    },

    submitLogin: function(el) {
        var form = Ext.get(el),
            username = form.down('input[name=username]').getValue(),
            password = form.down('input[name=password]').getValue(),
            rememberEl = form.down('input[name=remember]'),
            submitEl = form.down('input[type=submit]');

        var remember = rememberEl ? Boolean(rememberEl.getAttribute('checked')) : false;

        this.login(username, password, remember, submitEl);

        return false;
    }

});
+14 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ Ext.define('Docs.view.auth.Login', {
    alias: 'widget.authentication',

    loginTplHtml: [
        '<form class="loginForm" onsubmit="return Docs.App.getController(\'Auth\').submitLogin(this);">',
        '<form class="loginForm">',
            '<input class="username" type="text" name="username" placeholder="Username" />',
            '<input class="password" type="password" name="password" placeholder="Password" />',
            '<label><input type="checkbox" name="remember" /> Remember Me</label>',
@@ -26,6 +26,19 @@ Ext.define('Docs.view.auth.Login', {
     */
    showLoginForm: function() {
        this.update(this.loginTpl.apply());
        this.getEl().down("form").on("submit", this.submitLogin, this, {preventDefault: true});
    },

    submitLogin: function(event, el) {
        var form = Ext.get(el),
            username = form.down('input[name=username]').getValue(),
            password = form.down('input[name=password]').getValue(),
            rememberEl = form.down('input[name=remember]'),
            submitEl = form.down('input[type=submit]');

        var remember = rememberEl ? Boolean(rememberEl.getAttribute('checked')) : false;

        Docs.App.getController('Auth').login(username, password, remember, submitEl);
    },

    /**