aboutsummaryrefslogtreecommitdiff
path: root/assets_src/js/list.js
diff options
context:
space:
mode:
Diffstat (limited to 'assets_src/js/list.js')
-rw-r--r--assets_src/js/list.js70
1 files changed, 37 insertions, 33 deletions
diff --git a/assets_src/js/list.js b/assets_src/js/list.js
index 7a4f69e..7af7444 100644
--- a/assets_src/js/list.js
+++ b/assets_src/js/list.js
@@ -20,24 +20,26 @@ async function resultClicked(grilId) {
20} 20}
21 21
22async function updateGrilOrder(gril, pos) { 22async function updateGrilOrder(gril, pos) {
23 return await ajax.post( 23 return await ajax.post(
24 `${window.location}/order`, 24 `${window.location}/order`,
25 `gril=${gril}&pos=${pos}`, 25 `gril=${gril}&pos=${pos}`,
26 { headers: { 26 {
27 'Content-Type': 'application/x-www-form-urlencoded', 27 headers: {
28 } }); 28 'Content-Type': 'application/x-www-form-urlencoded',
29 }
30 });
29} 31}
30 32
31function getCurrentOrder(gril) { 33function getCurrentOrder(gril) {
32 const els = document.querySelectorAll('#gril-list > li') 34 const els = document.querySelectorAll('#gril-list > li')
33 35
34 for (let i = 0; i < els.length; i++) { 36 for (let i = 0; i < els.length; i++) {
35 if (els[i].id === gril) { 37 if (els[i].id === gril) {
36 console.log(i); 38 console.log(i);
37 return i; 39 return i;
38 } 40 }
39 } 41 }
40 return -1; 42 return -1;
41} 43}
42 44
43async function listButtonHandler(e) { 45async function listButtonHandler(e) {
@@ -47,20 +49,20 @@ async function listButtonHandler(e) {
47 nItem = dom.next(dom.next(item, liFilter), liFilter); 49 nItem = dom.next(dom.next(item, liFilter), liFilter);
48 switch (e.target.classList[0]) { 50 switch (e.target.classList[0]) {
49 case 'gril-sort-up': 51 case 'gril-sort-up':
50 try { 52 try {
51 await updateGrilOrder(item.id, getCurrentOrder(item.id) - 1); 53 await updateGrilOrder(item.id, getCurrentOrder(item.id) - 1);
52 } catch(e) { 54 } catch(e) {
53 alert(e.message); 55 alert(e.message);
54 } 56 }
55 item.parentNode.insertBefore(item, pItem); 57 item.parentNode.insertBefore(item, pItem);
56 break; 58 break;
57 case 'gril-sort-down': 59 case 'gril-sort-down':
58 try { 60 try {
59 await updateGrilOrder(item.id, getCurrentOrder(item.id) + 1); 61 await updateGrilOrder(item.id, getCurrentOrder(item.id) + 1);
60 } catch(e) { 62 } catch(e) {
61 alert(e.message); 63 alert(e.message);
62 } 64 }
63 65
64 if (nItem) { 66 if (nItem) {
65 item.parentNode.insertBefore(item, nItem); 67 item.parentNode.insertBefore(item, nItem);
66 } else { 68 } else {
@@ -68,16 +70,18 @@ async function listButtonHandler(e) {
68 } 70 }
69 break; 71 break;
70 case 'gril-delete': 72 case 'gril-delete':
71 let liFilter = x => x.tagName && x.tagName.toLowerCase() === 'li'; 73 let liFilter = x => x.tagName && x.tagName.toLowerCase() === 'li';
72 let item = dom.closest(e.target, liFilter); 74 let item = dom.closest(e.target, liFilter);
73 try { 75 try {
74 await ajax.del( 76 await ajax.del(
75 `${window.location}/order`, 77 `${window.location}/order`,
76 `gril=${item.id}`, 78 `gril=${item.id}`,
77 { headers: { 79 {
78 'Content-Type': 'application/x-www-form-urlencoded', 80 headers: {
79 } }); 81 'Content-Type': 'application/x-www-form-urlencoded',
80 item.parentNode.removeChild(item); 82 }
83 });
84 item.parentNode.removeChild(item);
81 } catch(e) { 85 } catch(e) {
82 alert(e.message); 86 alert(e.message);
83 } 87 }