$(document).ready(function() { /****************************** Liste des dossiers **********************************/ // ---- init des dossiers et des médias if ( $( ".media_manager" ).length ) { // initialise la page avec le bon sujet if($("#sujetParameter").val() != ""){ $("#sujet_selector").val($("#sujetParameter").val()); } // initialise la page avec le bon dossier if($("#folderParameter").val() != ""){ $(window).data('currentFolder', $("#folderParameter").val()); } // initialise les paramètres de recherche if($("#filterParameter").val() != ""){ var filters = JSON.parse($("#filterParameter").val()); $(window).data('filter', filters); } initFolderManager($("#sujet_selector").val()); } // ---- collapse/expand side menu $(".close_side_menu").on('click', function(event) { event.preventDefault(); if($(this).parents(".side_menu ").hasClass('collapse')){ $(this).parents(".side_menu ").removeClass('collapse') $(this).find("i").removeClass('fa-chevron-right'); $(this).find("i").addClass('fa-chevron-left'); }else{ $(this).parents(".side_menu ").addClass('collapse'); $(this).find("i").removeClass('fa-chevron-left'); $(this).find("i").addClass('fa-chevron-right'); } }); // ---- init des dossiers lorsqu'on change de sujet $("#sujet_selector").on('change', function(event) { var sujetId = $("#sujet_selector").val(); if(sujetId != "") $('.dd').nestable('destroy'); $(window).data('currentFolder', 0); // Vide la bar recherche $(".search_filters_list").html(""); // supprime tous les éléments de recherche $(window).data('filter', {}); // masque le bouton de reinitialisation $(".filter_wrapper .reinit_search_btn").hide(); initFolderManager(sujetId); }); // ---- sélectionner un dossier et favoris $(".folder_container").on('click', '.dd3-content', function(e) { e.preventDefault(); var target = e.target, $target = $(target); var dossier_id = $target.parents(".dd3-item").attr("data-id"); if($target.hasClass('fa-star')){ // Gestion des favoris var favoris = false; if($target.hasClass("fas")){ $target.removeClass("fas").addClass("fal"); }else{ $target.removeClass("fal").addClass("fas"); favoris = true; } $.ajax({ url: '/ajax/favoris-folder', method: 'POST', dataType : 'json', data: { dossier_id: dossier_id, favoris: favoris, } }); }else{ // simple sélection de dossier $(".folder_container .dd3-content").removeClass('selected'); $(".folder_container .root_folder").removeClass('selected'); $(this).addClass('selected'); var sujet_id = $("#sujet_selector").val(); $(window).data('currentFolder', dossier_id); $(window).data('offset', 0); loadMedia(sujet_id); // ajout du dossier courant dans la barre de filtre $(".search_filters_list #currentFolder").remove(); var output = ''; output += 'Dossier : '; output += ''+$(".folder_container .dd3-item[data-id='"+dossier_id+"'] > .dd3-content span").html()+''; output += ''; output += ''; $(".search_filters_list").prepend(output); } }); // ---- sélectionner la racine $(".folder_container").on('click', '.root_folder', function(event) { event.preventDefault(); $(".folder_container .dd3-content").removeClass('selected'); $(this).addClass('selected'); $(window).data('currentFolder', 0); var sujetId = $("#sujet_selector").val(); $(window).data('offset', 0); loadMedia(sujetId); // ajout du dossier courant dans la barre de filtre $(".search_filters_list #currentFolder").remove(); var output = ''; output += 'Dossier : '; output += 'racine'; output += ''; output += ''; $(".search_filters_list").prepend(output); }); // ---- menu contextuel des dossiers $(".folder_container").on('contextmenu', '.dd3-content', function(event) { event.preventDefault(); // placement du menu $(".folder_container .folder_menu").css({ left: event.pageX, top:event.pageY-180 }) // memo l'id du dossier cible var id = $(this).parent("li").attr("data-id"); $(".folder_container .folder_menu").attr('data-id', id); // si c'est un dossier parent, on cache certaines options if($(this).parent("li").hasClass("parent")){ $(".folder_menu .renameItem, .folder_menu .removeItem").hide(); }else{ $(".folder_menu .renameItem, .folder_menu .removeItem").show(); } $(".folder_container .folder_menu").show(); }); // ---- ajouter un dossier $(".folder_menu").on('click', '.addItem', function(event) { event.preventDefault(); var parent_id = $(this).parents(".folder_menu").attr("data-id"); $(".folder_container .folder_menu").hide(); $(".folder_container .loader").show(); var folder = $('.dd .dd-item[data-id="'+parent_id+'"]'); if((folder.parents('.dd-item').length + 1) >= 5){ $.fancyMessage({title : "Attention", message : "Vous ne pouvez pas créer plus de 5 niveaux de sous-dossiers.", type : "info"}); $(".folder_container .loader").hide(); return false; } $.ajax({ url: '/ajax/add-folder', method: 'POST', dataType : 'json', data: { parent_id: parent_id, libelle: 'Nouveau dossier', }, success: function(result){ addItem(parent_id, result.folder_id, 'Nouveau dossier', result.system); $(".folder_container .loader").hide(); }, error: function(jqXHR, textStatus, errorThrown) { $(".folder_container .loader").hide(); $.fancyMessage({title : "Attention", message : "Erreur lors de l'ajout du dossier. Merci d'actualiser la page.", type : "error"}); } }); }); // ---- supprimer un dossier $(".folder_menu").on('click', '.removeItem', function(event) { event.preventDefault(); var dossier_id = $(this).parents(".folder_menu").attr("data-id"); $(".folder_container .folder_menu").hide(); $(".folder_container .loader").show(); var $countCurrentFolder = $(".folder_container .dd3-item[data-id='"+dossier_id+"'] > .dd3-content .count").html(); if(!$('.dd .dd-item[data-id="'+dossier_id+'"] > ol').length && $countCurrentFolder == 0){ $.ajax({ url: '/ajax/remove-folder', method: 'POST', dataType : 'json', data: { dossier_id: dossier_id, }, success: function(currentFolder){ // supprimer dossier if(currentFolder){ $('.dd .dd-item[data-id="'+currentFolder+'"] > .dd3-content').trigger("click"); $('.dd').nestable('remove', dossier_id); }else{ $.fancyMessage({title : "Attention", message : "Erreur lors de la suppression du dossier. Merci d'actualiser la page.", type : "error"}); } $(".folder_container .loader").hide(); }, error: function(jqXHR, textStatus, errorThrown) { $(".folder_container .loader").hide(); $.fancyMessage({title : "Attention", message : "Erreur lors de la suppression du dossier. Merci d'actualiser la page.", type : "error"}); } }); }else{ $(".folder_container .loader").hide(); $.fancyMessage({title : "Suppresion impossible", message : "Pour supprimer un dossier, vous devez d'abord vider son contenu (médias et sous-dossiers).", type : "error"}); } }); // ---- renommer un dossier $(".folder_menu").on('click', '.renameItem', function(event) { event.preventDefault(); $(".folder_container .folder_menu").hide(); var dossier_id = $(this).parents(".folder_menu").attr("data-id"); $('.dd .dd-item[data-id="'+dossier_id+'"] > .dd3-content').addClass('renaming'); $('.renaming .input_rename').val($('.renaming span').html()); $('.renaming .input_rename').select(); }); $('.folder_container').on('focusout keyup', '.renaming .input_rename', function (e) { if(e.type == "focusout" || (e.type == "keyup" && e.keyCode == 13)){ var libelle = $(this).val(); var dossier_id = $(this).parents(".dd3-item").attr("data-id"); var span = $(this).next(); var input = $(this); $.ajax({ url: '/ajax/rename-folder', method: 'POST', dataType : 'json', data: { dossier_id: dossier_id, libelle: libelle, }, success: function(result){ if(result == true){ span.html(input.val()); }else{ $.fancyMessage({title : "Attention", message : "Le dossier n'a pas été renommé. Merci d'actualiser la page.", type : "error"}); } $(".renaming").removeClass('renaming'); }, error: function(jqXHR, textStatus, errorThrown) { $(".renaming").removeClass('renaming'); $.fancyMessage({title : "Attention", message : "Le dossier n'a pas été renommé. Merci d'actualiser la page.", type : "error"}); } }); } }); // ---- propriétés d'un dossier $(".folder_menu").on('click', '.propertyItem', function(event) { event.preventDefault(); $(".folder_container .folder_menu").hide(); var dossier_id = $(this).parents(".folder_menu").attr("data-id"); $.ajax({ url: '/ajax/get-folder-property', method: 'POST', dataType : 'json', data: { dossier_id: dossier_id, }, success: function(result){ var dossier = result.data; $.fancybox.open({ src : '#form_folder_property', type : 'inline', opts : { animationDuration : 350, animationEffect : 'material', beforeShow : function( instance, current ) { if(dossier.parent_id=== null){ $(".form_folder_save").hide(); }else{ $(".form_folder_save").show(); } var date = new Date(dossier.created_at); $(".form_folder_datecreate").html(date.toLocaleDateString('fr-FR', {'hour': '2-digit', 'minute': '2-digit'} )); $("#form_folder_property").attr("data-id", dossier_id); $(".form_folder_libelle").val(dossier.libelle); $(".form_folder_description").val(dossier.description); } } }); } }); }); // ---- enregistre les propriétés d'un dossier $("html").on('click', '.form_folder_save', function(event) { event.preventDefault(); var dossier_id = $("#form_folder_property").attr("data-id"); var libelle = $(".form_folder_libelle").val(); var description = $(".form_folder_description").val(); if(libelle == ""){ $.fancyMessage({title : "Propriétés d'un dossier", message : "Vous devez indiquer un nom de dossier.", type : "error"}); return false; } $(".form_folder_save").addClass('loading'); $.ajax({ url: '/ajax/save-folder-property', method: 'POST', dataType : 'json', data: { dossier_id: dossier_id, libelle: libelle, description: description, }, success: function(result){ $(".form_folder_save").removeClass('loading'); $(".folder_container .dd3-item[data-id='"+dossier_id+"'] > .dd3-content span").html(libelle); $.fancybox.close(); }, error: function(jqXHR, textStatus, errorThrown) { $(".form_folder_save").removeClass('loading'); $.fancybox.close(); $.fancyMessage({title : "Attention", message : "Erreur lors de l'édition du dossier, merci d'actualiser la page.", type : "error"}); } }); }); // ---- affichage des dossiers on draghover $(".folder_container").on("dragover", ".dd3-content, .root_folder", function(event) { event.preventDefault(); event.stopPropagation(); $(".folder_container .dd3-content").removeClass('dragged'); $(".folder_container .root_folder").removeClass('dragged'); $(this).addClass('dragged'); }); // ---- affichage des dossiers on dragleave $(".folder_container").on("dragleave", ".dd3-content, .root_folder", function(event) { event.preventDefault(); event.stopPropagation(); $(".folder_container .dd3-content").removeClass('dragged'); $(".folder_container .root_folder").removeClass('dragged'); }); // ---- evt lorsque l'on drop des élements dans un dossier $(".folder_container").on("drop", ".dd3-content, .root_folder", function(event) { event.preventDefault(); event.stopPropagation(); $(".folder_container .dd3-content").removeClass('dragged'); $(".folder_container .root_folder").removeClass('dragged'); // ---- Cible if($(this).hasClass("root_folder")){ var dossier_id = $(this).attr("data-id"); }else{ var dossier_id = $(this).parent("li").attr("data-id"); } // ---- source var data = event.originalEvent.dataTransfer.getData("Text"); if($(window).data('currentFolder') != dossier_id){ $.ajax({ url: '/ajax/move-media', method: 'POST', dataType : 'json', data: { dossier_id: dossier_id, data: data, sujet_id: $("#sujet_selector").val(), }, success: function(result){ var currentFolderId = $(window).data('currentFolder'); var arrayMediaId = data.split(','); if(currentFolderId == 0){ var $countCurrentFolder = $(".folder_container .root_folder .count"); }else{ var $countCurrentFolder = $(".folder_container .dd3-item[data-id='"+currentFolderId+"'] > .dd3-content .count"); } if(dossier_id == 0){ var $countTargetFolder = $(".folder_container .root_folder .count"); }else{ var $countTargetFolder = $(".folder_container .dd3-item[data-id='"+dossier_id+"'] > .dd3-content .count"); } $.each(arrayMediaId, function(index, media_id) { $(".media_container .imageItem[data-id='"+media_id+"']").remove(); // supprime les éléments déplacés $countCurrentFolder.html(parseInt($countCurrentFolder.html())-1); // MAJ du compteur du dossier actuel $countTargetFolder.html(parseInt($countTargetFolder.html())+1); // MAJ du compteur du dossier cible }); }, error: function(jqXHR, textStatus, errorThrown) { $.fancyMessage({title : "Attention", message : "Erreur lors du déplacement, merci d'actualiser la page.", type : "error"}); } }); } }); /****************************** Gestion des médias **********************************/ // ---- au début du drag, set les valeurs des éléments draggés $("html").on("dragstart", ".imageItem", function(event) { var datavalue = []; if($(this).attr("aria-grabbed") == "true"){ $(".imageItem").each(function(index, el) { if($(this).attr("aria-grabbed") == "true"){ datavalue.push($(this).attr("data-id")); } }); event.originalEvent.dataTransfer.setData('Text', datavalue); }else{ $(".imageItem").attr("aria-grabbed", "false"); $(this).attr("aria-grabbed", "true"); event.originalEvent.dataTransfer.setData('Text', $(this).attr("data-id")); } }); // ---- Restreint le Drag aux images $("html").on("dragstart", function(event) { if(!$(event.target).hasClass('imageItem')){ return false; } }); // ---- clique droit sur un média $(".main_content .wrapper").on("contextmenu", '.imageItem' , function(event) { event.preventDefault(); $(".imageItem").removeClass('flip'); $(this).addClass('flip') }); // ---- gère la sélection des éléments var lastSelected ; $("html").on("click", ".imageItem", function(event) { event.preventDefault(); $(".imageItem").removeClass('flip'); // Gestion des actions accessibles lors du clic droit sur un media var target = event.target, $target = $(target); if($target.hasClass('menu-option')){ if($target.hasClass('editItem')){ // Editer un média $(this).dblclick(); }else if ($target.hasClass('downloadItem')) { // Télécharger le média var medias = []; medias.push($(this).attr("data-id")); $("#form_download").fancybox({ type : 'inline', opts : { animationDuration : 350, animationEffect : 'material', }, beforeShow : function() { $("#form_download .medias").val(medias.join()); } }).trigger("click"); }else if ($target.hasClass('addBasket')) { // ajouter le média au panier addMediasBasket([$(this).attr('data-id')]); }else if ($target.hasClass('deleteItem')) { // supprimer le média removeMedias([$(this).attr('data-id')]); }else if ($target.hasClass('tagItem')) { // Appliquer une étiquette var medias = []; medias.push($(this).attr("data-id")); $("#form_etiquette").fancybox({ type : 'inline', opts : { animationDuration : 350, animationEffect : 'material', }, beforeShow : function() { $('#form_etiquette .etiquette').removeClass('selected'); }, afterClose : function() { if($('#form_etiquette .etiquette.selected').length){ var id = $('#form_etiquette .etiquette.selected').attr('data-id'); applyEtiquette(id, medias); } } }).trigger("click"); } return false; } // Sélection avec touche controle if(event.ctrlKey){ if($(this).attr("aria-grabbed") == "true"){ $(this).attr("aria-grabbed", "false"); }else{ $(this).attr("aria-grabbed", "true"); } lastSelected = $(this); }else if(event.shiftKey){ // Sélection avec touche shift var select; if(lastSelected == null){ lastSelected = $(this); select = true }else{ select = lastSelected.attr("aria-grabbed"); } $(".imageItem").attr("aria-grabbed", "false"); var imageItem = $(".imageItem"); var last = imageItem.index(lastSelected); var first = imageItem.index( $(this)); var start = Math.min(first, last); var end = Math.max(first, last); for (var i = start; i <= end; i++) { imageItem.eq(i).attr("aria-grabbed", select); } }else{ // Sélection simple if($(this).attr("aria-grabbed") == "true"){ $(".imageItem").attr("aria-grabbed", "false"); }else{ $(".imageItem").attr("aria-grabbed", "false"); $(this).attr("aria-grabbed", "true"); } lastSelected = $(this); } }); // ---- Gestion de l'infinite scroll $(".media_manager .media_container").on("scroll resize", function() { if ($(window).data('ajaxready') == false) return; if ($(window).data('noMedia') == true) return; if( ($(".media_container").scrollTop() + $(".media_container").height() ) == $(".media_container .wrapper").height() ) { $(window).data('ajaxready', false); var sujet_id = $("#sujet_selector").val(); loadMedia(sujet_id); } }); // ---- Mode d'affichage $(".action_wrapper .display i").on("click", function(event) { if($(this).hasClass('fa-th')){ // mode mosaique if(!$(this).hasClass('selected')){ $(".action_wrapper .display .fa-list").removeClass('selected'); $(this).addClass('selected'); $(".media_container .wrapper").removeClass('inline'); } }else{ // mode liste if(!$(this).hasClass('selected')){ $(".action_wrapper .display .fa-th").removeClass('selected'); $(this).addClass('selected'); $(".media_container .wrapper").addClass('inline'); } } }); // ---- Gestion de l'ordre d'affichage $(".action_wrapper #order_select").on("change", function(event) { var sujet_id = $("#sujet_selector").val(); $(window).data('offset', 0); loadMedia(sujet_id); }); /****************************** Edition d'un média **********************************/ // ---- double-clique sur un média var drPlugin = null; var viewer = null; $(".media_manager").on("dblclick", '.imageItem' , function(event) { event.preventDefault(); // récupère l'image de preview var imgPreview = $(this).attr('data-preview')+'?t='+ new Date().getTime(); if($(this).attr('data-depot') == 1){ if($(this).attr('data-typemedia') == 1|| $(this).attr('data-typemedia') == 2){ // image $.fancybox.open(''); }else if ($(this).attr('data-typemedia') == 3) { // vidéo $.fancybox.open(''); }else if ($(this).attr('data-typemedia') == 4) { // Audio $.fancybox.open(''); } return false; } // initialise le nuage de Tags $('#tag-editor').val(''); $('#tag-editor').tagEditor({ placeholder: 'Saissisez des tags', removeDuplicates : false, clickDelete : true, initialTags: [] }); var minWidth = $(document).width(); var minHeight = $(document).height()-43-40; // Mémorise le média courant $(window).data('current_edit_media', $(this).attr('data-id')); // sélectionne la tab preview à l'ouverture $("#form_media .form_media_preview").trigger("click"); // initiliasation des aperçu et du mode retouche selon le type de média if($(this).attr('data-typemedia') == 1){ // média image // ---- Gestion de l'aperçu $("#form_media .form_media_preview").show(); // on active l'onglet aperçu if($(this).attr('data-ext') == 'gif'){ // charge le gif $(".tab_preview").html(''); $(".tab_preview img").attr("src", $(this).attr('data-src')); }else if($(this).attr('data-ext') == 'pdf'){ // pdf : on affiche le lecteur pdf $(".tab_preview").html(''); $(".tab_preview embed").attr("src", $(this).attr('data-src')); }else{ // charge l'image de preview $(".tab_preview").html('
'); $("#openseadragon").css('width', '100%'); $("#openseadragon").css('height', minHeight); viewer = OpenSeadragon({ id: "openseadragon", tileSources: { type: "image", url: imgPreview, } }); } // ---- Gestion de la retouche if(jQuery.inArray($(this).attr('data-ext'), [ 'gif', 'psd', 'ai', 'pdf']) != -1){ // masque l'onglet retouche $("#form_media .form_media_retouch").hide(); }else{ $("#form_media .form_media_retouch").show(); // on active l'onglet retouche // charge l'image pour la retouche $("#form_media .tab_retouch").html(''); $("#drTarget").attr("src", imgPreview); drPlugin = new Darkroom('#drTarget', { minWidth: 200, minHeight: 200, maxWidth: minWidth, maxHeight: minHeight, plugins: { save: { callback: function() { var dr = this.darkroom; $.fancyConfirm({ title : "Retouche de l\'image", message : "Êtes-vous sûr de vouloir modifier cette image ? (cette opération sera irréversible)", okButton : 'Modifier l\'image', noButton : 'Annuler', callback : function (value) { if (value) { // récupère la nouvelle image var newImage = dr.sourceCanvas.toDataURL(); // sauvegarde de l'image en base $.ajax({ url: '/ajax/edit-photo', method: 'POST', dataType : 'json', data: { media_id: $(window).data('current_edit_media'), cropData : $(window).data('cropData') }, success: function(result){ // Fermeture de la popin $(".form_media_close, .btn_tab_edit_cancel").trigger('click'); // MAJ du visuel dans la Liste var mediaId = $(window).data('current_edit_media') var $media = $(".media_container .imageItem[data-id='"+mediaId+"'] .media"); var mediaBg = $media.css('background-image', 'url('+result.folder+result.uid+"_thumb."+result.extension+'?t='+ new Date().getTime()+')'); }, error: function(jqXHR, textStatus, errorThrown) { $.fancybox.close(); $.fancyMessage({title : "Attention", message : "Erreur lors de la sauvegarde de l'image, merci d'actualiser la page.", type : "error"}); } }); } } }); } }, } }); } }else if ($(this).attr('data-typemedia') == 2) { // média svg $("#form_media .form_media_retouch").hide(); // masque l'onglet retouche $("#form_media .form_media_preview").show(); // on active l'onglet aperçu // charge le svg $(".tab_preview").html(''); $(".tab_preview img").attr("src", $(this).attr('data-src')); }else if ($(this).attr('data-typemedia') == 4) { // média audio $("#form_media .form_media_retouch").hide(); // masque l'onglet retouche $("#form_media .form_media_preview").show(); // on active l'onglet aperçu // charge l'audio $(".tab_preview").html(''); $(".tab_preview audio").attr("src", $(this).attr('data-src')); }else if ($(this).attr('data-typemedia') == 3) { // média video $("#form_media .form_media_retouch").hide(); // masque l'onglet retouche $("#form_media .form_media_preview").show(); // on active l'onglet aperçu // charge la vidéo $(".tab_preview").html(''); $(".tab_preview video").attr("src", $(this).attr('data-src')); } // chargement des données du média $.ajax({ url: '/ajax/get-media', method: 'POST', dataType : 'json', data: { media_id : $(window).data('current_edit_media'), }, success: function(result){ // chargement des données $(".tab_edit #arcadia_id").val(result.data.arcadia_id); $(".tab_edit #libelle").val(result.data.libelle); $(".tab_edit #sujetLibelle").val(result.data.sujet.libelle); $(".tab_edit #typevues").val(result.data.typevue_id); $(".tab_edit #variantes option").each(function(){ if($(this).attr('data-typevue')== result.data.typevue_id){ $(this).show(); }else{ $(this).hide(); } }); $(".tab_edit #typemedias").val(result.data.typemedia_id); $(".tab_edit #variantes").val(result.data.variante_id); $(".tab_edit #langues").val(result.data.langue_id); $(".tab_edit #commentaire").val(result.data.commentaire); $(".tab_edit #version").val(result.data.version); $(".tab_edit #created_at").val(result.data.created_at); if(result.data.owner != null){ $(".tab_edit #created_by").val(result.data.owner.firstname+" "+result.data.owner.lastname); }else{ $(".tab_edit #created_by").val(""); } $(".tab_edit #updated_at").val(result.data.updated_at); $(".tab_edit #published_at").val(result.data.published_at); $(".tab_edit #statut").val(result.data.statut); // articles lié $(".tab_edit .article_selector table tbody").html(''); $(".tab_edit #articles").val(''); var elems = []; $.each(result.data.articles, function (index, article) { $articleItem = $(".tab_edit .hidden_row tr").clone(); $articleItem.find('.col_lib').html(article.noArt+" : "+article.libCcial); $articleItem.find('.col_famVente').html(article.codFamVte+" : "+article.libFamVte); $articleItem.find('.col_marque').html(article.codMarq+" : "+article.libMarq); $articleItem.find('.col_gencodAdm').html(article.codGencodAdm); $articleItem.find('.col_gencodSymb').html(article.codGencodSymb); $articleItem.find('.col_gencodPds').html(article.codGencodPds); $articleItem.find('.remove_article').attr('data-id', article.id); $(".tab_edit .article_selector table tbody").append($articleItem); elems.push(article.id); }); $(".tab_edit #articles").val(elems.join()); // marque lié $(".tab_edit .selector_marques .selector_values").html(''); $.each(result.data.marques, function (index, marque) { $(".tab_edit .selector_marques .selector_values").append('
  • '+marque.libMarq+'
  • '); }); initSelector(".selector_marques"); // societés liées $(".tab_edit .selector_societes .selector_values").html(''); $.each(result.data.societes, function (index, societe) { $(".tab_edit .selector_societes .selector_values").append('
  • '+societe.libelle+'
  • '); }); initSelector(".selector_societes"); // tags if(result.tags){ $('#tag-editor').tagEditor('addTag', result.tags); } $(".tab_edit #etiquettes").val(result.data.etiquette_id); $(".tab_edit #extension").val(result.data.extension); $(".tab_edit #copyrights").val(result.data.copyright_id); $(".tab_edit #largeur").val(result.data.largeur); $(".tab_edit #hauteur").val(result.data.hauteur); $(".tab_edit #resolution").val(result.data.resolution); $(".tab_edit #largeur_mm").val(result.data.largeur_mm); $(".tab_edit #hauteur_mm").val(result.data.hauteur_mm); // Config de la fiche d'édition if(result.data.sujet.sujet_arcadia == 0){ $(".tab_edit .arcadia_fields").hide(); }else{ $(".tab_edit .arcadia_fields").show(); } $(".tab_edit .article_form, .tab_edit .marque_form, .tab_edit .societe_form").hide(); switch (result.data.sujet_id) { case 1: // Visuel Article $(".tab_edit .article_form").show(); break; case 2: // Marque $(".tab_edit .marque_form").show(); break; case 4: // Sociétés $(".tab_edit .societe_form").show(); break; default: } // Config de la liste des vignettes $(".tab_links .table_links tbody").html(''); $.each(result.vignettes, function (index, vignette) { $linkItem = $(".tab_links .row_copy_hidden table tr").clone(); $linkItem.find('.link_libelle').html(vignette.libelle+" "+vignette.extension+" "+vignette.resolution); $linkItem.find('.link_input input').val(vignette.url); $(".tab_links .table_links tbody").append($linkItem); }); // affiche la popin $("#form_media").fadeIn('fast'); }, error: function(jqXHR, textStatus, errorThrown) { // si le plugin de retouche a déjà été chargé if(drPlugin !== null){ drPlugin.selfDestroy(); drPlugin = null; // on détruit le plugin de retouche } // si le plugin de preview a déjà été chargé if(viewer !== null){ viewer.destroy(); viewer = null; // on détruit le plugin de preview } $('#tag-editor').tagEditor('destroy'); $('#tag-editor').val(''); // on détruit le plugin de tag $.fancyMessage({title : "Edition d'un média", message : "Ouverture du média impossible. Merci d'actualiser la page.", type : "error"}); } }); }); // ---- fermeture de la popup d'édition $(".form_media_close, .btn_tab_edit_cancel").on("click" , function(event) { event.preventDefault(); // masque la popin $("#form_media").fadeOut('fast'); // si le plugin de retouche a déjà été chargé if(drPlugin !== null){ drPlugin.selfDestroy(); drPlugin = null; // on détruit le plugin de retouche } // si le plugin de preview a déjà été chargé if(viewer !== null){ viewer.destroy(); viewer = null; // on détruit le plugin de preview } $('#tag-editor').tagEditor('destroy'); $('#tag-editor').val(''); // on détruit le plugin de tag // ---- Stop la vidéo ou le son si présent if($(".tab_preview video").length){ $(".tab_preview video").get(0).pause() } if($(".tab_preview audio").length){ $(".tab_preview audio").get(0).pause() } }); // ---- Copie d'un lien dans le clipboard $('.tab_links').on('click', '.fa-copy', function(event){ $(this).prev().select(); document.execCommand("copy"); }); // ---- Bouton Arcadia $('.tab_edit .btn-arcadia-link').on('click', function(event){ event.preventDefault(); var arcadia_id = $("#arcadia_id").val(); arcadia_id = prompt("Indiquez le code Arcadia de ce média", arcadia_id); $.ajax({ url: '/ajax/set-id-arcadia', method: 'POST', dataType : 'json', data: { arcadia_id: arcadia_id, media_id : $(window).data('current_edit_media'), }, success: function(result){ if(result == true){ $.fancybox.close(); $.fancyMessage({title : "Lier un média à Arcadia", message : "Le code Arcadia a bien été ajouté au média", type : "info"}); $("#arcadia_id").val(arcadia_id); }else{ $.fancybox.close(); $.fancyMessage({title : "Lier un média à Arcadia", message : "Ce code a déjà été attribué à un autre média. Ajout impossible.", type : "error"}); } }, error: function(jqXHR, textStatus, errorThrown) { $.fancybox.close(); $.fancyMessage({title : "Lier un média à Arcadia", message : "Erreur lors de l'opération, merci d'actualiser la page.", type : "error"}); } }); }); // ---- Bouton de suppression d'un article $('.tab_edit .article_selector').on('click', ".remove_article", function(event){ event.preventDefault(); var elems = $(".tab_edit #articles").val().split(','); var id = $(this).attr('data-id'); var index = elems.indexOf(id); elems = jQuery.grep(elems, function(value) { return value != id; }); $(".tab_edit #articles").val(elems.join()); $(this).parents("tr").remove(); }); // ---- Bouton d'ajout d'un article à un média $('.tab_edit .add_article').on('click', function(event){ event.preventDefault(); var arcadia_id = prompt("Indiquez le code Arcadia de l'article.", arcadia_id); if(arcadia_id === null) return false; $.ajax({ url: '/ajax/get-article', method: 'POST', dataType : 'json', data: { arcadia_id: arcadia_id, }, success: function(result){ if(result){ var article = result.article; if($(".tab_edit #articles").val() != ""){ var elems = $(".tab_edit #articles").val().split(','); }else{ var elems = []; } if(jQuery.inArray(String(article.id), elems) == -1){ // maj de la valeur du champ hidden elems.push(String(article.id)); $(".tab_edit #articles").val(elems.join()); // maj du tableau html $articleItem = $(".tab_edit .hidden_row tr").clone(); $articleItem.find('.col_lib').html(article.noArt+" : "+article.libCcial); $articleItem.find('.col_famVente').html(article.codFamVte+" : "+article.libFamVte); $articleItem.find('.col_marque').html(article.codMarq+" : "+article.libMarq); $articleItem.find('.col_gencodAdm').html(article.codGencodAdm); $articleItem.find('.col_gencodSymb').html(article.codGencodSymb); $articleItem.find('.col_gencodPds').html(article.codGencodPds); $articleItem.find('.remove_article').attr('data-id', article.id); $(".tab_edit .article_selector table tbody").append($articleItem); }else{ $.fancyMessage({title : "Impossible d'ajouter l'article", message : "Cet article est déjà présent dans la liste.", type : "error"}); } }else{ $.fancyMessage({title : "Impossible d'ajouter l'article", message : "La référence de cet article n'a pas été trouvé.", type : "error"}); } }, error: function(jqXHR, textStatus, errorThrown) { $.fancyMessage({title : "Attention", message : "Erreur lors de l'opération, merci d'actualiser la page.", type : "error"}); } }); }); // ---- Suppression de média en masse $('.action_delete_media').on('click',function(event){ event.preventDefault(); var medias = []; $('.media_container .imageItem').each(function (index) { if( $(this ).attr("aria-grabbed") == "true" ){ medias.push($(this ).attr("data-id")); } }); removeMedias(medias); }); // ---- Popup pour Appliquer une étiquette à un média en masse $('.action_tag_media').on('click',function(event){ event.preventDefault(); var medias = []; $('.media_container .imageItem').each(function (index) { if( $(this ).attr("aria-grabbed") == "true" ){ medias.push($(this ).attr("data-id")); } }); if(medias.length == 0){ $.fancyMessage({title : "Appliquer une étiquette", message : "Veuillez sélectionner au moins un média.", type : "info"}); }else{ $("#form_etiquette").fancybox({ type : 'inline', opts : { animationDuration : 350, animationEffect : 'material', }, beforeShow : function() { $('#form_etiquette .etiquette').removeClass('selected'); }, afterClose : function() { if($('#form_etiquette .etiquette.selected').length){ var id = $('#form_etiquette .etiquette.selected').attr('data-id'); applyEtiquette(id, medias); } } }).trigger("click"); } }); // ---- Appliquer une étiquette à un média en masse $('#form_etiquette .etiquette').on('click',function(event){ event.preventDefault(); $(this).addClass('selected'); $.fancybox.close(); }); // ---- Popup pour télécharger des médias en masse $('.action_download_media, .form_media_download').on('click',function(event){ event.preventDefault(); var medias = []; if($(this).hasClass('form_media_download')){ medias.push($(window).data('current_edit_media')); }else{ $('.media_container .imageItem').each(function (index) { if( $(this ).attr("aria-grabbed") == "true" ){ medias.push($(this ).attr("data-id")); } }); } if(medias.length == 0){ $.fancyMessage({title : "Télécharger des médias", message : "Veuillez sélectionner au moins un média.", type : "info"}); }else{ $("#form_download").fancybox({ type : 'inline', opts : { animationDuration : 350, animationEffect : 'material', }, beforeShow : function() { $("#form_download .medias").val(medias.join()); } }).trigger("click"); } }); // ---- Bouton pour remplacer un média par un autre $('.form_media_replace').on('click',function(event){ event.preventDefault(); $('.upload_container').show("fast"); maxFiles = 1; replaceMediaId =$(window).data('current_edit_media'); }); // ---- Bouton pour lancer le téléchargement d'un ou plusieurs médias $('#form_download .btn_form_download').on('click',function(event){ event.preventDefault(); $("#form_download #the_form_download").submit(); // ferme la popup $.fancybox.close(); }); // ---- gestion des onglets de la popup d'édition $("#form_media .tabbtn").on("click" , function(event) { event.preventDefault(); // ---- Affiche l'onglet cliqué var tabId = $(this).attr("data-tab"); $("#form_media .tabbtn").removeClass('active'); $(this).addClass('active') $("#form_media .main_content .tab").removeClass('active'); $("#form_media .main_content .tab").eq(tabId).addClass('active'); $(".tab_edit .tab_content").scrollTop( 0 ); // on remonte la scrollbar de la tab edition // ---- Stop la vidéo ou le son si présent if($(".tab_preview video").length){ $(".tab_preview video").get(0).pause() } if($(".tab_preview audio").length){ $(".tab_preview audio").get(0).pause() } // ---- Chargement de l'historique des actions if($(this).hasClass('form_media_history')){ $(".tab_history table tbody").html(' Chargements de l\'historique'); $.ajax({ url: '/ajax/get-media-history', method: 'POST', dataType : 'json', data: { media_id : $(window).data('current_edit_media'), }, success: function(result){ if(result){ $(".tab_history table tbody").html(''); $.each(result, function (index, history) { var username = ""; if(null !== history.user){ username = history.user.firstname+' '+history.user.lastname; } $(".tab_history table tbody").append(''+history.created_date+''+username+''+history.type+''+history.description+''); }); } } }); } }); // ---- sauvegarde de la popup d'édition $(".btn_tab_edit_save").on("click" , function(event) { if(!$(".form_edit_media")[0].checkValidity()){ $.fancyMessage({title : "Sauvegarde d'un média", message : "Le formulaire a mal été renseigné. merci de corriger.", type : "error"}); } var media = { id : $(window).data('current_edit_media'), libelle : $(".tab_edit #libelle").val(), typevue_id : $(".tab_edit #typevues").val(), variante_id : $(".tab_edit #variantes").val(), langue_id : $(".tab_edit #langues").val(), commentaire : $(".tab_edit #commentaire").val(), version : $(".tab_edit #version").val(), statut : $(".tab_edit #statut").val(), copyright_id : $(".tab_edit #copyrights").val(), etiquette_id : $(".tab_edit #etiquettes").val(), tags : $('#tag-editor').tagEditor('getTags')[0].tags, societes : $(".tab_edit .selector_societes .selector_dataValues").val(), marques : $(".tab_edit .selector_marques .selector_dataValues").val(), articles : $(".tab_edit #articles").val(), published_at : $(".tab_edit #published_at").val(), } $.ajax({ url: '/ajax/save-media', method: 'POST', dataType : 'json', data: { media : media, }, success: function(result){ $.fancyMessage({title : "Sauvegarde d'un média", message : "Les données ont bien été enregistrées", type : "info"}); }, error: function(jqXHR, textStatus, errorThrown) { $.fancyMessage({title : "Sauvegarde d'un média", message : "Erreur lors de l'enregistrement. Merci d'actualiser la page.", type : "error"}); } }); }); // ---- Chargement de la liste des vairantes lors du changement de type de vue $(".tab_edit #typevues").on("change" , function(event) { var typevue_id = $(this).val(); $(".tab_edit #variantes option").each(function(){ if($(this).attr('data-typevue')== typevue_id){ $(this).show(); }else{ $(this).hide(); } }); }); /****************************** Upload de média **********************************/ // ---- Fermeture de la popup d'upload $('#close_upload_form').on('click',function(event){ event.preventDefault(); $('.upload_container').hide("fast"); }); // ---- Ouvrir la popup de mode d'ajout $('.action_add_media').on('click',function(event){ event.preventDefault(); if($(window).data('currentFolder') >=0){ $("#form_select_add_media").fancybox({type : 'inline', opts : { animationDuration : 350, animationEffect : 'material'}}).trigger("click"); }else{ $.fancyMessage({title : "Ajout de média", message : "Pour ajouter des médias, veuillez d'abord sélectionner un dossier de destination.", type : "error"}); } }); // ---- Ouvrir la popup d'upload $('.add_media_by_upload').on('click',function(event){ event.preventDefault(); $.fancybox.close(); $('.upload_container').show("fast"); maxFiles = 100; replaceMediaId = 0; }); // ---- Ajoute un élément sans média $('.add_media_without_file').on('click',function(event){ event.preventDefault(); $.fancybox.close(); $.ajax({ url: '/ajax/add-media', method: 'POST', dataType : 'json', data: { dossier_id : $(window).data('currentFolder'), sujet_id: $("#sujet_selector").val(), }, success: function(result){ //---- Chargement des médias var currentFolder = $(window).data('currentFolder'); if(currentFolder == 0 || currentFolder == ""){ var count = $(".folder_container .root_folder .count"); }else{ var count = $(".folder_container .dd3-item[data-id='"+currentFolder+"'] > .dd3-content .count"); } count.html(parseInt(count.html())+1); $(".reinit_search_btn").trigger("click"); }, error: function(jqXHR, textStatus, errorThrown) { $(".folder_container .loader").hide(); $.fancyMessage({title : "Attention", message : "Erreur lors de la création du média. Merci d'actualiser la page.", type : "error"}); } }); }); // ---- Initialisation du module d'upload if($('#fileupload').length){ $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); var cancel_btn = $('"); } var favBtn = ""; if(system == 0){ favBtn = ""; } var html = "
  • "; html += "
    "; html += "
    " + content + "
    0
    "+favBtn+"
  • "; $('.dd .dd-item[data-id="'+parent_id+'"] > ol').append(html); } window.arrayRemove = function(arr, value){ return arr.filter(function(ele){ return ele != value; }); } window.FileConvertSize = function(aSize){ aSize = Math.abs(parseInt(aSize, 10)); var def = [[1, 'octets'], [1024, 'ko'], [1024*1024, 'Mo'], [1024*1024*1024, 'Go'], [1024*1024*1024*1024, 'To']]; for(var i=0; i