Skip to content

Commit 06fdc53

Browse files
committed
Changes implemented from 1B
1 parent 40c56f9 commit 06fdc53

File tree

1 file changed

+86
-90
lines changed

1 file changed

+86
-90
lines changed

src/controllers/recent.js

Lines changed: 86 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -13,107 +13,103 @@ const recentController = module.exports;
1313
const relative_path = nconf.get('relative_path');
1414

1515
function 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-
2524
function 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

3938
recentController.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

4846
recentController.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

118115
require('../promisify')(recentController, ['get']);
119-

0 commit comments

Comments
 (0)