1(function ($) { 2 jQuery("body").on("added_to_cart", function (event) { 3 fooevents_bookings_reset_date_slot(); 4 }); 5 6 if (jQuery(".fooevents-bookings-slot").length) { 7 jQuery(".fooevents-bookings-slot").on("change", function (event) { 8 var slot_element = jQuery(this); 9 fooevents_bookings_return_slot_dates(slot_element, event); 10 }); 11 } 12 13 if (jQuery(".fooevents-bookings-date").length) { 14 jQuery(".fooevents-bookings-date").on("change", function (event) { 15 var date_element = jQuery(this); 16 fooevents_bookings_return_date_stock(date_element, event); 17 }); 18 } 19 20 if (jQuery(".fooevents-bookings-slot-date").length) { 21 jQuery(".fooevents-bookings-slot-date").on("change", function (event) { 22 var slot_date_element = jQuery(this); 23 fooevents_bookings_return_slot_date_stock(slot_date_element, event); 24 }); 25 } 26 27 if (jQuery(".fooevents-bookings-date-slot-date").length) { 28 jQuery(".fooevents-bookings-date-slot-date").on("change", function (event) { 29 var date_slot_date_element = jQuery(this); 30 fooevents_bookings_return_date_slots(date_slot_date_element, event); 31 }); 32 } 33 34 if (jQuery(".fooevents-bookings-date-slot-slot").length) { 35 jQuery(".fooevents-bookings-date-slot-slot").on("change", function (event) { 36 var slot_element = jQuery(this); 37 fooevents_bookings_return_date_slot_stock(slot_element, event); 38 }); 39 } 40 41 if (jQuery(".fooevents_calendar_selected").length) { 42 if (jQuery(".fooevents-bookings-date").length) { 43 var date_element = jQuery(".fooevents-bookings-date"); 44 fooevents_bookings_return_date_stock(date_element, event); 45 } 46 47 if (jQuery(".fooevents-bookings-slot-date").length) { 48 var slot_date_element = jQuery(".fooevents-bookings-slot-date"); 49 fooevents_bookings_return_slot_date_stock(slot_date_element, event); 50 } 51 52 if (jQuery(".fooevents-bookings-date-slot-slot").length) { 53 var slot_element = jQuery(".fooevents-bookings-date-slot-slot"); 54 fooevents_bookings_return_date_slot_stock(slot_element, event); 55 } 56 } 57 58 function fooevents_bookings_return_slot_dates(slot_element, event) { 59 var parent_result = jQuery(slot_element).attr("id").split("_"); 60 var date_element = 61 "#fooevents_bookings_date_" + parent_result[3] + "__" + parent_result[5]; 62 var selected = slot_element.find(":selected").val(); 63 64 jQuery(date_element) 65 .children() 66 .remove() 67 .end() 68 .append( 69 '<option value="">' + FooEventsBookingsFrontObj.loading + "</option>" 70 ); 71 72 var data_slots = { 73 action: "fetch_fooevents_bookings_dates", 74 selected: selected, 75 }; 76 77 jQuery.post( 78 FooEventsBookingsFrontObj.ajaxurl, 79 data_slots, 80 function (response) { 81 var slots = JSON.parse(response); 82 var date_default = jQuery(date_element).attr("data-placeholder"); 83 84 jQuery(date_element) 85 .find("option") 86 .remove() 87 .end() 88 .append('<option value="">' + date_default + "</option>") 89 .val("whatever"); 90 91 jQuery.each(slots, function (index, value) { 92 jQuery(date_element).append( 93 jQuery("<option>", { 94 value: index, 95 text: value, 96 }) 97 ); 98 }); 99 } 100 ); 101 } 102 103 function fooevents_bookings_return_date_slots(date_slot_date_element, event) { 104 var parent_result = jQuery(date_slot_date_element).attr("id").split("_"); 105 106 var slot_element = ""; 107 if (jQuery("#fooevents_bookings_slot_val__trans").length) { 108 slot_element = "#fooevents_bookings_slot_val__trans"; 109 } else { 110 slot_element = 111 "#fooevents_bookings_date_slot_slot_" + 112 parent_result[5] + 113 "__" + 114 parent_result[7]; 115 } 116 117 var selected = date_slot_date_element.find(":selected").val(); 118 119 jQuery(slot_element) 120 .children() 121 .remove() 122 .end() 123 .append( 124 '<option value="">' + FooEventsBookingsFrontObj.loading + "</option>" 125 ); 126 127 var data_slots = { 128 action: "fetch_fooevents_bookings_date_slot_slots", 129 selected: selected, 130 }; 131 132 jQuery.post( 133 FooEventsBookingsFrontObj.ajaxurl, 134 data_slots, 135 function (response) { 136 var slots = JSON.parse(response); 137 var slot_default = jQuery(slot_element).attr("data-placeholder"); 138 139 jQuery(slot_element) 140 .find("option") 141 .remove() 142 .end() 143 .append('<option value="">' + slot_default + "</option>") 144 .val("whatever"); 145 146 jQuery.each(slots, function (index, value) { 147 jQuery(slot_element).append( 148 jQuery("<option>", { 149 value: value.slot_id + "_" + value.date_id + "_" + value.product, 150 text: value.slot_label, 151 }) 152 ); 153 }); 154 } 155 ); 156 } 157 158 function fooevents_bookings_return_date_stock(date_element, event) { 159 var parent_result = jQuery(date_element).attr("id").split("_"); 160 var date_selected = date_element.find(":selected").val(); 161 162 var slot_element = 163 "#fooevents_bookings_slot_" + parent_result[3] + "__" + parent_result[5]; 164 var slot_selected = jQuery(slot_element).find(":selected").val(); 165 166 if (typeof slot_selected === "undefined") { 167 slot_selected = jQuery(slot_element).val(); 168 } 169 170 var info_element = 171 "#fooevents-checkout-attendee-info-" + 172 parent_result[3] + 173 "-" + 174 parent_result[5]; 175 176 var data_date_stock = { 177 action: "fetch_fooevents_bookings_date_stock", 178 slot_selected: slot_selected, 179 date_selected: date_selected, 180 }; 181 182 jQuery.post( 183 FooEventsBookingsFrontObj.ajaxurl, 184 data_date_stock, 185 function (response) { 186 var returned_stock = JSON.parse(response); 187 jQuery(info_element).html(returned_stock.stock); 188 189 jQuery("#fooevents-bookings-stock").val(returned_stock.stock_val); 190 jQuery(".qty").attr("max", returned_stock.stock_val); 191 if (returned_stock.stock_val == 0) { 192 jQuery(".single_add_to_cart_button").attr("disabled", true); 193 } else { 194 jQuery(".single_add_to_cart_button").attr("disabled", false); 195 } 196 } 197 ); 198 } 199 200 function fooevents_bookings_return_slot_date_stock(slot_date_element, event) { 201 var parent_result = jQuery(slot_date_element).attr("id").split("_"); 202 var slot_date_selected = slot_date_element.find(":selected").val(); 203 204 var info_element = 205 "#fooevents-checkout-attendee-info-" + 206 parent_result[4] + 207 "-" + 208 parent_result[6]; 209 210 var data_slot_date_stock = { 211 action: "fetch_fooevents_bookings_slot_date_stock", 212 slot_date_selected: slot_date_selected, 213 }; 214 215 jQuery.post( 216 FooEventsBookingsFrontObj.ajaxurl, 217 data_slot_date_stock, 218 function (response) { 219 var returned_stock = JSON.parse(response); 220 jQuery(info_element).html(returned_stock.stock); 221 222 jQuery("#fooevents-bookings-stock").val(returned_stock.stock_val); 223 jQuery(".qty").attr("max", returned_stock.stock_val); 224 if (returned_stock.stock_val == 0) { 225 jQuery(".single_add_to_cart_button").attr("disabled", true); 226 } else { 227 jQuery(".single_add_to_cart_button").attr("disabled", false); 228 } 229 } 230 ); 231 } 232 233 function fooevents_bookings_return_date_slot_stock(slot_element, event) { 234 var parent_result = jQuery(slot_element).attr("id").split("_"); 235 var date_slot_slot_selected = slot_element.find(":selected").val(); 236 237 var date_element = ""; 238 if (jQuery("#fooevents_bookings_date_val__trans").length) { 239 date_element = "#fooevents_bookings_date_val__trans"; 240 } else { 241 date_element = 242 "#fooevents_bookings_date_slot_date_" + 243 parent_result[5] + 244 "__" + 245 parent_result[7]; 246 } 247 248 var date_slot_date_selected = jQuery(date_element).find(":selected").val(); 249 250 var info_element = 251 "#fooevents-checkout-attendee-info-" + 252 parent_result[5] + 253 "-" + 254 parent_result[7]; 255 if (!jQuery(info_element).length) { 256 info_element = ".fooevents-checkout-attendee-info"; 257 } 258 259 var data_date_slot_stock = { 260 action: "fetch_fooevents_bookings_date_slot_stock", 261 date_slot_slot_selected: date_slot_slot_selected, 262 date_slot_date_selected: date_slot_date_selected, 263 }; 264 265 if (date_slot_slot_selected && date_slot_date_selected) { 266 jQuery.post( 267 FooEventsBookingsFrontObj.ajaxurl, 268 data_date_slot_stock, 269 function (response) { 270 var returned_stock = JSON.parse(response); 271 jQuery(info_element).html(returned_stock.stock); 272 273 jQuery("#fooevents-bookings-stock").val(returned_stock.stock_val); 274 jQuery(".qty").attr("max", returned_stock.stock_val); 275 276 if (returned_stock.stock_val == 0) { 277 jQuery(".single_add_to_cart_button").attr("disabled", true); 278 } else { 279 jQuery(".single_add_to_cart_button").attr("disabled", false); 280 } 281 } 282 ); 283 } else { 284 jQuery(info_element).html(""); 285 } 286 } 287 288 function fooevents_bookings_reset_date_slot() { 289 jQuery("#fooevents_bookings_date_val__trans option").each(function () { 290 jQuery(this).remove(); 291 jQuery("#fooevents-checkout-attendee-info-val-trans").html(""); 292 });
293 var date_default = jQuery("#fooevents_bookings_date_val__trans").attr( 294 "data-placeholder" 295 ); 296 jQuery("#fooevents_bookings_date_val__trans").append( 297 '<option value="">' + date_default + "</option>" 298 ); 299 jQuery("#fooevents_bookings_slot_val__trans option:eq(0)").attr( 300 "selected", 301 "selected" 302 ); 303 jQuery("#fooevents_bookings_date_val__trans option:eq(0)").attr( 304 "selected", 305 "selected" 306 ); 307 jQuery("#fooevents_bookings_slot_date_val_trans option:eq(0)").attr( 308 "selected", 309 "selected" 310 ); 311 } 312})(jQuery);
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.