pos-gis/public/assets/js/pages/crud/file-upload/dropzonejs.js

185 lines
7.2 KiB
JavaScript
Raw Normal View History

2024-10-07 06:13:42 +00:00
"use strict";
// Class definition
var KTDropzoneDemo = function () {
// Private functions
var demo1 = function () {
// single file upload
$('#kt_dropzone_1').dropzone({
url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
paramName: "file", // The name that will be used to transfer the file
maxFiles: 1,
maxFilesize: 5, // MB
addRemoveLinks: true,
accept: function(file, done) {
if (file.name == "justinbieber.jpg") {
done("Naha, you don't.");
} else {
done();
}
}
});
// multiple file upload
$('#kt_dropzone_2').dropzone({
url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
paramName: "file", // The name that will be used to transfer the file
maxFiles: 10,
maxFilesize: 10, // MB
addRemoveLinks: true,
accept: function(file, done) {
if (file.name == "justinbieber.jpg") {
done("Naha, you don't.");
} else {
done();
}
}
});
// file type validation
$('#kt_dropzone_3').dropzone({
url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
paramName: "file", // The name that will be used to transfer the file
maxFiles: 10,
maxFilesize: 10, // MB
addRemoveLinks: true,
acceptedFiles: "image/*,application/pdf,.psd",
accept: function(file, done) {
if (file.name == "justinbieber.jpg") {
done("Naha, you don't.");
} else {
done();
}
}
});
}
var demo2 = function () {
// set the dropzone container id
var id = '#kt_dropzone_4';
// set the preview element template
var previewNode = $(id + " .dropzone-item");
previewNode.id = "";
var previewTemplate = previewNode.parent('.dropzone-items').html();
previewNode.remove();
var myDropzone4 = new Dropzone(id, { // Make the whole body a dropzone
url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
parallelUploads: 20,
previewTemplate: previewTemplate,
maxFilesize: 1, // Max filesize in MB
autoQueue: false, // Make sure the files aren't queued until manually added
previewsContainer: id + " .dropzone-items", // Define the container to display the previews
clickable: id + " .dropzone-select" // Define the element that should be used as click trigger to select files.
});
myDropzone4.on("addedfile", function(file) {
// Hookup the start button
file.previewElement.querySelector(id + " .dropzone-start").onclick = function() { myDropzone4.enqueueFile(file); };
$(document).find( id + ' .dropzone-item').css('display', '');
$( id + " .dropzone-upload, " + id + " .dropzone-remove-all").css('display', 'inline-block');
});
// Update the total progress bar
myDropzone4.on("totaluploadprogress", function(progress) {
$(this).find( id + " .progress-bar").css('width', progress + "%");
});
myDropzone4.on("sending", function(file) {
// Show the total progress bar when upload starts
$( id + " .progress-bar").css('opacity', '1');
// And disable the start button
file.previewElement.querySelector(id + " .dropzone-start").setAttribute("disabled", "disabled");
});
// Hide the total progress bar when nothing's uploading anymore
myDropzone4.on("complete", function(progress) {
var thisProgressBar = id + " .dz-complete";
setTimeout(function(){
$( thisProgressBar + " .progress-bar, " + thisProgressBar + " .progress, " + thisProgressBar + " .dropzone-start").css('opacity', '0');
}, 300)
});
// Setup the buttons for all transfers
document.querySelector( id + " .dropzone-upload").onclick = function() {
myDropzone4.enqueueFiles(myDropzone4.getFilesWithStatus(Dropzone.ADDED));
};
// Setup the button for remove all files
document.querySelector(id + " .dropzone-remove-all").onclick = function() {
$( id + " .dropzone-upload, " + id + " .dropzone-remove-all").css('display', 'none');
myDropzone4.removeAllFiles(true);
};
// On all files completed upload
myDropzone4.on("queuecomplete", function(progress){
$( id + " .dropzone-upload").css('display', 'none');
});
// On all files removed
myDropzone4.on("removedfile", function(file){
if(myDropzone4.files.length < 1){
$( id + " .dropzone-upload, " + id + " .dropzone-remove-all").css('display', 'none');
}
});
}
var demo3 = function () {
// set the dropzone container id
var id = '#kt_dropzone_5';
// set the preview element template
var previewNode = $(id + " .dropzone-item");
previewNode.id = "";
var previewTemplate = previewNode.parent('.dropzone-items').html();
previewNode.remove();
var myDropzone5 = new Dropzone(id, { // Make the whole body a dropzone
url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
parallelUploads: 20,
maxFilesize: 1, // Max filesize in MB
previewTemplate: previewTemplate,
previewsContainer: id + " .dropzone-items", // Define the container to display the previews
clickable: id + " .dropzone-select" // Define the element that should be used as click trigger to select files.
});
myDropzone5.on("addedfile", function(file) {
// Hookup the start button
$(document).find( id + ' .dropzone-item').css('display', '');
});
// Update the total progress bar
myDropzone5.on("totaluploadprogress", function(progress) {
$( id + " .progress-bar").css('width', progress + "%");
});
myDropzone5.on("sending", function(file) {
// Show the total progress bar when upload starts
$( id + " .progress-bar").css('opacity', "1");
});
// Hide the total progress bar when nothing's uploading anymore
myDropzone5.on("complete", function(progress) {
var thisProgressBar = id + " .dz-complete";
setTimeout(function(){
$( thisProgressBar + " .progress-bar, " + thisProgressBar + " .progress").css('opacity', '0');
}, 300)
});
}
return {
// public functions
init: function() {
demo1();
demo2();
demo3();
}
};
}();
KTUtil.ready(function() {
KTDropzoneDemo.init();
});