const AuthLogin = {
    route : 'auth/login',
    templateUrl : 'js/app/views/auth/loginform.html',
    create : function( p )
    {
        this.container = this.app.UI.getContentContainer();

        const $container =  $( this.container );
        const self = this;

        this.render();

        $container.find( '[f-id="btn-login"]' ).first().click( function()
        {
            $container.find( '[f-id="alert-login-error"]' ).first().hide();

            self.app.rpc.call(
                'Auth',
                'loginManager',
                {
                    email : $.trim( $container.find( '[f-id="input-email"]' ).first().val() ),
                    password : $.trim( $container.find(  '[f-id="input-password"]' ).first().val() )
                },
                function( res )
                {
                    if ( res.data.hasOwnProperty( 'err' ) )
                    {
                        let loginError = '';
                        switch ( res.data.err )
                        {
                            case 'not_found':
                                loginError = 'Account nicht gefunden.';
                                break;

                            case 'not_validated':
                                loginError = 'Account nicht validiert.';
                                break;

                            case 'no_admin_teams':
                                loginError = 'Ihr Account hat keine Adminrechte.';
                                break;

                            default:
                                loginError = 'Fehler bei der Anmeldung.';
                        }

                        $container.find( '[f-id="alert-login-error"]' ).first().html( loginError ).show();
                    }
                    else
                    {
                        // Login
                        self.app.user.init( res.data.session.token, res.data.userProfile, res.data.teams, res.data.zContracts );
                        self.app.UI.onUserUpdate();
                        self.redirect( 'dashboard/' + self.app.user.activeGroupId );
                    }

                }
            );
        });
    },
    destroy : function()
    {

    }
};

export { AuthLogin };