composer require ldc/web-status-checker-laravel remove Old static status checker Fix ImportMedia WIP commands OK many fixes Fix and try to optimize folder component Fix front icons + actions based on icons Favico front fix alert Fix Media upload on depot fix folder component buttons Full front fix with perf due tu vuejs Download medias Navigate within medias superfix Move media + loader isLocked boolean and remove media fix Folder scroll fix arcadia link color red Fix panier show external Tons of fixes back as front REwrited all
243 lines
7.9 KiB
JavaScript
243 lines
7.9 KiB
JavaScript
let methods = {
|
|
refreshDisplay() {
|
|
if (__MEDIAS.displayStatus === 'Grid') {
|
|
__MEDIAS.methods.displayGrid()
|
|
} else {
|
|
__MEDIAS.methods.displayList()
|
|
}
|
|
},
|
|
displayGrid() {
|
|
Vue.__proto__.$displayStatus = 'Grid'
|
|
__MEDIAS.displayStatus = 'Grid'
|
|
$(".action_wrapper .display .fa-table-list").parent().removeClass('selected');
|
|
$(".media_container .wrapper").removeClass('inline');
|
|
},
|
|
displayList() {
|
|
Vue.__proto__.$displayStatus = 'List'
|
|
__MEDIAS.displayStatus = 'List'
|
|
$(".action_wrapper .display .fa-table-cells").parent().removeClass('selected');
|
|
$(".media_container .wrapper").addClass('inline');
|
|
}
|
|
};
|
|
|
|
window.__MEDIAS = {
|
|
displayStatus: 'Grid',
|
|
methods: methods
|
|
}
|
|
|
|
$(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("svg").removeClass('fa-chevron-right');
|
|
$(this).find("svg").addClass('fa-chevron-left');
|
|
}else{
|
|
$(this).parents(".side_menu ").addClass('collapse');
|
|
$(this).find("svg").removeClass('fa-chevron-left');
|
|
$(this).find("svg").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 button .fa-calendar-check").parent().addClass('selected');
|
|
$(".action_wrapper .display button").on("click", function (event) {
|
|
event.preventDefault();
|
|
const button = $(this), svg = $(this).children();
|
|
if (svg.hasClass('fa-calendar-check')) {
|
|
//toggle affichage des dates
|
|
if (!button.hasClass('selected')) {
|
|
button.addClass('selected');
|
|
$(".media_container .wrapper .date-separator").removeClass('hide');
|
|
} else {
|
|
button.removeClass('selected');
|
|
$(".media_container .wrapper .date-separator").addClass('hide');
|
|
}
|
|
} else {
|
|
if (svg.hasClass('fa-table-cells')) { // mode mosaique
|
|
if (!button.hasClass('selected')) {
|
|
button.addClass('selected')
|
|
methods.displayGrid()
|
|
}
|
|
}else{ // mode liste
|
|
if (!button.hasClass('selected')) {
|
|
button.addClass('selected')
|
|
methods.displayList()
|
|
}
|
|
}
|
|
}
|
|
|
|
});
|
|
|
|
/******************************
|
|
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);
|
|
});
|
|
|
|
// ---- gestion des onglets de la popup d'édition
|
|
$("#form_media .tabbtn").on("click", function (event) {
|
|
// TODO: remove this ?
|
|
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: {
|
|
mediaList: 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"});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|