diff --git a/ghost/admin/app/components/posts/analytics.hbs b/ghost/admin/app/components/posts/analytics.hbs index adeb85114a..2afb5b240a 100644 --- a/ghost/admin/app/components/posts/analytics.hbs +++ b/ghost/admin/app/components/posts/analytics.hbs @@ -147,7 +147,7 @@ {{/if}}
{{/if}} diff --git a/ghost/admin/app/controllers/mentions.js b/ghost/admin/app/controllers/mentions.js index fd7e4a08bc..f36839a40f 100644 --- a/ghost/admin/app/controllers/mentions.js +++ b/ghost/admin/app/controllers/mentions.js @@ -2,6 +2,10 @@ import Controller from '@ember/controller'; export default class MentionsController extends Controller { get mentionsInfinityModel() { - return this.model; + return this.model.mentions; + } + + get post() { + return this.model.post; } } diff --git a/ghost/admin/app/router.js b/ghost/admin/app/router.js index f1f167d9a0..166e86b4f2 100644 --- a/ghost/admin/app/router.js +++ b/ghost/admin/app/router.js @@ -30,6 +30,7 @@ Router.map(function () { this.route('posts'); this.route('posts.analytics', {path: '/posts/analytics/:post_id'}); + this.route('posts.mentions', {path: '/posts/analytics/:post_id/mentions'}); this.route('posts.debug', {path: '/posts/analytics/:post_id/debug'}); this.route('pages'); @@ -55,7 +56,7 @@ Router.map(function () { this.route('settings.code-injection', {path: '/settings/code-injection'}); this.route('settings.history', {path: '/settings/history'}); this.route('settings.analytics', {path: '/settings/analytics'}); - + // testing websockets this.route('websockets'); diff --git a/ghost/admin/app/routes/mentions.js b/ghost/admin/app/routes/mentions.js index b5aa4cb78e..b716756b5b 100644 --- a/ghost/admin/app/routes/mentions.js +++ b/ghost/admin/app/routes/mentions.js @@ -1,4 +1,5 @@ import AuthenticatedRoute from 'ghost-admin/routes/authenticated'; +import RSVP from 'rsvp'; import {inject as service} from '@ember/service'; export default class MentionsRoute extends AuthenticatedRoute { @@ -15,7 +16,7 @@ export default class MentionsRoute extends AuthenticatedRoute { } } - model() { + model(params) { const perPage = this.perPage; const paginationParams = { perPageParam: 'limit', @@ -25,6 +26,13 @@ export default class MentionsRoute extends AuthenticatedRoute { const paginationSettings = {perPage, startingPage: 1, order: 'created_at desc', ...paginationParams}; - return this.infinity.model('mention', paginationSettings); + if (params.post_id) { + paginationSettings.filter = `resource_id:${params.post_id}+resource_type:post`; + } + + return RSVP.hash({ + mentions: this.infinity.model('mention', paginationSettings), + post: params.post_id ? this.store.findRecord('post', params.post_id) : null + }); } } diff --git a/ghost/admin/app/routes/posts/mentions.js b/ghost/admin/app/routes/posts/mentions.js new file mode 100644 index 0000000000..4964e1d45e --- /dev/null +++ b/ghost/admin/app/routes/posts/mentions.js @@ -0,0 +1,6 @@ +import MentionsRoute from '../mentions'; + +export default class PostsMentionsRoute extends MentionsRoute { + controllerName = 'mentions'; + templateName = 'mentions'; +} diff --git a/ghost/admin/app/templates/mentions.hbs b/ghost/admin/app/templates/mentions.hbs index 6025bdc65d..f5d786a6b3 100644 --- a/ghost/admin/app/templates/mentions.hbs +++ b/ghost/admin/app/templates/mentions.hbs @@ -1,29 +1,33 @@