Moved from "app/src" to "app/application".
Otherwise phpstorm doesn't understand the paths correctly. He thinks that this is not a complete application, but a package. And when creating a class, the namespace indicates “app” with a small letter, but should be “App”.
This commit is contained in:
81
app/application/resources/volt/js/image.js
Normal file
81
app/application/resources/volt/js/image.js
Normal file
@@ -0,0 +1,81 @@
|
||||
import Dropzone from "dropzone";
|
||||
|
||||
let elementImage = document.querySelectorAll('.upload-image');
|
||||
if (elementImage.length > 0) {
|
||||
elementImage.forEach(addDropzoneImage);
|
||||
}
|
||||
function addDropzoneImage(element) {
|
||||
let blockError = element.querySelector('.upload-image__error'),
|
||||
blockProgressBar = element.querySelector('.progress-wrapper'),
|
||||
progressBarText = blockProgressBar.querySelector('.upload-image__progressbar-text'),
|
||||
progressBar = blockProgressBar.querySelector('.progress-bar'),
|
||||
storageType = element.dataset.storageType,
|
||||
morph = element.dataset.morph,
|
||||
imageBlock = element.querySelector('.add-image');
|
||||
|
||||
imageBlock.querySelector('button.add-image__remove').addEventListener('click', (e) => {
|
||||
element.querySelector('input.save').value = '';
|
||||
element.querySelector('input.delete').value = 1;
|
||||
imageBlock.style.display = 'none';
|
||||
});
|
||||
|
||||
let myDropzone = new Dropzone(element.querySelector('button.upload-image__button'), {
|
||||
url: "/storage/image/upload-resize",
|
||||
uploadMultiple: false,
|
||||
parallelUploads: 1,
|
||||
maxFiles: 1,
|
||||
acceptedFiles: element.dataset.acceptedFiles,
|
||||
sending: function (file, response, formData) {
|
||||
blockError.textContent = '';
|
||||
blockError.style.display = 'none';
|
||||
formData.append('_token', document.querySelector('meta[name="csrf-token"]').content);
|
||||
formData.append('storage_type', storageType);
|
||||
formData.append('morph', morph);
|
||||
blockProgressBar.style.display = 'block';
|
||||
},
|
||||
thumbnail: function(file, dataUrl) {
|
||||
|
||||
},
|
||||
addedfile: function(file) {
|
||||
|
||||
},
|
||||
totaluploadprogress: function(progress) {
|
||||
progressBarText.textContent = progress + '%';
|
||||
progressBar.style.width = progress + '%';
|
||||
progressBar.setAttribute('aria-valuenow', progress);
|
||||
},
|
||||
complete: function(file) {
|
||||
this.removeFile(file);
|
||||
|
||||
progressBarText.textContent = '0%';
|
||||
progressBar.style.width = '0%';
|
||||
progressBar.setAttribute('aria-valuenow', 0);
|
||||
blockProgressBar.style.display = 'none';
|
||||
},
|
||||
success: function (file, image) {
|
||||
imageBlock.querySelector('img').setAttribute('src', image.url);
|
||||
element.querySelector('input.save').value = image.id;
|
||||
element.querySelector('input.delete').value = 0;
|
||||
imageBlock.style.display = 'block';
|
||||
},
|
||||
error: function (file, response) {
|
||||
let message = '';
|
||||
|
||||
if (response.errors) {
|
||||
for (let errorKey in response.errors) {
|
||||
message += response.errors[errorKey] + '<br>'
|
||||
}
|
||||
if(response.message) {
|
||||
message += response.message + '<br>'
|
||||
}
|
||||
} else if(response.message) {
|
||||
message += response.message + '<br>'
|
||||
} else {
|
||||
message += response + '<br>'
|
||||
}
|
||||
|
||||
blockError.innerHTML = message;
|
||||
blockError.style.display = 'block';
|
||||
},
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user