HEX
Server: Apache
System: Linux webd004.cluster130.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User: frenchy (106757)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/frenchy/refonte2023/wordpress/wp-content/plugins/ova-events/assets/js/script-elementor.js
(function($){
	"use strict";

	$(window).on('elementor/frontend/init', function () {
    
      /* Simple Calendar */
      elementorFrontend.hooks.addAction('frontend/element_ready/ova_events_simple_calendar.default', function(){
          $(document).ready(function(){
           var calendars = {};
            $('.ovaev_simple_calendar').each( function( e){
              var thisMonth = moment().format('YYYY-MM');

              var events = $(this).attr('events');

              if( events && events.length > 0 ){
                 events = JSON.parse( events );
              }
              // Events to load into calendar

              calendars.clndr1 = $(this).find('.ovaev_events_simple_calendar').clndr({
                  events: events,
                  clickEvents: {
                      click: function (target) {
                          var eve =  target.events;
                          location.assign(eve[0].url);
                      },
                      
                  },

                  multiDayEvents: {
                      singleDay: 'date',
                      endDate: 'endDate',
                      startDate: 'startDate'
                  },
                  showAdjacentMonths: true,
                  adjacentDaysChangeMonth: false
              
              });

               $(document).keydown( function(e) {
                  // Left arrow
                  if (e.keyCode == 37) {
                      calendars.clndr1.back();
                  }

                  // Right arrow
                  if (e.keyCode == 39) {
                      calendars.clndr1.forward();
                  }
              });

            });

          });
        });

      // Event Slide
      elementorFrontend.hooks.addAction('frontend/element_ready/ova_events_slide.default', function(){
         $(".ovaev-slide").each(function(){
              var owlsl     = $(this) ;
              var owlsl_ops = owlsl.data('options') ? owlsl.data('options') : {};
              if ( $('body').hasClass('rtl') ) {
                owlsl_ops.rtl = true;
              }

              var responsive_value = {
                  0:{
                    items:1,
                    nav:false
                  },
                  576:{
                    items:1

                  },
                  992:{
                    items:2,
                    nav:false
                  },
                  1170:{
                    items:owlsl_ops.items
                  }
              };
              
              owlsl.owlCarousel({
                autoWidth: owlsl_ops.autoWidth,
                margin: owlsl_ops.margin,
                items: owlsl_ops.items,
                loop: owlsl_ops.loop,
                autoplay: owlsl_ops.autoplay,
                autoplayTimeout: owlsl_ops.autoplayTimeout,
                center: owlsl_ops.center,
                nav: owlsl_ops.nav,
                dots: owlsl_ops.dots,
                thumbs: owlsl_ops.thumbs,
                autoplayHoverPause: owlsl_ops.autoplayHoverPause,
                slideBy: owlsl_ops.slideBy,
                smartSpeed: owlsl_ops.smartSpeed,
                rtl : owlsl_ops.rtl,
                navText:[
                '<i class="arrow_carrot-left" ></i>',
                '<i class="arrow_carrot-right" ></i>'
                ],
                responsive: responsive_value,
              });

              /* Fixed WCAG */
              owlsl.find(".owl-nav button.owl-prev").attr("title", "Previous");
              owlsl.find(".owl-nav button.owl-next").attr("title", "Next");
              owlsl.find(".owl-dots button").attr("title", "Dots");

            });
      });
      
      // Event Filer Ajax
      elementorFrontend.hooks.addAction('frontend/element_ready/ova_events_ajax.default', function(){
         $(".ovapo_project_grid").each(function() {

          var slide = $(this).find('.grid');
          var data  = slide.data('owl');
          if ( slide.length > 0 ) {
            slide.owlCarousel(data);
          }

          $(this).find('.button-filter button:first-child').addClass('active');
          
          $(this).find('.button-filter').each(function() {

            var $ovapo_project_grid = $(this).closest('.ovapo_project_grid');

            $(this).on('click', 'button', function(e) {
              $(this).parent().find('.active').removeClass('active');
              $(this).addClass('active');

              e.preventDefault();
              var filter                = $(this).data('filter');
              var order                 = $(this).data('order');
              var orderby               = $(this).data('orderby');
              var number_post           = $(this).data('number_post');
              var layout                = $(this).data('layout');
              var first_term            = $(this).data('first_term');
              var term_id_filter_string = $(this).data('term_id_filter_string');
              var show_featured         = $(this).data('show_featured');

              $ovapo_project_grid.find('.wrap_loader').fadeIn(100);
            
              $.ajax({
                 url: ajax_object.ajax_url,
                 type: 'POST',
                 data: ({
                    action: 'filter_elementor_grid',
                    filter: filter,
                    order: order,
                    orderby: orderby,
                    number_post: number_post,
                    layout: layout,
                    first_term: first_term,
                    term_id_filter_string: term_id_filter_string,
                    show_featured: show_featured,
                 }),
                 success: function(response){

                    $ovapo_project_grid.find('.wrap_loader').fadeOut(200);

                    var items = $ovapo_project_grid.find('.items');
                    items.html( response ).fadeIn(300);
                    items.trigger('destroy.owl.carousel');
                    items.owlCarousel(data);
                 },
              })
            });
          });
        });
      });

      // Fullcalendar
      elementorFrontend.hooks.addAction('frontend/element_ready/ova_events_calendar.default', function(){
        $('.ovaev_fullcalendar').each( function( e){

          var events          = $(this).attr('full_events');
          var fullCalendar    = $(this).find('.ovaev_events_fullcalendar')[0];
          var lang            = $(this).data('lang');
          var button_text     = $(this).data('button-text');
          var no_events_text  = $(this).data('no-events-text');
          var all_day_text    = $(this).data('all-day-text');
          var first_day       = $(this).data('first-day');

          if( events && events.length > 0 ){
            events = JSON.parse( events );
          }

          // filter event
          var srcCalendar = new FullCalendar.Calendar(fullCalendar, {
          
            eventDidMount: function(info) {
              var tooltip = new Tooltip(info.el, {
                title: info.event.extendedProps.desc,
                placement: 'top',
                trigger: 'hover',
                container: 'body',
                html:true
              });
            },
            buttonText: button_text,
            noEventsText: no_events_text,
            allDayText: all_day_text,
            firstDay: first_day,
            locale: lang,
            timeZone: 'local',
            editable: true,
            navLinks: true,
            dayMaxEvents: true,
            events: events,
            eventColor: '#ff3514',
            contentHeight: 'auto',
            headerToolbar: {
               left: 'prev,next today',
               center: 'title',
               right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek',

            },
          });
          srcCalendar.render();

          var datetime = Date.now();
          var calendar_filter_event = $(this).find("#calendar_filter_event").val();

          var events_filter = [];
          $(this).find('#calendar_filter_event').on('change',function () {

            calendar_filter_event = $(this).val();
            srcCalendar.getEvents().forEach( event => event.remove() );

            if ( calendar_filter_event == 'all' ) {
              $.each( events, function( key, value ) {
                srcCalendar.addEvent(value);
              });
            } else if ( calendar_filter_event == 'past_event' ) {
              $.each( events, function( key, value ) {
                var end_date = new Date(value['end']).getTime();
                if ( end_date < datetime ) {
                  srcCalendar.addEvent(value);
                }
              });
            } else if ( calendar_filter_event == 'upcoming_event' ) {
              $.each( events, function( key, value ) {
                var start_date = new Date(value['start']).getTime();
                if ( start_date > datetime ) {
                  srcCalendar.addEvent(value);
                }
              });
            } else {
              $.each( events, function( key, value ) {
                var special = value['special'];
                if ( special == 'checked' ) {
                  srcCalendar.addEvent(value);
                }
              });
            }
          });
        });

      });
 
      // Search Ajax
      elementorFrontend.hooks.addAction('frontend/element_ready/ova_events_search_ajax.default', function(){
        
        $('.ovaev-wrapper-search-ajax').each( function(e){
          var that = $(this);

          var search_ajax = that.find('.search-ajax-content');
          var data_events = that.find('.data-events');
          var pagination  = that.find('.search-ajax-pagination-wrapper');
          var search_form = that.find('.ovaev-search-ajax-form');
          var select      = that.find('.ovaev_type');

          if ( select.length > 0 ) {
            select.select2();
          };

          // When form change
          search_form.on('change', function(e) {
            e.preventDefault();

            var form = $(this);

            var start_date  = form.find('input[name="ovaev_start_date_search"]').val();
            var end_date    = form.find('input[name="ovaev_end_date_search"]').val();
            var category    = form.find('select[name="ovaev_type"]').val();
            var layout      = data_events.data('layout');
            var column      = data_events.data('column');
            var per_page    = data_events.data('per-page');
            var order       = data_events.data('order');
            var orderby     = data_events.data('orderby');
            var cat_slug    = data_events.data('category-slug');
            var time_event  = data_events.data('time-event');

            that.find('.wrap_loader').fadeIn(100);

            $.ajax({
              url: ajax_object.ajax_url,
              type: 'POST',
              data: ({
                action: 'search_ajax_events',
                start_date: start_date,
                end_date  : end_date,
                category  : category,
                layout    : layout,
                column    : column,
                per_page  : per_page,
                order     : order,
                orderby   : orderby,
                cat_slug  : cat_slug,
                time_event: time_event,
              }),
              success: function(response){
                var data = JSON.parse(response);

                that.find('.wrap_loader').fadeOut(200);

                search_ajax.html('').append(data['result']).fadeIn(300);
                pagination.html('').append(data['pagination']).fadeIn(300);
              },
            });
          });

          // When click pagination
          $(document).on( 'click', '.ovaev-wrapper-search-ajax .search-ajax-pagination-wrapper .search-ajax-pagination .page-number', function(e) {
            e.preventDefault();

            var page = $(this);
            var that_page     = page.closest('.ovaev-wrapper-search-ajax');
            var current       = page.closest('.search-ajax-pagination').find('.current').data('paged');
            var current_page  = page.closest('.search-ajax-pagination').find('.current');
            var offset        = page.attr('data-paged');
            var total_page    = page.closest('.search-ajax-pagination').data('total-page');

            if ( offset != current ) {
              var start_date  = page.closest('.ovaev-wrapper-search-ajax').find('input[name="ovaev_start_date_search"]').val();
              var end_date    = page.closest('.ovaev-wrapper-search-ajax').find('input[name="ovaev_end_date_search"]').val();
              var category    = page.closest('.ovaev-wrapper-search-ajax').find('select[name="ovaev_type"]').val();
              var layout      = page.closest('.ovaev-wrapper-search-ajax').find('.data-events').data('layout');
              var column      = page.closest('.ovaev-wrapper-search-ajax').find('.data-events').data('column');
              var per_page    = page.closest('.ovaev-wrapper-search-ajax').find('.data-events').data('per-page');
              var order       = page.closest('.ovaev-wrapper-search-ajax').find('.data-events').data('order');
              var orderby     = page.closest('.ovaev-wrapper-search-ajax').find('.data-events').data('orderby');
              var cat_slug    = page.closest('.ovaev-wrapper-search-ajax').find('.data-events').data('category-slug');
              var time_event  = page.closest('.ovaev-wrapper-search-ajax').find('.data-events').data('time-event');

              that_page.find('.wrap_loader').fadeIn(100);

              $.ajax({
                url: ajax_object.ajax_url,
                type: 'POST',
                data: ({
                  action: 'search_ajax_events_pagination',
                  start_date: start_date,
                  end_date  : end_date,
                  category  : category,
                  layout    : layout,
                  column    : column,
                  per_page  : per_page,
                  order     : order,
                  orderby   : orderby,
                  cat_slug  : cat_slug,
                  time_event: time_event,
                  offset    : offset,
                }),
                success: function(response){
                  var data = JSON.parse(response);

                  that_page.find('.wrap_loader').fadeOut(200);
                  that_page.find('.search-ajax-content').html('').append(data['result']).fadeIn(300);

                  page.closest('.search-ajax-pagination').find('.page-number').removeClass('current');

                  if ( page.hasClass('next') ) {
                    current_page.closest('li').next().children('.page-number').addClass('current');
                  } else if ( page.hasClass('prev') ) {
                    current_page.closest('li').prev().children('.page-number').addClass('current');
                  } else {
                    page.addClass('current');
                  }

                  if ( parseInt(offset) > 1 ) {
                    page.closest('.search-ajax-pagination').find('.prev').attr('data-paged', parseInt(offset)-1);
                    page.closest('.search-ajax-pagination').find('.prev').css('display', 'inline-flex');
                  } else {
                    page.closest('.search-ajax-pagination').find('.prev').attr('data-paged', 0);
                    page.closest('.search-ajax-pagination').find('.prev').css('display', 'none');
                  }
                  
                  if ( parseInt(offset) == parseInt(total_page) ) {
                    page.closest('.search-ajax-pagination').find('.next').attr('data-paged', parseInt(offset));
                    page.closest('.search-ajax-pagination').find('.next').css('display', 'none');
                  } else {
                    page.closest('.search-ajax-pagination').find('.next').attr('data-paged', parseInt(offset)+1);
                    page.closest('.search-ajax-pagination').find('.next').css('display', 'inline-flex');
                  }
                },
              });
            }
          });
        });

      });

   });

})(jQuery);