aboutsummaryrefslogtreecommitdiffhomepage
path: root/tpl/editlink.html
diff options
context:
space:
mode:
authorArthurHoaro <arthur@hoa.ro>2015-11-13 20:24:12 +0100
committerArthurHoaro <arthur@hoa.ro>2015-11-17 20:03:21 +0100
commitb39b1bc2eeebcb52f37f33f63fa645db014130c3 (patch)
tree3a507ab718cb261f8ec2f4e27bded606a6e6b2e3 /tpl/editlink.html
parent44d60adc5e2fa547bc49620f7e647794f0cad631 (diff)
downloadShaarli-b39b1bc2eeebcb52f37f33f63fa645db014130c3.tar.gz
Shaarli-b39b1bc2eeebcb52f37f33f63fa645db014130c3.tar.zst
Shaarli-b39b1bc2eeebcb52f37f33f63fa645db014130c3.zip
Fixes #360 - Auto-complete more than one tag in tag filter field
* Group awesomplete for multi data in a single JS file. * Use it in editlink and linklist. * Move awesomplete JS lib at the end of page in editlink.
Diffstat (limited to 'tpl/editlink.html')
-rw-r--r--tpl/editlink.html37
1 files changed, 3 insertions, 34 deletions
diff --git a/tpl/editlink.html b/tpl/editlink.html
index 889d913d..14a2e6c8 100644
--- a/tpl/editlink.html
+++ b/tpl/editlink.html
@@ -2,7 +2,6 @@
2<html> 2<html>
3<head>{include="includes"} 3<head>{include="includes"}
4 <link type="text/css" rel="stylesheet" href="../inc/awesomplete.css" /> 4 <link type="text/css" rel="stylesheet" href="../inc/awesomplete.css" />
5 <script src="inc/awesomplete.min.js#"></script>
6</head> 5</head>
7<body 6<body
8{if="$link.title==''"}onload="document.linkform.lf_title.focus();" 7{if="$link.title==''"}onload="document.linkform.lf_title.focus();"
@@ -45,40 +44,10 @@
45{include="page.footer"} 44{include="page.footer"}
46{/if} 45{/if}
47{if="($GLOBALS['config']['OPEN_SHAARLI'] || isLoggedIn())"} 46{if="($GLOBALS['config']['OPEN_SHAARLI'] || isLoggedIn())"}
47<script src="inc/awesomplete.min.js#"></script>
48<script src="inc/awesomplete-multiple-tags.js#"></script>
48<script> 49<script>
49 $ = Awesomplete.$; 50 awesompleteUniqueTag('#lf_tags');
50 awesomplete = new Awesomplete($('input[data-multiple]'), {
51 filter: function(text, input) {
52 return Awesomplete.FILTER_CONTAINS(text, input.match(/[^ ]*$/)[0]);
53 },
54 replace: function(text) {
55 var before = this.input.value.match(/^.+ \s*|/)[0];
56 this.input.value = before + text + " ";
57 },
58 minChars: 1
59 });
60
61 /**
62 * Remove already selected items from autocompletion list.
63 * HTML list is never updated, so removing a tag will add it back to awesomplete.
64 *
65 * FIXME: This a workaround waiting for awesomplete to handle this.
66 * https://github.com/LeaVerou/awesomplete/issues/16749
67 */
68 var input = document.querySelector('#lf_tags');
69 input.addEventListener('input', function()
70 {
71 proposedTags = input.getAttribute('data-list').replace(/,/g, '').split(' ');
72 reg = /(\w+) /g;
73 while((match = reg.exec(input.value)) !== null) {
74 id = proposedTags.indexOf(match[1]);
75 if(id != -1 ) {
76 proposedTags.splice(id, 1);
77 }
78 }
79
80 awesomplete.list = proposedTags;
81 });
82</script> 51</script>
83{/if} 52{/if}
84</body> 53</body>