From ced52792bef52551306724895e2ecb418f6a3914 Mon Sep 17 00:00:00 2001 From: panda Date: Tue, 22 Aug 2023 08:10:26 +0800 Subject: [PATCH] ui: support search by displayname (#621) --- packages/hydrooj/src/model/user.ts | 4 +++- packages/ui-default/pages/training_detail.page.ts | 3 ++- packages/ui-default/templates/training_detail.html | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/hydrooj/src/model/user.ts b/packages/hydrooj/src/model/user.ts index 0b7ecb797..f6cb1e599 100644 --- a/packages/hydrooj/src/model/user.ts +++ b/packages/hydrooj/src/model/user.ts @@ -399,7 +399,9 @@ class UserModel { const $regex = `^${escapeRegExp(prefix.toLowerCase())}`; const udocs = await coll.find({ unameLower: { $regex } }) .limit(limit).project({ _id: 1 }).toArray(); - return await Promise.all(udocs.map(({ _id }) => UserModel.getById(domainId, _id))); + const dudocs = await domain.getMultiUserInDomain(domainId, { displayName: { $regex } }).limit(limit).project({ uid: 1 }).toArray(); + const uids = uniq([...udocs.map(({ _id }) => _id), ...dudocs.map(({ uid }) => uid)]); + return await Promise.all(uids.map(({ _id }) => UserModel.getById(domainId, _id))); } @ArgMethod diff --git a/packages/ui-default/pages/training_detail.page.ts b/packages/ui-default/pages/training_detail.page.ts index 4eb28155c..ea8ca62b1 100644 --- a/packages/ui-default/pages/training_detail.page.ts +++ b/packages/ui-default/pages/training_detail.page.ts @@ -36,8 +36,9 @@ function searchUser() { $('.enroll_user_menu_item').each((i, e) => { const $item = $(e); const $username = $item.data('uname').toString().toLowerCase(); + const $displayName = $item.data('displayname')?.toString().toLowerCase(); const $uid = $item.data('uid').toString(); - $item.toggle(($username.includes(val) && (group === 'all' || group.split(',').includes($uid))) || $uid === val); + $item.toggle((($displayName?.includes(val) || $username.includes(val)) && (group === 'all' || group.split(',').includes($uid))) || $uid === val); }); } diff --git a/packages/ui-default/templates/training_detail.html b/packages/ui-default/templates/training_detail.html index 60b77c783..993854e94 100644 --- a/packages/ui-default/templates/training_detail.html +++ b/packages/ui-default/templates/training_detail.html @@ -18,7 +18,7 @@