wonder-image 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/DOCS.md +12 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1 -0
  4. package/babel.config.json +3 -0
  5. package/demo/backend/body-end.php +10 -0
  6. package/demo/backend/head.php +93 -0
  7. package/demo/frontend/body-end.php +19 -0
  8. package/demo/frontend/head.php +244 -0
  9. package/demo/wonder-image.php +41 -0
  10. package/dist/0d01fa889dc2b0202b98.png +0 -0
  11. package/dist/203d1199e7aef04c0a34.gif +0 -0
  12. package/dist/26d6ed3fa1c815e4c78f.png +0 -0
  13. package/dist/39795c0b4513de014cf8.woff +0 -0
  14. package/dist/40b30ca122107c2852be.png +0 -0
  15. package/dist/4a7b4107b62ef059ba65.png +0 -0
  16. package/dist/4dce7f71b08755f19759.png +0 -0
  17. package/dist/60af14fddca897f348bb.png +0 -0
  18. package/dist/67172a36bcdeaca8592a.png +0 -0
  19. package/dist/a85c6dc53638f894de38.png +0 -0
  20. package/dist/b7bcc075b395c14ce8c2.woff2 +0 -0
  21. package/dist/backend/body-end.js +3 -0
  22. package/dist/backend/body-end.js.LICENSE.txt +44 -0
  23. package/dist/backend/body-end.js.map +1 -0
  24. package/dist/backend/head.css +2 -0
  25. package/dist/backend/head.css.map +1 -0
  26. package/dist/backend/head.js +3 -0
  27. package/dist/backend/head.js.LICENSE.txt +46 -0
  28. package/dist/backend/head.js.map +1 -0
  29. package/dist/backend/lib.js +2 -0
  30. package/dist/backend/lib.js.LICENSE.txt +1 -0
  31. package/dist/frontend/body-end.js +3 -0
  32. package/dist/frontend/body-end.js.LICENSE.txt +46 -0
  33. package/dist/frontend/body-end.js.map +1 -0
  34. package/dist/frontend/head.css +2 -0
  35. package/dist/frontend/head.css.map +1 -0
  36. package/dist/frontend/head.js +3 -0
  37. package/dist/frontend/head.js.LICENSE.txt +46 -0
  38. package/dist/frontend/head.js.map +1 -0
  39. package/dist/frontend/lib.css +2 -0
  40. package/dist/frontend/lib.css.map +1 -0
  41. package/dist/frontend/lib.js +3 -0
  42. package/dist/frontend/lib.js.LICENSE.txt +151 -0
  43. package/dist/frontend/lib.js.map +1 -0
  44. package/dist/lib/autonumeric/autonumeric.js +3 -0
  45. package/dist/lib/autonumeric/autonumeric.js.LICENSE.txt +47 -0
  46. package/dist/lib/autonumeric/autonumeric.js.map +1 -0
  47. package/dist/lib/bootstrap/bootstrap-datepicker.css +2 -0
  48. package/dist/lib/bootstrap/bootstrap-datepicker.css.map +1 -0
  49. package/dist/lib/bootstrap/bootstrap-datepicker.js +3 -0
  50. package/dist/lib/bootstrap/bootstrap-datepicker.js.LICENSE.txt +42 -0
  51. package/dist/lib/bootstrap/bootstrap-datepicker.js.map +1 -0
  52. package/dist/lib/bootstrap/bootstrap-icons.css +2 -0
  53. package/dist/lib/bootstrap/bootstrap-icons.css.map +1 -0
  54. package/dist/lib/bootstrap/bootstrap-icons.js +3 -0
  55. package/dist/lib/bootstrap/bootstrap-icons.js.LICENSE.txt +13 -0
  56. package/dist/lib/bootstrap/bootstrap-icons.js.map +1 -0
  57. package/dist/lib/bootstrap/bootstrap.css +2 -0
  58. package/dist/lib/bootstrap/bootstrap.css.map +1 -0
  59. package/dist/lib/bootstrap/bootstrap.js +3 -0
  60. package/dist/lib/bootstrap/bootstrap.js.LICENSE.txt +44 -0
  61. package/dist/lib/bootstrap/bootstrap.js.map +1 -0
  62. package/dist/lib/chartjs/chart.js +3 -0
  63. package/dist/lib/chartjs/chart.js.LICENSE.txt +1467 -0
  64. package/dist/lib/chartjs/chart.js.map +1 -0
  65. package/dist/lib/datatables/datatables.css +2 -0
  66. package/dist/lib/datatables/datatables.css.map +1 -0
  67. package/dist/lib/datatables/datatables.js +3 -0
  68. package/dist/lib/datatables/datatables.js.LICENSE.txt +8988 -0
  69. package/dist/lib/datatables/datatables.js.map +1 -0
  70. package/dist/lib/editorjs/editor.js +3 -0
  71. package/dist/lib/editorjs/editor.js.LICENSE.txt +5812 -0
  72. package/dist/lib/editorjs/editor.js.map +1 -0
  73. package/dist/lib/fancyapps/fancyapps.css +2 -0
  74. package/dist/lib/fancyapps/fancyapps.css.map +1 -0
  75. package/dist/lib/fancyapps/fancyapps.js +3 -0
  76. package/dist/lib/fancyapps/fancyapps.js.LICENSE.txt +19 -0
  77. package/dist/lib/fancyapps/fancyapps.js.map +1 -0
  78. package/dist/lib/filepond/filepond.css +2 -0
  79. package/dist/lib/filepond/filepond.css.map +1 -0
  80. package/dist/lib/filepond/filepond.js +3 -0
  81. package/dist/lib/filepond/filepond.js.LICENSE.txt +2797 -0
  82. package/dist/lib/filepond/filepond.js.map +1 -0
  83. package/dist/lib/fullcalendar/fullcalendar.js +3 -0
  84. package/dist/lib/fullcalendar/fullcalendar.js.LICENSE.txt +3787 -0
  85. package/dist/lib/fullcalendar/fullcalendar.js.map +1 -0
  86. package/dist/lib/jquery/jquery-plugin.css +2 -0
  87. package/dist/lib/jquery/jquery-plugin.css.map +1 -0
  88. package/dist/lib/jquery/jquery-plugin.js +3 -0
  89. package/dist/lib/jquery/jquery-plugin.js.LICENSE.txt +60 -0
  90. package/dist/lib/jquery/jquery-plugin.js.map +1 -0
  91. package/dist/lib/jquery/jquery.js +3 -0
  92. package/dist/lib/jquery/jquery.js.LICENSE.txt +3240 -0
  93. package/dist/lib/jquery/jquery.js.map +1 -0
  94. package/dist/lib/jstree/jstree.css +2 -0
  95. package/dist/lib/jstree/jstree.css.map +1 -0
  96. package/dist/lib/jstree/jstree.js +3 -0
  97. package/dist/lib/jstree/jstree.js.LICENSE.txt +42 -0
  98. package/dist/lib/jstree/jstree.js.map +1 -0
  99. package/dist/lib/moment/moment.js +3 -0
  100. package/dist/lib/moment/moment.js.LICENSE.txt +772 -0
  101. package/dist/lib/moment/moment.js.map +1 -0
  102. package/dist/lib/quilljs/quill.css +2 -0
  103. package/dist/lib/quilljs/quill.css.map +1 -0
  104. package/dist/lib/quilljs/quill.js +3 -0
  105. package/dist/lib/quilljs/quill.js.LICENSE.txt +3038 -0
  106. package/dist/lib/quilljs/quill.js.map +1 -0
  107. package/dist/lib/swiperjs/swiper-plugin.css +2 -0
  108. package/dist/lib/swiperjs/swiper-plugin.css.map +1 -0
  109. package/dist/lib/swiperjs/swiper-plugin.js +3 -0
  110. package/dist/lib/swiperjs/swiper-plugin.js.LICENSE.txt +1113 -0
  111. package/dist/lib/swiperjs/swiper-plugin.js.map +1 -0
  112. package/dist/lib/swiperjs/swiper.css +2 -0
  113. package/dist/lib/swiperjs/swiper.css.map +1 -0
  114. package/dist/lib/swiperjs/swiper.js +3 -0
  115. package/dist/lib/swiperjs/swiper.js.LICENSE.txt +651 -0
  116. package/dist/lib/swiperjs/swiper.js.map +1 -0
  117. package/dist/lib/videojs/video.css +2 -0
  118. package/dist/lib/videojs/video.css.map +1 -0
  119. package/dist/lib/videojs/video.js +3 -0
  120. package/dist/lib/videojs/video.js.LICENSE.txt +23391 -0
  121. package/dist/lib/videojs/video.js.map +1 -0
  122. package/package.json +95 -0
  123. package/src/build/backend/css/header.css +252 -0
  124. package/src/build/backend/css/input.css +295 -0
  125. package/src/build/backend/css/list.css +57 -0
  126. package/src/build/backend/css/order.css +99 -0
  127. package/src/build/backend/js/ajax.js +96 -0
  128. package/src/build/backend/js/alert.js +78 -0
  129. package/src/build/backend/js/bootstrap.js +52 -0
  130. package/src/build/backend/js/form/editor.js +293 -0
  131. package/src/build/backend/js/form/file.js +142 -0
  132. package/src/build/backend/js/form/filepond.js +11 -0
  133. package/src/build/backend/js/form/input.js +313 -0
  134. package/src/build/backend/js/form/inputRow.js +164 -0
  135. package/src/build/backend/js/form/send.js +14 -0
  136. package/src/build/backend/js/form/set.js +314 -0
  137. package/src/build/backend/js/jquery.js +15 -0
  138. package/src/build/backend/js/list.js +19 -0
  139. package/src/build/backend/js/modal.js +31 -0
  140. package/src/build/backend/js/pageSetUp.js +125 -0
  141. package/src/build/backend/js/utility.js +38 -0
  142. package/src/build/frontend/css/class/dimension.css +3376 -0
  143. package/src/build/frontend/css/class/function.css +316 -0
  144. package/src/build/frontend/css/class/grid.css +240 -0
  145. package/src/build/frontend/css/class/margin.css +823 -0
  146. package/src/build/frontend/css/class/padding.css +760 -0
  147. package/src/build/frontend/css/class/position.css +351 -0
  148. package/src/build/frontend/css/class/resize.css +24 -0
  149. package/src/build/frontend/css/class/section.css +41 -0
  150. package/src/build/frontend/css/class/text.css +244 -0
  151. package/src/build/frontend/css/components/alert.css +42 -0
  152. package/src/build/frontend/css/components/button.css +107 -0
  153. package/src/build/frontend/css/components/dropdown.css +118 -0
  154. package/src/build/frontend/css/components/form/address.css +26 -0
  155. package/src/build/frontend/css/components/form/checkbox.css +65 -0
  156. package/src/build/frontend/css/components/form/date.css +133 -0
  157. package/src/build/frontend/css/components/form/input.css +176 -0
  158. package/src/build/frontend/css/components/form/select.css +69 -0
  159. package/src/build/frontend/css/components/header/hamburger/hamburger-1.css +56 -0
  160. package/src/build/frontend/css/components/header/hamburger/hamburger.css +58 -0
  161. package/src/build/frontend/css/components/header/header.css +57 -0
  162. package/src/build/frontend/css/components/header/mobile-nav.css +79 -0
  163. package/src/build/frontend/css/components/modal.css +76 -0
  164. package/src/build/frontend/css/components/spinner.css +37 -0
  165. package/src/build/frontend/css/generator/dimension.php +93 -0
  166. package/src/build/frontend/css/generator/margin.php +48 -0
  167. package/src/build/frontend/css/generator/padding.php +48 -0
  168. package/src/build/frontend/css/lib.css +3 -0
  169. package/src/build/frontend/css/main.css +37 -0
  170. package/src/build/frontend/js/alert.js +64 -0
  171. package/src/build/frontend/js/aos.js +9 -0
  172. package/src/build/frontend/js/dropdown.js +73 -0
  173. package/src/build/frontend/js/form/input.js +211 -0
  174. package/src/build/frontend/js/form/list.js +155 -0
  175. package/src/build/frontend/js/form/select.js +108 -0
  176. package/src/build/frontend/js/form/send.js +137 -0
  177. package/src/build/frontend/js/header.js +12 -0
  178. package/src/build/frontend/js/modal.js +26 -0
  179. package/src/build/frontend/js/pageSetUp.js +35 -0
  180. package/src/build/frontend/js/scroll.js +70 -0
  181. package/src/build/frontend/js/utility.js +21 -0
  182. package/src/build/global/js/canvas.js +82 -0
  183. package/src/build/global/js/fetch.js +47 -0
  184. package/src/build/global/js/form/autonumeric.js +136 -0
  185. package/src/build/global/js/form/phone.js +19 -0
  186. package/src/build/global/js/utility.js +88 -0
  187. package/src/build/global/js/video.js +7 -0
  188. package/src/build/lib/editorjs/gallery.js +39 -0
  189. package/src/build/lib/editorjs/hyperlink.js +170 -0
  190. package/src/build/lib/editorjs/video.js +61 -0
  191. package/src/build/lib/swiperjs/effect-carousel.css +24 -0
  192. package/src/build/lib/swiperjs/effect-carousel.esm.js +102 -0
  193. package/src/build/lib/swiperjs/effect-shutters.css +33 -0
  194. package/src/build/lib/swiperjs/effect-shutters.esm.js +114 -0
  195. package/src/build/lib/swiperjs/effect-slicer.css +39 -0
  196. package/src/build/lib/swiperjs/effect-slicer.esm.js +198 -0
  197. package/src/build/lib/swiperjs/swiper-gl.css +44 -0
  198. package/src/build/lib/swiperjs/swiper-gl.esm.js +6063 -0
  199. package/src/export/backend/body-end.js +4 -0
  200. package/src/export/backend/head.js +25 -0
  201. package/src/export/backend/lib.js +0 -0
  202. package/src/export/frontend/body-end.js +9 -0
  203. package/src/export/frontend/head.js +42 -0
  204. package/src/export/frontend/lib.js +17 -0
  205. package/src/export/lib/autonumeric/autonumeric.js +3 -0
  206. package/src/export/lib/bootstrap/bootstrap-datepicker.js +4 -0
  207. package/src/export/lib/bootstrap/bootstrap-icons.js +2 -0
  208. package/src/export/lib/bootstrap/bootstrap.js +3 -0
  209. package/src/export/lib/chartjs/chart.js +4 -0
  210. package/src/export/lib/datatables/datatables.js +6 -0
  211. package/src/export/lib/editorjs/editor.js +48 -0
  212. package/src/export/lib/fancyapps/fancyapps.js +7 -0
  213. package/src/export/lib/filepond/filepond.js +51 -0
  214. package/src/export/lib/fullcalendar/fullcalendar.js +29 -0
  215. package/src/export/lib/jquery/jquery-plugin.js +14 -0
  216. package/src/export/lib/jquery/jquery.js +4 -0
  217. package/src/export/lib/jstree/jstree.js +2 -0
  218. package/src/export/lib/moment/moment.js +12 -0
  219. package/src/export/lib/quilljs/quill.js +4 -0
  220. package/src/export/lib/swiperjs/swiper-plugin.js +20 -0
  221. package/src/export/lib/swiperjs/swiper.js +4 -0
  222. package/src/export/lib/videojs/video.js +3 -0
  223. package/webpack.config.js +79 -0
