aboutsummaryrefslogtreecommitdiff
path: root/client/js/controllers/comments_controller.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/js/controllers/comments_controller.js')
-rw-r--r--client/js/controllers/comments_controller.js27
1 files changed, 24 insertions, 3 deletions
diff --git a/client/js/controllers/comments_controller.js b/client/js/controllers/comments_controller.js
index 4f0e80e..fbc4896 100644
--- a/client/js/controllers/comments_controller.js
+++ b/client/js/controllers/comments_controller.js
@@ -1,18 +1,39 @@
'use strict';
+const api = require('../api.js');
const page = require('page');
+const misc = require('../util/misc.js');
const topNavController = require('../controllers/top_nav_controller.js');
+const pageController = require('../controllers/page_controller.js');
+const CommentsPageView = require('../views/comments_page_view.js');
const EmptyView = require('../views/empty_view.js');
class CommentsController {
registerRoutes() {
- page('/comments', (ctx, next) => { this._listCommentsRoute(); });
+ page('/comments/:query?',
+ (ctx, next) => { misc.parseSearchQueryRoute(ctx, next); },
+ (ctx, next) => { this._listCommentsRoute(ctx); });
+ this._commentsPageView = new CommentsPageView();
this._emptyView = new EmptyView();
}
- _listCommentsRoute() {
+ _listCommentsRoute(ctx) {
topNavController.activate('comments');
- this._emptyView.render();
+
+ pageController.run({
+ searchQuery: ctx.searchQuery,
+ clientUrl: '/comments/' + misc.formatSearchQuery({page: '{page}'}),
+ requestPage: page => {
+ return api.get(
+ '/posts/?query=sort:comment-date+comment-count-min:1' +
+ `&page=${page}&pageSize=10&fields=` +
+ 'id,comments,commentCount,thumbnailUrl');
+ },
+ pageRenderer: this._commentsPageView,
+ pageContext: {
+ canViewPosts: api.hasPrivilege('posts:view'),
+ }
+ });
}
}

© 2015 - 2026 Jakob L. Kreuze