nodebb-plugin-mentions 4.8.14 → 4.8.15
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/library.js +4 -2
- package/package.json +1 -1
- package/static/autofill.js +14 -19
package/library.js
CHANGED
|
@@ -607,8 +607,10 @@ SocketPlugins.mentions.listGroups = async function () {
|
|
|
607
607
|
const noMentionGroups = await getNoMentionGroups();
|
|
608
608
|
const filteredGroups = groups.filter(g => g && !noMentionGroups.includes(g))
|
|
609
609
|
.map(g => validator.escape(String(g)));
|
|
610
|
-
|
|
611
|
-
return filteredGroups
|
|
610
|
+
const fields = ['name', 'slug', 'icon', 'memberCount', 'labelColor', 'textColor'];
|
|
611
|
+
return (await Groups.getGroupsFields(filteredGroups, fields))
|
|
612
|
+
.filter(g => g && g.name && g.slug)
|
|
613
|
+
.map(g => ({ ..._.pick(g, fields), isGroup: true }));
|
|
612
614
|
};
|
|
613
615
|
|
|
614
616
|
SocketPlugins.mentions.userSearch = async (socket, data) => {
|
package/package.json
CHANGED
package/static/autofill.js
CHANGED
|
@@ -7,7 +7,6 @@ $(document).ready(function () {
|
|
|
7
7
|
const categorySlugMap = new Map();
|
|
8
8
|
let localUserList = [];
|
|
9
9
|
let helpers;
|
|
10
|
-
let groupTranslation = '';
|
|
11
10
|
|
|
12
11
|
function showAlert(type, message) {
|
|
13
12
|
require(['alerts'], function (alerts) {
|
|
@@ -26,14 +25,6 @@ $(document).ready(function () {
|
|
|
26
25
|
loadCategoryList();
|
|
27
26
|
}
|
|
28
27
|
|
|
29
|
-
if (!groupTranslation) {
|
|
30
|
-
require(['translator'], function (translator) {
|
|
31
|
-
translator.translate('[[groups:group]]', function (translation) {
|
|
32
|
-
groupTranslation = translation;
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
|
|
37
28
|
let slugify;
|
|
38
29
|
const strategy = {
|
|
39
30
|
match: /\B@([^\s\n]*)?$/,
|
|
@@ -131,8 +122,12 @@ $(document).ready(function () {
|
|
|
131
122
|
return `${avatar} ${entry.name}${!utils.isNumber(entry.cid) ? ` (${entry.slug})` : ''}`;
|
|
132
123
|
}
|
|
133
124
|
case entry.isGroup: {
|
|
134
|
-
const icon =
|
|
135
|
-
|
|
125
|
+
const icon = helpers.buildCategoryIcon({
|
|
126
|
+
icon: entry.icon || 'fa-users',
|
|
127
|
+
bgColor: entry.labelColor,
|
|
128
|
+
color: entry.textColor,
|
|
129
|
+
}, '24px', 'rounded-circle');
|
|
130
|
+
return `${icon} ${entry.name} <span class="text-sm text-secondary">(${entry.memberCountText})</span>`;
|
|
136
131
|
}
|
|
137
132
|
|
|
138
133
|
default:
|
|
@@ -173,14 +168,14 @@ $(document).ready(function () {
|
|
|
173
168
|
});
|
|
174
169
|
}
|
|
175
170
|
|
|
176
|
-
function loadGroupList() {
|
|
177
|
-
socket.emit('plugins.mentions.listGroups'
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
const
|
|
182
|
-
|
|
183
|
-
});
|
|
171
|
+
async function loadGroupList() {
|
|
172
|
+
groupList = await socket.emit('plugins.mentions.listGroups');
|
|
173
|
+
const [translator, helpers] = await app.require(['translator', 'helpers']);
|
|
174
|
+
await Promise.all(groupList.map(async (group) => {
|
|
175
|
+
group.memberCount = 12312313;
|
|
176
|
+
const key = translator.compile('groups:x-members', helpers.formattedNumber(group.memberCount));
|
|
177
|
+
group.memberCountText = await translator.translate(key);
|
|
178
|
+
}));
|
|
184
179
|
}
|
|
185
180
|
|
|
186
181
|
function loadCategoryList() {
|