• Hi,

    I need to make timezone filter for your calendar. But I have some problem.
    I added arguments via inline.js file:

    //———–

    var wpfc_loaded = false;
    var wpfc_counts = {};
    jQuery(document).ready( function($){
    	const urlParams = new URLSearchParams(window.location.search);
    
    	let fullcalendar_args = {
    		timeZone: urlParams.get('time-zone-selector'),
    		timeFormat: WPFC.timeFormat,
    		defaultView: WPFC.defaultView,
    		weekends: WPFC.weekends,
    		header: {
    			left: WPFC.header.left,
    			center: WPFC.header.center,
    			right: WPFC.header.right
    		},
    		month: WPFC.month,
    		year: WPFC.year,
    		firstDay: WPFC.firstDay,
    		editable: false,
    		eventSources: [{
    				url : WPFC.ajaxurl,
    				data : WPFC.data,
    				ignoreTimezone: true,
    				allDayDefault: false
    		}],
    	    eventRender: function(event, element) {
    			if( event.post_id > 0 && WPFC.wpfc_qtips == 1 ){
    				var event_data = { action : 'wpfc_qtip_content', post_id : event.post_id, event_id:event.event_id };
    				var tippy_vars = {
    					theme : WPFC.tippy_theme,
    					placement : WPFC.tippy_placement,
    					content : WPFC.tippy_loading,
    				}
    				$(document).trigger('wpfc_tippy_vars', [tippy_vars]);
    				$.extend(tippy_vars, {
    					onCreate( instance ){
    						instance._loaded = false;
    					},
    					onShow( instance ){
    						if( !instance._loaded ) {
    							instance._loaded = true;
    							$.get(WPFC.ajaxurl, event_data, function (content) {
    								if( content !== '' ){
    									var el = $('<div></div>').html(content);
    									instance.setContent(el[0]);
    								}else{
    									instance.setContent('...');
    									instance.hide();
    									instance.destroy();
    								}
    							});
    						}
    					}
    				});
    				tippy(element[0], tippy_vars);
    			}
    	    },
    		loading: function(bool) {
    			if (bool) {
    				$(this).parent().find('.wpfc-loading').show();
    			}else {
    				$(this).parent().find('.wpfc-loading').hide();
    			}
    		},
    		viewRender: function(view, element) {
    			if( !wpfc_loaded ){
    				var container = $(element).parents('.wpfc-calendar-wrapper');
    				container.find('.fc-toolbar').after(container.next('.wpfc-calendar-search').show());
    				//catchall selectmenu handle
    			    $.widget( "custom.wpfc_selectmenu", $.ui.selectmenu, {
    			        _renderItem: function( ul, item ) {
    			        	var li = $( "<li>", { html: '<div>'+item.label.replace(/#([a-zA-Z0-9]{3}[a-zA-Z0-9]{3}?) - /g, '<span class="wpfc-cat-icon" style="background-color:#$1"></span>')+'</div>' } );
    			        	if ( item.disabled ) {
    			        		li.addClass( "ui-state-disabled" );
    			        	}
    			        	return li.appendTo( ul );
    			        }
    			    });
    				$('select.wpfc-taxonomy').wpfc_selectmenu({
    					format: function(text){
    						//replace the color hexes with color boxes
    						return text.replace(/#([a-zA-Z0-9]{3}[a-zA-Z0-9]{3}?) - /g, '<span class="wpfc-cat-icon" style="background-color:#$1"></span>');
    					},
    					select: function( event, ui ){
    						var calendar = $('.wpfc-calendar');
    						menu_name = $(this).attr('name');
    						$( '#' + menu_name + '-button .ui-selectmenu-text' ).html( ui.item.label.replace(/#([a-zA-Z0-9]{3}[a-zA-Z0-9]{3}?) - /g, '<span class="wpfc-cat-icon" style="background-color:#$1"></span>') );
    						WPFC.data[menu_name] = ui.item.value;
    						calendar.fullCalendar('removeEventSource', WPFC.ajaxurl);
    						calendar.fullCalendar('addEventSource', {url : WPFC.ajaxurl, allDayDefault:false, ignoreTimezone: true, data : WPFC.data});
    					}
    				})
    			}
    			wpfc_loaded = true;
    	    }
    	};
    	if( WPFC.wpfc_theme ){
    		$.extend(fullcalendar_args, {theme: WPFC.wpfc_theme});
    	}
    	$(document).trigger('wpfc_fullcalendar_args', [fullcalendar_args]);
    	$('.wpfc-calendar').first().fullCalendar(fullcalendar_args);
    });

    All regions I am getting via php:
    DateTimeZone::listIdentifiers();
    So all strings are correct. But nothing changed with schedule. All events are in same positions.

  • The topic ‘timezones for calendar’ is closed to new replies.