@@ -0,0 +1,142 @@
1
+ function moveFile(selectorContainer, selectorData, action) {
2
+
3
+ var link = pathApp+'/api/backend/file/move.php';
4
+
5
+ var el = document.querySelector(selectorContainer+' '+selectorData);
6
+
7
+ var table = el.dataset.wiDbTable;
8
+ var column = el.dataset.wiDbColumn;
9
+ var rowId = el.dataset.wiDbRow;
10
+ var fileId = el.dataset.wiFileId;
11
+ var oldPosition = Number(el.dataset.wiOrder);
12
+ var nFile = el.dataset.wiNFile;
13
+
14
+ $.ajax({
15
+ type: "POST",
16
+ url: link,
17
+ data: {
18
+ post: 'true',
19
+ table: table,
20
+ column: column,
21
+ row_id: rowId,
22
+ file_id: fileId,
23
+ action: action
24
+ },
25
+ success: function (data) {
26
+
27
+ if (action == 'up') {
28
+ var newPosition = oldPosition - 1;
29
+ } else if (action == 'down') {
30
+ var newPosition = oldPosition + 1;
31
+ }
32
+
33
+ var file1 = document.querySelector(selectorContainer+' .wi-card-file.order-'+oldPosition);
34
+ var file2 = document.querySelector(selectorContainer+' .wi-card-file.order-'+newPosition);
35
+
36
+ file1.classList.remove('order-'+oldPosition);
37
+ file1.classList.add('order-'+newPosition);
38
+ file1.dataset.wiOrder = newPosition;
39
+ file1.dataset.wiFileId = file2.dataset.wiFileId;
40
+
41
+ file2.classList.remove('order-'+newPosition);
42
+ file2.classList.add('order-'+oldPosition);
43
+ file2.dataset.wiOrder = oldPosition;
44
+ file2.dataset.wiFileId = fileId;
45
+
46
+ // Sistema first e last
47
+ firstLastFile(selectorContainer, nFile);
48
+
49
+ },
50
+ error: function (XMLHttpRequest) {
51
+ ajaxRequestError(XMLHttpRequest);
52
+ }
53
+ });
54
+
55
+ }
56
+
57
+ function deleteFile(selectorContainer, selectorData) {
58
+
59
+ var el = document.querySelector(selectorContainer+' '+selectorData);
60
+
61
+ var folder = el.dataset.wiFolder;
62
+ var table = el.dataset.wiDbTable;
63
+ var column = el.dataset.wiDbColumn;
64
+ var rowId = el.dataset.wiDbRow;
65
+ var fileId = el.dataset.wiFileId;
66
+
67
+ var oldPosition = Number(el.dataset.wiOrder);
68
+ var nFile = el.dataset.wiNFile;
69
+
70
+ var fileName = el.dataset.wiFileName;
71
+
72
+ var text = "Sei sicuro di eliminare il file <b>"+fileName+"</b>?";
73
+ var link = pathApp+'/api/backend/file/delete.php?folder='+folder+'&table='+table+'&column='+column+'&row_id='+rowId+'&file_id='+fileId;
74
+
75
+ var onSuccess = '{ "function" : "removeFile", "parameters": { "container" : "'+selectorContainer+'", "data" : "'+selectorData+'", "nFile" : "'+nFile+'", "position" : "'+oldPosition+'"} }';
76
+
77
+ modal(text, link, 'ATTENZIONE', 'Elimina', 'danger', 'Chiudi', 'dark', onSuccess);
78
+
79
+ }
80
+
81
+ function removeFile(parameters) {
82
+
83
+ var selectorContainer = parameters.container;
84
+ var selectorData = parameters.data;
85
+ var deletedFilePosition = Number(parameters.position);
86
+ var maxFile = Number(parameters.maxFile);
87
+ var old_nFile = Number(parameters.nFile);
88
+ const real_nFile = old_nFile - 1;
89
+
90
+ document.querySelector(selectorContainer+' '+selectorData).remove();
91
+
92
+ document.querySelectorAll(selectorContainer+' .wi-card-file').forEach(element => {
93
+
94
+ var filePosition = Number(element.dataset.wiOrder);
95
+ element.dataset.wiNFile = real_nFile;
96
+
97
+ if (filePosition > deletedFilePosition) {
98
+
99
+ var newPosition = filePosition - 1;
100
+ var newId = newPosition - 1;
101
+
102
+ element.dataset.wiOrder = newPosition;
103
+ element.classList.remove('order-'+filePosition);
104
+ element.classList.add('order-'+newPosition);
105
+
106
+ element.dataset.wiFileId = newId;
107
+
108
+ }
109
+
110
+ });
111
+
112
+
113
+ var maxFile = document.querySelector(selectorContainer+' input').dataset.wiMaxFile;
114
+
115
+ if (maxFile > real_nFile) {
116
+ document.querySelector(selectorContainer+' input').disabled = false;
117
+ }
118
+
119
+ firstLastFile(selectorContainer, real_nFile);
120
+
121
+ $('#modal').modal('hide');
122
+
123
+ }
124
+
125
+ function firstLastFile(selectorContainer, nFile) {
126
+
127
+ if (document.querySelectorAll(selectorContainer+' .wi-card-file').length > 0) {
128
+
129
+ if (document.querySelector(selectorContainer+' .wi-card-file.wi-first-file')) {
130
+ document.querySelector(selectorContainer+' .wi-card-file.wi-first-file').classList.remove('wi-first-file');
131
+ }
132
+
133
+ if (document.querySelector(selectorContainer+' .wi-card-file.wi-last-file')) {
134
+ document.querySelector(selectorContainer+' .wi-card-file.wi-last-file').classList.remove('wi-last-file');
135
+ }
136
+
137
+ document.querySelector(selectorContainer+' .wi-card-file.order-1').classList.add('wi-first-file');
138
+ document.querySelector(selectorContainer+' .wi-card-file.order-'+nFile).classList.add('wi-last-file');
139
+
140
+ }
141
+
142
+ }
@@ -0,0 +1,11 @@
1
+ FilePond.registerPlugin(
2
+ FilePondPluginFileValidateType,
3
+ FilePondPluginImageExifOrientation,
4
+ FilePondPluginImagePreview,
5
+ FilePondPluginImageCrop,
6
+ FilePondPluginImageResize,
7
+ FilePondPluginImageTransform,
8
+ FilePondPluginImageEdit,
9
+ FilePondPluginFileMetadata,
10
+ FilePondPluginGetFile
11
+ );
@@ -0,0 +1,313 @@
1
+ function check() {
2
+
3
+ document.querySelectorAll("form button[type='submit'], form button.wi-submit").forEach(button => {
4
+
5
+ button.removeAttribute("disabled");
6
+
7
+ var inputList = button.form.elements;
8
+
9
+ for (let i = 0; i < inputList.length; i++) {
10
+
11
+ var input = inputList[i];
12
+
13
+ if (input.required) {
14
+ if (input.type == 'checkbox' || input.type == 'radio') {
15
+ if (input.checked == false) { button.setAttribute("disabled", null); }
16
+ } else {
17
+ if (input.value == "") { button.setAttribute("disabled", null); }
18
+ }
19
+ }
20
+
21
+ }
22
+
23
+ var formElement = button.form;
24
+
25
+ formElement.querySelectorAll(".wi-checkbox-required, .wi-radio-required").forEach(checkboxContainer => {
26
+
27
+ if (checkboxContainer.querySelectorAll("input[type='checkbox']:checked, input[type='radio']:checked").length == 0) { button.setAttribute("disabled", null); }
28
+
29
+ });
30
+
31
+ });
32
+
33
+ }
34
+
35
+ function lengthCount(event) {
36
+
37
+ var val = event.target.value;
38
+ var container = event.target.parentElement;
39
+
40
+ if (container.querySelector('.wi-counter')) {
41
+ container.querySelector('.wi-counter').innerHTML = val.length;
42
+ }
43
+
44
+ }
45
+
46
+ function checkColor(event) {
47
+
48
+ var val = event.target.value;
49
+ var container = event.target.parentElement;
50
+
51
+ if (val.includes('#')) {
52
+ container.querySelector('.wi-show-color').style.color = val;
53
+ } else {
54
+ container.querySelector('.wi-show-color').el.style.color = 'rgba('+val+')';
55
+ }
56
+
57
+ }
58
+
59
+ function generateCode(selector) {
60
+
61
+ document.querySelector(selector).value = code();
62
+
63
+ }
64
+
65
+ function disableInput(type) {
66
+
67
+ if (type == 'user') {
68
+ var inputArray = document.querySelectorAll('input[name=name], input[name=surname], input[name=username], input[name=email], input[name="profile_picture[]"], select[name=color], select[name=active]');
69
+ }
70
+
71
+ inputArray.forEach(element => {
72
+
73
+ element.disabled = true;
74
+ element.dataset.wiOldValue = element.value;
75
+ element.dataset.wiOldRequired = element.required;
76
+
77
+ element.value = '';
78
+ element.required = false;
79
+
80
+ });
81
+
82
+ }
83
+
84
+ function enabledInput(type) {
85
+
86
+ if (type == 'user') {
87
+ var inputArray = document.querySelectorAll('input[name=name], input[name=surname], input[name=username], input[name=email], input[name="profile_picture[]"], select[name=color], select[name=active]');
88
+ }
89
+
90
+ inputArray.forEach(element => {
91
+
92
+ if (element.dataset.wiOldValue) {
93
+ var wiOldValue = element.dataset.wiOldValue;
94
+ } else {
95
+ if (element.name == 'active') {
96
+ var wiOldValue = "true";
97
+ } else if (element.name == 'color') {
98
+ var wiOldValue = "blue";
99
+ } else {
100
+ var wiOldValue = "";
101
+ }
102
+ }
103
+
104
+ if (element.dataset.wiOldRequired) {
105
+ var wiOldRequired = element.dataset.wiOldRequired;
106
+ } else {
107
+ var wiOldRequired = "";
108
+ }
109
+
110
+ element.disabled = false;
111
+ element.value = wiOldValue;
112
+ element.required = wiOldRequired;
113
+
114
+ });
115
+
116
+ }
117
+
118
+ function setDynamicSearch(element) {
119
+
120
+ var dataValue = element.dataset.wiValue;
121
+ var containerMaster = element.parentElement;
122
+ var container = containerMaster.querySelector('.card .card-body');
123
+ var footer = containerMaster.querySelector('.card .card-footer');
124
+
125
+ container.innerHTML = "";
126
+
127
+ if (dataValue != '') {
128
+
129
+ var value = dataValue;
130
+ var url = element.dataset.wiSearchUrl;
131
+
132
+ $.ajax({
133
+ type: "POST",
134
+ url: url,
135
+ data: {
136
+ post: 'true',
137
+ id: value
138
+ },
139
+ success: function (data) {
140
+ createCheckbox(data, element, container, true);
141
+ checkInput();
142
+ },
143
+ error: function (XMLHttpRequest) {
144
+
145
+ ajaxRequestError(XMLHttpRequest);
146
+ footer.innerHTML = 'Errore!';
147
+
148
+ }
149
+ });
150
+
151
+ }
152
+
153
+ }
154
+
155
+ function createCheckbox(array, element, container, checked = false) {
156
+
157
+ var name = element.dataset.wiName;
158
+ var attribute = element.dataset.wiAttribute;
159
+
160
+ if (element.dataset.wiSearchRadio != undefined) {
161
+ var type = "radio";
162
+ } else if (element.dataset.wiSearchCheckbox != undefined) {
163
+ var type = "checkbox";
164
+ }
165
+
166
+ var containerMaster = container.parentElement;
167
+ var footer = containerMaster.querySelector('.card .card-footer');
168
+ footer.innerHTML = 'Cerco...';
169
+
170
+ try {
171
+
172
+ const response = JSON.parse(array);
173
+ const nResponse = response.length;
174
+
175
+ var HTML_CHECKED = "";
176
+
177
+ container.querySelectorAll('input:checked').forEach(el => {
178
+
179
+ el.setAttribute('checked', true);
180
+ HTML_CHECKED += "<div class='form-check'>"+el.parentElement.innerHTML+"</div>";
181
+
182
+ });
183
+
184
+ container.innerHTML = "";
185
+
186
+ for (let index = 0; index < nResponse; index++) {
187
+
188
+ var idCode = code();
189
+ var HTML = "";
190
+ var att = attribute;
191
+
192
+ var value = response[index]['value'];
193
+ var label = response[index]['label'];
194
+ var inputValue = response[index]['input-value'];
195
+
196
+ if (checked) { var att = attribute+" checked"; }
197
+
198
+ if (HTML_CHECKED.search('value="'+value+'"') == '-1') {
199
+
200
+ HTML += "<div class='form-check'>";
201
+ HTML += "<input id='"+idCode+"' type='"+type+"' class='form-check-input' name='"+name+"' value='"+value+"' data-wi-check='true' "+att+" >";
202
+ HTML += "<label class='form-check-label wi-check-label user-select-none' for='"+idCode+"'>"+label+"</label>";
203
+ HTML += "</div>";
204
+
205
+ container.insertAdjacentHTML("beforeend", HTML);
206
+
207
+ }
208
+
209
+ }
210
+
211
+ container.insertAdjacentHTML("beforeend", HTML_CHECKED);
212
+
213
+ if (inputValue == '') {
214
+ footer.innerHTML = "Cerca risultati";
215
+ } else if (nResponse == 1) {
216
+ footer.innerHTML = nResponse+" risultato";
217
+ } else if (nResponse != 1) {
218
+ footer.innerHTML = nResponse+" risultati";
219
+ }
220
+
221
+ } catch {
222
+
223
+ console.log(array);
224
+ footer.innerHTML = 'Errore nel file! Contatta assistenza';
225
+
226
+ }
227
+
228
+ }
229
+
230
+ function inputSearch(event) {
231
+
232
+ var inputText = event.target;
233
+
234
+ var containerMaster = inputText.parentElement;
235
+ var container = containerMaster.querySelector('.card .card-body');
236
+ var footer = containerMaster.querySelector('.card .card-footer');
237
+
238
+ var inputValue = inputText.value.toLowerCase();
239
+
240
+ if (inputText.dataset.wiSearchUrl != undefined) {
241
+
242
+ var url = inputText.dataset.wiSearchUrl;
243
+
244
+ var footer = containerMaster.querySelector('.card .card-footer');
245
+ footer.innerHTML = 'Cerco...';
246
+
247
+ $.ajax({
248
+ type: "POST",
249
+ url: url,
250
+ data: {
251
+ post: 'true',
252
+ search: inputValue
253
+ },
254
+ success: function (data) {
255
+ createCheckbox(data, inputText, container);
256
+ checkInput();
257
+ },
258
+ error: function (XMLHttpRequest) {
259
+
260
+ ajaxRequestError(XMLHttpRequest);
261
+ footer.innerHTML = 'Errore! Riprova la ricerca.';
262
+
263
+ }
264
+ });
265
+
266
+ } else {
267
+
268
+ container.querySelectorAll('label.wi-check-label').forEach(element => {
269
+
270
+ var container = element.parentElement;
271
+ var name = element.innerHTML.toLowerCase();
272
+
273
+ if (name.includes(inputValue)) {
274
+ element.parentElement.style.display = 'block';
275
+ } else if (container.querySelector('input').checked == false) {
276
+ element.parentElement.style.display = 'none';
277
+ }
278
+
279
+ });
280
+
281
+ }
282
+
283
+ }
284
+
285
+ function filterSelect(selectElement, dataName, value) {
286
+
287
+ selectElement.querySelectorAll('option').forEach(option => {
288
+
289
+ if (option.getAttribute('data-'+dataName)) {
290
+
291
+ var filterValue = JSON.parse(option.getAttribute('data-'+dataName));
292
+
293
+ if ((Array.isArray(filterValue) && filterValue.includes(value)) || filterValue == value) {
294
+
295
+ option.disabled = false;
296
+ option.hidden = false;
297
+
298
+ } else {
299
+
300
+ if (option.selected == true) {
301
+ selectElement.value = "";
302
+ }
303
+
304
+ option.disabled = true;
305
+ option.hidden = true;
306
+
307
+ }
308
+
309
+ }
310
+
311
+ });
312
+
313
+ }
@@ -0,0 +1,164 @@
1
+ function copyRow(container, element) {
2
+
3
+ var copy = element.cloneNode(true);
4
+ var position = container.childElementCount;
5
+
6
+ copy.id = '';
7
+ copy.classList.remove('visually-hidden');
8
+ copy.classList.add('wi-copy-row');
9
+ copy.classList.add('order-'+position);
10
+
11
+ copy.querySelector('input[name="position[]"]').value = position;
12
+
13
+ copy.querySelectorAll('[data-wi-attribute]').forEach(element => {
14
+
15
+ var attribute = element.dataset.wiAttribute;
16
+
17
+ if (attribute != '') {
18
+
19
+ if (attribute.includes('required')) { element.required = true; }
20
+ if (attribute.includes('disabled')) { element.disabled = true; }
21
+ if (attribute.includes('readonly')) { element.readonly = true; }
22
+
23
+ }
24
+
25
+ });
26
+
27
+ container.appendChild(copy);
28
+
29
+ checkInput();
30
+ rowSetArrow(container);
31
+ bootstrapTooltip();
32
+
33
+ }
34
+
35
+ function rowOrder(el1, action) {
36
+
37
+ var container = el1.parentElement;
38
+
39
+ for (let a = 1; a < 100; a++) {
40
+
41
+ var classEl1 = 'order-'+a;
42
+
43
+ if(el1.classList.contains(classEl1)) {
44
+
45
+ if (action == 'up') { var b = a - 1; }
46
+ if (action == 'down') { var b = a + 1; }
47
+
48
+ var classEl2 = 'order-'+b;
49
+
50
+ var el2 = container.querySelector('.'+classEl2);
51
+
52
+ rowChangePos(el1, a, b);
53
+ rowChangePos(el2, b, a);
54
+
55
+ rowSetArrow(container);
56
+
57
+ break;
58
+
59
+ }
60
+
61
+ }
62
+
63
+ }
64
+
65
+ function rowChangePos(element, oldPosition, newPosition) {
66
+
67
+ element.classList.remove('order-'+oldPosition);
68
+ element.classList.add('order-'+newPosition);
69
+
70
+ if (element.querySelector('input[name="position[]"]')) {
71
+ element.querySelector('input[name="position[]"]').value = newPosition;
72
+ }
73
+
74
+ }
75
+
76
+ function rowRemoveModal(element) {
77
+
78
+ var container = element.parentElement;
79
+
80
+ var text = 'Sei sicuro di voler eliminare questa linea?<br>Se <b>NON</b> salvi questa operazione non verrà effettuata!'
81
+ modal(text, 'link');
82
+
83
+ for (let a = 1; a < 100; a++) {
84
+
85
+ var elementClass = 'order-'+a;
86
+ if(element.classList.contains(elementClass)) {
87
+ var orderN = a;
88
+ break;
89
+ }
90
+
91
+ }
92
+
93
+ var selector = '#'+container.id+' .'+elementClass;
94
+
95
+ var sendBtn = document.querySelector('#modal button.send');
96
+ sendBtn.setAttribute("onclick", 'rowRemove("'+selector+'", "'+orderN+'")');
97
+
98
+ }
99
+
100
+ function rowRemove(selector, nRow) {
101
+
102
+ $('#modal').modal('hide');
103
+
104
+ var element = document.querySelector(selector);
105
+ var container = element.parentElement;
106
+ var containerId = container.id;
107
+ pageRemove(element);
108
+
109
+ var rowStart = (nRow * 1) + 1;
110
+
111
+ for (let a = rowStart; a < 100; a++) {
112
+
113
+ var selector = '#'+containerId+' .order-'+a;
114
+
115
+ if (document.querySelector(selector)) {
116
+ var b = a - 1;
117
+ rowChangePos(document.querySelector(selector), a, b);
118
+ } else {
119
+ break;
120
+ }
121
+
122
+ }
123
+
124
+ rowSetArrow(container)
125
+
126
+ }
127
+
128
+ function rowSetArrow(container) {
129
+
130
+ var nRow = document.querySelectorAll('#'+container.id+' .wi-copy-row').length;
131
+
132
+ if (nRow > 1) {
133
+
134
+ for (let i = 1; i <= nRow; i++) {
135
+
136
+ var arrowUp = document.querySelector('#'+container.id+' .wi-copy-row.order-'+i+' .wi-arrow-up');
137
+ var arrowDown = document.querySelector('#'+container.id+' .wi-copy-row.order-'+i+' .wi-arrow-down');
138
+
139
+ if (arrowUp.classList.contains('visually-hidden')) {
140
+ arrowUp.classList.remove('visually-hidden');
141
+ }
142
+
143
+ if (arrowDown.classList.contains('visually-hidden')) {
144
+ arrowDown.classList.remove('visually-hidden');
145
+ }
146
+
147
+ if (i == 1) {
148
+ arrowUp.classList.add('visually-hidden');
149
+ }
150
+
151
+ if (i == nRow) {
152
+ arrowDown.classList.add('visually-hidden');
153
+ }
154
+
155
+ }
156
+
157
+ } else if (nRow == 1) {
158
+
159
+ document.querySelector('#'+container.id+' .wi-copy-row.order-1 .wi-arrow-up').classList.add('visually-hidden');
160
+ document.querySelector('#'+container.id+' .wi-copy-row.order-1 .wi-arrow-down').classList.add('visually-hidden');
161
+
162
+ }
163
+
164
+ }
@@ -0,0 +1,14 @@
1
+ async function formUpload(form, url, responseFunction = null) {
2
+
3
+ var formData = new FormData(form);
4
+ formData.append('post', 'true');
5
+
6
+ await postData(url, formData).then((data) => {
7
+
8
+ if (data != false) {
9
+ if (typeof responseFunction === 'function') { responseFunction(data); }
10
+ }
11
+
12
+ });
13
+
14
+ }