diff --git a/www/admin/inner.js b/www/admin/inner.js index 7478442c5..6c0d25da8 100644 --- a/www/admin/inner.js +++ b/www/admin/inner.js @@ -172,6 +172,12 @@ define([ if (!supportKey || !APP.privateKey) { return; } var $container = makeBlock('support-list'); var $div = $(h('div.cp-support-container')).appendTo($container); + + var metadataMgr = common.getMetadataMgr(); + var privateData = metadataMgr.getPrivateData(); + var cat = privateData.category || ''; + var linkedId = cat.indexOf('-') !== -1 && cat.slice(8); + var hashesById = {}; var reorder = function () { @@ -200,6 +206,8 @@ define([ }); }; + var to; + // Register to the "support" mailbox common.mailbox.subscribe(['supportadmin'], { onMessage: function (data) { @@ -246,6 +254,15 @@ define([ } $ticket.append(APP.support.makeMessage(content, hash)); reorder(); + + if (linkedId) { + clearTimeout(to); + to = setTimeout(function () { + var $ticket = $div.find('.cp-support-list-ticket[data-id="'+linkedId+'"]'); + $ticket[0].scrollIntoView(); + linkedId = undefined; + }, 100); + } } }); return $container; @@ -312,6 +329,9 @@ define([ var metadataMgr = common.getMetadataMgr(); var privateData = metadataMgr.getPrivateData(); var active = privateData.category || 'general'; + if (active.indexOf('-') !== -1) { + active = active.split('-')[0]; + } common.setHash(active); Object.keys(categories).forEach(function (key) { var $category = $('
', {'class': 'cp-sidebarlayout-category'}).appendTo($categories); diff --git a/www/support/ui.js b/www/support/ui.js index c008e219c..2038d8ddd 100644 --- a/www/support/ui.js +++ b/www/support/ui.js @@ -5,8 +5,9 @@ define([ '/common/common-interface.js', '/common/common-hash.js', '/common/common-util.js', + '/common/clipboard.js', '/customize/messages.js', -], function ($, ApiConfig, h, UI, Hash, Util, Messages) { +], function ($, ApiConfig, h, UI, Hash, Util, Clipboard, Messages) { var send = function (ctx, id, type, data, dest) { var common = ctx.common; @@ -119,6 +120,10 @@ define([ }; var makeTicket = function (ctx, $div, content, onHide) { + var common = ctx.common; + var metadataMgr = common.getMetadataMgr(); + var privateData = metadataMgr.getPrivateData(); + var ticketTitle = content.title + ' (#' + content.id + ')'; var answer = h('button.btn.btn-primary.cp-support-answer', Messages.support_answer); var close = h('button.btn.btn-danger.cp-support-close', Messages.support_close); @@ -130,10 +135,20 @@ define([ hide ]); + var url; + if (ctx.isAdmin) { + url = h('button.btn.btn-primary.fa.fa-clipboard'); + $(url).click(function () { + var link = privateData.origin + privateData.pathname + '#' + 'support-' + content.id; + var success = Clipboard.copy(link); + if (success) { UI.log(Messages.shareSuccess); } + }); + } + var $ticket = $(h('div.cp-support-list-ticket', { 'data-id': content.id }, [ - h('h2', ticketTitle), + h('h2', [ticketTitle, url]), actions ]));