Loading template/app/controller/Auth.js +1 −1 Original line number Diff line number Diff line Loading @@ -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: [ { Loading template/app/controller/Comments.js +2 −2 Original line number Diff line number Diff line Loading @@ -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' Loading Loading @@ -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)); }, Loading template/app/controller/CommentsMeta.js +15 −21 Original line number Diff line number Diff line Loading @@ -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: [ { Loading Loading @@ -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) { Loading @@ -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}); } } }); Loading Loading @@ -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; }, /** Loading @@ -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); } Loading template/app/view/Comments.js +52 −29 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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['']); Loading @@ -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); Loading Loading
template/app/controller/Auth.js +1 −1 Original line number Diff line number Diff line Loading @@ -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: [ { Loading
template/app/controller/Comments.js +2 −2 Original line number Diff line number Diff line Loading @@ -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' Loading Loading @@ -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)); }, Loading
template/app/controller/CommentsMeta.js +15 −21 Original line number Diff line number Diff line Loading @@ -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: [ { Loading Loading @@ -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) { Loading @@ -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}); } } }); Loading Loading @@ -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; }, /** Loading @@ -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); } Loading
template/app/view/Comments.js +52 −29 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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['']); Loading @@ -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); Loading