$(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 = $('') .addClass('cancel') .html(''); var upload_btn = $('') .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(' 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(""+file.name+"").append(cancel_btn.clone(true).data(data)); $(col2).append(""+file.type+" - "+FileConvertSize(file.size)+""); $(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) { $('
Erreur durant le transfert du fichier ' + file.name + '.
') .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'); } });