1809 lines
63 KiB
JavaScript
Vendored
1809 lines
63 KiB
JavaScript
Vendored
$(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 = '<a id="currentFolder" class="filter_item" href="#">';
|
|
output += '<span class="libelle">Dossier : </span>';
|
|
output += '<span class="value">'+$(".folder_container .dd3-item[data-id='"+dossier_id+"'] > .dd3-content span").html()+'</span>';
|
|
output += '<i class="delete_filter fal fa-times"></i>';
|
|
output += '</a>';
|
|
$(".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 = '<a id="currentFolder" class="filter_item" href="#">';
|
|
output += '<span class="libelle">Dossier : </span>';
|
|
output += '<span class="value">racine</span>';
|
|
output += '<i class="delete_filter fal fa-times"></i>';
|
|
output += '</a>';
|
|
$(".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('<img style="width: 640px; height:auto;" src="'+imgPreview+'" alt="" />');
|
|
}else if ($(this).attr('data-typemedia') == 3) { // vidéo
|
|
$.fancybox.open('<video src="'+$(this).attr('data-src')+'" controls></video>');
|
|
}else if ($(this).attr('data-typemedia') == 4) { // Audio
|
|
$.fancybox.open('<audio controls src="'+$(this).attr('data-src')+'"></audio>');
|
|
}
|
|
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('<img class="svgElt" src=""/>');
|
|
$(".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('<embed src="" type="application/pdf">');
|
|
$(".tab_preview embed").attr("src", $(this).attr('data-src'));
|
|
}else{
|
|
// charge l'image de preview
|
|
$(".tab_preview").html('<div id="openseadragon" ></div>');
|
|
$("#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('<img id="drTarget" src="" >');
|
|
$("#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('<img class="svgElt" src=""/>');
|
|
$(".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('<audio controls src=""></audio>');
|
|
$(".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('<video src="" controls></video>');
|
|
$(".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('<li data-value="'+marque.codMarq+'" >'+marque.libMarq+'</li>');
|
|
});
|
|
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('<li data-value="'+societe.id+'" >'+societe.libelle+'</li>');
|
|
});
|
|
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('<tr><td colspan="4" style="text-align:center;"><i class="fal fa-circle-notch fa-spin"></i> Chargements de l\'historique</td></tr>');
|
|
$.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('<tr><td>'+history.created_date+'</td><td>'+username+'</td><td>'+history.type+'</td><td>'+history.description+'</td></tr>');
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
// ---- 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 = $('<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($(window).data('currentFolder') == "-1"){
|
|
$.fancyMessage({title : "Ajout de média", message : "Pour ajouter des médias, veuillez d'abord sélectionner un dossier de destination.", type : "error"});
|
|
return false;
|
|
}
|
|
if(counter ==0){
|
|
return false;
|
|
}
|
|
$("#submit").html('<i class="fal fa-circle-notch fa-spin"></i> Transférer');
|
|
$("#submit").css("pointer-events", "none");
|
|
$("#upload_errors").html("");
|
|
$('.upload').click() //click upload buttons and upload all files in the queue
|
|
});
|
|
$('#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;
|
|
var replaceMediaId = 0;
|
|
$('#fileupload').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+" fichier(s)", 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(),
|
|
sujet_id: $("#sujet_selector").val(),
|
|
dossier_id: $(window).data('currentFolder'),
|
|
replaceMediaId: replaceMediaId,
|
|
};
|
|
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));
|
|
});
|
|
//---- 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())+data.files.length);
|
|
},
|
|
stop: function (e,) {
|
|
$(".files").html("");
|
|
counter = 0;
|
|
currentfiles = [];
|
|
$('#progress .progress-bar').css('width', '0%');
|
|
$('#progress').hide();
|
|
$('.upload_container').hide("fast");
|
|
var currentFolder = $(window).data('currentFolder');
|
|
$(".reinit_search_btn").trigger("click");
|
|
$("#submit").html('Transférer');
|
|
$("#submit").css("pointer-events", "auto");
|
|
|
|
if(replaceMediaId != 0){
|
|
// Fermeture de la popin d'édition de média
|
|
$(".form_media_close, .btn_tab_edit_cancel").trigger('click');
|
|
}
|
|
},
|
|
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');
|
|
}
|
|
});
|
|
|
|
// ---- init des dossiers
|
|
function initFolderManager(sujetId){
|
|
$(".folder_container .loader").show();
|
|
$.ajaxSetup({
|
|
headers: {
|
|
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
|
}
|
|
});
|
|
$.ajax({
|
|
url: '/ajax/load-folder',
|
|
method: 'POST',
|
|
dataType : 'json',
|
|
data: {
|
|
sujetId: sujetId,
|
|
},
|
|
success: function(result){
|
|
var output = '';
|
|
var draggable = result.draggable;
|
|
|
|
// initialisation de la liste type vues
|
|
var typevues = result.typevues;
|
|
$("#typevues").find('option').remove();
|
|
$.each(typevues, function (index, typevue) {
|
|
$("#typevues").append('<option value="'+typevue.codeTypevue+'">'+typevue.libelle+'</option>');
|
|
});
|
|
$(".search_filters .list_typevue ul").html("");
|
|
$.each(typevues, function (index, typevue) {
|
|
$(".search_filters .list_typevue ul").append('<li><input id="typeV_'+typevue.codeTypevue+'" type="checkbox" value="'+typevue.codeTypevue+'" name=""><label for="typeV_'+typevue.codeTypevue+'" >'+typevue.libelle+'</label></li>');
|
|
});
|
|
|
|
// initialisation de la liste variantes
|
|
var variantes = result.variantes;
|
|
$("#variantes").find('option').remove();
|
|
$.each(variantes, function (index, variante) {
|
|
$("#variantes").append('<option value="'+variante.codeVariante+'" data-typevue="'+variante.typevue_id+'" >'+variante.libelle+'</option>');
|
|
});
|
|
|
|
// initialisation des formats de vignette disponibles au téléchargement
|
|
$(window).data('formats', result.formats);
|
|
$('#form_download .download_format').html('');
|
|
$('#form_download .download_format').append('<option value="0">Format original</option>');
|
|
$.each(result.formats, function (index, format) {
|
|
$('#form_download .download_format').append('<option value="'+format.id+'">Vignette '+format.extension+' '+format.libelle.toUpperCase()+' ('+format.largeur+'px)</option>');
|
|
});
|
|
|
|
// ajout du total à la racine
|
|
var total = result.count;
|
|
$(".root_folder .count").html(total);
|
|
|
|
// construction des dossiers
|
|
var data = result.data;
|
|
$.each(data, function (index, item) {
|
|
output += buildItem(item);
|
|
});
|
|
$('.folder_container .dd .dd-list').html(output);
|
|
$('.dd').nestable({
|
|
scroll: true,
|
|
onDragStart: function(l,e){
|
|
if($(e).hasClass("parent")){ // pour empêcher le déplacement des dossiers parents
|
|
return false;
|
|
}
|
|
return draggable;
|
|
},
|
|
beforeDragStop: function(l,e, p){
|
|
// l is the main container, e is the element that was moved, p is the place where element was moved.
|
|
if($(p).hasClass('root')){
|
|
$.fancyMessage({title : "Attention", message : "Vous ne pouvez pas déplacer un dossier à la racine.", type : "error"});
|
|
return false;
|
|
}
|
|
var r = confirm("Etes-vous sûr d'appliquer ce déplacement ?");
|
|
if (r == true) {
|
|
var dossier_id = $(e).attr("data-id");
|
|
var parent_id = $(p).parent("li").attr("data-id");
|
|
$(".folder_container .loader").show();
|
|
$.ajax({
|
|
url: '/ajax/move-folder',
|
|
method: 'POST',
|
|
dataType : 'json',
|
|
data: {
|
|
parent_id : parent_id,
|
|
dossier_id : dossier_id,
|
|
sujet_id: $("#sujet_selector").val(),
|
|
},
|
|
success: function(result){
|
|
$(".folder_container .loader").hide();
|
|
},
|
|
error: function(jqXHR, textStatus, errorThrown) {
|
|
$(".folder_container .loader").hide();
|
|
$.fancyMessage({title : "Attention", message : "Erreur lors du déplacement du dossier. Merci d'actualiser la page.", type : "error"});
|
|
}
|
|
});
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
});
|
|
//('.dd').nestable('collapseAll');
|
|
$(".folder_container .dd-empty").remove();
|
|
$(".folder_container .loader").hide();
|
|
|
|
// ---- Par défaut déselectionne toutes les checkbox
|
|
$(".filter").find('input[type="checkbox"]').prop( "checked", false );
|
|
|
|
// charge la recherche si necessaire
|
|
if(Object.keys($(window).data('filter')).length > 0){
|
|
var filters = $(window).data('filter');
|
|
|
|
$.each(filters, function (index, filter) {
|
|
// ajoute le widget filtre
|
|
updateFilter(filter);
|
|
// init des champs de recherche
|
|
if(filter.type == 'search'){
|
|
$(".search_filters .search_value").val(filter.value);
|
|
}else{
|
|
$('.search_filters .filter[data-type="'+filter.type+'"]').find('input[type="checkbox"]').each(function (index, cb){
|
|
if($.inArray($(this).val(), filter.value ) >= 0){
|
|
$(this ).prop( "checked", true );
|
|
}else{
|
|
$(this).prop( "checked", false );
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
// sélection du dossier
|
|
if($(window).data('currentFolder') > 0){
|
|
// on se place sur un dossier spécifique
|
|
$('.dd .dd-item[data-id="'+$(window).data('currentFolder')+'"] > .dd3-content').trigger("click");
|
|
}else if ($(window).data('currentFolder') == -1) {
|
|
loadMedia($("#sujet_selector").val());
|
|
}else{
|
|
// si pasdossier spécifié alors on se place à la racine
|
|
$(window).data('currentFolder', 0);
|
|
$(".root_folder").trigger("click");
|
|
}
|
|
|
|
},
|
|
error: function(jqXHR, textStatus, errorThrown) {
|
|
$(".folder_container .loader").hide();
|
|
$.fancyMessage({title : "Attention", message : "Erreur lors du chargement des dossiers. Merci d'actualiser la page.", type : "error"});
|
|
}
|
|
});
|
|
}
|
|
|
|
// ---- Chargement des média
|
|
window.loadMedia = function(sujet_id, saveSearch = 0){
|
|
var output = '';
|
|
if($(window).data('offset') == 0){
|
|
$(window).data('noMedia', false);
|
|
$('.media_container .wrapper').html("");
|
|
$(".media_container .loader").show();
|
|
}else{
|
|
$(".main_content .scrollLoader").show();
|
|
}
|
|
|
|
$.ajaxSetup({
|
|
headers: {
|
|
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
|
}
|
|
});
|
|
|
|
$.ajax({
|
|
url: '/ajax/load-media',
|
|
method: 'POST',
|
|
dataType : 'json',
|
|
data: {
|
|
dossier_id : $(window).data('currentFolder'),
|
|
sujet_id : sujet_id,
|
|
filters : JSON.stringify($(window).data('filter')),
|
|
offset : $(window).data('offset'),
|
|
limit : $(window).data('limit'),
|
|
orderField : $("#order_select").val(),
|
|
order : $('#order_select option:selected').attr('data-order'),
|
|
saveSearch : saveSearch,
|
|
},
|
|
success: function(result){
|
|
var data = result.data;
|
|
if(data.length == 0){
|
|
$(window).data('noMedia', true);
|
|
}
|
|
var draggable = result.draggable;
|
|
|
|
$.each(data, function (index, item) {
|
|
var ico = "";
|
|
var detail = "";
|
|
var statut = "";
|
|
var itemClass = "";
|
|
var thumb = "";
|
|
var preview = "";
|
|
switch (item.typemedia_id) {
|
|
case 1:
|
|
ico = '<i class="fas fa-file-image"></i>';
|
|
detail = " - "+item.largeur+"x"+item.hauteur+"px";
|
|
if(item.extension == "pdf" || item.extension == "ai" || item.extension == "psd"){
|
|
thumb = item.folder+item.uid+"_thumb.png";
|
|
preview = item.folder+item.uid+"_preview.png";
|
|
}else{
|
|
thumb = item.folder+item.uid+"_thumb."+item.extension;
|
|
preview = item.folder+item.uid+"_preview."+item.extension;
|
|
}
|
|
break;
|
|
case 2:
|
|
ico = '<i class="fas fa-file-image"></i>';
|
|
thumb = item.folder+item.uid+"."+item.extension;
|
|
preview = item.folder+item.uid+"."+item.extension;
|
|
break;
|
|
case 3:
|
|
ico = '<i class="fas fa-file-video"></i>';
|
|
detail = " - durée "+item.duree;
|
|
itemClass = "video";
|
|
break;
|
|
case 4:
|
|
ico = '<i class="fas fa-file-audio"></i>';
|
|
detail = " - durée "+item.duree;
|
|
itemClass = "son";
|
|
break;
|
|
default:
|
|
}
|
|
|
|
switch (item.statut) {
|
|
case 0:
|
|
statut = "Brouillon"
|
|
break;
|
|
case 1:
|
|
statut = "Public"
|
|
break;
|
|
case 2:
|
|
statut = "Public étendu"
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
output += '<div class="imageItem" data-id="'+item.id+'" data-depot="'+result.isDepot+'" data-ext="'+item.extension+'" data-typemedia="'+item.typemedia_id+'" data-preview="'+preview+'" data-src="'+item.folder+item.uid+"."+item.extension+'" draggable="'+draggable+'" aria-grabbed="false">';
|
|
output += '<div class="etiquette" style="background-color:'+item.etiquette.color+'; border-color:'+item.etiquette.color+';" data-id="'+item.etiquette.etiquette_id+'" >'+item.etiquette.libelle+'</div>';
|
|
output += '<div class="contextMenu"><ul>';
|
|
output += '<li class="menu-option editItem"><i class="fas fa-edit"></i> Editer</li>';
|
|
output += '<li class="menu-option downloadItem"><i class="fas fa-file-download"></i> Télécharger</li>';
|
|
output += '<li class="menu-option addBasket"><i class="fas fa-shopping-basket"></i> Ajouter au panier</li>';
|
|
if(result.role != 2 ){
|
|
output += '<li class="menu-option deleteItem"><i class="fas fa-trash-alt"></i> Supprimer</li>';
|
|
output += '<li class="menu-option tagItem"><i class="fas fa-tags"></i> Etiquette</li>';
|
|
}
|
|
output += '</ul></div>';
|
|
output += '<div class="media '+itemClass+'" style="background-image:url('+thumb+')"></div>';
|
|
output += '<p class="libelle">'+item.libelle+'</p>';
|
|
output += '<div class="info">'+ico+item.extension+' - '+item.taille+detail+' - v'+item.version+'</div>';
|
|
output += '<div class="statut stat'+item.statut+'">'+statut+'</div>';
|
|
output += '</div>';
|
|
});
|
|
$('.media_container .wrapper').append(output);
|
|
|
|
if($(window).data('offset') == 0){
|
|
$(".media_container .loader").hide();
|
|
}else{
|
|
$(".main_content .scrollLoader").hide();
|
|
}
|
|
$(window).data('offset', $(window).data('offset')+$(window).data('limit'));
|
|
$(window).data('ajaxready', true);
|
|
}
|
|
});
|
|
}
|
|
|
|
// ---- Supression de médias
|
|
function removeMedias(medias){
|
|
|
|
if(medias.length == 0){
|
|
$.fancyMessage({title : "Supprimer un média", message : "Veuillez sélectionner les médias à supprimer.", type : "info"});
|
|
}else{
|
|
$.fancyConfirm({
|
|
title : "Suppression de média",
|
|
message : "Êtes-vous sûr de vouloir supprimer "+medias.length+" média(s) ?",
|
|
okButton : 'Supprimer',
|
|
noButton : 'Annuler',
|
|
callback : function (value) {
|
|
if (value) {
|
|
$.ajax({
|
|
url: '/ajax/remove-media',
|
|
method: 'POST',
|
|
dataType : 'json',
|
|
data: {
|
|
medias: medias
|
|
},
|
|
success: function(result){
|
|
$.each(result, function (index, value) {
|
|
$(".media_container .imageItem[data-id='"+value+"']").remove();
|
|
});
|
|
|
|
// ---- MAJ du nb de média dans le dossier
|
|
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())-result.length);
|
|
|
|
if(result.length != medias.length){
|
|
$.fancybox.close();
|
|
if(medias.length == 1){
|
|
$.fancyMessage({title : "Attention", message : "Ce média est lié à Arcadia. Suppression refusée. ", type : "error"});
|
|
}else{
|
|
$.fancyMessage({title : "Attention", message : "Votre sélection contient des médias liés à Arcadia. Ces médias ne seront pas supprimés.", type : "info"});
|
|
}
|
|
}
|
|
},
|
|
error: function(jqXHR, textStatus, errorThrown) {
|
|
$.fancybox.close();
|
|
$.fancyMessage({title : "Attention", message : "Erreur lors de la suppression du média, merci d'actualiser la page.", type : "error"});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
// ---- Appliquer une etiquette à un ou plusieurs médias
|
|
function applyEtiquette(etiquette_id, medias){
|
|
if(medias.length == 0){
|
|
$.fancyMessage({title : "Appliquer une étiquette", message : "Veuillez sélectionner au moins un média.", type : "info"});
|
|
}else{
|
|
$.ajax({
|
|
url: '/ajax/apply-sticker',
|
|
method: 'POST',
|
|
dataType : 'json',
|
|
data: {
|
|
medias: medias,
|
|
etiquette_id : etiquette_id
|
|
},
|
|
success: function(result){
|
|
$.each(medias, function (index, value) {
|
|
var $etiquette = $(".media_container .imageItem[data-id='"+value+"'] .etiquette");
|
|
$etiquette.attr('data-id', result.etiquette_id);
|
|
$etiquette.html(result.libelle);
|
|
$etiquette.css('background-color', result.color);
|
|
$etiquette.css('border-color', result.color);
|
|
});
|
|
},
|
|
error: function(jqXHR, textStatus, errorThrown) {
|
|
$.fancybox.close();
|
|
$.fancyMessage({title : "Attention", message : "Erreur lors du changement d'étiquette, merci d'actualiser la page.", type : "error"});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
// ---- contruction de l'arborescence des dossiers
|
|
function buildItem(item) {
|
|
var parentClass = "";
|
|
var handleClass = "";
|
|
var favClass="fal";
|
|
if(item.parent_id === null){
|
|
parentClass="parent";
|
|
handleClass= "no-handle";
|
|
}
|
|
if(item.favoris == true){
|
|
favClass="fas";
|
|
}
|
|
var favbtn = "";
|
|
if(item.system == 0){
|
|
favbtn = "<i class='"+favClass+" fa-star'></i>";
|
|
}
|
|
|
|
|
|
var html = "<li class='dd-item dd3-item "+parentClass+" ' data-id='" + item.id + "'>";
|
|
html += "<div class='dd-handle dd3-handle "+handleClass+"'></div>";
|
|
html += "<div class='dd3-content'><input type='text' value='' class='input_rename' maxlength='100'/><span>" + item.libelle + "</span><div class='count'>" + item.mediacount + "</div>"+favbtn+"</div>";
|
|
|
|
if (item.sousdossiers.length) {
|
|
html += "<ol class='dd-list'>";
|
|
$.each(item.sousdossiers, function (index, sub) {
|
|
html += buildItem(sub);
|
|
});
|
|
html += "</ol>";
|
|
|
|
}
|
|
html += "</li>";
|
|
return html;
|
|
}
|
|
|
|
// ---- ajouter un dossier
|
|
function addItem(parent_id, item_id, content, system = 0){
|
|
if(!$('.dd .dd-item[data-id="'+parent_id+'"] > ol').length){
|
|
$('.dd .dd-item[data-id="'+parent_id+'"]').append("<ol class='dd-list'></ol>");
|
|
$('.dd .dd-item[data-id="'+parent_id+'"]').prepend("<button class='dd-collapse' data-action='collapse' type='button'>Collapse</button><button class='dd-expand' data-action='expand' type='button'>Expand</button>");
|
|
}
|
|
|
|
var favBtn = "";
|
|
if(system == 0){
|
|
favBtn = "<i class='fal fa-star'></i>";
|
|
}
|
|
|
|
|
|
var html = "<li class='dd-item dd3-item' data-id='" + item_id + "'>";
|
|
html += "<div class='dd-handle dd3-handle'></div>";
|
|
html += "<div class='dd3-content'><input type='text' value='' class='input_rename' maxlength='100' /><span>" + content + "</span><div class='count'>0</div>"+favBtn+"</div></li>";
|
|
$('.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<def.length; i++){
|
|
if(aSize<def[i][0]) return (aSize/def[i-1][0]).toFixed(2)+' '+def[i-1][1];
|
|
}
|
|
}
|
|
|
|
window.create_UUID = function(){
|
|
var dt = new Date().getTime();
|
|
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
|
var r = (dt + Math.random()*16)%16 | 0;
|
|
dt = Math.floor(dt/16);
|
|
return (c=='x' ? r :(r&0x3|0x8)).toString(16);
|
|
});
|
|
return uuid;
|
|
}
|