ldc-dam/resources/js/app.js

250 lines
7.4 KiB
JavaScript
Raw Permalink Normal View History

import './vue';
window.axios = require('axios');
window.axios.defaults.headers.common = {
'X-Requested-With': 'XMLHttpRequest',
'X-CSRF-TOKEN' : document.querySelector('meta[name="csrf-token"]').getAttribute('content')
};
let _ = require('lodash');
2019-05-09 15:00:05 +02:00
2019-05-16 17:20:30 +02:00
'use strict';
2019-05-09 15:00:05 +02:00
2019-05-16 17:20:30 +02:00
try {
window.$ = window.jQuery = require('jquery')
} catch (e) {}
2019-05-09 15:00:05 +02:00
2019-05-22 17:10:16 +02:00
jQuery.fn.scrollParent = function() {
var overflowRegex = /(auto|scroll)/,
position = this.css( "position" ),
excludeStaticParent = position === "absolute",
scrollParent = this.parents().filter( function() {
var parent = $( this );
if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
return false;
}
var overflowState = parent.css(["overflow", "overflowX", "overflowY"]);
return (overflowRegex).test( overflowState.overflow + overflowState.overflowX + overflowState.overflowY );
}).eq( 0 );
return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;
};
// ---- Configuration de base des filtres médias
$(window).data('offset', 0);
$(window).data('limit', 50);
$(window).data('currentFolder', 0);
2019-08-06 14:38:07 +02:00
$(window).data('currentBasket', null);
$(window).data('filter', {});
2019-05-16 17:20:30 +02:00
//confirm popup
$.fancyConfirm = function( opts ) {
opts = $.extend( true, {
title : 'Are you sure?',
message : '',
okButton : 'OK',
noButton : 'Cancel',
callback : $.noop
}, opts || {} );
2019-05-09 15:00:05 +02:00
2019-05-16 17:20:30 +02:00
$.fancybox.open({
type : 'html',
src :
'<div class="fc-content">' +
'<h3>' + opts.title + '</h3><hr/>' +
'<p class="tcenter"><i class="fa fa-question-circle"></i>' +
2019-05-16 17:20:30 +02:00
opts.message + '</p>' +
'<hr/><p class="button_bar">' +
'<a data-value="0" data-fancybox-close class="btn btn-black mr-10 btn-square" >' + opts.noButton + '</a>' +
'<button data-value="1" data-fancybox-close class="btn btn-square">' + opts.okButton + '</button>' +
'</p>' +
'</div>',
opts : {
animationDuration : 350,
animationEffect : 'material',
modal : true,
baseTpl :
'<div class="fancybox-container fc-container" role="dialog" tabindex="-1">' +
'<div class="fancybox-bg"></div>' +
'<div class="fancybox-inner">' +
'<div class="fancybox-stage"></div>' +
'</div>' +
'</div>',
afterClose : function( instance, current, e ) {
var button = e ? e.target || e.currentTarget : null;
var value = button ? $(button).data('value') : 0;
2019-05-09 15:00:05 +02:00
2019-05-16 17:20:30 +02:00
opts.callback( value );
}
}
});
}
2019-05-09 15:00:05 +02:00
2019-05-16 17:20:30 +02:00
// Message
$.fancyMessage = function( opts ) {
opts = $.extend( true, {
title: 'Are you sure?',
message: '',
type: '',
callback: $.noop
}, opts || {})
2019-05-09 15:00:05 +02:00
return $.fancybox.open({
type: 'html',
src:
'<div class="fc-content ' + opts.type + '">' +
'<h3>' + opts.title + '</h3><hr/>' +
`<p class="tcenter">${opts.type == "error" ? '<i class="fa fa-exclamation-triangle"></i></i>' : '<i class="fa fa-info-circle"></i>'}` +
opts.message + '</p>' +
'<hr/><p class="button_bar">' +
'<a data-value="0" data-fancybox-close class="btn btn-square ' +
(opts.type == "error" ? 'btn-red' : '') + ' " >Ok</a>' +
'</p>' +
'</div>',
opts: {
afterClose: opts.callback,
animationDuration: 350,
animationEffect: 'material',
modal: false,
baseTpl:
'<div class="fancybox-container fc-container high-level" role="dialog" tabindex="-1">' +
'<div class="fancybox-bg"></div>' +
'<div class="fancybox-inner">' +
'<div class="fancybox-stage"></div>' +
'</div>' +
'</div>'
}
2019-05-16 17:20:30 +02:00
});
}
if (!window.__DAM) {
window.__DAM = {}
}
if (!window.__DAM.methods) {
window.__DAM.methods = {}
}
// Session TimedOut
window.__DAM.methods.sessionTimedOut = () => {
$.fancybox.close();
$.fancyMessage({
title: 'Session expirée',
message: 'Vous allez devoir vous reconnecter pour continuer à utiliser le DAM',
type: 'error',
afterClose: () => {
location.reload()
}
});
}
2019-05-16 17:20:30 +02:00
// ---- Header : Menu utilisateur
$(".userbar").on('click',function(event) {
$(".submenu").toggle();
});
$(document).mouseup(function(e) {
// ---- Masque le menu utilisateur
2019-05-16 17:20:30 +02:00
var container = $(".userbar");
if (!container.is(e.target) && container.has(e.target).length === 0) {
$(".submenu").hide();
}
2019-05-22 17:10:16 +02:00
// ---- Masque le menu des paniers
2019-07-31 12:22:24 +02:00
var cartMenu = $(".panier_side_menu .panier_menu");
if (!cartMenu.is(e.target) && cartMenu.has(e.target).length === 0 && $("#menu_panier").has(e.target).length === 0) {
cartMenu.hide();
2019-05-22 17:10:16 +02:00
}
// ---- Masque les filtres de la bar de recherche
var filter_list = $(".filter_selector");
if (!filter_list.is(e.target) && filter_list.has(e.target).length === 0) {
$(".filter_selector .list").hide();
}
2019-07-22 14:54:42 +02:00
// ---- déselectionne les éléments si on clique en dehors
var parentOffset = $('.media_container').parent().offset();
if ( ($(e.target).hasClass('media_container') && event.pageX- parentOffset.left < $('.media_container')[0]['clientWidth'] ) || $(e.target).hasClass('wrapper')) {
2019-07-22 14:54:42 +02:00
$(".imageItem").attr("aria-grabbed", "false");
$(".imageItem").removeClass('flip');
}
2019-05-16 17:20:30 +02:00
});
// ---- Header : Ouverture formulaire de contact
$(".contact_btn").on('click',function(event) {
event.preventDefault();
var subjectId = 1;
subjectId = $(this).attr("data-subjectId");
$.fancybox.open({
src : '#form_contact',
type : 'inline',
opts : {
animationDuration : 350,
animationEffect : 'material',
beforeShow : function( instance, current ) {
$(".form_contact_type").val(subjectId);
$(".form_contact_check_ko").hide();
$(".form_contact_ok").hide();
$(".form_contact_ko").hide();
$(".form_contact_ko_custom").hide();
2019-05-16 17:20:30 +02:00
}
}
});
});
2019-05-22 17:10:16 +02:00
// ---- Header : fermeture de la popup
$(".close_popup").on('click',function(event) {
2019-05-16 17:20:30 +02:00
event.preventDefault();
2019-06-17 09:22:10 +02:00
$.fancybox.close();
2019-05-16 17:20:30 +02:00
});
// ---- Header : envoi formulaire de contact
$(".form_contact_send").on('click',function(event) {
event.preventDefault();
var btn = $(this);
if($('.form_contact_message').val() == ""){
$(".form_contact_check_ko").show();
return false;
}else{
$(".form_contact_check_ko").hide();
}
btn.addClass('loading');
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: '/send-message',
method: 'POST',
dataType : 'json',
data: {
type: $('.form_contact_type option:selected').val(),
2019-05-16 17:20:30 +02:00
url: $('.form_contact_url').val(),
message: $('.form_contact_message').val()
},
success: function(result){
btn.removeClass('loading');
$(".form_contact_ko_custom").hide();
$(".form_contact_ko").hide();
2019-05-16 17:20:30 +02:00
$(".form_contact_ok").show();
$('.form_contact_url').val('');
$('.form_contact_message').val('');
},
error: function (jqXHR, textStatus, errorThrown) {
btn.removeClass('loading');
$(".form_contact_ko_custom").hide();
$(".form_contact_ko").hide();
if (jqXHR.status !== 500 && jqXHR.responseJSON.message) {
$(".form_contact_ko_custom").text(jqXHR.responseJSON.message).show();
} else {
$(".form_contact_ko").show();
}
2019-05-16 17:20:30 +02:00
}
});
2019-05-09 15:00:05 +02:00
});