modern-events-calendar-lite/app/skins/general_calendar/tpl.php

516 lines
30 KiB
PHP
Raw Normal View History

2024-10-15 12:04:03 +02:00
<?php
/** no direct access **/
defined('MECEXEC') or die();
do_action('mec_start_skin', $this->id);
do_action('mecgeneral_calendar_skin_head');
// Month picker Assets
$this->main->load_month_picker_assets();
// Shortcode Options
$local_time = (isset($this->skin_options['include_local_time']) and !empty( $this->skin_options['include_local_time'] )) ? $this->skin_options['include_local_time'] : false;
$display_label = (isset($this->skin_options['display_label']) and !empty( $this->skin_options['display_label'] )) ? $this->skin_options['display_label'] : false;
$reason_for_cancellation = (isset($this->skin_options['reason_for_cancellation']) and !empty( $this->skin_options['reason_for_cancellation'] )) ? $this->skin_options['reason_for_cancellation'] : false;
$more_event = (isset($this->skin_options['more_event']) and !empty( $this->skin_options['more_event'] )) ? (int) $this->skin_options['more_event'] : 10;
//var_dump($more_event);
$sed_method = '';
if(isset($this->skin_options['sed_method']) and !empty($this->skin_options['sed_method'])) $sed_method = ($this->skin_options['sed_method'] == 'new') ? '_blank' : ($this->skin_options['sed_method'] == '0' ? '_self' : $this->skin_options['sed_method']);
// Shortcode Filters
$filter_category = get_post_meta($this->id, 'category', true) ? get_post_meta($this->id, 'category', true) : '';
$filter_location = get_post_meta($this->id, 'location', true) ? get_post_meta($this->id, 'location', true) : '';
$filter_organizer = get_post_meta($this->id, 'organizer', true) ? get_post_meta($this->id, 'organizer', true) : '';
$filter_label = get_post_meta($this->id, 'label', true) ? get_post_meta($this->id, 'label', true) : '';
$filter_tag = get_post_meta($this->id, 'tag', true) ? get_post_meta($this->id, 'tag', true) : '';
$filter_author = get_post_meta($this->id, 'author', true) ? get_post_meta($this->id, 'author', true) : '';
$show_past_events = ($this->atts['show_past_events'] ?? '0');
$show_only_past_events = ($this->atts['show_only_past_events'] ?? '0');
$show_only_one_occurrence = (isset($this->atts['show_only_one_occurrence']) && $this->atts['show_only_one_occurrence'] != '0') ? '1' : '0';
$mec_tax_input = (isset($this->atts['mec_tax_input']) && $this->atts['mec_tax_input'] != '0') ? $this->atts['mec_tax_input'] : '';
// WordPress Options
$lang = !empty(substr(get_locale(), 0, strpos(get_locale(), "_"))) ? substr(get_locale(), 0, strpos(get_locale(), "_")) : get_locale();
$direction = is_rtl() ? 'rtl' : 'ltr';
$border_direction = is_rtl() ? 'border-right-width' : 'border-left-width';
$border_direction_style = is_rtl() ? 'border-left-style' : 'border-right-style';
$is_category_page = is_tax('mec_category');
$cat_id = '';
if($is_category_page)
{
$category = get_queried_object();
$cat_id = $category->term_id;
}
$week_start_day = (int) get_option('start_of_week');
if(!function_exists('mec_general_calendar_find_event'))
{
// Search Options
function mec_general_calendar_find_event($sf_options, $find_filter)
{
if($find_filter === 'find' and is_array($sf_options))
{
if(
(isset($sf_options['category']) && $sf_options['category']['type'] != '0' && !is_null($sf_options['category']['type'])) ||
(isset($sf_options['location']) && $sf_options['location']['type'] != '0' && !is_null($sf_options['location']['type'])) ||
(isset($sf_options['organizer']) && $sf_options['organizer']['type'] != '0' && !is_null($sf_options['organizer']['type'])) ||
(isset($sf_options['speaker']) && $sf_options['speaker']['type'] != '0' && !is_null($sf_options['speaker']['type'])) ||
(isset($sf_options['tag']) && $sf_options['tag']['type'] != '0' && !is_null($sf_options['tag']['type'])) ||
(isset($sf_options['label']) && $sf_options['label']['type'] != '0' && !is_null($sf_options['label']['type'])) ||
(isset($sf_options['event_cost']) && $sf_options['event_cost']['type'] != '0' && !is_null($sf_options['event_cost']['type'])) ||
(isset($sf_options['text_search']) && $sf_options['text_search']['type'] != '0' && !is_null($sf_options['text_search']['type'])) ||
(isset($sf_options['address_search']) && $sf_options['address_search']['type'] != '0' && !is_null($sf_options['address_search']['type']))
) return true;
else return false;
}
if($find_filter === 'filter' and is_array($sf_options))
{
if(
(isset($sf_options['category']) && $sf_options['category']['type'] != '0' && !is_null($sf_options['category']['type'])) ||
(isset($sf_options['location']) && $sf_options['location']['type'] != '0' && !is_null($sf_options['location']['type'])) ||
(isset($sf_options['organizer']) && $sf_options['organizer']['type'] != '0' && !is_null($sf_options['organizer']['type'])) ||
(isset($sf_options['speaker']) && $sf_options['speaker']['type'] != '0' && !is_null($sf_options['speaker']['type'])) ||
(isset($sf_options['tag']) && $sf_options['tag']['type'] != '0' && !is_null($sf_options['tag']['type'])) ||
(isset($sf_options['label']) && $sf_options['label']['type'] != '0' && !is_null($sf_options['label']['type'])) ||
(isset($sf_options['event_cost']) && $sf_options['event_cost']['type'] != '0' && !is_null($sf_options['event_cost']['type'])) ||
(isset($sf_options['address_search']) && $sf_options['address_search']['type'] != '0' && !is_null($sf_options['address_search']['type']))
) return true;
else return false;
}
return false;
}
}
wp_enqueue_script('mec-niceselect-script');
?>
<div class="mec-gCalendar" id="mec_skin_<?php echo esc_attr($this->id); ?>">
<div id='gCalendar-loading' class="mec-modal-result" style="display: none"></div>
<div id="mec-gCalendar-wrap"></div>
<div class="mec-gCalendar-filters">
<div class="mec-gCalendar-filters-wrap">
<?php
echo ((is_array($this->sf_options) && isset($this->sf_options['category']) && $this->sf_options['category']['type'] != '0') ? MEC_kses::form($this->sf_search_field('category', array('type' => $this->sf_options['category']['type']))) : '');
echo ((is_array($this->sf_options) && isset($this->sf_options['location']) && $this->sf_options['location']['type'] != '0') ? MEC_kses::form($this->sf_search_field('location', array('type' => $this->sf_options['location']['type']))) : '');
echo ((is_array($this->sf_options) && isset($this->sf_options['organizer']) && $this->sf_options['organizer']['type'] != '0') ? MEC_kses::form($this->sf_search_field('organizer', array('type' => $this->sf_options['organizer']['type']))) : '');
echo ((is_array($this->sf_options) && isset($this->sf_options['speaker']) && $this->sf_options['speaker']['type'] != '0') ? MEC_kses::form($this->sf_search_field('speaker', array('type' => $this->sf_options['speaker']['type']))) : '');
echo ((is_array($this->sf_options) && isset($this->sf_options['tag']) && $this->sf_options['tag']['type'] != '0') ? MEC_kses::form($this->sf_search_field('tag', array('type' => $this->sf_options['tag']['type']))) : '');
echo ((is_array($this->sf_options) && isset($this->sf_options['label']) && $this->sf_options['label']['type'] != '0') ? MEC_kses::form($this->sf_search_field('label', array('type' => $this->sf_options['label']['type']))) : '');
echo ((is_array($this->sf_options) && isset($this->sf_options['address_search']) && $this->sf_options['address_search']['type'] != '0') ? MEC_kses::form($this->sf_search_field('address_search', array('type' => $this->sf_options['address_search']['type']))) : '');
echo ((is_array($this->sf_options) && isset($this->sf_options['event_cost']) && $this->sf_options['event_cost']['type'] != '0') ? MEC_kses::form($this->sf_search_field('event_cost', array('type' => $this->sf_options['event_cost']['type']))) : '');
echo ($this->sf_reset_button ? '<div class="mec-search-reset-button"><button class="button mec-button" id="mec_search_form_'.esc_attr($this->id).'_reset" type="button">'.esc_html__('Reset', 'modern-events-calendar-lite').'</button></div>' : '');
?>
</div>
</div>
</div>
<?php echo $this->display_credit_url(); ?>
<style>.nice-select{color: #838383;-webkit-tap-highlight-color:transparent;background-color:#fff;border:solid 1px #E3E4E5;box-sizing:border-box;clear:both;cursor:pointer;display:block;float:left;font-family:inherit;font-size:12px;font-weight:400;height:42px;line-height:40px;outline:0;padding-left:18px;padding-right:30px;position:relative;text-align:left!important;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width: 100%;border-radius: 0 3px 3px 0;height: 40px;}.nice-select:hover{border-color:#dbdbdb}.nice-select:after{border-bottom: 1px solid #c1c2c3; border-right: 1px solid #c1c2c3; width: 8px; height: 8px; margin-top: -5px; right: 15px;content:'';display:block;pointer-events:none;position:absolute;top:50%;-webkit-transform-origin:66% 66%;-ms-transform-origin:66% 66%;transform-origin:66% 66%;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:all .15s ease-in-out;transition:all .15s ease-in-out}.nice-select.open:after{-webkit-transform:rotate(-135deg);-ms-transform:rotate(-135deg);transform:rotate(-135deg)}.nice-select.open .list{opacity:1;pointer-events:auto;-webkit-transform:scale(1) translateY(0);-ms-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}.nice-select.disabled{border-color:#ededed;color:#999;pointer-events:none}.nice-select.disabled:after{border-color:#ccc}.nice-select.wide{width:100%}.nice-select.wide .list{left:0!important;right:0!important}.nice-select.right{float:right}.nice-select.right .list{left:auto;right:0}.nice-select.small{font-size:12px;height:36px;line-height:34px}.nice-select.small:after{height:4px;width:4px}.nice-select.small .option{line-height:34px;min-height:34px}.nice-select .list{width: 100%;background-color:#fff;border-radius:0 0 3px 3px;box-shadow:0 0 0 1px rgba(68,68,68,.11);box-sizing:border-box;margin-top:4px;opacity:0;overflow:hidden;padding:0;pointer-events:none;position:absolute;top:100%;left:0;-webkit-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(.75) translateY(-21px);-ms-transform:scale(.75) translateY(-21px);transform:scale(.75) translateY(-21px);-webkit-transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;z-index:9}.nice-select .list:hover .option:not(:hover){background-color:transparent!important}.nice-select .option{ cursor: pointer; font-weight: 400;line-height: 1.2;list-style: none;min-height: 30px;outline: 0;padding: 10px 6px 10px 18px;text-align: left;-webkit-transition: all .2s;transition: all .2s;font-size: 14px;letter-spacing: -0.1px;white-space: break-spaces;}.nice-select .option.focus,.nice-select .option.selected.focus,.nice-select .option:hover{background-color:#f6f6f6}.nice-select .option.selected{font-weight:700}.nice-select .option.disabled{background-color:transparent;color:#999;cursor:default}.no-csspointerevents .nice-select .list{display:none}.no-csspointerevents .nice-select.open .list{display:block}</style>
<?php
$javascript = '<script>
document.addEventListener("DOMContentLoaded", function () {
var calendarEl = document.getElementById("mec-gCalendar-wrap");
var calendar = new FullCalendar.Calendar(calendarEl, {
initialView: "dayGridMonth",
initialDate: "'. esc_js($this->get_start_date()[0].'-'.$this->get_start_date()[1].'-'.$this->get_start_date()[2]) .'",
editable: false,
selectable: false,
businessHours: false,
height: "auto",
eventLimit: false,
direction: "'. $direction .'",
locale: "'. esc_js($lang) .'",
lang: "'. esc_js($lang) .'",
';
if (mec_general_calendar_find_event($this->sf_options, 'find')) :
$javascript .='
customButtons: {
findEvents: {
text: "'. esc_html__('Find Events', 'modern-events-calendar-lite') .'",
click: function() {
jQuery(".mec-gCalendar-filters").css("display" , "none")
var eventSource = [];
eventSource = calendar.getEventSources();
jQuery.each(eventSource, function (key, value) {
value.remove();
});
calendar.addEventSource({
url: "'. get_rest_url() .'mec/v1/events",
method: "GET",
startParam: "startParam",
endParam: "endParam",
textColor: "#000",
ajax: true,
extraParams: {
show_past_events: "'. esc_js($show_past_events).'",
show_only_past_events: "'. esc_js($show_only_past_events).'",
show_only_one_occurrence: "'. esc_js($show_only_one_occurrence).'",
categories: (jQuery("select[id^=\"mec_sf_category\"]").length > 0) ? jQuery("select[id^=\"mec_sf_category\"]").val() : "",
multiCategories: (jQuery(".select2-hidden-accessible").length > 0) ? JSON.stringify(jQuery(".select2-hidden-accessible").val()) : "",
location: jQuery("select[id^=\"mec_sf_location\"]").val(),
organizer: jQuery("select[id^=\"mec_sf_organizer\"]").val(),
speaker: jQuery("select[id^=\"mec_sf_speaker\"]").val(),
tag: jQuery("select[id^=\"mec_sf_tag\"]").val(),
label: jQuery("select[id^=\"mec_sf_label\"]").val(),
cost_min: jQuery("input[id^=\"mec_sf_event_cost_min\"]").val(),
cost_max: jQuery("input[id^=\"mec_sf_event_cost_max\"]").val(),
display_label: "'. esc_js($display_label) .'",
reason_for_cancellation: "'. esc_js($reason_for_cancellation) .'",
is_category_page: "'. esc_js($is_category_page) .'",
cat_id: "'. esc_js($cat_id) .'",
local_time: "'. esc_js($local_time) .'",
filter_category: "'. esc_js($filter_category) .'",
filter_location: "'. esc_js($filter_location) .'",
filter_organizer: "'. esc_js($filter_organizer) .'",
filter_label: "'. esc_js($filter_label) .'",
filter_tag: "'. esc_js($filter_tag) .'",
filter_author: "'. esc_js($filter_author) .'",
locale: "'. esc_js($lang) .'",
lang: "'. esc_js($lang) .'",
},
});
calendar.refetchEvents();
}
},
';
if (mec_general_calendar_find_event($this->sf_options, 'filter')) :
$javascript .='
filterEvents: {
text: "'. esc_html__('Filter', 'modern-events-calendar-lite') .'",
click: function() {
jQuery(".mec-gCalendar-filters").fadeToggle( "fast", "linear" );
}
}
';
endif;
$javascript .='
},
';
endif;
$javascript .='
firstDay: "'.esc_js($week_start_day).'",
headerToolbar: {
left: "title,prevYear,prev,today,next,nextYear",
center: "",
';
if (mec_general_calendar_find_event($this->sf_options, 'find')):
$javascript .='
right: "filterEvents,findEvents"
';
else :
$javascript .='
right: ""
';
endif;
$javascript .='
},
buttonText: {
today: "'. esc_html__('Today', 'modern-events-calendar-lite') .'"
},
eventDidMount: function(info) {
var searchField = jQuery(".mec-gCalendar-search-text");
if (searchField.length > 0) {
var searchTerms = jQuery(".mec-gCalendar-search-text").val();
if (searchTerms.length > 0){
if (info.event._def.title.toLowerCase().indexOf(searchTerms) >= 0 || info.event._def.extendedProps.description.toLowerCase().indexOf(searchTerms) >= 0) {
info.event.setProp("display","block")
} else {
info.event.setProp("display","none")
}
} else {
info.event.setProp("display","block")
}
} else {
info.event.setProp("display","block")
}
var backgroundColor = info.backgroundColor == "#" ? "#00acf8" : info.backgroundColor;
var borderColor = info.borderColor == "#" ? "#00acf8" : info.borderColor;
jQuery(info.el).css("padding", "8px 3px");
jQuery(info.el).css("font-size", "12px");
jQuery(info.el).css("font-weight", "400");
jQuery(info.el).css("border-radius", "0");
jQuery(info.el).css("border-top", "none");
jQuery(info.el).css("border-bottom", "none");
jQuery(info.el).css("'.$border_direction.'", "3px");
jQuery(info.el).css("'.$border_direction_style.'", "none");
jQuery(info.el).css("background-color", "#fff");
jQuery(info.el).css("border-color", borderColor);
jQuery(info.el).css("white-space", "normal");
jQuery(info.el).css("font-family", "-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif");
// jQuery(info.el).css("z-index", "1");
jQuery(info.el).css("line-height", "1.2");
jQuery(info.el).css("margin-top", "0");
jQuery(info.el).attr("target", "'. esc_js($sed_method) .'");
';
if ( $sed_method == 'no' ) :
$javascript .='
jQuery(info.el).css({
"cursor": "default",
"pointer-events": "none",
"text-decoration": "none",
});
';
endif;
$javascript .='
jQuery(info.el).attr("data-event-id", info.event._def.publicId);
jQuery(info.el).append("<span class=\"\" style=\"background-color:" + backgroundColor + ";position: absolute;top: 0;right: 0;bottom: 0;left: -1px;z-index: 0;opacity: .25;\"></span>");
jQuery(info.el).append(info.event._def.extendedProps.reason_for_cancellation);
jQuery(info.el).append(info.event._def.extendedProps.locaTimeHtml);
jQuery(info.el).append(info.event._def.extendedProps.labels);
';
if ( $sed_method == 'm1') :
$javascript .='
jQuery(info.el).attr("rel", "noopener");
jQuery("#mec_skin_'.esc_attr($this->id).'").mecGeneralCalendarView(
{
id: "'. esc_attr($this->id) .'",
atts: "'. http_build_query(array('atts' => $this->atts), '', '&') .'",
ajax_url: "'. admin_url('admin-ajax.php', NULL) .'",
sed_method: "'. esc_js($sed_method) .'",
image_popup: "'. esc_js($this->image_popup) .'",
sf:
{
reset: "'. ($this->sf_reset_button ? 1 : 0) .'",
refine: "'. ($this->sf_refine ? 1 : 0) .'",
},
});
';
endif;
$title_and_location_pattern = apply_filters( 'mec_skin_general_calendar_title_and_location_structure', 'Title + Location' );
$javascript .='
jQuery(".fc-daygrid-event-harness").mouseleave(function(e) {
jQuery(".mec-gCalendar-tooltip").remove();
});
},
eventMouseEnter: function(info) {
var Image = info.event._def.extendedProps.image ? "<div class=\"mec-gCalendar-tooltip-image\">" + info.event._def.extendedProps.gridsquare + "</div>" : "";
var dateText = info.event._def.extendedProps.startDateStr != info.event._def.extendedProps.endDateStr ? "'.addslashes($this->icons->display('calendar')).'<div><span class=\"mec-gCalendar-tooltip-date-start\">" + info.event._def.extendedProps.start_date + "</span>" + "<span class=\"mec-gCalendar-tooltip-date-end\">" + info.event._def.extendedProps.end_date + "</span></div>" : "'.addslashes($this->icons->display('calendar')).'<div><span class=\"mec-gCalendar-tooltip-date-start\">" + info.event._def.extendedProps.start_date + "</span>" + "<span class=\"mec-gCalendar-tooltip-date-day\">" + info.event._def.extendedProps.startDay + "</span></div>";
var dateTime = "'.addslashes($this->icons->display('clock')).'</i><div><span class=\"mec-gCalendar-tooltip-time-start\">" + info.event._def.extendedProps.start_time + "</span>" + "<span class=\"mec-gCalendar-tooltip-time-end\">" + info.event._def.extendedProps.end_time + "</span></div>";
var Location = info.event._def.extendedProps.location ? "<div class=\"mec-gCalendar-tooltip-location\">'.addslashes($this->icons->display('location-pin')).'" + info.event._def.extendedProps.location + "</div>" : "";
var Title = "<div class=\"mec-gCalendar-tooltip-title\"><a data-event-id=\"" + info.event._def.publicId + "\" target=\"'. esc_js($sed_method) .'\" href=\"" + info.event._def.url + "\">" + info.event._def.title + "<span style=\"background:" + info.event._def.ui.backgroundColor + "\"></span></a></div>";
var tooltip = "<div class=\"mec-gCalendar-tooltip\">" + Image +
"<div class=\"mec-gCalendar-tooltip-date\">" +
"<div class=\"mec-gCalendar-tooltip-date-text\">" + dateText + "</div>" +
"<div class=\"mec-gCalendar-tooltip-date-time\">" + dateTime + "</div>" +
"</div>" + '. $title_and_location_pattern .' +
"</div>";
if ( jQuery(info.el).parent().find(".mec-gCalendar-tooltip").length < 1 ) jQuery(info.el).parent().append(tooltip);
';
if ($sed_method == 'm1') :
$javascript .= '
jQuery("#mec_skin_'.esc_attr($this->id).' .mec-gCalendar-tooltip-title a").off("click").on("click", function (e) {
e.preventDefault();
var sed_method = jQuery(this).attr("target");
if ("_blank" === sed_method || "_self" === sed_method || "no" === sed_method) {
return;
}
e.preventDefault();
var href = jQuery(this).attr("href");
var id = jQuery(this).data("event-id");
var occurrence = get_parameter_by_name("occurrence", href);
var time = get_parameter_by_name("time", href);
if( "undefined" == typeof id ){
return;
}
mecSingleEventDisplayer.getSinglePage(id, occurrence, time, "'. admin_url('admin-ajax.php', NULL) .'", "'. esc_js($sed_method) .'", "'. esc_js($this->image_popup) .'");
});
';
endif;
$javascript .= '
},
dayMaxEvents: ' .esc_js($more_event) .',
timeZone:"' .get_option('gmt_offset') .'",
events: {
url: "'.get_rest_url() .'mec/v1/events",
method: "GET",
startParam: "startParam",
endParam: "endParam",
textColor: "#000",
ajax: true,
extraParams: {
show_past_events: "' . esc_js($show_past_events) . '",
show_only_past_events: "' . esc_js($show_only_past_events) . '",
show_only_one_occurrence: "' . esc_js($show_only_one_occurrence) . '",
categories: (jQuery("select[id^=\"mec_sf_category\"]").lenght > 0) ? jQuery("select[id^=\"mec_sf_category\"]").val() : "",
multiCategories: (jQuery(".select2-hidden-accessible").lenght > 0) ? jQuery(".select2-hidden-accessible").val() : "",
location: jQuery("select[id^=\"mec_sf_location\"]").val(),
organizer: jQuery("select[id^=\"mec_sf_organizer\"]").val(),
speaker: jQuery("select[id^=\"mec_sf_speaker\"]").val(),
tag: jQuery("select[id^=\"mec_sf_tag\"]").val(),
label: jQuery("select[id^=\"mec_sf_label\"]").val(),
cost_min: jQuery("input[id^=\"mec_sf_event_cost_min\"]").val(),
cost_max: jQuery("input[id^=\"mec_sf_event_cost_max\"]").val(),
display_label: "' . esc_js($display_label) . '",
reason_for_cancellation: "' . esc_js($reason_for_cancellation) . '",
is_category_page: "' . esc_js($is_category_page) . '",
cat_id: "' . esc_js($cat_id) . '",
local_time: "' . esc_js($local_time) . '",
filter_category: "' . esc_js($filter_category) . '",
filter_location: "' . esc_js($filter_location) . '",
filter_organizer: "' . esc_js($filter_organizer) . '",
filter_label: "' . esc_js($filter_label) . '",
filter_tag: "' . esc_js($filter_tag) . '",
filter_author: "' . esc_js($filter_author) . '",
locale: "' . esc_js($lang) . '",
lang: "' . esc_js($lang) . '",
},
failure: function() {
alert("there was an error while fetching events!");
},
},
forceEventDuration: true,
loading: function(bool) {
document.getElementById("gCalendar-loading").style.display =
bool ? "block" : "none";
},
});
calendar.render();
const calendarHeaderFirstChild = jQuery(".fc-header-toolbar").find(".fc-toolbar-chunk h2");
const calendarHeaderLastChild = jQuery(".fc-header-toolbar").find(".fc-toolbar-chunk:last-child");
const calendarHeaderButton = calendarHeaderLastChild.find(".fc-button-group");
';
// Search Bar Filter
if (is_array($this->sf_options) and $this->sf_options['text_search']['type'] != '0') :
$javascript .='
jQuery( "<div class=\"mec-gCalendar-search-text-wrap\">'.addslashes($this->icons->display('magnifier')).'<input type=\"text\" class=\"mec-gCalendar-search-text\" placeholder=\"'. ((is_array($this->sf_options) and $this->sf_options['text_search']['placeholder']) ? esc_html__($this->sf_options['text_search']['placeholder']) : esc_html__('Search for events', 'modern-events-calendar-lite')) .'\" /></div>" ).insertBefore( ".fc-header-toolbar .fc-toolbar-chunk:last-child .fc-button-group" );
jQuery(".mec-gCalendar-search-text").keypress(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == "13"){
jQuery(".fc-findEvents-button").trigger("click");
}
});
';
endif;
// Month Filter
if (is_array($this->sf_options) and $this->sf_options['month_filter']['type'] != '0') :
$javascript .='
calendarHeaderFirstChild.append("<button class=\"gCalendarMonthFilterButton input-append date\" id=\"gCalendarMonthFilterButton\" data-date=\"12-02-2012\" data-date-format=\"dd-mm-yyyy\"><input id=\"mec-gCalendar-month-filter\" class=\"span2\" size=\"16\" type=\"text\" value=\"12-02-2012\"><span class=\"openMonthFilter add-on\"><i class=\"mec-sl-arrow-down\"></i></span></button>");
jQuery("#gCalendarMonthFilterButton").on("changeDate", function(ev) {
var s = new Date(ev.date.valueOf());
let ye = new Intl.DateTimeFormat("en", { year: "numeric" }).format(s);
let mo = new Intl.DateTimeFormat("en", { month: "2-digit" }).format(s);
let da = new Intl.DateTimeFormat("en", { day: "2-digit" }).format(s);
jQuery("#gCalendarMonthFilterButton").monthPicker("hide");
calendar.gotoDate(`${ye}-${mo}-${da}`)
})
setTimeout(function(){ jQuery(".datepicker").appendTo(".gCalendarMonthFilterButton"); }, 1000);
';
endif;
if (mec_general_calendar_find_event($this->sf_options, 'filter') ) :
$javascript .='
setTimeout(function(){ jQuery(".mec-gCalendar-filters").appendTo(calendarHeaderButton); }, 1000);
jQuery("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14.024\" viewBox=\"0 0 14 14.024\"><path id=\"Path_5991\" data-name=\"Path 5991\" d=\"M24.387,11H11.7a.654.654,0,0,0-.465,1.118l5.057,5.063v5.657a.654.654,0,0,0,.281.54l2.161,1.529a.659.659,0,0,0,1.032-.54V17.2l5.057-5.063A.654.654,0,0,0,24.387,11Z\" transform=\"translate(-11.041 -11)\" fill=\"#babfc2\"/></svg>").appendTo("button.fc-filterEvents-button.fc-button.fc-button-primary");
if ( jQuery(".mec-gCalendar-filters-wrap").length > 0 ) jQuery(".mec-gCalendar-filters-wrap .mec-dropdown-search").find("select").niceSelect();
jQuery(document).on("click", function(e) {
var button = jQuery(".fc-filterEvents-button");
var wrap = jQuery(".mec-gCalendar-filters");
if ((!button.is(e.target) && button.has(e.target).length === 0) && (!wrap.is(e.target) && wrap.has(e.target).length === 0)) {
wrap.hide();
if ( jQuery(".mec-searchbar-category-wrap select").length > 0 ) jQuery(".mec-searchbar-category-wrap select").select2("close");
} else {
}
});
jQuery(document).ready(function ($) {
jQuery(".mec-gCalendar-filters-wrap").find(".mec-search-reset-button").parents().eq(2).addClass("mec-there-reset-button");
jQuery(".mec-gCalendar-filters-wrap").find(".mec-search-reset-button").on("click", function() {
reset()
})
function reset() {
var $event_cost_min = $("#mec_sf_event_cost_min_'. esc_attr($this->id).'");
var $event_cost_max = $("#mec_sf_event_cost_max_'. esc_attr($this->id).'");
var $time_start = $("#mec_sf_timepicker_start_'. esc_attr($this->id).'");
var $time_end = $("#mec_sf_timepicker_end_'. esc_attr($this->id).'");
var $s = $("#mec_sf_s_'. esc_attr($this->id).'");
var $address = $("#mec_sf_address_s_'. esc_attr($this->id).'");
var $date_start = $("#mec_sf_date_start_'. esc_attr($this->id).'");
var $date_end = $("#mec_sf_date_end_'. esc_attr($this->id).'");
var $event_type = $("#mec_sf_event_type_'. esc_attr($this->id).'");
var $event_type_2 = $("#mec_sf_event_type_2_'. esc_attr($this->id).'");
var $attribute = $("#mec_sf_attribute_'. esc_attr($this->id).'");
var $category = jQuery("#mec_sf_category_'. esc_attr($this->id).'");
var $location = jQuery("#mec_sf_location_'. esc_attr($this->id).'");
var $organizer = jQuery("#mec_sf_organizer_'. esc_attr($this->id).'");
var $speaker = jQuery("#mec_sf_speaker_'. esc_attr($this->id).'");
var $tag = jQuery("#mec_sf_tag_'. esc_attr($this->id).'");
var $label = jQuery("#mec_sf_label_'. esc_attr($this->id).'");
var $month = $("#mec_sf_month_'. esc_attr($this->id).'");
var $year = $("#mec_sf_year_'. esc_attr($this->id).'");
var $month_or_year = $("#mec_sf_month_'. esc_attr($this->id).'" + ", " + "#mec_sf_year_'. esc_attr($this->id) .'");
if ($category.length && $category.prop("tagName") && $category.prop("tagName").toLowerCase() === "div") {
$category.find("select").each(function () {
jQuery(this).val(null).trigger("change");
});
$category.find("select").select2();
} else {
if ($category.length) {
$category.val(null);
$category.niceSelect("update")
}
}
if ($location.length) $location.val(null);
if ($organizer.length) $organizer.val(null);
if ($speaker.length) $speaker.val(null);
if ($tag.length) $tag.val(null);
if ($label.length) $label.val(null);
if ($s.length) $s.val(null);
if ($address.length) $address.val(null);
if ($month.length) $month.val(null);
if ($year.length) $year.val(null);
if ($event_cost_min.length) $event_cost_min.val(null);
if ($event_cost_max.length) $event_cost_max.val(null);
if ($date_start.length) $date_start.val(null);
if ($date_end.length) $date_end.val(null);
if ($time_start.length) $time_start.val(null);
if ($time_end.length) $time_end.val(null);
function get_fields(){
return [
"state",
"city",
"region",
"region",
"street",
"postal_code",
];
}
var fields = get_fields();
$.each(fields,function(i,field){
if( jQuery("#mec_sf_"+ field +"_'. esc_attr($this->id) .'").length ){
jQuery("#mec_sf_"+ field +"_'. esc_attr($this->id) .'").val(null);
if( jQuery("#mec_sf_"+ field +"_'. esc_attr($this->id) .'").is("select") ){
jQuery("#mec_sf_"+ field +"_'. esc_attr($this->id) .'").niceSelect("update");
}
}
});
// Search Again
setTimeout(function () {
jQuery(".fc-findEvents-button").trigger("click");
}, 1);
}
});
';
endif;
$javascript .='
});
</script>';
$factory = new MEC_factory();
$factory->params('footer', $javascript);