Skip to content

Commit aed85ba

Browse files
committed
FEATURE: Allow enabling per-category
1 parent 33796ef commit aed85ba

File tree

3 files changed

+32
-6
lines changed

3 files changed

+32
-6
lines changed

javascripts/discourse/initializers/init-topic-excerpts.js

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
import { withPluginApi } from "discourse/lib/plugin-api";
22
import discourseComputed from "discourse-common/utils/decorators";
3+
import { inject as service } from "@ember/service";
4+
5+
const enabledCategories = settings.enabled_categories
6+
.split("|")
7+
.map((id) => parseInt(id, 10))
8+
.filter((id) => id);
39

410
export default {
511
name: "topic-thumbnails-init",
@@ -11,13 +17,27 @@ export default {
1117
const site = api.container.lookup("site:main");
1218

1319
api.modifyClass("component:topic-list-item", {
14-
@discourseComputed
15-
expandPinned() {
16-
const shouldOverride = site.mobileView
20+
excerptsRouter: service("router"),
21+
22+
@discourseComputed(
23+
"excerptsRouter.currentRouteName",
24+
"excerptsRouter.currentRoute.attributes.category.id"
25+
)
26+
excerptsViewingCategoryId(currentRouteName, categoryId) {
27+
if (!currentRouteName.match(/^discovery\./)) return;
28+
return categoryId;
29+
},
30+
31+
@discourseComputed("excerptsViewingCategoryId")
32+
expandPinned(viewingCategory) {
33+
const overrideInCategory =
34+
enabledCategories.length === 0 ||
35+
enabledCategories.includes(viewingCategory);
36+
const overrideOnDevice = site.mobileView
1737
? settings.show_excerpts_mobile
1838
: settings.show_excerpts_desktop;
1939

20-
return shouldOverride ? true : this._super();
40+
return overrideInCategory && overrideOnDevice ? true : this._super();
2141
},
2242
});
2343
},

locales/en.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
en:
22
theme_metadata:
3-
description: Display excerpts in topic lists
3+
description: Display excerpts in topic lists
4+
settings:
5+
enabled_categories: Enable excerpts in specific categories. Leave blank for all categories.

settings.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
show_excerpts_mobile: true
2-
show_excerpts_desktop: true
2+
show_excerpts_desktop: true
3+
enabled_categories:
4+
type: list
5+
list_type: category
6+
default: ""

0 commit comments

Comments
 (0)