@@ -13,107 +13,103 @@ const recentController = module.exports;
1313const relative_path = nconf . get ( 'relative_path' ) ;
1414
1515function setTitleAndBreadcrumbs ( data , url , asHome ) {
16- if ( asHome ) {
17- data . title = meta . config . homePageTitle || '[[pages:home]]' ;
18- return ;
19- }
20- data . title = `[[pages:${ url } ]]` ;
21- data . breadcrumbs = helpers . buildBreadcrumbs ( [ { text : `[[${ url } :title]]` } ] ) ;
16+ if ( asHome ) {
17+ data . title = meta . config . homePageTitle || '[[pages:home]]' ;
18+ return ;
19+ }
20+ data . title = `[[pages:${ url } ]]` ;
21+ data . breadcrumbs = helpers . buildBreadcrumbs ( [ { text : `[[${ url } :title]]` } ] ) ;
2222}
2323
24-
2524function setRssFields ( ctx ) {
26- const { data, url, req, rssToken } = ctx ;
27- const disabled = meta . config [ 'feeds:disableRSS' ] || 0 ;
25+ const { data, url, req, rssToken } = ctx ;
26+ const disabled = meta . config [ 'feeds:disableRSS' ] || 0 ;
2827
29- data [ 'feeds:disableRSS' ] = disabled ;
30- if ( disabled ) return ;
28+ data [ 'feeds:disableRSS' ] = disabled ;
29+ if ( disabled ) return ;
3130
32- let rss = `${ relative_path } /${ url } .rss` ;
33- if ( req . loggedIn ) {
34- rss += `?uid=${ req . uid } &token=${ rssToken } ` ;
35- }
36- data . rssFeedUrl = rss ;
31+ let rss = `${ relative_path } /${ url } .rss` ;
32+ if ( req . loggedIn ) {
33+ rss += `?uid=${ req . uid } &token=${ rssToken } ` ;
34+ }
35+ data . rssFeedUrl = rss ;
3736}
3837
3938recentController . get = async function ( req , res , next ) {
40- const data = await recentController . getData ( req , 'recent' , 'recent' ) ;
41- if ( ! data ) {
42- return next ( ) ;
43- }
44-
45- res . render ( 'recent' , data ) ;
39+ const data = await recentController . getData ( req , 'recent' , 'recent' ) ;
40+ if ( ! data ) {
41+ return next ( ) ;
42+ }
43+ res . render ( 'recent' , data ) ;
4644} ;
4745
4846recentController . getData = async function ( req , url , sort ) {
49- const page = parseInt ( req . query . page , 10 ) || 1 ;
50-
51-
52- const termKey = req . query . term ;
53- let term = termKey ? helpers . terms [ termKey ] : 'alltime' ;
54- if ( termKey && ! term ) return null ;
55-
56- const { cid, tag } = req . query ;
57- const filter = req . query . filter || '' ;
58-
59- const [ settings , categoryData , tagData , rssToken , canPost , isPrivileged ] = await Promise . all ( [
60- user . getSettings ( req . uid ) ,
61- helpers . getSelectedCategory ( cid ) ,
62- helpers . getSelectedTag ( tag ) ,
63- user . auth . getFeedToken ( req . uid ) ,
64- privileges . categories . canPostTopic ( req . uid ) ,
65- user . isPrivileged ( req . uid ) ,
66- ] ) ;
67-
68- const start = Math . max ( 0 , ( page - 1 ) * settings . topicsPerPage ) ;
69- const stop = start + settings . topicsPerPage - 1 ;
70-
71- const data = await topics . getSortedTopics ( {
72- cids : cid ,
73- tags : tag ,
74- uid : req . uid ,
75- start : start ,
76- stop : stop ,
77- filter : filter ,
78- term : term ,
79- sort : sort ,
80- floatPinned : req . query . pinned ,
81- query : req . query ,
82- } ) ;
83-
84- const asHome = ! ( req . originalUrl . startsWith ( `${ relative_path } /api/${ url } ` ) || req . originalUrl . startsWith ( `${ relative_path } /${ url } ` ) ) ;
85- const baseUrl = asHome ? '' : url ;
86- setTitleAndBreadcrumbs ( data , url , asHome ) ;
87-
88- const query = { ...req . query } ;
89- delete query . page ;
90- data . canPost = canPost ;
91- data . showSelect = isPrivileged ;
92- data . showTopicTools = isPrivileged ;
93- data . allCategoriesUrl = baseUrl + helpers . buildQueryString ( query , 'cid' , '' ) ;
94- data . selectedCategory = categoryData . selectedCategory ;
95- data . selectedCids = categoryData . selectedCids ;
96- data . selectedTag = tagData . selectedTag ;
97- data . selectedTags = tagData . selectedTags ;
98-
99-
100- setRssFields ( { data, url, req, rssToken } ) ;
101-
102- data . filters = helpers . buildFilters ( baseUrl , filter , query ) ;
103- data . selectedFilter = data . filters . find ( filter => filter && filter . selected ) ;
104- data . terms = helpers . buildTerms ( baseUrl , term , query ) ;
105- data . selectedTerm = data . terms . find ( term => term && term . selected ) ;
106-
107- const pageCount = Math . max ( 1 , Math . ceil ( data . topicCount / settings . topicsPerPage ) ) ;
108- data . pagination = pagination . create ( page , pageCount , req . query ) ;
109- helpers . addLinkTags ( {
110- url : url ,
111- res : req . res ,
112- tags : data . pagination . rel ,
113- page : page ,
114- } ) ;
115- return data ;
47+ const page = parseInt ( req . query . page , 10 ) || 1 ;
48+
49+ const termKey = req . query . term ;
50+ const term = termKey ? helpers . terms [ termKey ] : 'alltime' ;
51+ if ( termKey && ! term ) return null ;
52+
53+ const { cid, tag } = req . query ;
54+ const filter = req . query . filter || '' ;
55+
56+ const [ settings , categoryData , tagData , rssToken , canPost , isPrivileged ] = await Promise . all ( [
57+ user . getSettings ( req . uid ) ,
58+ helpers . getSelectedCategory ( cid ) ,
59+ helpers . getSelectedTag ( tag ) ,
60+ user . auth . getFeedToken ( req . uid ) ,
61+ privileges . categories . canPostTopic ( req . uid ) ,
62+ user . isPrivileged ( req . uid ) ,
63+ ] ) ;
64+
65+ const start = Math . max ( 0 , ( page - 1 ) * settings . topicsPerPage ) ;
66+ const stop = start + settings . topicsPerPage - 1 ;
67+
68+ const data = await topics . getSortedTopics ( {
69+ cids : cid ,
70+ tags : tag ,
71+ uid : req . uid ,
72+ start : start ,
73+ stop : stop ,
74+ filter : filter ,
75+ term : term ,
76+ sort : sort ,
77+ floatPinned : req . query . pinned ,
78+ query : req . query ,
79+ } ) ;
80+
81+ const asHome = ! ( req . originalUrl . startsWith ( `${ relative_path } /api/${ url } ` ) || req . originalUrl . startsWith ( `${ relative_path } /${ url } ` ) ) ;
82+ const baseUrl = asHome ? '' : url ;
83+ setTitleAndBreadcrumbs ( data , url , asHome ) ;
84+
85+ const query = { ...req . query } ;
86+ delete query . page ;
87+
88+ data . canPost = canPost ;
89+ data . showSelect = isPrivileged ;
90+ data . showTopicTools = isPrivileged ;
91+ data . allCategoriesUrl = baseUrl + helpers . buildQueryString ( query , 'cid' , '' ) ;
92+ data . selectedCategory = categoryData . selectedCategory ;
93+ data . selectedCids = categoryData . selectedCids ;
94+ data . selectedTag = tagData . selectedTag ;
95+ data . selectedTags = tagData . selectedTags ;
96+
97+ setRssFields ( { data, url, req, rssToken } ) ;
98+
99+ data . filters = helpers . buildFilters ( baseUrl , filter , query ) ;
100+ data . selectedFilter = data . filters . find ( f => f && f . selected ) ;
101+ data . terms = helpers . buildTerms ( baseUrl , term , query ) ;
102+ data . selectedTerm = data . terms . find ( t => t && t . selected ) ;
103+
104+ const pageCount = Math . max ( 1 , Math . ceil ( data . topicCount / settings . topicsPerPage ) ) ;
105+ data . pagination = pagination . create ( page , pageCount , req . query ) ;
106+ helpers . addLinkTags ( {
107+ url : url ,
108+ res : req . res ,
109+ tags : data . pagination . rel ,
110+ page : page ,
111+ } ) ;
112+ return data ;
116113} ;
117114
118115require ( '../promisify' ) ( recentController , [ 'get' ] ) ;
119-
0 commit comments