181 lines
6.4 KiB
JavaScript
Vendored
181 lines
6.4 KiB
JavaScript
Vendored
|
|
$(document).ready(function() {
|
|
|
|
/******************************
|
|
Dépôt de média
|
|
**********************************/
|
|
|
|
// ---- Initialisation du module de dépôt
|
|
if($('#uploadDepot').length){
|
|
$.ajaxSetup({
|
|
headers: {
|
|
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
|
}
|
|
});
|
|
var dossier_id = 0;
|
|
var cancel_btn = $('<button/>')
|
|
.addClass('cancel')
|
|
.html('<i class="fal fa-times"></i>');
|
|
var upload_btn = $('<button/>')
|
|
.addClass('upload')
|
|
.css('display', 'none');
|
|
|
|
$('#submit').on('click',function(event){
|
|
event.preventDefault();
|
|
|
|
if(!$(".form_depot_media")[0].checkValidity()){
|
|
$(".form_depot_media")[0].reportValidity()
|
|
$.fancyMessage({title : "Dépôt de médias", message : "Veuillez compléter tous les champs avant de lancer le transfert.", type : "error"});
|
|
return false;
|
|
}
|
|
if(currentfiles.length == 0){
|
|
$.fancyMessage({title : "Dépôt de médias", message : "Veuillez ajouter des médias avant de lancer le transfert.", type : "error"});
|
|
return false;
|
|
}
|
|
|
|
$("#submit").html('<i class="fal fa-circle-notch fa-spin"></i> Transférer');
|
|
$("#submit").css("pointer-events", "none");
|
|
|
|
var currentdate = new Date();
|
|
folderName = $("#depot_societe").val().replace(' ', '_')+"_"+currentdate.getFullYear().toString()+("0" +(currentdate.getMonth()+1)).slice(-2)+currentdate.getDate().toString()+"_"+currentdate.getHours().toString()+currentdate.getMinutes().toString()+ currentdate.getSeconds().toString();
|
|
var description = "Nom : "+$("#depot_nom").val()+'\n'+"Société : "+$("#depot_societe").val()+'\n'+$("#depot_description").val();
|
|
|
|
// création d'un dossier de dépôt
|
|
$("#upload_errors").html("");
|
|
$.ajax({
|
|
url: '/ajax/add-depot-folder',
|
|
method: 'POST',
|
|
dataType : 'json',
|
|
data: {
|
|
libelle: folderName,
|
|
description : description,
|
|
},
|
|
success: function(result){
|
|
dossier_id = result.folder_id;
|
|
$('.upload').click() //click upload buttons and upload all files in the queue
|
|
},
|
|
error: function(jqXHR, textStatus, errorThrown) {
|
|
|
|
}
|
|
});
|
|
});
|
|
$('#cancel').on('click',function(event){
|
|
event.preventDefault();
|
|
$('.cancel').click() //click cancel buttons and remove all files in the queue
|
|
$("#upload_errors").html("");
|
|
});
|
|
|
|
$(".uploader-window").on("dragleave", function(){
|
|
$(this).stop().fadeOut( "fast");
|
|
});
|
|
|
|
var currentfiles = [];
|
|
var maxFiles = 100;
|
|
var counter = 0;
|
|
$('#uploadDepot').fileupload({
|
|
url: "/ajax/upload-media",
|
|
dataType: 'json',
|
|
limitMultiFileUploads: 10,
|
|
maxChunkSize: 8000000,
|
|
maxNumberOfFiles: 2,
|
|
dragover: function (e, data) {
|
|
$(".uploader-window").fadeIn( "fast");
|
|
},
|
|
add: function (e, data) {
|
|
|
|
if(counter < maxFiles){
|
|
counter++;
|
|
}else{
|
|
$.fancyMessage({title : "Attention", message : "Vous ne pouvez pas ajouter plus de "+maxFiles+" fichiers", type : "info"});
|
|
return false;
|
|
}
|
|
|
|
data.files = $.map(data.files, function(file,i){
|
|
if ($.inArray(file.name,currentfiles) >= 0) {
|
|
$.fancyMessage({title : "Attention", message : "Nous ne pouvons pas envoyer plusieurs fichiers du même nom. Veuillez renommer vos fichiers puis essayez à nouveau.", type : "error"});
|
|
return null;
|
|
}
|
|
return file;
|
|
});
|
|
|
|
$.each(data.files, function (index, file) {
|
|
|
|
var uploadErrors = [];
|
|
var acceptFileTypes = /^(gif|jpe?g|png|mp4|mp3|psd|ai|svg|pdf)$/i;
|
|
if(file.name.split('.').pop().length && !acceptFileTypes.test(file.name.split('.').pop())) {
|
|
uploadErrors.push('Ce type de fichier n\'est pas accepté');
|
|
}
|
|
if(data.originalFiles[0]['size'].length && data.originalFiles[0]['size'] > 5000000) {
|
|
uploadErrors.push('La taille du fichier est trop grande.');
|
|
}
|
|
if(uploadErrors.length > 0) {
|
|
alert(uploadErrors.join("\n"));
|
|
return false;
|
|
}
|
|
|
|
currentfiles.push($.trim(file.name));
|
|
var row = document.createElement('div');
|
|
var col1 = document.createElement('div');
|
|
var col2 = document.createElement('div');
|
|
$(col1).append("<span>"+file.name+"</span>").append(cancel_btn.clone(true).data(data));
|
|
$(col2).append("<span>"+file.type+" - "+FileConvertSize(file.size)+"</span>");
|
|
$(col2).append(upload_btn.clone(true).data(data));
|
|
$(row).append(col1, col2);
|
|
$(".files").append(row);
|
|
|
|
$('.upload').eq(-1).on('click',function(){
|
|
data.formData = {
|
|
uid: create_UUID(),
|
|
dossier_id: dossier_id,
|
|
};
|
|
data.submit();
|
|
})
|
|
$('.cancel').eq(-1).on('click',function(){
|
|
$(this).parent().parent().remove();
|
|
currentfiles = arrayRemove(currentfiles, $.trim(file.name));
|
|
})
|
|
});
|
|
|
|
},
|
|
start: function (e, data) {
|
|
$('#progress').show();
|
|
},
|
|
drop: function (e, data) {
|
|
$(".uploader-window").stop().fadeOut( "fast");
|
|
},
|
|
done: function (e, data) {
|
|
$.each(data.files, function (index, file) {
|
|
currentfiles = arrayRemove(currentfiles, $.trim(file.name));
|
|
});
|
|
},
|
|
stop: function (e,) {
|
|
$(".files").html("");
|
|
counter = 0;
|
|
currentfiles = [];
|
|
$('#progress .progress-bar').css('width', '0%');
|
|
$('#progress').hide();
|
|
$("#depot_nom").val('');
|
|
$("#depot_societe").val('');
|
|
$("#depot_description").val('');
|
|
$.fancyMessage({title : "Dépôt de médias", message : "Le transfert des fichiers est terminé !", type : "info"});
|
|
$("#submit").html('Transférer');
|
|
$("#submit").css("pointer-events", "auto");
|
|
},
|
|
fail: function (e, data) {
|
|
$.each(data.files, function (index, file) {
|
|
$('<p style="color: red;">Erreur durant le transfert du fichier ' + file.name + '.</p>')
|
|
.appendTo('#upload_errors');
|
|
currentfiles = arrayRemove(currentfiles, $.trim(file.name));
|
|
});
|
|
},
|
|
progressall: function (e, data) {
|
|
var progress = parseInt(data.loaded / data.total * 100, 10);
|
|
$('#progress .progress-bar').css(
|
|
'width',
|
|
progress + '%'
|
|
);
|
|
}
|
|
}).prop('disabled', !$.support.fileInput)
|
|
.parent().addClass($.support.fileInput ? undefined : 'disabled');
|
|
}
|
|
});
|