1(function( $ ) { 2 'use strict'; 3 4 $(function(){ 5 $('.js-user-photo-update-trigger').click(function(e){ 6 e.preventDefault(); 7 $('#f7h-wc-myaccount-personal-info-user-photo-upload').click(); 8 }); 9 10 $('#f7h-wc-myaccount-personal-info-user-photo-upload').on('change', function() { 11 var file = $(this)[0].files[0]; 12 var reader = new FileReader(); 13 reader.onload = function(e) { 14 if ($('.myaccount-user-info-photo-placeholder') !== 'undefined') { 15 $('.myaccount-user-info-photo-placeholder').hide(); 16 } 17 $('#myaccount-user-info-photo-update').css('background', 'url(' + e.target.result + ') center/cover no-repeat'); 18 } 19 reader.readAsDataURL(file); 20 }); 21 22 // Update user personal info 23 $('#fifty7hours_update_firebase_client').validate({ 24 errorClass: "error", 25 errorElement: "div", 26 rules: { 27 first_name: { 28 required: true 29 }, 30 last_name: { 31 required: true 32 }, 33 phone: { 34 required: true, 35 phoneIntl: true 36 } 37 }, 38 messages: { 39 first_name: { 40 required: "Required" 41 }, 42 last_name: { 43 required: "Required" 44 }, 45 phone: { 46 required: "Required", 47 } 48 }, 49 submitHandler: function(form) { 50 $(form).addClass('is-loading'); 51 form.submit(); 52 } 53 }); 54 55 // Info box close button 56 $(".js-myaccount-hide-message").click(function(){ 57 $(this).closest('.woocommerce-message').fadeOut(350); 58 }); 59 60 // Get user bookings (active & past) for 1st page 61 if ($('.f-myaccount-user-bookings').length !== 0) { 62 $.post(f7h_register_user_ajax_obj.ajax_url, { 63 action: "fifty7hours_get_user_bookings", 64 }, function(response) { 65 if (true === response.success) { 66 $('.f-myaccount-user-bookings').removeClass('is-first-load').removeClass('is-loading'); 67 68 if (response.data.all != null) { 69 $('.f-myaccount-user-bookings-header .has-results').show(); 70 $('.f-myaccount-user-bookings-header .no-results').hide(); 71 $('.js-f-myaccount-user-bookings-result').append(response.data.all); 72 73 //if has next page - show navigation 74 if ($('.f7h-wc-myaccount-bookings-page-content').data('next') != '') { 75 $('.f-myaccount-user-bookings-nav').show(); 76 } 77 } else { 78 $('.f-myaccount-user-bookings-header .has-results').hide(); 79 $('.f-myaccount-user-bookings-header .no-results').show(); 80 $('.f-myaccount-user-bookings').addClass('no-results'); 81 } 82 } else { 83 console.log("Error: " + response.data); 84 } 85 }); 86 } 87 88 89 // Back to all bookings - button 90 $('.f7h_back_to_all_booking').click(function(e){ 91 e.stopPropagation(); 92 e.preventDefault(); 93 94 var bookingsContainer = $('.f-myaccount-user-bookings'); 95 var singleBookingContainer = $('.f-myaccount-user-single-booking'); 96 97 singleBookingContainer.fadeOut(350, function() { 98 99 bookingsContainer.fadeIn(350); 100 101 // Clear on Booking_info content (specific booking page) 102 $('#f7h_myaccount_one_booking_info_container').html(''); 103 // remove ?booking= from URL 104 appendQueryVarsStringToUrl('', 'My account | Bookings'); 105 }); 106 }); 107 108 // if there is a booking_id in URL - show specific booking info 109 if ( getQueryParam( 'booking' ) !== false ) { 110 const bookingId = getQueryParam( 'booking' ); 111 getSingleBooking(bookingId); 112 } 113 114 115 // Get booking info (one specific booking) 116 $(document).on('click', '.js-view-single-booking', function(e){ 117 e.stopPropagation(); 118 119 $('.f-myaccount-user-bookings').addClass('is-loading'); 120 const bookingId = $(this).data('id'); 121 122 getSingleBooking(bookingId); 123 }); 124 125 function getSingleBooking(bookingId) { 126 $.post(f7h_register_user_ajax_obj.ajax_url, { 127 action: "fifty7hours_get_booking_info_form", 128 wp_nonce: $('input[name="f7h_booking_info_nonce"]').val(), 129 booking_id: bookingId 130 }, function(response) { 131 window.scrollTo({ top: 0, behavior: 'smooth' }); 132 if (true === response.success) { 133 $('.f-myaccount-user-bookings').removeClass('is-loading').hide(); 134 $('.f-myaccount-user-single-booking').show(); 135 $('#f7h_myaccount_one_booking_info_container').show(); 136 $('#f7h_myaccount_one_booking_info_container').append(response.data); 137 138 // add ?booking_id= to URL 139 appendQueryVarsStringToUrl('?booking=' + bookingId, 'My account | Booking info'); 140 // trigger event that booking info is loaded 141 $(document).trigger('f7hBookingInfoLoaded', [bookingId]); 142 } else { 143 // Hide loading spinner 144 $('.f7h-wc-myaccount-bookings-content-container').css({'opacity': '1', 'pointer-events': 'auto'}); 145 $('.f7h-wc-myaccount-bookings-btn-container').css({'opacity': '1', 'pointer-events': 'auto'}); 146 $('.f7h-myaccount-loading-spinner-container').hide(); 147 } 148 }); 149 } 150 151 152 // My bookings - previous / next links 153 // Next link 154 $('.js-fetch-bookings-next').click(function(){ 155 var btnClicked = $(this); 156 var bookingsContainer = $('.f-myaccount-user-bookings'); 157 var navContainer = $('.f-myaccount-user-bookings-nav'); 158 var pageType = navContainer.data('type'); 159 var pageNum = navContainer.data('page'); 160 var maxPages = navContainer.data('max'); 161 162 bookingsContainer.addClass('is-loading'); 163 164 var pageNumNext = pageNum + 1;
165 var nextLink = $('.f7h-wc-myaccount-bookings-page-content[data-page="'+pageNum+'"][data-type="'+pageType+'"]').data('next'); 166 var pageBookings = $('.f7h-wc-myaccount-bookings-page-content[data-page="'+pageNumNext+'"][data-type="'+pageType+'"]').children('.js-view-single-booking'); 167 168 if (nextLink != '' && pageBookings.length == 0) { 169 $.post(f7h_register_user_ajax_obj.ajax_url, { 170 action: "fifty7hours_get_next_link_bookings", 171 nextLink: nextLink, 172 bookingType: pageType, 173 pageNum: pageNum 174 }, function(response) { 175 if (true === response.success) { 176 177 $('.f7h-wc-myaccount-bookings-page-content[data-page="'+pageNum+'"][data-type="'+pageType+'"]').after(response.data); 178 179 $('.f7h-wc-myaccount-bookings-page-content[data-page="'+pageNum+'"][data-type="'+pageType+'"]').hide(); 180 $('.f7h-wc-myaccount-bookings-page-content[data-page="'+pageNumNext+'"][data-type="'+pageType+'"]').show(); 181 window.scrollTo({ top: 0, behavior: 'smooth' }); 182 183 var nextPageNextLink = $('.f7h-wc-myaccount-bookings-page-content[data-page="'+pageNumNext+'"][data-type="'+pageType+'"]').data('next'); 184 185 if (nextPageNextLink == '') { 186 btnClicked.addClass('disabled'); 187 } 188 189 bookingsContainer.removeClass('is-loading'); 190 } else { 191 console.log("Error: " + response.data); 192 } 193 }); 194 } else { 195 $('.f7h-wc-myaccount-bookings-page-content[data-page="'+pageNum+'"][data-type="'+pageType+'"]').fadeOut(350, function() { 196 $('.f7h-wc-myaccount-bookings-page-content[data-page="'+pageNumNext+'"][data-type="'+pageType+'"]').fadeIn(350); 197 }); 198 199 var nextPageNextLink = $('.f7h-wc-myaccount-bookings-page-content[data-page="'+pageNumNext+'"][data-type="'+pageType+'"]').data('next'); 200 201 if (nextPageNextLink == '') { 202 $(this).addClass('disabled'); 203 } 204 205 bookingsContainer.removeClass('is-loading'); 206 } 207 208 navContainer.data('page', pageNumNext); 209 $('.js-fetch-bookings-prev').removeClass('disabled'); 210 }); 211 212 // Previous link 213 $('.js-fetch-bookings-prev').click(function(){ 214 var navContainer = $('.f-myaccount-user-bookings-nav'); 215 var pageType = navContainer.data('type'); 216 var pageNum = navContainer.data('page'); 217 var maxPages = navContainer.data('max'); 218 219 var previousPage = pageNum - 1; 220 221 if (previousPage > 0) { 222 223 $('.f7h-wc-myaccount-bookings-page-content[data-page="'+pageNum+'"][data-type="'+pageType+'"]').fadeOut(350, function() { 224 $('.f7h-wc-myaccount-bookings-page-content[data-page="'+previousPage+'"][data-type="'+pageType+'"]').fadeIn(350); 225 }); 226 227 navContainer.data('page', previousPage); 228 229 if (previousPage == 1) { 230 $(this).addClass('disabled'); 231 } 232 } 233 234 $(this).next('.js-fetch-bookings-next').removeClass('disabled'); 235 }); 236 237 238 // Update user newsletter subscription buttons 239 // Subscribe 240 $('.js-newsletter-subscribe, .js-newsletter-unsubscribe').click(function(){ 241 $(this).addClass('is-loading'); 242 $('#fifty7hours_update_client_newsletter_subscription').submit(); 243 }); 244 245 246 $('.js-f7h-myaccount-navigation__trigger').on( 'click', function( element ) { 247 $(this).toggleClass('is-active'); 248 $('.f7h-myaccount-navigation-list').slideToggle('fast'); 249 }); 250 251 252 $('.js-f7h-myaccount-navigation__trigger__text').html($('.woocommerce-MyAccount-navigation-link.is-active a').text()); 253 254 var bar = document.getElementById('f7h-myaccount-navigation'); 255 256 if (bar) { 257 var startProductBarPos=-1; 258 window.onscroll=function(){ 259 if( startProductBarPos < 0) { 260 startProductBarPos=findPosY(bar); 261 } 262 263 if(pageYOffset > startProductBarPos){ 264 bar.classList.add('is-sticky'); 265 } else { 266 bar.classList.remove('is-sticky'); 267 } 268 }; 269 } 270 271 function findPosY(obj) { 272 var curtop = 0; 273 if (typeof (obj.offsetParent) != 'undefined' && obj.offsetParent) { 274 while (obj.offsetParent) { 275 curtop += obj.offsetTop; 276 obj = obj.offsetParent; 277 } 278 curtop += obj.offsetTop; 279 } else if (obj.y) { 280 curtop += obj.y; 281 } 282 283 return curtop; 284 } 285 286 $(document).on('f7hBookingInfoLoaded', function(){ 287 const accordions = document.querySelectorAll('.accordion-container'); 288 289 if (accordions.length > 0) { 290 accordions.forEach((accordion) => { 291 const accordionSettings = { 292 duration: 400, 293 showMultiple: true 294 }; 295 296 const maybeOpenOnInit = $(accordion).data('open-on-init'); 297 if (typeof(maybeOpenOnInit) !== 'undefined') { 298 accordionSettings.openOnInit = maybeOpenOnInit; 299 } 300 301 new Accordion(accordion, accordionSettings); 302 }); 303 } 304 }); 305 }); 306 307})( jQuery ); 308 309 310function appendQueryVarsStringToUrl( queryVarsStr, title ) { 311 let url = window.location.protocol + "//" + window.location.host + window.location.pathname; 312 313 let fullUrl = url + queryVarsStr; 314 315 let stateObj = { 316 location: fullUrl 317 } 318 319 history.replaceState( stateObj, title, fullUrl ); 320} 321 322function getQueryParam( queryParam ) { 323 let urlSearchParams = new URLSearchParams( window.location.search ); 324 let param = urlSearchParams.get( queryParam ); 325 326 if ( param !== null && param !== '' ) return param; 327 328 return false
vendor: 4 bytes, lines 328-329
328; 329}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.