diff --git a/www/poll/inner.js b/www/poll/inner.js index 67fc8e796..18f1eb845 100644 --- a/www/poll/inner.js +++ b/www/poll/inner.js @@ -686,6 +686,8 @@ define([ var getCommentId = Render.Uid('c'); var removeComment = function (uid) { + var idx = APP.proxy.commentsOrder.indexOf(uid); + if (idx !== -1) { APP.proxy.commentsOrder.splice(idx, 1); } delete APP.proxy.comments[uid]; APP.updateComments(); }; @@ -695,6 +697,7 @@ define([ var avatars = {}; var updateComments = APP.updateComments = function () { if (!APP.proxy.comments) { APP.proxy.comments = {}; } + if (!APP.proxy.commentsOrder) { APP.proxy.commentsOrder = []; } var profile; if (common.isLoggedIn()) { @@ -703,10 +706,9 @@ define([ var $comments = APP.$comments.html(''); var comments = APP.proxy.comments; - Object.keys(copyObject(comments)).sort(function (a, b) { - return comments[a].time > comments[b].time; - }).forEach(function (k) { + APP.proxy.commentsOrder.forEach(function (k) { var c = comments[k]; + if (!c) { return; } var name = c.name || Messages.anonymous; var $c = $('
', { 'class': 'cp-app-poll-comments-list-el' @@ -770,6 +772,7 @@ define([ }; var addComment = function () { if (!APP.proxy.comments) { APP.proxy.comments = {}; } + if (!APP.proxy.commentsOrder) { APP.proxy.commentsOrder = []; } var name = APP.$addComment.find('.cp-app-poll-comments-add-name').val().trim(); var msg = APP.$addComment.find('.cp-app-poll-comments-add-msg').val().trim(); var time = +new Date(); @@ -783,6 +786,7 @@ define([ } var uid = getCommentId(); + APP.proxy.commentsOrder.push(uid); APP.proxy.comments[uid] = { msg: msg, name: name, @@ -806,7 +810,7 @@ define([ getContainer: function () { return $el[0]; }, filter: function (el, before) { if (before) { - $el.parents().css('overflow', 'visible'); + //$el.parents().css('overflow', 'visible'); $el.css('max-height', Math.max(600, $(el).width()) + 'px'); $el.find('tr td:first-child, tr td:last-child, tr td:nth-last-child(2)') .css('position', 'static'); @@ -816,7 +820,7 @@ define([ $el.find('#cp-app-poll-table-scroll').css('max-width', '100%'); return; } - $el.parents().css('overflow', ''); + //$el.parents().css('overflow', ''); $el.css('max-height', ''); $el.find('#cp-app-poll-comments').css('display', ''); $el.find('#cp-app-poll-table-container').css('text-align', ''); @@ -860,17 +864,23 @@ define([ if (!isNew) { if (proxy.info) { - // Migration?? + // Migration proxy.metadata = proxy.info; delete proxy.info; } if (proxy.table) { - // Migration?? + // Migration proxy.content = proxy.table; delete proxy.table; } checkDeletedCells(); + if (proxy.comments && !proxy.commentsOrder) { // Migration + proxy.commentsOrder = Object.keys(copyObject(proxy.comments)).sort(function (a, b) { + return proxy.comments[a].time > proxy.comments[b].time; + }); + } + if (proxy && proxy.metadata) { metadataMgr.updateMetadata(proxy.metadata); } @@ -1200,6 +1210,17 @@ define([ mode: "markdown", }); + APP.$descriptionPublished.click(function (e) { + if (!e.target) { return; } + var $t = $(e.target); + if ($t.is('a') || $t.parents('a').length) { + e.preventDefault(); + var $a = $t.is('a') ? $t : $t.parents('a').first(); + var href = $a.attr('href'); + if (!href) { return; } + window.open(href); + } + }); var listmapConfig = { data: {},