Commit 4a6f3ade authored by Nick Poulden's avatar Nick Poulden
Browse files

IE commenting fixes

parent 04b2de3b
Loading
Loading
Loading
Loading
+32 −8
Original line number Diff line number Diff line
@@ -12,6 +12,8 @@ Ext.define('Docs.controller.Auth', {
        }
    ],

    enabled: true,

    init: function() {

        this.sid = Ext.util.Cookies.get('sid');
@@ -30,6 +32,10 @@ Ext.define('Docs.controller.Auth', {
            "loggedOut"
        );

        if (Ext.isIE) {
            this.enabled = Ext.ieVersion >= 8;
        }

        this.control({
            'authentication': {
                afterrender: function(cmp) {
@@ -48,8 +54,7 @@ Ext.define('Docs.controller.Auth', {
                    });

                    this.getSession();
                },
                login: this.login
                }
            }
        });
    },
@@ -59,6 +64,10 @@ Ext.define('Docs.controller.Auth', {
     */
    getSession: function() {

        if (!this.enabled) {
            return;
        }

        // if (window.XDomainRequest) {
        //     xdr = new XDomainRequest();
        //     if (xdr) {
@@ -80,15 +89,16 @@ Ext.define('Docs.controller.Auth', {
            method: 'GET',
            cors: true,
            callback: function(options, success, response) {
                if (success) {

                if (response && response.responseText) {
                    this.currentUser = JSON.parse(response.responseText);
                }

                if (this.currentUser) {
                    this.loggedIn();
                } else {
                    this.getAuth().showLoggedOut();
                }
                }
            },
            scope: this
        });
@@ -186,5 +196,19 @@ 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;
    }
});
+27 −7
Original line number Diff line number Diff line
@@ -20,10 +20,20 @@ Ext.define('Docs.controller.Comments', {

    init: function() {

        this.addEvents('afterMetaLoad');

        this.getController('Classes').on({
            showClass: function(cls, opts) {
                if (opts.reRendered) {
                    if (this.commentMeta) {
                        Docs.view.Comments.renderCommentMeta();
                    } else {
                        this.addListener('afterMetaLoad', function() {
                            Docs.view.Comments.renderCommentMeta();
                        }, this, {
                            single: true
                        });
                    }
                }
            },
            showIndex: function() {
@@ -82,7 +92,15 @@ Ext.define('Docs.controller.Comments', {

            'hovermenu': {
                viewready : function(cmp) {
                    if (this.commentMeta) {
                        Docs.view.Comments.renderHoverMenuMeta(cmp.el);
                    } else {
                        this.addListener('afterMetaLoad', function() {
                            Docs.view.Comments.renderHoverMenuMeta(cmp.el);
                        }, this, {
                            single: true
                        });
                    }
                }
            }
        });
@@ -97,7 +115,7 @@ Ext.define('Docs.controller.Comments', {
            method: 'GET',
            params: {
                reduce: true,
                group_level: 3,
                group_level: 3
            },
            success: function(response) {

@@ -109,6 +127,8 @@ Ext.define('Docs.controller.Comments', {
                    this.updateMeta(r.key, r.value.num);
                }, this);

                this.fireEvent('afterMetaLoad');

                if (this.renderMetaToClassIndex) {
                    this.updateClassIndex();
                }
@@ -119,8 +139,8 @@ Ext.define('Docs.controller.Comments', {

    fetchComments: function(id, callback) {

        var startkey = JSON.stringify(this.commentId(id)),
            endkey = JSON.stringify(this.commentId(id).concat([{}])),
        var startkey = Ext.JSON.encode(this.commentId(id)),
            endkey = Ext.JSON.encode(this.commentId(id).concat([{}])),
            currentUser = this.getController('Auth').currentUser;

        Ext.data.JsonP.request({
@@ -148,7 +168,7 @@ Ext.define('Docs.controller.Comments', {
        var comments = Ext.get(el).up('.comments'),
            id = comments.getAttribute('id'),
            comment = comments.down('textarea').getValue(),
            target = JSON.stringify(this.commentId(id));
            target = Ext.JSON.encode(this.commentId(id));

        Ext.Ajax.request({
            url: this.addSid(this.baseUrl + '/comments'),
@@ -232,7 +252,7 @@ Ext.define('Docs.controller.Comments', {
            method: 'POST',
            params: { vote: direction },
            callback: function(options, success, response) {
                var data = JSON.parse(response.responseText);
                var data = Ext.JSON.parse(response.responseText);

                Ext.Array.each(meta.query('.vote a'), function(voteEl) {
                    Ext.get(voteEl).removeCls('selected');
+15 −7
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ Ext.define('Docs.view.Comments', {
        this.commentsMetaTpl = Ext.create('Ext.XTemplate', commentsMeta.join(''));

        this.memberCommentsTpl = Ext.create('Ext.Template',
            '<strong class="member-comments">{0}</strong>'
            '<span class="member-comments">{0}</span>'
        );

        var commentTplHtml = [
@@ -129,12 +129,20 @@ Ext.define('Docs.view.Comments', {
            '</div>'
        );

        if (Ext.isIE && Ext.ieVersion <= 7) {
            this.loggedOutCommentTpl = Ext.create('Ext.XTemplate',
                '<div class="new-comment">',
                    '<span class="new-comment-a"><span></span>Sorry, adding comments is only supported in IE 8+</span>',
                '</div>'
            );
        } else {
            this.loggedOutCommentTpl = Ext.create('Ext.XTemplate',
                '<div class="new-comment">',
                    '<span class="new-comment-a"><span></span>Sign in to post a comment:</span>',
                    Docs.view.auth.Login.prototype.loginTplHtml.join(''),
                '</div>'
            );
        }
    },

    renderCommentMeta: function() {
+2 −42
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@ Ext.define('Docs.view.auth.Login', {
    alias: 'widget.authentication',

    loginTplHtml: [
        '<form class="loginForm">',
        '<form class="loginForm" onsubmit="return Docs.App.getController(\'Auth\').submitLogin(this);">',
            '<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>',
@@ -14,36 +14,8 @@ Ext.define('Docs.view.auth.Login', {
    ],

    initComponent: function() {
        this.addEvents(
            /**
             * @event
             * Fired when the user clicks 'login'
             */
            "login",

            /**
             * @event
             * Fired when the user clicks 'logout'
             */
            "logout",

            /**
             * @event
             * Fired when the login form is submitted
             * @param {String} username
             * @param {String} password
             */
            "authenticate"
        );

        this.loginTpl = Ext.create('Ext.Template', this.loginTplHtml.join(''));

        this.callParent(arguments);

        Ext.getBody().addListener('submit', this.loginSubmit, this, {
            preventDefault: true,
            delegate: '.loginForm'
        });
    },

    showLogin: function() {
@@ -56,18 +28,6 @@ Ext.define('Docs.view.auth.Login', {

    showLoggedOut: function(username) {
        this.update('<a href="#" class="login">Sign in / Register</a>');
    },

    loginSubmit: function(e, 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.fireEvent('login', username, password, remember, submitEl);
    }

});
+3 −2
Original line number Diff line number Diff line
@@ -689,9 +689,10 @@ a {
    border-color: #e0e0e0;
    position: relative;
    padding: 0 0 10px 25px;
    min-height: 40px;
    @include member-expander;
    .name { padding-top: 10px; display: block; font-weight: normal !important; }
    .name { padding: 10px 0 0 0; display: block; font-weight: normal !important; }
    &.open {
      min-height: 40px; }
    .new-comment {
      form.loginForm {
        position: relative;