Файловый менеджер - Редактировать - /var/www/portal.bdu.ac.bd/public_html/wp-content/plugins/the-events-calendar/src/resources/js/events-admin.js
Назад
/* * Date Format 1.2.3 * (c) 2007-2009 Steven Levithan <stevenlevithan.com> * MIT license * * Includes enhancements by Scott Trenda <scott.trenda.net> * and Kris Kowal <cixar.com/~kris.kowal/> * * Accepts a date, a mask, or a date and a mask. * Returns a formatted version of the given date. * The date defaults to the current date/time. * The mask defaults to dateFormat.masks.default. * todo: now used in multiple places, lets consolidate. Also, should events-admin really be powering community fe form? */ var tribeDateFormat = function() { var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, timezoneClip = /[^-+\dA-Z]/g, pad = function( val, len ) { val = String( val ); len = len || 2; while ( val.length < len ) { val = "0" + val; } return val; }; // Regexes and supporting functions are cached through closure return function( date, mask, utc ) { var dF = tribeDateFormat; // You can't provide utc if you skip other args (use the "UTC:" mask prefix) if ( arguments.length == 1 && Object.prototype.toString.call( date ) == "[object String]" && !/\d/.test( date ) ) { mask = date; date = undefined; } if ( typeof date === 'string' ) { date = date.replace( /-/g, "/" ); } // Passing date through Date applies Date.parse, if necessary date = date ? new Date( date ) : new Date; if ( isNaN( date ) ) { return; } mask = String( dF.masks[mask] || mask || dF.masks["default"] ); // Allow setting the utc argument via the mask if ( mask.slice( 0, 4 ) == "UTC:" ) { mask = mask.slice( 4 ); utc = true; } var _ = utc ? "getUTC" : "get", d = date[_ + "Date"](), D = date[_ + "Day"](), m = date[_ + "Month"](), y = date[_ + "FullYear"](), H = date[_ + "Hours"](), M = date[_ + "Minutes"](), s = date[_ + "Seconds"](), L = date[_ + "Milliseconds"](), o = utc ? 0 : date.getTimezoneOffset(), flags = { d : d, dd : pad( d ), ddd : dF.i18n.dayNames[D], dddd : dF.i18n.dayNames[D + 7], m : m + 1, mm : pad( m + 1 ), mmm : dF.i18n.monthNames[m], mmmm : dF.i18n.monthNames[m + 12], yy : String( y ).slice( 2 ), yyyy : y, h : H % 12 || 12, hh : pad( H % 12 || 12 ), H : H, HH : pad( H ), M : M, MM : pad( M ), s : s, ss : pad( s ), l : pad( L, 3 ), L : pad( L > 99 ? Math.round( L / 10 ) : L ), t : H < 12 ? "a" : "p", tt : H < 12 ? "am" : "pm", T : H < 12 ? "A" : "P", TT : H < 12 ? "AM" : "PM", Z : utc ? "UTC" : (String( date ).match( timezone ) || [""]).pop().replace( timezoneClip, "" ), o : (o > 0 ? "-" : "+") + pad( Math.floor( Math.abs( o ) / 60 ) * 100 + Math.abs( o ) % 60, 4 ), S : ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10] }; return mask.replace( token, function( $0 ) { return $0 in flags ? flags[$0] : $0.slice( 1, $0.length - 1 ); } ); }; }(); tribeDateFormat.masks = { 'default' : 'ddd mmm dd yyyy HH:MM:ss', 'tribeQuery' : 'yyyy-mm-dd', 'tribeMonthQuery' : 'yyyy-mm', '0' : 'yyyy-mm-dd', '1' : 'm/d/yyyy', '2' : 'mm/dd/yyyy', '3' : 'd/m/yyyy', '4' : 'dd/mm/yyyy', '5' : 'm-d-yyyy', '6' : 'mm-dd-yyyy', '7' : 'd-m-yyyy', '8' : 'dd-mm-yyyy', '9' : 'yyyy.mm.dd', '10' : 'mm.dd.yyyy', '11' : 'dd.mm.yyyy', 'm0' : 'yyyy-mm', 'm1' : 'm/yyyy', 'm2' : 'mm/yyyy', 'm3' : 'm/yyyy', 'm4' : 'mm/yyyy', 'm5' : 'm-yyyy', 'm6' : 'mm-yyyy', 'm7' : 'm-yyyy', 'm8' : 'mm-yyyy' }; tribeDateFormat.i18n = { dayNames : [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ], monthNames: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ] }; Date.prototype.format = function( mask, utc ) { return tribeDateFormat( this, mask, utc ); }; var tribe_datepicker_opts = {}; jQuery( function( $ ) { $( '.bumpdown-trigger' ).bumpdown(); /** * Setup Datepicker */ var $date_format = $( '[data-datepicker_format]' ), $view_select = $( '.tribe-field-dropdown_select2 select' ), viewCalLinkHTML = $( document.getElementById( 'view-calendar-link-div' ) ).html(), $template_select = $( 'select[name="tribeEventsTemplate"]' ), $event_pickers = $( document.getElementById( 'tribe-event-datepickers' ) ), is_community_edit = $( 'body' ).is( '.tribe_community_edit' ), datepicker_format = 0; // Modified from tribe_ev.data to match jQuery UI formatting. var datepicker_formats = { 'main' : [ 'yy-mm-dd', 'm/d/yy', 'mm/dd/yy', 'd/m/yy', 'dd/mm/yy', 'm-d-yy', 'mm-dd-yy', 'd-m-yy', 'dd-mm-yy', 'yy.mm.dd', 'mm.dd.yy', 'dd.mm.yy' ], 'month': ['yy-mm', 'm/yy', 'mm/yy', 'm/yy', 'mm/yy', 'm-yy', 'mm-yy', 'm-yy', 'mm-yy'] }; // initialize the category hierarchy checkbox - scroll to closest checked checkbox $( '[data-wp-lists="list:tribe_events_cat"]' ).each( function() { var $list = $( this ); var $first = $list.find( ':checkbox:checked' ).first(); if ( ! $first.length ) { return; } var top_position = $list.find( ':checkbox' ).position().top; var checked_position = $first.position().top; $list.closest( '.tabs-panel' ).scrollTop( checked_position - top_position + 5 ); } ); // Grab HTML from hidden Calendar link and append to Header on Event Listing Page $( viewCalLinkHTML ) .insertAfter( '.edit-php.post-type-tribe_events #wpbody-content .wrap h2:eq(0) a' ); /** * Returns the number of months to display in * the datepicker based on the viewport width * * @returns {number} */ function get_datepicker_num_months() { var window_width = $( window ).width(); if ( window_width < 800 ) { return 1; } if ( window_width <= 1100 ) { return 2; } else { return 3; } } var setup_linked_post_fields = function( post_type ) { var saved_template = $( document.getElementById( 'tmpl-tribe-select-' + post_type ) ).length ? wp.template( 'tribe-select-' + post_type ) : null; var create_template = $( document.getElementById( 'tmpl-tribe-create-' + post_type ) ).length ? wp.template( 'tribe-create-' + post_type ) : null; var section = $( document.getElementById( 'event_' + post_type ) ); var rows = section.find( '.saved-linked-post' ); section.on( 'click', '.tribe-add-post', function(e) { e.preventDefault(); var dropdown = $({}); var fields = $({}); if ( saved_template ) { dropdown = $( saved_template({}) ); } if ( dropdown.find( '.nosaved' ).length ) { var label = dropdown.find( 'label' ); label.text( label.data( 'l10n-create-' + post_type ) ); dropdown.find( '.nosaved' ).remove(); } if ( create_template ) { fields = $( create_template({}) ); } // The final <tbody> contains the add new post link, we should add this new selector before that section.find( 'tfoot:first' ).before( fields ); fields.prepend( dropdown ); if ( section.find( 'tbody' ).length > 1 ) { section.find( '.move-linked-post-group' ).show(); } else { section.find( '.move-linked-post-group' ).hide(); } fields.find( '.tribe-dropdown' ).tribe_dropdowns(); dropdown.find( 'select.linked-post-dropdown' ).trigger( 'change' ); // Determine if we should hide all the trash buttons and move buttons. if ( section.find( 'tbody' ).length > 1 ) { section.find( '.tribe-delete-this' ).show(); section.find( '.move-linked-post-group' ).show(); } else { section.find( '.tribe-delete-this' ).hide(); section.find( '.move-linked-post-group' ).hide(); } /** * Fires when a new linked post is added to the event. * * @since 6.2.0 * * @param {string} post_type The post type of the linked post. * @param {jQuery} section The current Section of Linked Post. * @param {jQuery} fields The fields for the new linked post. * @param {jQuery} dropdown The Dropdown for the new linked post. **/ window.wp.hooks.doAction( 'tec.events.admin.linked_posts.add_post', post_type, section, fields, dropdown ); }); section.on( 'change', '.linked-post-dropdown', toggle_linked_post_fields ); /** * Populates the linked post type fields with previously submitted data to * give them sticky form qualities. * * @param fields */ function add_sticky_linked_post_data( post_type, container, fields ) { // Bail if expected global sticky data array is not set if ( 'undefined' === typeof window['tribe_sticky_' + post_type + '_fields'] || ! Array.isArray( window['tribe_sticky_' + post_type + '_fields'] ) ) { return; } var $fields = $( fields ); var $rows = $fields.filter( 'tr.linked-post.' + container ); // bail if the fields are not about this container if ( $rows.length === 0 ) { return; } // The linked post type fields also need sticky field behaviour: populate // them if we've been provided with the necessary data to do so var sticky_data = window['tribe_sticky_' + post_type + '_fields'].shift(); var sticky_data_added = false; if ( 'object' === typeof sticky_data ) { for ( var key in sticky_data ) { // Check to see if we have a field of this name var $field = $fields.find( 'input[name="' + container + '[' + key + '][]"]' ); // If no field or an empty value, skip. if ( ! $field.length || _.isEmpty( sticky_data[ key ] ) ) { continue; } // Set the value accordingly $field.val( sticky_data[ key ] ); sticky_data_added = true; } } if ( sticky_data_added ) { $rows.show(); } } rows.each( function () { var row = $( this ); var group = row.closest( 'tbody' ); var fields; if ( create_template ) { fields = $( create_template( {} ) ).find( 'tr' ); // we already have our tbody } else { fields = group.find( 'tr' ).slice( 2 ); } var dropdown = row.find( '.linked-post-dropdown' ); if ( dropdown.length ) { var value = dropdown.val(); if ( 0 !== parseInt( value, 10 ) ) { //hide all fields, but those with not-linked class i.e. Google Map Settings fields.not( '.remain-visible' ).hide(); } } else if ( row.find( '.nosaved' ).length ) { var label = row.find( 'label' ); label.text( label.data( 'l10n-create-' + post_type ) ); row.find( '.nosaved' ).remove(); } // Populate the fields with any sticky data then add them to the page for ( var post_type in tribe_events_linked_posts.post_types ) { if ( ! tribe_events_linked_posts.post_types.hasOwnProperty( post_type ) ) { continue; } add_sticky_linked_post_data( post_type, tribe_events_linked_posts.post_types[ post_type ], fields ); } fields.find( '.tribe-dropdown' ).tribe_dropdowns(); group.append( fields ); } ); $( document ).on( 'click', `#event_${post_type} .tribe-delete-this`, function(e) { e.preventDefault(); var $group = $( this ).closest( 'tbody' ); $group.parents( '.tribe-section' ).removeClass( 'tribe-is-creating-linked-post' ); $group.fadeOut( 500, function() { $( this ).remove(); $group.find( 'select.linked-post-dropdown' ).trigger( 'change' ); // Determine if we should hide all the trash buttons and move buttons. if ( section.find( 'tbody' ).length > 1 ) { section.find( '.tribe-delete-this' ).show(); section.find( '.move-linked-post-group' ).show(); } else { section.find( '.tribe-delete-this' ).hide(); section.find( '.move-linked-post-group' ).hide(); } showOrHideAddPostButton( section ); } ); }); var sortable_items = '> tbody'; if ( ! $( 'body' ).hasClass( 'wp-admin' ) ) { sortable_items = 'table ' + sortable_items; } section.sortable( { items : sortable_items, handle : '.move-linked-post-group', containment : 'parent', axis : 'y', delay : 100 } ); // Determine if we should hide all the trash buttons and move buttons. if ( section.find( 'tbody' ).length > 1 ) { section.find( '.tribe-delete-this' ).show(); section.find( '.move-linked-post-group' ).show(); } else { section.find( '.tribe-delete-this' ).hide(); section.find( '.move-linked-post-group' ).hide(); } section.find( 'select.linked-post-dropdown' ).trigger( 'change' ); }; var toggle_linked_post_fields = function( event ) { const $select = $( this ); const postType = $select.data( 'postType' ); const $wrapper = $select.parents( `#event_${postType}` ).eq( 0 ); const $groups = $wrapper.find( 'tbody' ); const linkedPostCount = $groups.length; const $group = $select.closest( 'tbody' ); const currentGroupPosition = $groups.index( $group ) + 1; const $edit = $group.find( '.edit-linked-post-link a' ); const value = $select.val(); const $selected = $select.find( ':selected' ); const selectedVal = $selected.val(); let editLink = ''; let existingPost = false; if ( selectedVal === value ) { editLink = $selected.data( 'editLink' ); existingPost = !! $selected.data( 'existingPost' ); } // Always hide the edit link unless we have an edit link to show (handled below). $edit.hide(); $wrapper.find( 'tfoot .tribe-add-post' ).show(); if ( ! existingPost && value !== '-1' && value ) { // Apply the New Given Title to the Correct Field $group.find( '.linked-post-name' ).val( value ).parents( '.linked-post' ).eq( 0 ).attr( 'data-hidden', true ); $select.val( '-1' ); // Display the Fields $group .find( '.linked-post' ).not( '[data-hidden]' ).show() .find( '.tribe-dropdown' ); $group.parents( '.tribe-section' ).addClass( 'tribe-is-creating-linked-post' ); } else { // Hide all fields and remove their values $group.find( '.linked-post' ).hide().find( 'input, select' ).val( '' ); $group.parents( '.tribe-section' ).removeClass( 'tribe-is-creating-linked-post' ); // Modify and Show edit link if ( ! _.isEmpty( editLink ) ) { $edit.attr( 'href', editLink ).show(); } } showOrHideAddPostButton( $wrapper ); }; /** * Shows or hides the Add <Post> button. * * @since 6.2.0 * @param {Object} $wrapper The jQuery object for the wrapper of the linked post fields. */ function showOrHideAddPostButton( $wrapper ) { const $groups = $wrapper.find( 'tbody' ); const linkedPostCount = $groups.length; const $select = $wrapper.find( 'tbody' ).last().find( 'select' ); const value = $select.val(); const $selected = $select.find( ':selected' ); const selectedVal = $selected.val(); const $group = $select.closest( 'tbody' ); const currentGroupPosition = $groups.index( $group ) + 1; let existingPost = false; if ( selectedVal === value ) { existingPost = !! $selected.data( 'existingPost' ); } if ( ! existingPost && ( ! value || value === '-1' ) && currentGroupPosition === linkedPostCount ) { $wrapper.find( 'tfoot .tribe-add-post' ).hide(); } else { $wrapper.find( 'tfoot .tribe-add-post' ).show(); } } $( '.hide-if-js' ).hide(); if ( typeof( tribe_l10n_datatables.datepicker ) !== 'undefined' ) { var _MS_PER_DAY = 1000 * 60 * 60 * 24; var date_format = 'yy-mm-dd'; if ( $date_format.length && $date_format.attr( 'data-datepicker_format' ).length >= 1 ) { datepicker_format = $date_format.attr( 'data-datepicker_format' ); date_format = datepicker_formats.main[ datepicker_format ]; } function date_diff_in_days( a, b ) { var utc1 = Date.UTC( a.getFullYear(), a.getMonth(), a.getDate() ); var utc2 = Date.UTC( b.getFullYear(), b.getMonth(), b.getDate() ); return Math.floor( (utc2 - utc1) / _MS_PER_DAY ); } var startofweek = 0; if ( $event_pickers.length ) { startofweek = $event_pickers.data( 'startofweek' ); } var $start_date = $( document.getElementById( 'EventStartDate' ) ); var $end_date = $( document.getElementById( 'EventEndDate' ) ); var $event_details = $( document.getElementById( 'tribe_events_event_details' ) ); tribe_datepicker_opts = { dateFormat : date_format, showAnim : 'fadeIn', changeMonth : true, changeYear : true, numberOfMonths : get_datepicker_num_months(), showButtonPanel : false, beforeShow : function( element, object ) { object.input.datepicker( 'option', 'numberOfMonths', get_datepicker_num_months() ); object.input.data( 'prevDate', object.input.datepicker( 'getDate' ) ); // allow single datepicker fields to specify a min or max date // using the `data-datapicker-(min|max)Date` attribute if ( undefined !== object.input.data( 'datepicker-min-date' ) ) { object.input.datepicker( 'option', 'minDate', object.input.data( 'datepicker-min-date' ) ); } if ( undefined !== object.input.data( 'datepicker-max-date' ) ) { object.input.datepicker( 'option', 'maxDate', object.input.data( 'datepicker-max-date' ) ); } // Capture the datepicker div here; it's dynamically generated so best to grab here instead // of elsewhere. $dpDiv = $( object.dpDiv ); // "Namespace" our CSS a bit so that our custom jquery-ui-datepicker styles don't interfere // with other plugins'/themes'. $dpDiv.addClass( 'tribe-ui-datepicker' ); $event_details.trigger( 'tribe.ui-datepicker-div-beforeshow', [ object ] ); $dpDiv.attrchange( { trackValues: true, callback: function( attr ) { // This is a non-ideal, but very reliable way to look for the closing of the ui-datepicker box, // since onClose method is often occluded by other plugins, including Events Calender PRO. if ( 'string' === typeof attr.newValue && ( attr.newValue.indexOf( 'display: none' ) >= 0 || attr.newValue.indexOf( 'display:none' ) >= 0 ) ) { $dpDiv.removeClass( 'tribe-ui-datepicker' ); $event_details.trigger( 'tribe.ui-datepicker-div-closed', [ object ] ); } }, } ); }, onSelect: function( selected_date, object ) { var instance = $( this ).data( 'datepicker' ); var date = $.datepicker.parseDate( instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selected_date, instance.settings ); // If the start date was adjusted, then let's modify the minimum acceptable end date if ( this.id === 'EventStartDate' ) { var start_date = $( document.getElementById( 'EventStartDate' ) ).data( 'prevDate' ); var date_diff = null == start_date ? 0 : date_diff_in_days( start_date, $end_date.datepicker( 'getDate' ) ); var end_date = new Date( date.setDate( date.getDate() + date_diff ) ); $end_date .datepicker( 'option', 'minDate', $start_date.datepicker( 'getDate' ) ) .datepicker( 'setDate', end_date ) .datepicker_format; } // fire the change and blur handlers on the field $( this ).trigger( 'change' ); $( this ).trigger( 'blur' ); } }; $.extend( tribe_datepicker_opts, tribe_l10n_datatables.datepicker ); var dates = $( '.tribe-datepicker' ).datepicker( tribe_datepicker_opts ); var $start_end_month = $( 'select[name="EventStartMonth"], select[name="EventEndMonth"]' ); var $start_month = $( 'select[name="EventStartMonth"]' ); var $end_month = $( 'select[name="EventEndMonth"]' ); var selectObject; if ( is_community_edit ) { var $els = { start : $event_pickers.find( '#EventStartDate' ), end : $event_pickers.next( 'tr' ).find( '#EventEndDate' ), }; $.each( $els, function( i, el ) { var $el = $( el ); ( '' !== $el.val() ) && $el.val( tribeDateFormat( $el.val(), datepicker_format ) ); } ) } var tribeDaysPerMonth = [29, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // start and end date select sections var tribeStartDays = [ $( document.getElementById( '28StartDays' ) ), $( document.getElementById( '29StartDays' ) ), $( document.getElementById( '30StartDays' ) ), $( document.getElementById( '31StartDays' ) ) ]; var tribeEndDays = [ $( document.getElementById( '28EndDays' ) ), $( document.getElementById( '29EndDays' ) ), $( document.getElementById( '30EndDays' ) ), $( document.getElementById( '31EndDays' ) ) ]; $start_end_month.on( 'change', function() { var t = $( this ); var startEnd = t.attr( 'name' ); // get changed select field if ( startEnd == 'EventStartMonth' ) { startEnd = 'Start'; } else { startEnd = 'End'; } // show/hide date lists according to month var chosenMonth = t.attr( "value" ); if ( chosenMonth.charAt( 0 ) == '0' ) { chosenMonth = chosenMonth.replace( '0', '' ); } // leap year var remainder = $( 'select[name="Event' + startEnd + 'Year"]' ).attr( 'value' ) % 4; if ( chosenMonth == 2 && remainder == 0 ) { chosenMonth = 0; } // preserve selected option var currentDateField = $( 'select[name="Event' + startEnd + 'Day"]' ); $( '.event' + startEnd + 'DateField' ).remove(); if ( startEnd == 'Start' ) { selectObject = tribeStartDays[ tribeDaysPerMonth[ chosenMonth ] - 28 ]; selectObject.val( currentDateField.val() ); $start_month.after( selectObject ); } else { selectObject = tribeEndDays[ tribeDaysPerMonth[ chosenMonth ] - 28 ]; selectObject.val( currentDateField.val() ); $end_month.after( selectObject ); } } ); $start_end_month.trigger( 'change' ); $( 'select[name="EventStartYear"]' ).on( 'change', function() { $start_month.trigger( 'change' ); } ); $( 'select[name="EventEndYear"]' ).on( 'change', function() { $end_month.trigger( 'change' ); } ); for ( var i in tribe_events_linked_posts.post_types ) { if ( ! tribe_events_linked_posts.post_types.hasOwnProperty( i ) ) { continue; } setup_linked_post_fields( i ); } } window.wp.hooks.addAction( 'tec.events.admin.linked_posts.add_post', 'tec', ( post_type, template_section, new_section ) => { if ( 'tribe_venue' !== post_type ) { return; } new_section.find( '#EventCountry' ).trigger( 'change' ); } ); //show state/province input based on first option in countries list, or based on user input of country $( document ).on( 'change', '[id="EventCountry"]', function () { var $country = $( this ); var $container = $country.parents( 'tbody' ).eq( 0 ); var $state_select = $container.find( '#StateProvinceSelect' ); var $state_dropdown = $state_select.next( '.select2-container' ); var $state_text = $container.find( '#StateProvinceText' ); var country = $( this ).val(); if ( country == 'US' || country == 'United States' ) { $state_text.hide(); $state_select.hide(); $state_dropdown.show(); } else { $state_text.show(); $state_select.hide(); $state_dropdown.hide(); } } ).find( '#EventCountry' ).trigger( 'change' ); // EventCoordinates var overwriteCoordinates = { $container : $( document.getElementById( 'overwrite_coordinates' ) ) }; overwriteCoordinates.$lat = overwriteCoordinates.$container.find( '#VenueLatitude' ); overwriteCoordinates.$lng = overwriteCoordinates.$container.find( '#VenueLongitude' ); overwriteCoordinates.$fields = $('').add( overwriteCoordinates.$lat ).add( overwriteCoordinates.$lng ); overwriteCoordinates.$toggle = overwriteCoordinates.$container.find( '#VenueOverwriteCoords' ).on( 'change', function( event ) { if ( overwriteCoordinates.$toggle.is(':checked') ) { overwriteCoordinates.$fields.prop( 'disabled', false ).removeClass( 'hidden' ); } else { overwriteCoordinates.$fields.prop( 'disabled', true ).addClass( 'hidden' ); } } ); overwriteCoordinates.$toggle.trigger( 'change' ); $( '#EventInfo input, #EventInfo select' ).on( 'change', function() { $( '.rec-error' ).hide(); } ); var eventSubmitButton = $( '.wp-admin.events-cal #post #publishing-action input[type="submit"]' ); eventSubmitButton.on( 'click', function() { $( this ).data( 'clicked', true ); } ); // Workaround for venue & organizer post types when editing or adding // so events parent menu stays open and active if ( $( 'body' ).hasClass( 'post-type-tribe_venue' ) ) { $( '#menu-posts-tribe_events, #menu-posts-tribe_events a.wp-has-submenu' ) .addClass( 'wp-menu-open wp-has-current-submenu wp-has-submenu' ) .removeClass( 'wp-not-current-submenu' ) .find( "li a[href='edit.php?post_type=tribe_venue']" ) .parent() .addClass( 'current' ); } if ( $( 'body' ).hasClass( 'post-type-tribe_organizer' ) ) { $( '#menu-posts-tribe_events, #menu-posts-tribe_events a.wp-has-submenu' ) .addClass( 'wp-menu-open wp-has-current-submenu wp-has-submenu' ) .removeClass( 'wp-not-current-submenu' ) .find( "li a[href='edit.php?post_type=tribe_organizer']" ) .parent() .addClass( 'current' ); } // Default Layout Settings // shows / hides proper views that are to be used on front-end var $tribe_views = $( document.getElementById( 'tribe-field-tribeEnableViews' ) ); if ( $tribe_views.length ) { var $default_view_select = $( 'select[name="viewOption"]' ); var $default_mobile_view_select = $( 'select[name="mobile_default_view"]' ); var $view_inputs = $tribe_views.find( 'input:checkbox' ); var $view_desc = $( '#tribe-field-tribeEnableViews .tribe-field-wrap p.description' ); var view_options = {}; function create_view_array() { $default_view_select .find( 'option' ) .each( function() { var $this = $( this ); view_options[$this.attr( 'value' )] = $this.text(); } ); $default_mobile_view_select .find( 'option' ) .each( function() { var $this = $( this ); view_options[$this.attr( 'value' )] = $this.text(); } ); } function set_selected_views( $this ) { // Store the default view chosen prior to this change var prev_default_view = $default_view_select .find( "option:selected" ) .first() .val(); var prev_default_mobile_view = $default_mobile_view_select .find( "option:selected" ) .first() .val(); $default_view_select .find( 'option' ) .remove(); $default_mobile_view_select .find( 'option' ) .remove(); $view_inputs .each( function() { var $this = $( this ); if ( $this.is( ':checked' ) ) { var value = $this.val(); var label = value.substr( 0, 1 ).toUpperCase() + value.substr( 1 ); $default_view_select .append( '<option value="' + value + '">' + label + '</option>' ); $default_mobile_view_select .append( '<option value="' + value + '">' + label + '</option>' ); } } ); // Test to see if the previous default view is still available... var $prev_default_option = $default_view_select.find( "option[value='" + prev_default_view + "']" ); var $prev_default_mobile_option = $default_mobile_view_select.find( "option[value='" + prev_default_mobile_view + "']" ); // ...if it is, keep it as the default (else switch to the first available remaining option) if ( $prev_default_option.val() == $this.val() ) { $prev_default_option .attr( 'selected', 'selected' ); } else { var $default_reset = $tribe_views.find( 'checkbox:checked' ).first().val(); $default_view_select.find( 'option' ).find( "option[value='" + $default_reset + "']" ).attr( 'selected', 'selected' ); } if ( $prev_default_mobile_option.val() == $this.val() ) { $prev_default_mobile_option .attr( 'selected', 'selected' ); } else { var $default_reset = $tribe_views.find( 'checkbox:checked' ).first().val(); $default_mobile_view_select.find( 'option' ).find( "option[value='" + $default_reset + "']" ).attr( 'selected', 'selected' ); } $default_view_select .select2( 'destroy' ) .select2( { width: 'auto' } ); $default_mobile_view_select .select2( 'destroy' ) .select2( { width: 'auto' } ); } create_view_array(); $tribe_views .on( 'change', 'input:checkbox', function() { var $this = $( this ); if ( $( '[name="tribeEnableViews[]"]:checked' ).length < 1 ) { $this.attr( 'checked', true ); $view_desc.css( 'color', 'red' ); } else { $view_desc.removeAttr( 'style' ); } set_selected_views( $this ); } ); } /** * Capture the community "Add" form on submit to ensure safe date format. */ $( '#tribe-community-events.form form' ).on( 'submit', function() { var $els = { start: $event_pickers.find( '#EventStartDate' ), end : $event_pickers.next( 'tr' ).find( '#EventEndDate' ) }; $els.start.val( tribeDateFormat( $els.start.datepicker( 'getDate' ), 'tribeQuery' ) ); $els.end.val( tribeDateFormat( $els.end.datepicker( 'getDate' ), 'tribeQuery' ) ); $event_pickers.parent().find( '.tribe-no-end-date-update' ).each( function() { $el = $( this ); if ( ! $el.is( ':visible' ) ) { return; } $el.val( tribeDateFormat( $el.datepicker( 'getDate' ), 'tribeQuery' ) ); } ); } ); } );
| ver. 1.4 |
Github
|
.
| PHP 7.4.3-4ubuntu2.28 | Генерация страницы: 0.01 |
proxy
|
phpinfo
|
Настройка