@jasonwch/nodebb-plugin-meilisearch-r 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -2
- package/library.js +437 -18
- package/package.json +5 -4
- package/plugin.json +27 -2
- package/static/languages/en-GB/meilisearch.json +22 -9
- package/static/languages/pl/meilisearch.json +21 -8
- package/static/languages/zh-CN/meilisearch.json +21 -8
- package/static/lib/admin.js +26 -3
- package/static/lib/chat-search-global.js +237 -0
- package/static/templates/admin/plugins/meilisearch/partials/rankingRules/form.tpl +1 -1
- package/static/templates/admin/plugins/meilisearch/partials/stopWords/form.tpl +1 -1
- package/static/templates/admin/plugins/meilisearch.tpl +175 -137
- package/static/templates/client/partials/chats/search-bar.tpl +9 -0
- package/static/templates/client/partials/chats/search-result.tpl +38 -0
|
@@ -1,184 +1,222 @@
|
|
|
1
|
-
<div class="
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
<div
|
|
9
|
-
<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
</
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
<div class="acp-page-container">
|
|
2
|
+
<!-- IMPORT admin/partials/settings/header.tpl -->
|
|
3
|
+
|
|
4
|
+
<div class="row m-0">
|
|
5
|
+
<div id="spy-container" class="col-12 col-md-8 px-0 mb-4" tabindex="0">
|
|
6
|
+
|
|
7
|
+
<!-- 1. Index result -->
|
|
8
|
+
<div id="index-result" class="mb-4">
|
|
9
|
+
<h5 class="fw-bold tracking-tight settings-header">{{tx("meilisearch:admin.indexResult")}}</h5>
|
|
10
|
+
<div class="card text-xs">
|
|
11
|
+
<div class="card-header d-flex align-items-center justify-content-between">
|
|
12
|
+
<span class="fw-bold">{{tx("meilisearch:admin.lastReindex")}}</span>
|
|
13
|
+
{{{ if !lastReindexResult.finishedAt }}}
|
|
14
|
+
<span class="badge bg-secondary">{{tx("meilisearch:admin.lastReindexNever")}}</span>
|
|
15
|
+
{{{ else }}}
|
|
16
|
+
{{{ if lastReindexResult.success }}}
|
|
17
|
+
<span class="badge bg-success">{{tx("meilisearch:admin.lastReindexSuccess")}}</span>
|
|
18
|
+
{{{ else }}}
|
|
19
|
+
<span class="badge bg-danger">{{tx("meilisearch:admin.lastReindexFailed")}}</span>
|
|
20
|
+
{{{ end }}}
|
|
21
|
+
{{{ end }}}
|
|
22
|
+
</div>
|
|
23
|
+
<div class="card-body">
|
|
24
|
+
{{{ if lastReindexResult.finishedAt }}}
|
|
25
|
+
<p class="mb-3"><strong>{{tx("meilisearch:admin.lastReindexDate")}}:</strong> <span data-finished-at="{lastReindexResult.finishedAt}">—</span></p>
|
|
26
|
+
<div class="row g-3 mb-3">
|
|
27
|
+
<div class="col-6">
|
|
28
|
+
<strong>{{tx("meilisearch:admin.lastReindexTopics")}}</strong><br>
|
|
29
|
+
<span>{{lastReindexResult.topic_progress.current}}/{{lastReindexResult.topic_progress.total}}</span>
|
|
21
30
|
</div>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<div class="progress">
|
|
26
|
-
<div id="topic-reindex-progress" class="progress-bar reindex-progress-bar" role="progressbar" aria-valuenow="{indexing.topic_progress.current}" aria-valuemin="0" aria-valuemax="{indexing.topic_progress.total}" style="width: {{{ if topicPercent }}}{topicPercent}%{{{ else }}}0%{{{ end }}};">
|
|
27
|
-
{indexing.topic_progress.current}/{indexing.topic_progress.total}
|
|
28
|
-
</div>
|
|
31
|
+
<div class="col-6">
|
|
32
|
+
<strong>{{tx("meilisearch:admin.lastReindexPosts")}}</strong><br>
|
|
33
|
+
<span>{{lastReindexResult.post_progress.current}}/{{lastReindexResult.post_progress.total}}</span>
|
|
29
34
|
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
<div class="progress">
|
|
34
|
-
<div id="post-reindex-progress" class="progress-bar reindex-progress-bar" role="progressbar" aria-valuenow="{indexing.post_progress.current}" aria-valuemin="0" aria-valuemax="{indexing.post_progress.total}" style="width: {{{ if postPercent }}}{postPercent}%{{{ else }}}0%{{{ end }}};">
|
|
35
|
-
{indexing.post_progress.current}/{indexing.post_progress.total}
|
|
36
|
-
</div>
|
|
35
|
+
<div class="col-6">
|
|
36
|
+
<strong>{{tx("meilisearch:admin.lastReindexMessages")}}</strong><br>
|
|
37
|
+
<span>{{lastReindexResult.message_progress.current}}/{{lastReindexResult.message_progress.total}}</span>
|
|
37
38
|
</div>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
<table class="table table-bordered table-condensed last-reindex-table">
|
|
45
|
-
<tbody>
|
|
46
|
-
<tr>
|
|
47
|
-
<th>{{tx("meilisearch:admin.lastReindexDate")}}</th>
|
|
48
|
-
<td><span data-finished-at="{lastReindexResult.finishedAt}">—</span></td>
|
|
49
|
-
</tr>
|
|
50
|
-
<tr>
|
|
51
|
-
<th>{{tx("meilisearch:admin.lastReindexTopics")}}</th>
|
|
52
|
-
<td>{lastReindexResult.topic_progress.current}/{lastReindexResult.topic_progress.total}</td>
|
|
53
|
-
</tr>
|
|
54
|
-
<tr>
|
|
55
|
-
<th>{{tx("meilisearch:admin.lastReindexPosts")}}</th>
|
|
56
|
-
<td>{lastReindexResult.post_progress.current}/{lastReindexResult.post_progress.total}</td>
|
|
57
|
-
</tr>
|
|
39
|
+
{{{ if lastReindexResult.skippedSystemMessages }}}
|
|
40
|
+
<div class="col-6">
|
|
41
|
+
<strong>{{tx("meilisearch:admin.lastReindexSkippedSystemMessages")}}</strong><br>
|
|
42
|
+
<span>{{lastReindexResult.skippedSystemMessages}}</span>
|
|
43
|
+
</div>
|
|
44
|
+
{{{ end }}}
|
|
58
45
|
{{{ if lastReindexResult.skippedDeletedTopics }}}
|
|
59
|
-
<
|
|
60
|
-
<
|
|
61
|
-
<
|
|
62
|
-
</
|
|
46
|
+
<div class="col-6">
|
|
47
|
+
<strong>{{tx("meilisearch:admin.lastReindexSkippedDeletedTopics")}}</strong><br>
|
|
48
|
+
<span>{{lastReindexResult.skippedDeletedTopics}}</span>
|
|
49
|
+
</div>
|
|
63
50
|
{{{ end }}}
|
|
64
51
|
{{{ if lastReindexResult.skippedDeletedPosts }}}
|
|
65
|
-
<
|
|
66
|
-
<
|
|
67
|
-
<
|
|
68
|
-
</
|
|
52
|
+
<div class="col-6">
|
|
53
|
+
<strong>{{tx("meilisearch:admin.lastReindexSkippedDeletedPosts")}}</strong><br>
|
|
54
|
+
<span>{{lastReindexResult.skippedDeletedPosts}}</span>
|
|
55
|
+
</div>
|
|
56
|
+
{{{ end }}}
|
|
57
|
+
{{{ if lastReindexResult.skippedDeletedMessages }}}
|
|
58
|
+
<div class="col-6">
|
|
59
|
+
<strong>{{tx("meilisearch:admin.lastReindexSkippedDeletedMessages")}}</strong><br>
|
|
60
|
+
<span>{{lastReindexResult.skippedDeletedMessages}}</span>
|
|
61
|
+
</div>
|
|
62
|
+
{{{ end }}}
|
|
63
|
+
{{{ if lastReindexResult.skippedOrphanMessages }}}
|
|
64
|
+
<div class="col-6">
|
|
65
|
+
<strong>{{tx("meilisearch:admin.lastReindexSkippedOrphanMessages")}}</strong><br>
|
|
66
|
+
<span>{{lastReindexResult.skippedOrphanMessages}}</span>
|
|
67
|
+
</div>
|
|
69
68
|
{{{ end }}}
|
|
70
|
-
<tr>
|
|
71
|
-
<th>{{tx("meilisearch:admin.lastReindexStatus")}}</th>
|
|
72
|
-
<td>
|
|
73
|
-
{{{ if lastReindexResult.success }}}
|
|
74
|
-
<span class="label label-success">{{tx("meilisearch:admin.lastReindexSuccess")}}</span>
|
|
75
|
-
{{{ else }}}
|
|
76
|
-
<span class="label label-danger">{{tx("meilisearch:admin.lastReindexFailed")}}</span>
|
|
77
|
-
{{{ end }}}
|
|
78
|
-
</td>
|
|
79
|
-
</tr>
|
|
80
|
-
{{{ if lastReindexResult.error }}}
|
|
81
|
-
<tr>
|
|
82
|
-
<th>{{tx("meilisearch:admin.lastReindexError")}}</th>
|
|
83
|
-
<td class="text-danger">{lastReindexResult.error}</td>
|
|
84
|
-
</tr>
|
|
85
|
-
{{{ end }}}
|
|
86
|
-
</tbody>
|
|
87
|
-
</table>
|
|
88
69
|
</div>
|
|
70
|
+
|
|
71
|
+
{{{ if lastReindexResult.error }}}
|
|
72
|
+
<div class="text-danger">
|
|
73
|
+
<strong>{{tx("meilisearch:admin.lastReindexError")}}:</strong> {lastReindexResult.error}
|
|
74
|
+
</div>
|
|
75
|
+
{{{ end }}}
|
|
76
|
+
{{{ else }}}
|
|
77
|
+
<p class="text-muted mb-3">{{tx("meilisearch:admin.lastReindexNever")}}</p>
|
|
78
|
+
{{{ end }}}
|
|
89
79
|
</div>
|
|
90
|
-
{{{ end }}}
|
|
91
80
|
</div>
|
|
92
81
|
</div>
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
<
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
82
|
+
|
|
83
|
+
<!-- 2. Index action -->
|
|
84
|
+
<div id="index-action" class="mb-4">
|
|
85
|
+
<h5 class="fw-bold tracking-tight settings-header">{{tx("meilisearch:admin.indexAction")}}</h5>
|
|
86
|
+
<p class="form-text">{{tx("meilisearch:admin.reindexHelp")}}</p>
|
|
87
|
+
<div class="reindex-actions mb-3">
|
|
88
|
+
<button type="button" id="reindex" class="btn btn-danger btn-sm">{{tx("meilisearch:admin.reindex")}}</button>
|
|
89
|
+
</div>
|
|
90
|
+
<div class="d-flex justify-content-center align-items-center mb-3 force-reindex-container" id="reindex-force-container">
|
|
91
|
+
<div class="form-check form-switch mb-0">
|
|
92
|
+
<input class="form-check-input" type="checkbox" id="force-reindex" name="force-reindex">
|
|
93
|
+
<label class="form-check-label" for="force-reindex"><strong>{{tx("meilisearch:admin.forceReindex")}}</strong></label>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
<div class="reindex-progress-container {{{ if !indexing.running}}}hidden{{{end}}}">
|
|
97
|
+
<h6 class="text-center">{{tx("meilisearch:admin.reindexTopicsProgress")}} <span id="topic-reindex-progress-text">{indexing.topic_progress.current}/{indexing.topic_progress.total}</span></h6>
|
|
98
|
+
<div class="progress mb-3">
|
|
99
|
+
<div id="topic-reindex-progress" class="progress-bar reindex-progress-bar" role="progressbar" aria-valuenow="{indexing.topic_progress.current}" aria-valuemin="0" aria-valuemax="{indexing.topic_progress.total}" style="width: {{{ if topicPercent }}}{topicPercent}%{{{ else }}}0%{{{ end }}};">
|
|
100
|
+
{indexing.topic_progress.current}/{indexing.topic_progress.total}
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
<h6 class="text-center">{{tx("meilisearch:admin.reindexPostsProgress")}} <span id="post-reindex-progress-text">{indexing.post_progress.current}/{indexing.post_progress.total}</span></h6>
|
|
104
|
+
<div class="progress mb-3">
|
|
105
|
+
<div id="post-reindex-progress" class="progress-bar reindex-progress-bar" role="progressbar" aria-valuenow="{indexing.post_progress.current}" aria-valuemin="0" aria-valuemax="{indexing.post_progress.total}" style="width: {{{ if postPercent }}}{postPercent}%{{{ else }}}0%{{{ end }}};">
|
|
106
|
+
{indexing.post_progress.current}/{indexing.post_progress.total}
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
<h6 class="text-center">{{tx("meilisearch:admin.reindexMessagesProgress")}} <span id="message-reindex-progress-text">{indexing.message_progress.current}/{indexing.message_progress.total}</span></h6>
|
|
110
|
+
<div class="progress mb-3">
|
|
111
|
+
<div id="message-reindex-progress" class="progress-bar reindex-progress-bar" role="progressbar" aria-valuenow="{indexing.message_progress.current}" aria-valuemin="0" aria-valuemax="{indexing.message_progress.total}" style="width: {{{ if messagePercent }}}{messagePercent}%{{{ else }}}0%{{{ end }}};">
|
|
112
|
+
{indexing.message_progress.current}/{indexing.message_progress.total}
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
<!-- Settings form -->
|
|
119
|
+
<form role="form" class="meilisearch-settings">
|
|
120
|
+
|
|
121
|
+
<!-- 3. Connection settings -->
|
|
122
|
+
<div id="connection-settings" class="mb-4">
|
|
123
|
+
<h5 class="fw-bold tracking-tight settings-header">{{tx("meilisearch:admin.connection")}}</h5>
|
|
124
|
+
<div class="mb-3">
|
|
125
|
+
<label class="form-label" for="host">{{tx("meilisearch:admin.host")}}</label>
|
|
107
126
|
<input type="text" id="host" name="host" title="Host" class="form-control" placeholder="http://localhost:7700">
|
|
108
127
|
</div>
|
|
109
|
-
<div class="
|
|
110
|
-
<label for="apiKey">{{tx("meilisearch:admin.apiKey")}}</label>
|
|
128
|
+
<div class="mb-3">
|
|
129
|
+
<label class="form-label" for="apiKey">{{tx("meilisearch:admin.apiKey")}}</label>
|
|
111
130
|
<input type="password" id="apiKey" name="apiKey" title="API Key" class="form-control" placeholder="*****">
|
|
112
131
|
</div>
|
|
113
|
-
<div class="
|
|
114
|
-
<label for="healthCheckInterval">{{tx("meilisearch:admin.healthCheckInterval")}}</label>
|
|
132
|
+
<div class="mb-3">
|
|
133
|
+
<label class="form-label" for="healthCheckInterval">{{tx("meilisearch:admin.healthCheckInterval")}}</label>
|
|
115
134
|
<input type="number" id="healthCheckInterval" name="healthCheckInterval" title="Health Check Interval" class="form-control" placeholder="60">
|
|
116
135
|
</div>
|
|
117
136
|
</div>
|
|
118
|
-
</div>
|
|
119
137
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
<div class="form-group">
|
|
126
|
-
<label for="maxDocuments">{{tx("meilisearch:admin.maxDocuments")}}</label>
|
|
138
|
+
<!-- 4. Search options -->
|
|
139
|
+
<div id="search-options" class="mb-4">
|
|
140
|
+
<h5 class="fw-bold tracking-tight settings-header">{{tx("meilisearch:admin.search")}}</h5>
|
|
141
|
+
<div class="mb-3">
|
|
142
|
+
<label class="form-label" for="maxDocuments">{{tx("meilisearch:admin.maxDocuments")}}</label>
|
|
127
143
|
<input type="number" id="maxDocuments" name="maxDocuments" title="Max Documents" class="form-control" placeholder="500">
|
|
144
|
+
<p class="form-text">
|
|
145
|
+
<span class="text-danger fw-bold fst-italic">({{tx("meilisearch:admin.perRoomSearchLimit")}})</span>
|
|
146
|
+
</p>
|
|
147
|
+
</div>
|
|
148
|
+
<div class="mb-3">
|
|
149
|
+
<div class="form-check form-switch">
|
|
150
|
+
<input class="form-check-input" type="checkbox" id="globalChatSearchEnabled" name="globalChatSearchEnabled">
|
|
151
|
+
<label class="form-check-label" for="globalChatSearchEnabled"><strong>{{tx("meilisearch:admin.globalChatSearchEnabled")}}</strong></label>
|
|
128
152
|
</div>
|
|
129
|
-
<
|
|
130
|
-
<
|
|
153
|
+
<p class="form-text" id="globalChatSearchLimitNotice" style="display:none;">
|
|
154
|
+
<span class="text-danger fw-bold fst-italic">({{tx("meilisearch:admin.globalChatSearchLimit")}})</span>
|
|
155
|
+
</p>
|
|
156
|
+
</div>
|
|
157
|
+
<div class="mb-3">
|
|
158
|
+
<label class="form-label" for="searchMinTermLength">{{tx("meilisearch:admin.searchMinTermLength")}}</label>
|
|
131
159
|
<input type="number" id="searchMinTermLength" name="searchMinTermLength" min="2" title="{{tx("meilisearch:admin.searchMinTermLength")}}" class="form-control" placeholder="2">
|
|
132
|
-
<p class="
|
|
160
|
+
<p class="form-text">{{tx("meilisearch:admin.searchMinTermLengthHelp")}}</p>
|
|
133
161
|
</div>
|
|
162
|
+
</div>
|
|
163
|
+
|
|
164
|
+
<!-- 5. Ranking rules -->
|
|
165
|
+
<div id="ranking-rules" class="mb-4">
|
|
166
|
+
<h5 class="fw-bold tracking-tight settings-header">{{tx("meilisearch:admin.rankingRules")}}</h5>
|
|
167
|
+
<p class="form-text">{{tx("meilisearch:admin.rankingRulesHelp")}} <a href="https://docs.meilisearch.com/learn/core_concepts/relevancy.html#ranking-rules" style="word-break: break-all;">https://docs.meilisearch.com/learn/core_concepts/relevancy.html#ranking-rules</a></p>
|
|
134
168
|
<div class="form-group" data-type="sorted-list" data-sorted-list="rankingRules" data-item-template="admin/plugins/meilisearch/partials/rankingRules/item" data-form-template="admin/plugins/meilisearch/partials/rankingRules/form">
|
|
135
|
-
<label for="rankingRulesList">{{tx("meilisearch:admin.rankingRules")}}</label>
|
|
136
|
-
<p class="help-block">{{tx("meilisearch:admin.rankingRulesHelp")}} <a href="https://docs.meilisearch.com/learn/core_concepts/relevancy.html#ranking-rules">https://docs.meilisearch.com/learn/core_concepts/relevancy.html#ranking-rules</a></p>
|
|
137
169
|
<ul name="rankingRulesList" data-type="list" class="list-group"></ul>
|
|
138
170
|
<button type="button" data-type="add" class="btn btn-info">{{tx("meilisearch:admin.addRankingRule")}}</button>
|
|
139
171
|
</div>
|
|
172
|
+
</div>
|
|
173
|
+
|
|
174
|
+
<!-- 6. Stop words -->
|
|
175
|
+
<div id="stop-words" class="mb-4">
|
|
176
|
+
<h5 class="fw-bold tracking-tight settings-header">{{tx("meilisearch:admin.stopWords")}}</h5>
|
|
177
|
+
<p class="form-text">{{tx("meilisearch:admin.stopWordsHelp")}} <a href="https://docs.meilisearch.com/reference/api/settings.html#get-stop-words" style="word-break: break-all;">https://docs.meilisearch.com/reference/api/settings.html#get-stop-words</a></p>
|
|
140
178
|
<div class="form-group" data-type="sorted-list" data-sorted-list="stopWords" data-item-template="admin/plugins/meilisearch/partials/stopWords/item" data-form-template="admin/plugins/meilisearch/partials/stopWords/form">
|
|
141
|
-
<label for="stopWordsList">{{tx("meilisearch:admin.stopWords")}}</label>
|
|
142
|
-
<p class="help-block">{{tx("meilisearch:admin.stopWordsHelp")}} <a href="https://docs.meilisearch.com/reference/api/settings.html#get-stop-words">https://docs.meilisearch.com/reference/api/settings.html#get-stop-words</a></p>
|
|
143
179
|
<ul name="stopWordsList" data-type="list" class="list-group"></ul>
|
|
144
180
|
<button type="button" data-type="add" class="btn btn-info">{{tx("meilisearch:admin.addStopWord")}}</button>
|
|
145
181
|
</div>
|
|
182
|
+
</div>
|
|
183
|
+
|
|
184
|
+
<!-- 7. Synonyms -->
|
|
185
|
+
<div id="synonyms" class="mb-4">
|
|
186
|
+
<h5 class="fw-bold tracking-tight settings-header">{{tx("meilisearch:admin.synonyms")}}</h5>
|
|
187
|
+
<p class="form-text">{{tx("meilisearch:admin.synonymsHelp")}} <a href="https://docs.meilisearch.com/learn/configuration/synonyms.html" style="word-break: break-all;">https://docs.meilisearch.com/learn/configuration/synonyms.html</a></p>
|
|
146
188
|
<div class="form-group" data-type="sorted-list" data-sorted-list="synonyms" data-item-template="admin/plugins/meilisearch/partials/synonyms/item" data-form-template="admin/plugins/meilisearch/partials/synonyms/form">
|
|
147
|
-
<label for="synonymsList">{{tx("meilisearch:admin.synonyms")}}</label>
|
|
148
|
-
<p class="help-block">{{tx("meilisearch:admin.synonymsHelp")}} <a href="https://docs.meilisearch.com/learn/configuration/synonyms.html">https://docs.meilisearch.com/learn/configuration/synonyms.html</a></p>
|
|
149
189
|
<ul name="synonymsList" data-type="list" class="list-group"></ul>
|
|
150
190
|
<button type="button" data-type="add" class="btn btn-info">{{tx("meilisearch:admin.addSynonym")}}</button>
|
|
151
191
|
</div>
|
|
152
192
|
</div>
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
<div
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
<div class="form-group">
|
|
164
|
-
<label for="typoToleranceMinWordSizeOneTypo">{{tx("meilisearch:admin.typoToleranceMinWordSizeOneTypo")}}</label>
|
|
193
|
+
|
|
194
|
+
<!-- 8. Typo tolerance -->
|
|
195
|
+
<div id="typo-tolerance" class="mb-4">
|
|
196
|
+
<h5 class="fw-bold tracking-tight settings-header">{{tx("meilisearch:admin.typoTolerance")}}</h5>
|
|
197
|
+
<div class="form-check form-switch mb-3" id="typoTolerance-container">
|
|
198
|
+
<input class="form-check-input" type="checkbox" id="typoTolerance" name="typoTolerance">
|
|
199
|
+
<label class="form-check-label" for="typoTolerance"><strong>{{tx("meilisearch:admin.typoToleranceEnable")}}</strong></label>
|
|
200
|
+
</div>
|
|
201
|
+
<div class="mb-3">
|
|
202
|
+
<label class="form-label" for="typoToleranceMinWordSizeOneTypo">{{tx("meilisearch:admin.typoToleranceMinWordSizeOneTypo")}}</label>
|
|
165
203
|
<input type="number" id="typoToleranceMinWordSizeOneTypo" name="typoToleranceMinWordSizeOneTypo" title="Typo Tolerance Min Word Size One Typo" class="form-control" placeholder="5">
|
|
166
204
|
</div>
|
|
167
|
-
<div class="
|
|
168
|
-
<label for="typoToleranceMinWordSizeTwoTypos">{{tx("meilisearch:admin.typoToleranceMinWordSizeTwoTypos")}}</label>
|
|
205
|
+
<div class="mb-3">
|
|
206
|
+
<label class="form-label" for="typoToleranceMinWordSizeTwoTypos">{{tx("meilisearch:admin.typoToleranceMinWordSizeTwoTypos")}}</label>
|
|
169
207
|
<input type="number" id="typoToleranceMinWordSizeTwoTypos" name="typoToleranceMinWordSizeTwoTypos" title="Typo Tolerance Min Word Size Two Typos" class="form-control" placeholder="9">
|
|
170
208
|
</div>
|
|
209
|
+
<p class="form-text">{{tx("meilisearch:admin.typoToleranceDisableOnWordsHelp")}} <a href="https://docs.meilisearch.com/learn/configuration/typo_tolerance.html#disableonwords" style="word-break: break-all;">https://docs.meilisearch.com/learn/configuration/typo_tolerance.html#disableonwords</a></p>
|
|
171
210
|
<div class="form-group" data-type="sorted-list" data-sorted-list="typoToleranceDisableOnWords" data-item-template="admin/plugins/meilisearch/partials/typoToleranceDisableOnWords/item" data-form-template="admin/plugins/meilisearch/partials/typoToleranceDisableOnWords/form">
|
|
172
|
-
<label for="typoToleranceDisableOnWordsList">{{tx("meilisearch:admin.typoToleranceDisableOnWords")}}</label>
|
|
173
|
-
<p class="help-block">{{tx("meilisearch:admin.typoToleranceDisableOnWordsHelp")}} <a href="https://docs.meilisearch.com/learn/configuration/typo_tolerance.html#disableonwords">https://docs.meilisearch.com/learn/configuration/typo_tolerance.html#disableonwords</a></p>
|
|
211
|
+
<label class="form-label" for="typoToleranceDisableOnWordsList">{{tx("meilisearch:admin.typoToleranceDisableOnWords")}}</label>
|
|
174
212
|
<ul name="typoToleranceDisableOnWordsList" data-type="list" class="list-group"></ul>
|
|
175
213
|
<button type="button" data-type="add" class="btn btn-info">{{tx("meilisearch:admin.addTypoToleranceDisabledWord")}}</button>
|
|
176
214
|
</div>
|
|
177
215
|
</div>
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
216
|
+
|
|
217
|
+
</form>
|
|
218
|
+
</div>
|
|
219
|
+
|
|
220
|
+
<!-- IMPORT admin/partials/settings/toc.tpl -->
|
|
183
221
|
</div>
|
|
184
222
|
</div>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<div id="global-chat-search-container" data-plugin="meilisearch" style="padding: 10px; background-color: var(--bs-body-bg); border-bottom: 1px solid var(--bs-border-color); margin-bottom: 5px;">
|
|
2
|
+
<div class="input-group">
|
|
3
|
+
<input type="text" id="global-chat-search" class="form-control" placeholder="[[meilisearch:chatSearch.client.placeholder]]" style="font-size: 14px; height: 34px;">
|
|
4
|
+
<span class="input-group-btn">
|
|
5
|
+
<button class="btn btn-primary" id="btn-chat-search" type="button" style="height: 34px;"><i class="fa fa-search"></i></button>
|
|
6
|
+
</span>
|
|
7
|
+
</div>
|
|
8
|
+
<div id="global-search-results" class="chats-list overflow-auto ghost-scrollbar" style="margin-top: 5px; max-height: 400px; display:none;"></div>
|
|
9
|
+
</div>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<div class="d-flex flex-column">
|
|
2
|
+
{{{each messages}}}
|
|
3
|
+
<div component="chat/search/result" class="rounded-1 search-result" data-roomid="{messages.roomId}">
|
|
4
|
+
<div class="d-flex gap-1 justify-content-between">
|
|
5
|
+
<a href="{messages.chatLink}" onclick="ajaxify.go('{messages.chatLink}'); return false;" class="chat-room-btn position-relative d-flex flex-grow-1 gap-2 justify-content-start align-items-start btn btn-ghost btn-sm ff-sans text-start" style="padding: 0.5rem;">
|
|
6
|
+
|
|
7
|
+
<div class="main-avatar">
|
|
8
|
+
{{{ if messages.mainParticipant }}}
|
|
9
|
+
{{buildAvatar(messages.mainParticipant, "32px", true)}}
|
|
10
|
+
{{{ else }}}
|
|
11
|
+
<span class="avatar avatar-rounded" style="--avatar-size: 32px; width:32px; height:32px; background-color: var(--bs-tertiary-bg)">?</span>
|
|
12
|
+
{{{ end }}}
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<div class="d-flex flex-grow-1 flex-column w-100" style="min-width:0;">
|
|
16
|
+
<div component="chat/room/title" class="room-name fw-semibold text-xs text-break">
|
|
17
|
+
{messages.roomName}
|
|
18
|
+
</div>
|
|
19
|
+
<div component="chat/room/teaser">
|
|
20
|
+
|
|
21
|
+
<div class="teaser-content text-sm line-clamp-3 text-break mb-0">
|
|
22
|
+
{{buildAvatar(messages.user, "14px", true, "align-middle")}}
|
|
23
|
+
<strong class="text-xs fw-semibold teaser-username">{messages.senderName}:</strong>
|
|
24
|
+
{messages.cleanedContent}
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<div class="teaser-timestamp text-muted text-xs" style="margin-top: 2px; line-height: 1;">
|
|
28
|
+
<span class="timeago" title="{messages.isoTime}"></span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</a>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
<hr class="my-1">
|
|
37
|
+
{{{end}}}
|
|
38
|
+
</div>
|