summaryrefslogtreecommitdiffstats
path: root/web_src/js/features/comp/SearchUserBox.js
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2021-10-17 01:28:04 +0800
committerGitHub <noreply@github.com>2021-10-17 01:28:04 +0800
commit1a7473ff459479a7fd3ba62a0b7b04b237565bed (patch)
tree518aab9c14f36ed012831b389c0370adef2ab738 /web_src/js/features/comp/SearchUserBox.js
parent3728f1daa08e4c228db212844612555e9e2904df (diff)
downloadgitea-1a7473ff459479a7fd3ba62a0b7b04b237565bed.tar.gz
gitea-1a7473ff459479a7fd3ba62a0b7b04b237565bed.zip
Split `index.js` to separate files (#17315)
* split `index.js` to separate files * tune clipboard * fix promise * fix document * remove intermediate empty file * fix async event listener * use `export function` instead of `export {}`, add more comments Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: 6543 <6543@obermui.de>
Diffstat (limited to 'web_src/js/features/comp/SearchUserBox.js')
-rw-r--r--web_src/js/features/comp/SearchUserBox.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/web_src/js/features/comp/SearchUserBox.js b/web_src/js/features/comp/SearchUserBox.js
new file mode 100644
index 0000000000..9019f17de3
--- /dev/null
+++ b/web_src/js/features/comp/SearchUserBox.js
@@ -0,0 +1,36 @@
+import {htmlEscape} from 'escape-goat';
+
+const {AppSubUrl} = window.config;
+
+export function initSearchUserBox() {
+ const $searchUserBox = $('#search-user-box');
+ $searchUserBox.search({
+ minCharacters: 2,
+ apiSettings: {
+ url: `${AppSubUrl}/api/v1/users/search?q={query}`,
+ onResponse(response) {
+ const items = [];
+ const searchQueryUppercase = $searchUserBox.find('input').val().toUpperCase();
+ $.each(response.data, (_i, item) => {
+ let title = item.login;
+ if (item.full_name && item.full_name.length > 0) {
+ title += ` (${htmlEscape(item.full_name)})`;
+ }
+ const resultItem = {
+ title,
+ image: item.avatar_url
+ };
+ if (searchQueryUppercase === item.login.toUpperCase()) {
+ items.unshift(resultItem);
+ } else {
+ items.push(resultItem);
+ }
+ });
+
+ return {results: items};
+ }
+ },
+ searchFields: ['login', 'full_name'],
+ showNoResults: false
+ });
+}