浏览代码

`xhr_user_search_url` fixes after some real world testing

JC Brand 7 年之前
父节点
当前提交
5e8843e8bd
共有 1 个文件被更改,包括 12 次插入7 次删除
  1. 12 7
      src/converse-rosterview.js

+ 12 - 7
src/converse-rosterview.js

@@ -153,16 +153,21 @@
                 afterRender () {
                 afterRender () {
                     const input_el = this.el.querySelector('input[name="jid"]');
                     const input_el = this.el.querySelector('input[name="jid"]');
                     if (_converse.xhr_user_search_url && _.isString(_converse.xhr_user_search_url)) {
                     if (_converse.xhr_user_search_url && _.isString(_converse.xhr_user_search_url)) {
-                        const awesomplete = new Awesomplete(input_el, {'list': [], 'minChars': 2});
+                        const awesomplete = new Awesomplete(input_el, {'list': []});
                         const xhr = new window.XMLHttpRequest();
                         const xhr = new window.XMLHttpRequest();
-                        // `open` must be called after `onload` for
-                        // mock/testing purposes.
+                        // `open` must be called after `onload` for mock/testing purposes.
                         xhr.onload = function () {
                         xhr.onload = function () {
-                            awesomplete.list = JSON.parse(xhr.responseText).map((i) => i.jid);
-                            awesomplete.evaluate();
+                            if (xhr.responseText) {
+                                awesomplete.list = JSON.parse(xhr.responseText).map((i) => {
+                                    return {'label': i.fullname, 'value': i.jid};
+                                });
+                                awesomplete.evaluate();
+                            }
                         };
                         };
-                        xhr.open("GET", _converse.xhr_user_search_url, true);
-                        input_el.addEventListener('input', _.debounce(() => xhr.send()), 100, {'leading': true});
+                        input_el.addEventListener('input', _.debounce(() => {
+                            xhr.open("GET", `${_converse.xhr_user_search_url}?q=${input_el.value}`, true);
+                            xhr.send()
+                        } , 500));
                     } else {
                     } else {
                         const list = _.uniq(_converse.roster.map((item) => Strophe.getDomainFromJid(item.get('jid'))));
                         const list = _.uniq(_converse.roster.map((item) => Strophe.getDomainFromJid(item.get('jid'))));
                         new Awesomplete(input_el, {
                         new Awesomplete(input_el, {