/* * Copyright (c) 2022 LatePoint LLC. All rights reserved. */ function latepoint_init_version5_intro(){ if(jQuery('.improvement-install-pro').length){ let $install_btn = jQuery('.improvement-install-pro'); var data = { action: latepoint_helper.route_action, route_name: $install_btn.data('route-name'), params: {}, return_format: 'json' } jQuery.ajax({ type : "post", dataType : "json", url : latepoint_timestamped_ajaxurl(), data : data, success: function(response){ $install_btn.removeClass('os-loading'); if(response.status == 'success'){ $install_btn.addClass('is-installed').find('span').html(response.message); }else{ $install_btn.addClass('is-not-installed').find('span').html(response.message); } } }); } } function latepoint_settings_customer_authentication_method_changed($select){ if($select.val() === 'password_or_otp'){ jQuery('#authDefaultMethod').show(); }else{ jQuery('#authDefaultMethod').hide(); } } function latepoint_settings_customer_authentication_field_type_changed($select){ if($select.val() === 'disabled'){ jQuery('#passwordFields, #customerStepSettings').hide(); jQuery('#authDefaultMergeBehavior').show(); }else{ jQuery('#passwordFields, #customerStepSettings').show(); jQuery('#authDefaultMergeBehavior').hide(); } if($select.val() === 'email_or_phone'){ jQuery('#authDefaultContactType').show(); }else{ jQuery('#authDefaultContactType').hide(); } } function latepoint_init_sticky_side_nav(){ jQuery('.latepoint-page-side-nav a').on('click', function(e) { e.preventDefault(); let target = jQuery(this).attr('href'); let targetOffset = jQuery(target).offset().top - 20; jQuery('html, body').animate({ scrollTop: targetOffset }, 400, 'swing'); }); if(jQuery('.latepoint-page-side-nav').length){ jQuery(window).on('scroll', function() { let scrollPos = jQuery(window).scrollTop() + 100; // 100px offset for better UX jQuery('.section-anchor').each(function() { let sectionTop = jQuery(this).offset().top; let sectionBottom = sectionTop + jQuery(this).outerHeight(); let sectionId = jQuery(this).attr('id'); // Check if current scroll position is within this section if (scrollPos >= sectionTop && scrollPos < sectionBottom) { // Remove active class from all menu items jQuery('.latepoint-page-side-nav a').removeClass('is-active'); // Add active class to current section's menu item jQuery('.latepoint-page-side-nav a[href="#' + sectionId + '"]').addClass('is-active'); } }); }); } } function latepoint_init_instant_booking_settings(){ jQuery('.instant-copy-url').on('click', function(e){ e.preventDefault(); let $this = jQuery(this); jQuery('body').find('.os-click-to-copy-prompt').hide(); let text_to_copy = jQuery('.instant-visit-url').prop('href'); navigator.clipboard.writeText(text_to_copy); let position_info = $this.offset(); let position_left = position_info.left; let position_top = position_info.top; let $done_prompt = jQuery('
' + latepoint_helper.click_to_copy_done + '
'); $done_prompt.appendTo(jQuery('body')).animate({ opacity: 0, left: (position_left + 20), }, 600); setTimeout(function(){ jQuery('body').find('.os-click-to-copy-done').remove(); jQuery('body').find('.os-click-to-copy-prompt').show(); }, 800); }); jQuery('.instant-booking-preview-settings-content').find('select, input').on('change', function(){ latepoint_build_url_for_instant_booking_page(); }) jQuery('.preview-background-option').on('click', function(e){ jQuery('.preview-background-option').removeClass('selected'); jQuery(this).addClass('selected'); jQuery('input[name="instant_booking[background_pattern]"]').val(jQuery(this).data('pattern-key')).trigger('change'); }); jQuery('.latepoint-instant-preview-close-trigger').on('click', function(e){ jQuery('.latepoint-full-panel-w').remove(); return false; }); } async function latepoint_build_url_for_instant_booking_page(){ let data = { action: 'latepoint_route_call', route_name: jQuery('.instant-booking-preview-settings-content').data('route-name'), params: jQuery('.instant-booking-preview-settings-content').find('select, input').serialize(), layout: 'none', return_format: 'json' } try { let response = await jQuery.ajax({ type: "post", dataType: "json", url: latepoint_timestamped_ajaxurl(), data: data }); if (response.status == 'success') { jQuery('.instant-booking-settings-iframe-wrapper').html('