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.
- package/DOCS.md +12 -0
- package/LICENSE +21 -0
- package/README.md +1 -0
- package/babel.config.json +3 -0
- package/demo/backend/body-end.php +10 -0
- package/demo/backend/head.php +93 -0
- package/demo/frontend/body-end.php +19 -0
- package/demo/frontend/head.php +244 -0
- package/demo/wonder-image.php +41 -0
- package/dist/0d01fa889dc2b0202b98.png +0 -0
- package/dist/203d1199e7aef04c0a34.gif +0 -0
- package/dist/26d6ed3fa1c815e4c78f.png +0 -0
- package/dist/39795c0b4513de014cf8.woff +0 -0
- package/dist/40b30ca122107c2852be.png +0 -0
- package/dist/4a7b4107b62ef059ba65.png +0 -0
- package/dist/4dce7f71b08755f19759.png +0 -0
- package/dist/60af14fddca897f348bb.png +0 -0
- package/dist/67172a36bcdeaca8592a.png +0 -0
- package/dist/a85c6dc53638f894de38.png +0 -0
- package/dist/b7bcc075b395c14ce8c2.woff2 +0 -0
- package/dist/backend/body-end.js +3 -0
- package/dist/backend/body-end.js.LICENSE.txt +44 -0
- package/dist/backend/body-end.js.map +1 -0
- package/dist/backend/head.css +2 -0
- package/dist/backend/head.css.map +1 -0
- package/dist/backend/head.js +3 -0
- package/dist/backend/head.js.LICENSE.txt +46 -0
- package/dist/backend/head.js.map +1 -0
- package/dist/backend/lib.js +2 -0
- package/dist/backend/lib.js.LICENSE.txt +1 -0
- package/dist/frontend/body-end.js +3 -0
- package/dist/frontend/body-end.js.LICENSE.txt +46 -0
- package/dist/frontend/body-end.js.map +1 -0
- package/dist/frontend/head.css +2 -0
- package/dist/frontend/head.css.map +1 -0
- package/dist/frontend/head.js +3 -0
- package/dist/frontend/head.js.LICENSE.txt +46 -0
- package/dist/frontend/head.js.map +1 -0
- package/dist/frontend/lib.css +2 -0
- package/dist/frontend/lib.css.map +1 -0
- package/dist/frontend/lib.js +3 -0
- package/dist/frontend/lib.js.LICENSE.txt +151 -0
- package/dist/frontend/lib.js.map +1 -0
- package/dist/lib/autonumeric/autonumeric.js +3 -0
- package/dist/lib/autonumeric/autonumeric.js.LICENSE.txt +47 -0
- package/dist/lib/autonumeric/autonumeric.js.map +1 -0
- package/dist/lib/bootstrap/bootstrap-datepicker.css +2 -0
- package/dist/lib/bootstrap/bootstrap-datepicker.css.map +1 -0
- package/dist/lib/bootstrap/bootstrap-datepicker.js +3 -0
- package/dist/lib/bootstrap/bootstrap-datepicker.js.LICENSE.txt +42 -0
- package/dist/lib/bootstrap/bootstrap-datepicker.js.map +1 -0
- package/dist/lib/bootstrap/bootstrap-icons.css +2 -0
- package/dist/lib/bootstrap/bootstrap-icons.css.map +1 -0
- package/dist/lib/bootstrap/bootstrap-icons.js +3 -0
- package/dist/lib/bootstrap/bootstrap-icons.js.LICENSE.txt +13 -0
- package/dist/lib/bootstrap/bootstrap-icons.js.map +1 -0
- package/dist/lib/bootstrap/bootstrap.css +2 -0
- package/dist/lib/bootstrap/bootstrap.css.map +1 -0
- package/dist/lib/bootstrap/bootstrap.js +3 -0
- package/dist/lib/bootstrap/bootstrap.js.LICENSE.txt +44 -0
- package/dist/lib/bootstrap/bootstrap.js.map +1 -0
- package/dist/lib/chartjs/chart.js +3 -0
- package/dist/lib/chartjs/chart.js.LICENSE.txt +1467 -0
- package/dist/lib/chartjs/chart.js.map +1 -0
- package/dist/lib/datatables/datatables.css +2 -0
- package/dist/lib/datatables/datatables.css.map +1 -0
- package/dist/lib/datatables/datatables.js +3 -0
- package/dist/lib/datatables/datatables.js.LICENSE.txt +8988 -0
- package/dist/lib/datatables/datatables.js.map +1 -0
- package/dist/lib/editorjs/editor.js +3 -0
- package/dist/lib/editorjs/editor.js.LICENSE.txt +5812 -0
- package/dist/lib/editorjs/editor.js.map +1 -0
- package/dist/lib/fancyapps/fancyapps.css +2 -0
- package/dist/lib/fancyapps/fancyapps.css.map +1 -0
- package/dist/lib/fancyapps/fancyapps.js +3 -0
- package/dist/lib/fancyapps/fancyapps.js.LICENSE.txt +19 -0
- package/dist/lib/fancyapps/fancyapps.js.map +1 -0
- package/dist/lib/filepond/filepond.css +2 -0
- package/dist/lib/filepond/filepond.css.map +1 -0
- package/dist/lib/filepond/filepond.js +3 -0
- package/dist/lib/filepond/filepond.js.LICENSE.txt +2797 -0
- package/dist/lib/filepond/filepond.js.map +1 -0
- package/dist/lib/fullcalendar/fullcalendar.js +3 -0
- package/dist/lib/fullcalendar/fullcalendar.js.LICENSE.txt +3787 -0
- package/dist/lib/fullcalendar/fullcalendar.js.map +1 -0
- package/dist/lib/jquery/jquery-plugin.css +2 -0
- package/dist/lib/jquery/jquery-plugin.css.map +1 -0
- package/dist/lib/jquery/jquery-plugin.js +3 -0
- package/dist/lib/jquery/jquery-plugin.js.LICENSE.txt +60 -0
- package/dist/lib/jquery/jquery-plugin.js.map +1 -0
- package/dist/lib/jquery/jquery.js +3 -0
- package/dist/lib/jquery/jquery.js.LICENSE.txt +3240 -0
- package/dist/lib/jquery/jquery.js.map +1 -0
- package/dist/lib/jstree/jstree.css +2 -0
- package/dist/lib/jstree/jstree.css.map +1 -0
- package/dist/lib/jstree/jstree.js +3 -0
- package/dist/lib/jstree/jstree.js.LICENSE.txt +42 -0
- package/dist/lib/jstree/jstree.js.map +1 -0
- package/dist/lib/moment/moment.js +3 -0
- package/dist/lib/moment/moment.js.LICENSE.txt +772 -0
- package/dist/lib/moment/moment.js.map +1 -0
- package/dist/lib/quilljs/quill.css +2 -0
- package/dist/lib/quilljs/quill.css.map +1 -0
- package/dist/lib/quilljs/quill.js +3 -0
- package/dist/lib/quilljs/quill.js.LICENSE.txt +3038 -0
- package/dist/lib/quilljs/quill.js.map +1 -0
- package/dist/lib/swiperjs/swiper-plugin.css +2 -0
- package/dist/lib/swiperjs/swiper-plugin.css.map +1 -0
- package/dist/lib/swiperjs/swiper-plugin.js +3 -0
- package/dist/lib/swiperjs/swiper-plugin.js.LICENSE.txt +1113 -0
- package/dist/lib/swiperjs/swiper-plugin.js.map +1 -0
- package/dist/lib/swiperjs/swiper.css +2 -0
- package/dist/lib/swiperjs/swiper.css.map +1 -0
- package/dist/lib/swiperjs/swiper.js +3 -0
- package/dist/lib/swiperjs/swiper.js.LICENSE.txt +651 -0
- package/dist/lib/swiperjs/swiper.js.map +1 -0
- package/dist/lib/videojs/video.css +2 -0
- package/dist/lib/videojs/video.css.map +1 -0
- package/dist/lib/videojs/video.js +3 -0
- package/dist/lib/videojs/video.js.LICENSE.txt +23391 -0
- package/dist/lib/videojs/video.js.map +1 -0
- package/package.json +95 -0
- package/src/build/backend/css/header.css +252 -0
- package/src/build/backend/css/input.css +295 -0
- package/src/build/backend/css/list.css +57 -0
- package/src/build/backend/css/order.css +99 -0
- package/src/build/backend/js/ajax.js +96 -0
- package/src/build/backend/js/alert.js +78 -0
- package/src/build/backend/js/bootstrap.js +52 -0
- package/src/build/backend/js/form/editor.js +293 -0
- package/src/build/backend/js/form/file.js +142 -0
- package/src/build/backend/js/form/filepond.js +11 -0
- package/src/build/backend/js/form/input.js +313 -0
- package/src/build/backend/js/form/inputRow.js +164 -0
- package/src/build/backend/js/form/send.js +14 -0
- package/src/build/backend/js/form/set.js +314 -0
- package/src/build/backend/js/jquery.js +15 -0
- package/src/build/backend/js/list.js +19 -0
- package/src/build/backend/js/modal.js +31 -0
- package/src/build/backend/js/pageSetUp.js +125 -0
- package/src/build/backend/js/utility.js +38 -0
- package/src/build/frontend/css/class/dimension.css +3376 -0
- package/src/build/frontend/css/class/function.css +316 -0
- package/src/build/frontend/css/class/grid.css +240 -0
- package/src/build/frontend/css/class/margin.css +823 -0
- package/src/build/frontend/css/class/padding.css +760 -0
- package/src/build/frontend/css/class/position.css +351 -0
- package/src/build/frontend/css/class/resize.css +24 -0
- package/src/build/frontend/css/class/section.css +41 -0
- package/src/build/frontend/css/class/text.css +244 -0
- package/src/build/frontend/css/components/alert.css +42 -0
- package/src/build/frontend/css/components/button.css +107 -0
- package/src/build/frontend/css/components/dropdown.css +118 -0
- package/src/build/frontend/css/components/form/address.css +26 -0
- package/src/build/frontend/css/components/form/checkbox.css +65 -0
- package/src/build/frontend/css/components/form/date.css +133 -0
- package/src/build/frontend/css/components/form/input.css +176 -0
- package/src/build/frontend/css/components/form/select.css +69 -0
- package/src/build/frontend/css/components/header/hamburger/hamburger-1.css +56 -0
- package/src/build/frontend/css/components/header/hamburger/hamburger.css +58 -0
- package/src/build/frontend/css/components/header/header.css +57 -0
- package/src/build/frontend/css/components/header/mobile-nav.css +79 -0
- package/src/build/frontend/css/components/modal.css +76 -0
- package/src/build/frontend/css/components/spinner.css +37 -0
- package/src/build/frontend/css/generator/dimension.php +93 -0
- package/src/build/frontend/css/generator/margin.php +48 -0
- package/src/build/frontend/css/generator/padding.php +48 -0
- package/src/build/frontend/css/lib.css +3 -0
- package/src/build/frontend/css/main.css +37 -0
- package/src/build/frontend/js/alert.js +64 -0
- package/src/build/frontend/js/aos.js +9 -0
- package/src/build/frontend/js/dropdown.js +73 -0
- package/src/build/frontend/js/form/input.js +211 -0
- package/src/build/frontend/js/form/list.js +155 -0
- package/src/build/frontend/js/form/select.js +108 -0
- package/src/build/frontend/js/form/send.js +137 -0
- package/src/build/frontend/js/header.js +12 -0
- package/src/build/frontend/js/modal.js +26 -0
- package/src/build/frontend/js/pageSetUp.js +35 -0
- package/src/build/frontend/js/scroll.js +70 -0
- package/src/build/frontend/js/utility.js +21 -0
- package/src/build/global/js/canvas.js +82 -0
- package/src/build/global/js/fetch.js +47 -0
- package/src/build/global/js/form/autonumeric.js +136 -0
- package/src/build/global/js/form/phone.js +19 -0
- package/src/build/global/js/utility.js +88 -0
- package/src/build/global/js/video.js +7 -0
- package/src/build/lib/editorjs/gallery.js +39 -0
- package/src/build/lib/editorjs/hyperlink.js +170 -0
- package/src/build/lib/editorjs/video.js +61 -0
- package/src/build/lib/swiperjs/effect-carousel.css +24 -0
- package/src/build/lib/swiperjs/effect-carousel.esm.js +102 -0
- package/src/build/lib/swiperjs/effect-shutters.css +33 -0
- package/src/build/lib/swiperjs/effect-shutters.esm.js +114 -0
- package/src/build/lib/swiperjs/effect-slicer.css +39 -0
- package/src/build/lib/swiperjs/effect-slicer.esm.js +198 -0
- package/src/build/lib/swiperjs/swiper-gl.css +44 -0
- package/src/build/lib/swiperjs/swiper-gl.esm.js +6063 -0
- package/src/export/backend/body-end.js +4 -0
- package/src/export/backend/head.js +25 -0
- package/src/export/backend/lib.js +0 -0
- package/src/export/frontend/body-end.js +9 -0
- package/src/export/frontend/head.js +42 -0
- package/src/export/frontend/lib.js +17 -0
- package/src/export/lib/autonumeric/autonumeric.js +3 -0
- package/src/export/lib/bootstrap/bootstrap-datepicker.js +4 -0
- package/src/export/lib/bootstrap/bootstrap-icons.js +2 -0
- package/src/export/lib/bootstrap/bootstrap.js +3 -0
- package/src/export/lib/chartjs/chart.js +4 -0
- package/src/export/lib/datatables/datatables.js +6 -0
- package/src/export/lib/editorjs/editor.js +48 -0
- package/src/export/lib/fancyapps/fancyapps.js +7 -0
- package/src/export/lib/filepond/filepond.js +51 -0
- package/src/export/lib/fullcalendar/fullcalendar.js +29 -0
- package/src/export/lib/jquery/jquery-plugin.js +14 -0
- package/src/export/lib/jquery/jquery.js +4 -0
- package/src/export/lib/jstree/jstree.js +2 -0
- package/src/export/lib/moment/moment.js +12 -0
- package/src/export/lib/quilljs/quill.js +4 -0
- package/src/export/lib/swiperjs/swiper-plugin.js +20 -0
- package/src/export/lib/swiperjs/swiper.js +4 -0
- package/src/export/lib/videojs/video.js +3 -0
- 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
|
+
}
|