Skip to content

Commit bc9c0cc

Browse files
committed
feat: option to display tags in DiscussionsSearchSource
1 parent 359681f commit bc9c0cc

File tree

5 files changed

+31
-0
lines changed

5 files changed

+31
-0
lines changed

extensions/tags/extend.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@
100100
->prepareDataForSerialization(LoadForumTagsRelationship::class),
101101

102102
(new Extend\Settings())
103+
->default('flarum-tags.show_tags_in_discussion_search_results', false)
104+
->serializeToForum('showTagsInDiscussionSearchResults', 'flarum-tags.show_tags_in_discussion_search_results', 'boolVal')
103105
->serializeToForum('minPrimaryTags', 'flarum-tags.min_primary_tags')
104106
->serializeToForum('maxPrimaryTags', 'flarum-tags.max_primary_tags')
105107
->serializeToForum('minSecondaryTags', 'flarum-tags.min_secondary_tags')

extensions/tags/js/src/admin/components/TagsPage.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,14 @@ export default class TagsPage extends ExtensionPage {
118118
<input className="FormControl" type="number" min={minSecondaryTags()} bidi={maxSecondaryTags} />
119119
</div>
120120
</div>
121+
<div className="Form-group">
122+
{this.buildSettingComponent({
123+
setting: 'flarum-tags.show_tags_in_discussion_search_results',
124+
type: 'boolean',
125+
label: app.translator.trans('flarum-tags.admin.tag_settings.show_tags_in_discussion_search_results.label'),
126+
help: app.translator.trans('flarum-tags.admin.tag_settings.show_tags_in_discussion_search_results.help'),
127+
})}
128+
</div>
121129
<div className="Form-group">{this.submitButton()}</div>
122130
</div>
123131
</div>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import app from 'flarum/forum/app';
2+
import { extend } from 'flarum/common/extend';
3+
import DiscussionsSearchItem from 'flarum/forum/components/DiscussionsSearchItem';
4+
import DiscussionsSearchSource from 'flarum/forum/components/DiscussionsSearchSource';
5+
import tagsLabel from '../common/helpers/tagsLabel';
6+
7+
export default function addTagsToDiscussionSearch() {
8+
extend(DiscussionsSearchSource.prototype, 'includes', function (includes) {
9+
app.forum.attribute<boolean>('showTagsInDiscussionSearchResults') && includes.push('tags');
10+
});
11+
12+
extend(DiscussionsSearchItem.prototype, 'viewItems', function (items) {
13+
app.forum.attribute<boolean>('showTagsInDiscussionSearchResults') &&
14+
items.add('tags', <div className="DiscussionSearchResult-tags">{tagsLabel(this.discussion.tags())}</div>, 100);
15+
});
16+
}

extensions/tags/js/src/forum/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,12 @@ app.initializers.add('flarum-tags', function () {
1818
addTagLabels();
1919
addTagControl();
2020
addTagComposer();
21+
addTagsToDiscussionSearch();
2122
});
2223

2324
// Expose compat API
2425
import tagsCompat from './compat';
2526
import { compat } from '@flarum/core/forum';
27+
import addTagsToDiscussionSearch from './addTagsToDiscussionSearch';
2628

2729
Object.assign(compat, tagsCompat);

extensions/tags/locale/en.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ flarum-tags:
4949
required_primary_text: Enter the minimum and maximum number of primary tags that may be applied to a discussion.
5050
required_secondary_heading: Required Number of Secondary Tags
5151
required_secondary_text: Enter the minimum and maximum number of secondary tags that may be applied to a discussion.
52+
show_tags_in_discussion_search_results:
53+
label: Show Tags in Discussion Search Results
54+
help: "When enabled, tags will be displayed in the search results for discussions."
5255
title: Tag Settings
5356

5457
# These translations are used in the Tags page.

0 commit comments

Comments
 (0)