aboutsummaryrefslogtreecommitdiffhomepage
path: root/assets/vintage/js/base.js
diff options
context:
space:
mode:
authorArthurHoaro <arthur@hoa.ro>2019-07-27 12:34:30 +0200
committerArthurHoaro <arthur@hoa.ro>2019-07-27 12:34:30 +0200
commit38672ba0d1c722e5d6d33a58255ceb55e9410e46 (patch)
treedae4c7c47532380eac3ae641db99122fc77c93dc /assets/vintage/js/base.js
parent83faedadff76c5bdca036f39f13943f63b27e164 (diff)
parent1e77e0448bbd25675d8c0fe4a73206ad9048904b (diff)
downloadShaarli-38672ba0d1c722e5d6d33a58255ceb55e9410e46.tar.gz
Shaarli-38672ba0d1c722e5d6d33a58255ceb55e9410e46.tar.zst
Shaarli-38672ba0d1c722e5d6d33a58255ceb55e9410e46.zip
Merge tag 'v0.10.4' into stable
Release v0.10.4
Diffstat (limited to 'assets/vintage/js/base.js')
-rw-r--r--assets/vintage/js/base.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/assets/vintage/js/base.js b/assets/vintage/js/base.js
new file mode 100644
index 00000000..66830b59
--- /dev/null
+++ b/assets/vintage/js/base.js
@@ -0,0 +1,30 @@
1import Awesomplete from 'awesomplete';
2import 'awesomplete/awesomplete.css';
3
4(() => {
5 const awp = Awesomplete.$;
6 const autocompleteFields = document.querySelectorAll('input[data-multiple]');
7 [...autocompleteFields].forEach((autocompleteField) => {
8 const awesomplete = new Awesomplete(awp(autocompleteField));
9 awesomplete.filter = (text, input) => Awesomplete.FILTER_CONTAINS(text, input.match(/[^ ]*$/)[0]);
10 awesomplete.replace = (text) => {
11 const before = awesomplete.input.value.match(/^.+ \s*|/)[0];
12 awesomplete.input.value = `${before}${text} `;
13 };
14 awesomplete.minChars = 1;
15
16 autocompleteField.addEventListener('input', () => {
17 const proposedTags = autocompleteField.getAttribute('data-list').replace(/,/g, '').split(' ');
18 const reg = /(\w+) /g;
19 let match;
20 while ((match = reg.exec(autocompleteField.value)) !== null) {
21 const id = proposedTags.indexOf(match[1]);
22 if (id !== -1) {
23 proposedTags.splice(id, 1);
24 }
25 }
26
27 awesomplete.list = proposedTags;
28 });
29 });
30})();