Commit 633e65b4 authored by Nick Poulden's avatar Nick Poulden
Browse files

Commenting fixes

parent 70c7146e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ Ext.define('Docs.controller.Auth', {
    requires: ['Ext.util.Cookies'],

    // authServer: 'http://projects.sencha.com/auth',
    authServer: 'http://127.0.0.1/sencha/jsduck_out/auth',
    authServer: 'http://192.168.1.237/sencha/jsduck_out/auth',

    refs: [
         {
+2 −2
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ Ext.define('Docs.controller.Comments', {
    extend: 'Ext.app.Controller',

    // baseUrl: 'http://projects.sencha.com/auth',
    baseUrl: 'http://127.0.0.1/sencha/jsduck_out/auth',
    baseUrl: 'http://192.168.1.237/sencha/jsduck_out/auth',

    mixins: {
        authMixin: 'Docs.controller.AuthHelpers'
@@ -227,7 +227,7 @@ Ext.define('Docs.controller.Comments', {
                    Ext.get(voteEl).removeCls('selected');
                });
                if (data.direction === 'up' || data.direction === 'down') {
                    Ext.get(meta.query('.vote a.' + data.direction)[0]).addCls('selected');
                    Ext.get(meta.query('.vote a.voteComment' + (data.direction == 'up' ? 'Up' : 'Down'))[0]).addCls('selected');
                }
                scoreEl.update(String(data.total));
            },
+15 −21
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ Ext.define('Docs.controller.CommentsMeta', {
    extend: 'Ext.app.Controller',

    // baseUrl: 'http://projects.sencha.com/auth',
    baseUrl: 'http://127.0.0.1/sencha/jsduck_out/auth',
    baseUrl: 'http://192.168.1.237/sencha/jsduck_out/auth',

    refs: [
        {
@@ -52,11 +52,7 @@ Ext.define('Docs.controller.CommentsMeta', {

        this.getController('Classes').on({
            showIndex: function() {
                if (!this.commentMetaTotals) {
                    this.renderMetaToClassIndex = true;
                } else if (!this.renderedMetaToClassIndex) {
                    this.updateClassIndex();
                }
                Docs.view.Comments.updateClassIndex();
            },
            showClass: function(cls, opts) {
                if (opts.reRendered) {
@@ -69,16 +65,8 @@ Ext.define('Docs.controller.CommentsMeta', {

        this.control({
            '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
                        });
                    }
                refresh : function(cmp) {
                    Docs.view.Comments.renderHoverMenuMeta(cmp.el, {refresh: true});
                }
            }
        });
@@ -134,13 +122,18 @@ Ext.define('Docs.controller.CommentsMeta', {
        });
    },

    updateMeta: function(key, value) {
    /**
     * Update comment count info
     * @param key Path to class / property
     * @param delta Difference to comment number
     */
    updateMeta: function(key, delta) {
        Docs.commentMeta[key[0]] = Docs.commentMeta[key[0]] || {};
        Docs.commentMeta[key[0]][key[1]] = Docs.commentMeta[key[0]][key[1]] || { total: 0 };
        Docs.commentMeta[key[0]][key[1]][key[2]] = Docs.commentMeta[key[0]][key[1]][key[2]] || 0;

        Docs.commentMeta[key[0]][key[1]][key[2]] += value;
        Docs.commentMeta[key[0]][key[1]]['total'] += value;
        Docs.commentMeta[key[0]][key[1]][key[2]] += delta;
        Docs.commentMeta[key[0]][key[1]]['total'] += delta;
    },

    /**
@@ -154,8 +147,9 @@ Ext.define('Docs.controller.CommentsMeta', {
        if (cls.members) {
            for(member in cls.members) {
                Ext.Array.each(cls.members[member], function(memberItem) {
                    key = ['class', cls.name, memberItem.id];
                    commentId = 'comments-' + key.join('-').replace(/\./g, '-');
                    origKey = ['class', cls.name, memberItem.id];
                    key = ['class', memberItem.owner, memberItem.id];
                    commentId = 'comments-' + origKey.join('-').replace(/\./g, '-');
                    Docs.commentMeta.idMap[commentId] = key;
                }, this);
            }
+52 −29
Original line number Diff line number Diff line
@@ -175,7 +175,7 @@ Ext.define('Docs.view.Comments', {
        // Insert class level comment container under class intro docs
        this.classCommentsTpl.insertFirst(Ext.query('.members')[0], {
            num: 0,
            id: 'class-' + cls.name.replace('.', '-')
            id: 'class-' + cls.name.replace(/\./g, '-')
        });

        // Add a comment container to each class member
@@ -194,7 +194,8 @@ Ext.define('Docs.view.Comments', {
    updateClassCommentMeta: function(cls) {

        var clsMeta = Docs.commentMeta['class'][cls];
        if (clsMeta) {

        if (clsMeta && clsMeta['']) {

            // Update toolbar icon
            Ext.getCmp('classCommentToolbarBtn').update(clsMeta['']);
@@ -203,49 +204,71 @@ Ext.define('Docs.view.Comments', {
            this.numCommentsTpl.overwrite(Ext.get(Ext.query('#m-comment a.name')[0]), {
                num: clsMeta['']
            });
        } else {
            // Update toolbar icon
            Ext.getCmp('classCommentToolbarBtn').update('0');

            // Update class member comments meta
            for (var memberId in clsMeta) {
                if (memberId == '' || memberId == 'total') continue;
            // Update class level comments meta
            this.numCommentsTpl.overwrite(Ext.get(Ext.query('#m-comment a.name')[0]), {
                num: 0
            });
        }

                var memberEl = Ext.get(Ext.query('#' + memberId)[0]);
        // Update class member comments meta
        Ext.Array.each(Ext.query('.member'), function(memberDom) {

                if (memberEl) {
                    var commentsWrap = memberEl.down('.comments a.name'),
            var memberEl = Ext.get(memberDom),
                memberId = memberEl.getAttribute('id'),
                memberCls = memberEl.down('.meta .docClass').getAttribute('rel'),
                commentsWrap = memberEl.down('.comments a.name'),
                memberTitle = memberEl.down('.title'),
                numComments = Docs.commentMeta['class'][memberCls] && Docs.commentMeta['class'][memberCls][memberId],
                memberTitleComments = memberTitle.down('.toggleMemberComments');

            // console.log('updating', memberId, numComments, memberTitleComments)

            if (numComments) {
                this.numCommentsTpl.overwrite(commentsWrap, {
                        num: clsMeta[memberId]
                    num: numComments
                });

                if (memberTitleComments) {
                        memberTitleComments.update(clsMeta[memberId]);
                    memberTitleComments.update(String(numComments));
                } else {
                        this.memberCommentsTpl.append(memberTitle, [clsMeta[memberId]]);
                    }
                }
                    this.memberCommentsTpl.append(memberTitle, [numComments]);
                }
            } else {
                if (memberTitleComments) memberTitleComments.remove();
            }

        }, this);

        this.updateClassIndex();
        Ext.Array.each(Ext.ComponentQuery.query('hovermenu'), function(m) {
            m.fireEvent('refresh', this)
        });
    },

    renderHoverMenuMeta: function(cmp) {

        var commentsMeta = Docs.App.getController('CommentsMeta').commentMeta;

        Ext.Array.each(cmp.query('a.docClass'), function(a) {
            var rel = a.getAttribute('rel').replace(/^([^-]+\-)/, ''),
                relEl = Ext.get(rel);

            if (relEl) {
                var docClass = relEl.down('.meta a.docClass'),
                    clsName = docClass.getAttribute('rel'),
                    memberId = clsName + '-' + rel;
            var rel = "comments-class-" + a.getAttribute('rel').replace(/[^A-Za-z\-]/g, '-'),
                relEl = Ext.get(a),
                memberComments = relEl.down('.toggleMemberComments'),
                key = Docs.commentMeta.idMap[rel];

            if (key && Docs.commentMeta[key[0]] && Docs.commentMeta[key[0]][key[1]]) {
                var meta = Docs.commentMeta[key[0]][key[1]][key[2]];

                if (commentsMeta[memberId]) {
                    this.memberCommentsTpl.append(a, [commentsMeta[memberId] || 0]);
                if (memberComments) {
                    if (!meta) {
                        memberComments.remove()
                    } else {
                        memberComments.update(String(meta));
                    }
                } else if (meta) {
                    this.memberCommentsTpl.append(a, [meta || 0]);
                }
            }
        }, this);