diff options
Diffstat (limited to 'assets_src/js/list.js')
-rw-r--r-- | assets_src/js/list.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/assets_src/js/list.js b/assets_src/js/list.js index 413f517..8246950 100644 --- a/assets_src/js/list.js +++ b/assets_src/js/list.js | |||
@@ -19,11 +19,40 @@ async function resultClicked(grilId) { | |||
19 | document.getElementById('gril-list').innerHTML += response; | 19 | document.getElementById('gril-list').innerHTML += response; |
20 | } | 20 | } |
21 | 21 | ||
22 | function listButtonHandler(e) { | ||
23 | let liFilter = x => x.tagName && x.tagName.toLowerCase() === 'li'; | ||
24 | let item = dom.closest(e.target, liFilter); | ||
25 | let pItem = dom.previous(item, liFilter), | ||
26 | nItem = dom.next(dom.next(item, liFilter), liFilter); | ||
27 | switch (e.target.classList[0]) { | ||
28 | case 'gril-sort-up': | ||
29 | //TODO: backend | ||
30 | item.parentNode.insertBefore(item, pItem); | ||
31 | break; | ||
32 | case 'gril-sort-down': | ||
33 | //TODO: backend | ||
34 | if (nItem) { | ||
35 | item.parentNode.insertBefore(item, nItem); | ||
36 | } else { | ||
37 | item.parentNode.appendChild(item); | ||
38 | } | ||
39 | break; | ||
40 | case 'gril-delete': | ||
41 | //TODO: backend | ||
42 | item.parentNode.removeChild(item); | ||
43 | break; | ||
44 | } | ||
45 | } | ||
46 | |||
22 | function main() { | 47 | function main() { |
23 | let is = new search.InstantSearch( | 48 | let is = new search.InstantSearch( |
24 | document.getElementById('gril-add-search'), | 49 | document.getElementById('gril-add-search'), |
25 | document.getElementById('search-results')); | 50 | document.getElementById('search-results')); |
26 | is.resultClicked = resultClicked; | 51 | is.resultClicked = resultClicked; |
52 | document.getElementById('gril-list').addEventListener( | ||
53 | 'click', | ||
54 | listButtonHandler, | ||
55 | true); | ||
27 | } | 56 | } |
28 | 57 | ||
29 | dom.ready(main); | 58 | dom.ready(main); |