PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.10.5
ووسلام – همگام سازی ووکامرس و باسلام v1.10.5
1.10.19 1.10.20 1.10.18 1.10.17 1.10.15 1.10.14 1.10.13 1.10.12 1.10.10 1.10.9 1.10.8 1.10.7 1.10.6 1.10.5 1.10.4 1.10.3 1.10.2 1.10.1 1.10.0 1.9.2 1.9.1 1.9.0 1.8.8 1.8.5 1.8.6 All 53 releases
sync-basalam / assets / js / ticket.js

ticket.js in ووسلام – همگام سازی ووکامرس و باسلام 1.10.5, at assets/js/ticket.js

61 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 function ticketFileUpload(inputId, nonce) {
2 var input = document.getElementById(inputId);
3 if (!input) return;
4
5 var wrapper = input.closest('.ticket-file-upload');
6 var previews = wrapper.querySelector('.ticket-file-upload__previews');
7
8 input.addEventListener('change', function () {
9 var file = this.files[0];
10 if (!file) return;
11 this.value = '';
12
13 var objectUrl = URL.createObjectURL(file);
14 var item = document.createElement('div');
15 item.className = 'ticket-file-upload__preview-item ticket-file-upload__preview-item--loading';
16 item.innerHTML =
17 '<img src="' + objectUrl + '" class="ticket-file-upload__preview-img" alt="">' +
18 '<div class="ticket-file-upload__preview-info">' +
19 '<span class="ticket-file-upload__preview-name">' + file.name + '</span>' +
20 '<span class="ticket-file-upload__preview-status">در حال آپلود...</span>' +
21 '</div>' +
22 '<button type="button" class="ticket-file-upload__preview-remove" aria-label="حذف">×</button>';
23
24 previews.appendChild(item);
25
26 item.querySelector('.ticket-file-upload__preview-remove').addEventListener('click', function () {
27 URL.revokeObjectURL(objectUrl);
28 item.remove();
29 });
30
31 var fd = new FormData();
32 fd.append('action', 'upload_ticket_media');
33 fd.append('_wpnonce', nonce);
34 fd.append('file', file);
35
36 fetch(ajaxurl, { method: 'POST', body: fd })
37 .then(function (r) { return r.json(); })
38 .then(function (res) {
39 item.classList.remove('ticket-file-upload__preview-item--loading');
40 var statusEl = item.querySelector('.ticket-file-upload__preview-status');
41 if (res.success) {
42 item.classList.add('ticket-file-upload__preview-item--done');
43 statusEl.textContent = 'آپلود شد';
44 var hidden = document.createElement('input');
45 hidden.type = 'hidden';
46 hidden.name = 'file_ids[]';
47 hidden.value = res.data.file_id;
48 item.appendChild(hidden);
49 } else {
50 item.classList.add('ticket-file-upload__preview-item--error');
51 statusEl.textContent = (res.data && res.data.message) ? res.data.message : 'خطا در آپلود';
52 }
53 })
54 .catch(function () {
55 item.classList.remove('ticket-file-upload__preview-item--loading');
56 item.classList.add('ticket-file-upload__preview-item--error');
57 item.querySelector('.ticket-file-upload__preview-status').textContent = 'خطا در آپلود';
58 });
59 });
60 }
61