ldc-dam/resources/js/media.js

268 lines
9.6 KiB
JavaScript
Vendored

$(document).ready(function() {
$.ajaxSetup({
headers:
{ 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }
});
/***************************
Widget panier
*****************************/
if ( $( ".panier_side_menu" ).length ) {
// ---- collapse/expand panier side menu
$("#menu_panier").on('click', function(event) {
event.preventDefault();
$(".panier_side_menu .panier_menu").toggle();
});
}
/******************************
Moteur de recherche de médias
**********************************/
// ---- Initialisation du module de recherche
if ($('.search_wrapper').length) {
// ---- Initialisation des listes
$(".filter_selector .filter_btn").on('click', function (event) {
$(".filter_selector .list").not($(this).parent().find(".list")).hide();
$(this).parent().find(".list").toggle();
});
}
/******************************
Liste des dossiers
**********************************/
// ---- 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');
}
});
// ---- 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');
});
/******************************
Gestion des médias
**********************************/
// ---- Mode d'affichage
$(".action_wrapper .display i").on("click", function(event) {
if($(this).hasClass('fa-calendar-check')){
//toggle affichage des dates
if(!$(this).hasClass('selected')){
$(this).addClass('selected');
$(".media_container .wrapper .date-separator").removeClass('hide');
} else {
$(this).removeClass('selected');
$(".media_container .wrapper .date-separator").addClass('hide');
}
} else {
if($(this).hasClass('fa-th')){ // mode mosaique
if(!$(this).hasClass('selected')){
$(".action_wrapper .display .fa-th-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');
}
}
}
});
/******************************
Edition d'un média
**********************************/
// ---- fermeture de la popup d'édition
$(".form_media_close, .btn_tab_edit_cancel").on("click" , function(event) {
event.preventDefault();
// ---- 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()
}
});
// ---- 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);
});
// Suppression d'un média
$(".btn_tab_edit_delete").on("click", function (event) {
event.preventDefault();
if ($(".tab_edit #arcadia_id").val().length) {
var r = confirm("Etes-vous sûr de vouloir supprimer ce média ? (Lié à Arcadia)");
} else {
var r = confirm("Etes-vous sûr de vouloir supprimer ce média ?");
}
if (r == true) {
var medias = [$(window).data('current_edit_media')];
$.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"});
}
}else{
$(".form_media_close").trigger('click');
$.fancyMessage({title : "Suppression de média", message : "Le média a été supprimé.", 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"});
}
});
}
});
// ---- gestion des onglets de la popup d'édition
$("#form_media .tabbtn").on("click" , function(event) {
return;
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()
}
});
});
// ---- Supression de médias
function removeMedias(medias){
// Si Admin
if ($(window).data('CurrentUserRole') === 1){
var msg = "Êtes-vous sûr de vouloir supprimer "+medias.length+" média(s) ? <br> ATTENTION DES MEDIAS PEUVENT ETRE LIES AVEC ARCADIA !";
}else{
var msg = "Êtes-vous sûr de vouloir supprimer "+medias.length+" média(s) ?";
}
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 : msg,
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"});
}
});
}
}
});
}
}