CCCPaste

Temporary Fix: Calendar when using WP in othe...

<?php

/**
* Temporary fix for Events Manager calendar month display issue
* GTranslate / multilingual safe
*/


add_action( 'wp_footer', 'mf_fix_em_calendar_month_display', 999);
function mf_fix_em_calendar_month_display() {
?>

<script>

var added = false;

(function($) {

function getLocalizedMonthYear(year, month) {
try {

var locale = document.documentElement.lang || navigator.language || 'nl-NL';

var date = new Date(year, month - 1, 1);

return new Intl.DateTimeFormat(locale, {
month: 'short',
year: 'numeric'
}).format(date);


} catch (e) {
return year + '-' + month;
}
}



function forceFixCalendarMonth() {

try {

$('.em-calendar').each(function() {

var $cal = $(this);
var month = parseInt($cal.attr('data-month'), 10);
var year = parseInt($cal.attr('data-year'), 10);

if (!month || !year) return;

var monthPadded = (month < 10 ? '0' + month : month);
var correctValue = year + '-' + monthPadded;
var correctDisplay = getLocalizedMonthYear(year, month);
var $input = $cal.find('.em-month-picker');

if (!$input.length) return;

// Update input value & attribute

$input.val(correctValue);
$input.attr('data-month-value', correctDisplay);


// Sync Flatpickr if present
if ($input[0] && $input[0]._flatpickr) {
$input[0]._flatpickr.setDate(correctValue + '-01', false);
$input[0]._flatpickr.redraw();
}

// Visible month label

var $monthDiv = $cal.find('.month');
var $monthDisplay = $monthDiv.find('.month-display-text');

if ($monthDisplay.length === 0 ) {


$monthDiv.find('form').prepend( '<input type="text" class="em-month-picker flatpickr-input select-toggle active" value="'+correctDisplay.toUpperCase()+'" data-month-value="'+correctValue+'" style="width: 132.917px !important;" readonly="readonly">' );
//$monthDiv.find('form').prepend( '' + correctDisplay + '' );

// Hide original input
$input.css({
position: 'absolute',
opacity: 0,
width: 0,
height: 0
});


} else {
//$monthDisplay.text(correctDisplay);
}

});


} catch (e) {
console.log( "test " + e );
}

}


$(document).ready(function() {
//setTimeout(forceFixCalendarMonth, 150);
setTimeout(forceFixCalendarMonth, 600);
//setTimeout(forceFixCalendarMonth, 1200);
});


//Events Manager AJAX reloads
$(document).on('em_calendar_load em_calendar_loaded', forceFixCalendarMonth);

})(jQuery);

</script>

<?php


}