1/** 2 * Javascript: RSVP Events Calendar 3 * @version 3.0.12 4 */ 5jQuery(document).ready(function($){ 6 7 8 var JDATA = {}; 9 var submit_open = false; 10 11 12 // load JSON DATA for event's rsvp into local object 13 function load_json_to_local(O){ 14 JDATA = O.closest('.evo_metarow_rsvp').find('.evors_jdata').data('j'); 15 } 16 17 // RSVP form function 18 $.fn.evors_form = function (opt){ 19 var form = this; 20 const form_holder = form.closest('.evors_forms'); 21 22 var formtype = form.find('input[name="formtype"]').val(); 23 24 works = { 25 reset_notifications: function(elm){ 26 $('.evors_lightbox_body').removeClass('error'); 27 $('.evolb_content').removeClass('error'); 28 elm.removeClass('err'); 29 $('.evors_lightbox_body').find('.notification').hide(); 30 }, 31 interaction: function(){ 32 33 var ERROR = false; 34 35 // capacity check 36 form.on('change','input[name="count"]', function(){ 37 38 //ERROR = false; 39 var O = $(this); 40 41 // reset 42 works.reset_notifications( O ); 43 44 CAP = JDATA.cap; 45 true_capacity = JDATA.true_cap; 46 PERCAP = JDATA.precap; 47 form = O.closest('.evors_submission_form'); 48 const oldCount = O.data('oval'); 49 const rsvp_type = form.find('input[name=rsvp_type]').val(); 50 51 VAL = parseInt(O.val()); // new rsvp count 52 original_rsvp_cap = parseInt( O.attr('value') ); 53 54 // change RSVP form 55 if( formtype == 'update'){ // updating a rsvp 56 //console.log(CAP); 57 //console.log(VAL +' '+original_rsvp_cap + ' '+ oldCount); 58 //console.log(true_capacity); 59 60 // for waitlist -- addon hook 61 if( CAP == 'wl' ){ // available capacity is 0 & waitlist is ON 62 // no space left but waitlist 63 if( VAL > original_rsvp_cap ){ // if increasing spaces 64 $(this).addClass('err'); 65 works.show_msg('err9'); 66 ERROR = true; 67 } 68 }else{ 69 70 // if increasing the count 71 //if( O.data('oval')) original_rsvp_cap = parseInt( O.data('oval')); 72 if( VAL > original_rsvp_cap ){ 73 const increased_spaces = VAL - original_rsvp_cap; 74 75 if( increased_spaces > true_capacity ){ 76 //O.val( original_rsvp_cap );// reset the count to available max 77 $(this).addClass('err'); 78 works.show_msg('err9'); 79 ERROR = true; 80 } 81 } 82 } 83 84 }else{ 85 // check avialable space vs party size 86 if(VAL > parseInt(CAP) && CAP!= 'na'){ 87 $(this).addClass('err'); 88 works.show_msg('err9','','', 2000 ); 89 ERROR = true; 90 91 O.val( CAP ); // reset the capacity to max value 92 } 93 // check per each rsvp capacity vs party size 94 if(VAL > parseInt(PERCAP) && PERCAP!= 'na'){ 95 $(this).addClass('err'); 96 works.show_msg('err10'); 97 ERROR = true; 98 } 99 } 100 101 // no errors reset error notifications 102 if( !ERROR ){ 103 works.reset_error(); 104 } 105 106 // if valid capacity add additional guests 107 if(!ERROR){ 108 109 var guestNames = form.find('.form_guest_names'); 110 var maskField = `<input class="regular input" name="names[]" type="text" placeholder="${evors_ajax_script.text.guest_name}">`; 111 var inputHolder = guestNames.find('.form_guest_names_list'); 112 113 114 if(VAL>1){ 115 116 var ExistInputCount = inputHolder.find('input').length; 117 118 // Add or remove input fields 119 if ((VAL - 1) > ExistInputCount) { // Add 120 var appender = ''; 121 for (var x = 0; x < (VAL - 1 - ExistInputCount); x++) { 122 appender += maskField; 123 } 124 inputHolder.append(appender); 125 } else { 126 inputHolder.find('input').each(function(index) { 127 if (index >= (VAL - 1)) $(this).remove(); 128 }); 129 } 130 guestNames.show(); 131 132 }else{ 133 guestNames.hide(); 134 inputHolder.html( maskField); 135 } 136 } 137 }); 138 139 // change RSVP status within the form 140 form.on('click', 'span.evors_choices', function(){ 141 var OBJ = $(this); 142 143 var VAL = OBJ.data('val'); 144 form.attr('class','evors_gen_form evors_submission_form rsvp_'+VAL); 145 OBJ.siblings().removeClass('set'); 146 OBJ.addClass('set'); 147 148 OBJ.parent().siblings('input').val( VAL ); 149 }); 150 151 // plus minus changer 3.0.6 152 $('body').on('evo_plusminus_changed', function(e, NEWQTY, MAX, OBJ){ 153 $(OBJ).siblings('input').trigger('change'); 154 }); 155 156 // close RSVP form from incard close button 157 form.on('click','.evors_incard_close',function(){ 158 $(this).closest('.evors_incard_form').hide(); 159 // reset any selected RSVP choices 160 $(this).closest('.evo_metarow_rsvp').find('.evors_choices').removeClass('set'); 161 }); 162 163 // Checkbox field 164 form.on('click', '.evors_checkbox_field', function() { 165 var O = $(this); 166 if (O.hasClass('checked')) { 167 O.removeClass('checked'); 168 O.siblings('input').val('no'); 169 } else { 170 O.addClass('checked'); 171 O.siblings('input').val('yes'); 172 } 173 }); 174 }, 175 176 // show form message 177 show_msg: function (code, type, message, hide_message ){ 178 179 if(message == '' || message === undefined){ 180 var C = form_holder.find('.evors_msg_').data('j'); 181 var classN = (type== undefined || type=='error' || type == '')? 'err':type; 182 message = message || C.codes[code]; 183 } 184 form_holder.find('.notification').addClass(classN).show().find('p').html(message); 185 form_holder.parent().addClass('error'); 186 form.addClass('error'); 187 188 if( hide_message > 0 ){ 189 setTimeout( function(){ 190 works.reset_error(); 191 }, hide_message ); 192 } 193 }, 194 195 // reset form error message 196 reset_error: function(){ 197 form_holder.find('.notification').hide().find('p').html(''); 198 form_holder.parent().removeClass('error'); 199 form.removeClass('error'); 200 } 201 } 202 203 works.interaction(); // Calling the interaction function 204 205 return this; 206 } 207 208 209 // open RSVP form from anywhere @since 2.8.3 210 $('body').on('click','.evors_trig_open_rsvp_form', function(event){ 211 event.preventDefault(); 212 event.stopPropagation(); 213 214 show_rsvp_form( $(this), $(this).attr('data-val'), 'submit'); 215 }); 216 $('body').on('click','.evoRS_status_option_selection span.evors_choices',function(){ 217 show_rsvp_form( $(this), $(this).attr('data-val'), 'submit'); 218 }); 219 220 // RSVP from eventtop 221 $('body').on('click', '.evors_rsvpiable span.evors_choices', function(event){ 222 event.preventDefault(); 223 event.stopPropagation(); 224 225 load_json_to_local( $(this) ); 226 227 var obj = $(this), 228 rsvp = obj.closest('.evors_rsvpiable'), 229 evoet_rsvp = obj.closest('.evoet_rsvp'), 230 ajaxdataa = {}; 231 232 ajaxdataa['rsvp']= obj.data('val'); 233 ajaxdataa['lang']= rsvp.data('lang'); 234 ajaxdataa['uid']= rsvp.data('uid'); 235 ajaxdataa['updates']= 'no';
236 ajaxdataa['action']='the_ajax_evors_a7'; 237 ajaxdataa['repeat_interval']= rsvp.data('ri'); 238 ajaxdataa['e_id']= parseInt(rsvp.data('eid')); 239 240 241 var event_uid = 'event_'+ ajaxdataa.e_id +'_'+ ajaxdataa.repeat_interval; 242 243 $.ajax({ 244 beforeSend: function(){ 245 evoet_rsvp.addClass('evoloading'); 246 }, 247 type: 'POST', 248 url:evors_ajax_script.ajaxurl, 249 data: ajaxdataa, 250 dataType:'json', 251 success:function(data){ 252 if(data.status=='0'){ 253 $('body').trigger('evors_new_rsvp_eventtop'); 254 255 // update events eventwhere 256 $('body').find('.eventon_list_event.'+event_uid).each(function(){ 257 258 // show success message 259 evoet_rsvp.html(data.message); 260 261 // update eventtop html content 262 setTimeout( function(){ 263 evoet_rsvp.html( data.content_eventtop ); 264 },3000); 265 266 267 $(this).find('.evors_eventtop_section_data').replaceWith(data.content); 268 269 // update event card 270 if( data.card_content !== undefined){ 271 $(this).find('.evors_eventcard_content').html( data.card_content); 272 } 273 }); 274 275 }else{ 276 rsvp.append('<span class="error">'+data.message+'</span>'); 277 } 278 },complete:function(){ 279 evoet_rsvp.removeClass('evoloading'); 280 } 281 }); 282 }); 283 284 // RSVP form submissions & update existing 285 $('body').on('click', '.evors_submit_rsvpform_btn', function(e){ 286 e.preventDefault(); 287 288 var obj = O = $(this), 289 ajaxdataa = { }, 290 form = obj.closest('form.evors_submission_form'), 291 FORMPAR = form.parent(), 292 formSection = form.parent(), 293 error = 0, 294 formType = form.find('input[name="formtype"]').val(), 295 lightbox = false; 296 const $count = parseInt(form.find('input[name=count]').val() ); 297 const $countMax = parseInt(form.find('input[name=count]').data('max') ); 298 const newRSVP_status = form.find('input[name=rsvp]').val(); 299 300 // reset form error messages 301 rsvp_hide_notifications(); 302 FORMPAR.parent().removeClass('error'); 303 304 // validation 305 // capacity check 306 if(error==0){ 307 var changeCount = $count; 308 if(formType=='update'){ 309 pastVal = parseInt(form.find('input[name=count]').attr('data-oval')); 310 changeCount = $count - pastVal; 311 } 312 313 314 if(form.find('.rsvp_status span.set').data('val')!='n' 315 && JDATA.cap 316 && JDATA.cap !='na' 317 ){ 318 319 var error2 = false; 320 321 // For waitlist: only error if updating and trying to increase count 322 if( JDATA.cap == 'wl' && formType == 'update' ){ 323 if( changeCount > 0 ) error2 = true; 324 }else if( JDATA.cap != 'wl' ){ 325 if( changeCount > parseInt(JDATA.cap) ) error2 = true; 326 } 327 328 329 if( error2 ){ 330 //console.log('rr'); 331 error=4; 332 form.find('input[name=count]').addClass('err'); 333 334 // Use err11 if waitlist and no spaces, else err9 335 const errCode = (JDATA.cap == 'wl' && changeCount > 0) ? 'err11' : 'err9'; 336 rsvp_error(errCode,'','',form); 337 } 338 } 339 // max count limit 340 if( JDATA.precap!='na' && $count > parseInt(JDATA.precap) ){ 341 error=4; 342 form.find('input[name=count]').addClass('err'); 343 rsvp_error('err10','','',form); 344 //console.log('10'); 345 } 346 //console.log(JDATA); 347 348 // cap check for updating RSVP 349 if( formType == 'update' && JDATA.cap != 'wl' && $count > $countMax && newRSVP_status != 'n'){ 350 error=4; 351 form.find('input[name=count]').addClass('err'); 352 rsvp_error('err10','','',form); 353 //console.log('10a'); 354 } 355 } 356 // run through each rsvp field 357 form.find('.form_row.req').each(function(index){ 358 359 const row = $(this); 360 row.removeClass('err'); 361 362 // for text fields 363 iO = $(this).find('input'); 364 365 if( iO.length > 0){ 366 $.each(iO, function(){ 367 ioo = $(this); 368 369 // required checkbox field 370 if( ioo.hasClass('checkbox') && ioo.val()=='no'){ 371 error = 1; 372 row.addClass('err'); 373 } 374 375 // check required fields filled 376 if( ioo.val()=='' && ioo.is(":visible")){ 377 error = 1; 378 row.addClass('err'); 379 } 380 381 if( ioo.val() == '' ) return true; 382 });
383 } 384 385 386 // for required select fields 387 if( $(this).find('select').length > 0 && $(this).find('select').val() == '-'){ 388 error = 1; 389 row.addClass('err'); 390 } 391 392 393 }); 394 395 // validate email 396 if(error==0){ 397 var thisemail = form.find('input[name=email]'); 398 if(!is_email(thisemail.val().trim() )){ 399 thisemail.addClass('err'); 400 rsvp_error('err2','','', form); // invalid email address 401 error = 2; 402 } 403 } 404 405 // validate human 406 if(error==0){ 407 var human = rsvp_validate_human( form.find('input.captcha') ); 408 if(!human){ 409 error=3; 410 rsvp_error('err6','','',form); 411 } 412 } 413 414 // if form type is wl-remove 415 if(formType == 'wl-remove') error = 0; 416 417 // if no errors proceed 418 if(error==0){ 419 var updates = form.find('.updates input').attr('checked'); 420 updates = (updates=='checked')? 'yes':'no'; 421 422 ajaxdataa['action']='the_ajax_evors'; 423 form.ajaxSubmit({ 424 //$.ajax({ 425 beforeSend: function(){ 426 //form.parent().addClass('loading'); 427 O.addClass('evobtn_loader full'); 428 }, 429 type: 'POST',url:evors_ajax_script.ajaxurl,data: ajaxdataa,dataType:'json', 430 success:function(data){ 431 if(data.status=='0'){ 432 433 434 FORMPAR.parent().html(data.message); 435 EVENTCARD = $('body').find('.event_'+data.e_id+'_'+ data.ri ); 436 437 // if lightbox event 438 lb_eventcard = $('body').find('.evo_lightbox_body.event_'+ data.e_id+'_'+ data.ri); 439 440 // update event top data 441 if( 'data_content_eventtop' in data){ 442 // lightbox 443 if(lb_eventcard.find('.evors_eventtop_section_data').length>0){ 444 lb_eventcard.find('.evors_eventtop_section_data').replaceWith( data.data_content_eventtop ); 445 } 446 447 // calednar 448 if(EVENTCARD.find('.evors_eventtop_section_data').length>0){ 449 EVENTCARD.find('.evors_eventtop_section_data').replaceWith( data.data_content_eventtop ); 450 } 451 } 452 if('data_content_eventtop_your' in data){ 453 // lightbox 454 if(lb_eventcard.find('.evors_eventop_rsvped_data').length>0){ 455 lb_eventcard.find('.evors_eventop_rsvped_data').replaceWith( data.data_content_eventtop_your ); 456 } 457 // calendar 458 if(EVENTCARD.find('.evors_eventop_rsvped_data').length>0){ 459 EVENTCARD.find('.evors_eventop_rsvped_data').replaceWith( data.data_content_eventtop_your ); 460 } 461 } 462 463 // update Event Card 464 if(data.e_id){ 465 if(data.data_content_eventcard != ''){ 466 const incard_form_html = EVENTCARD.find('.evors_incard_form').html(); 467 468 EVENTCARD.find('.evors_eventcard_content').html( data.data_content_eventcard); 469 lb_eventcard.find('.evors_eventcard_content').html( data.data_content_eventcard); 470 471 // update incard rsvp form @since 2.8.4 472 if( EVENTCARD.find('.evors_incard_form').is(":visible") ){ 473 EVENTCARD.find('.evors_incard_form').html( incard_form_html ).show(); 474 } 475 476 } 477 } 478 // update event manager stuff 479 if( $('body').find('#rsvp_event_'+data.e_id).length>0 && data.new_rsvp_text){ 480 STATUS = $('#rsvp_event_'+data.e_id).find('span.rsvpstatus'); 481 STATUS.html( data.new_rsvp_text); 482 STATUS.attr('class','rsvpstatus status_'+data.new_rsvp_text); 483 } 484 485 // update virtual event information 486 if( $('body').find('.evo_vir_data').length>0){ 487 const vir_data_box = $('body').find('.evo_vir_data'); 488 489 if( vir_data_box.data('single') !== undefined 490 && vir_data_box.data('single') == 'y' && 491 vir_data_box.data('refresh') 492 ){ 493 extra_data = {}; 494 extra_data['refresh_main'] = 'yy'; 495 $('body').trigger('evo_refresh_designated_elm',[ vir_data_box,'evo_vir_data', extra_data]); 496 } 497 } 498 499 500 }else{
501 var passedRsvppd = (data.status)? 'err'+data.status:'err7'; 502 rsvp_error(passedRsvppd, '', data.message,form); 503 } 504 },complete:function(){ 505 form.parent().removeClass('loading'); 506 O.removeClass('evobtn_loader full'); 507 } 508 }); 509 }else if(error==1){ rsvp_error('err','','',form); } 510 }); 511 512 // CHANGE RSVP 513 // change a RSVP 514 $("body").on('click','.evors_change_rsvp_trig',function(e){ 515 e.preventDefault(); 516 OBJ = $(this); 517 518 // extra data 519 var _extra_data = {}; 520 _extra_data['rsvpid'] = OBJ.data('rsvpid'); 521 522 show_rsvp_form(OBJ, '','update', _extra_data ); 523 }) 524 // find rsvp form from rsvo form 525 .on('click','#lookup_rsvp_trig',function(e){ 526 e.preventDefault(); 527 OBJ = $(this); 528 var _extra_data = {}; 529 //_extra_data['rsvpid'] = OBJ.data('rsvpid'); 530 _extra_data['force_change'] = true; 531 OBJ.addClass('evobtn_loader full'); 532 show_rsvp_form(OBJ, '','update', _extra_data ); 533 }); 534 535 // from successful rsvped page 536 $('body').on('click','.evors_change_trig',function(){ 537 OBJ = $(this); 538 539 // loading animation 540 OBJ.closest('.evors_forms').addClass('loading'); 541 542 // load Json data 543 JDATA = OBJ.data('j'); 544 545 show_rsvp_form(OBJ, '','update'); 546 }); 547 // From rsvp manager 548 $('.eventon_rsvp_rsvplist').on('click','.update_rsvp',function(){ 549 OBJ = $(this); 550 PAR = OBJ.parent(); 551 552 // load Json data 553 JDATA = OBJ.parent().siblings('.evors_jdata').data('j'); 554 555 show_rsvp_form(OBJ, '','update'); 556 }); 557 558 // Show RSVP lightbox form 559 function show_rsvp_form(OBJ, RSVP,formtype, extra_data){ 560 var ajaxdataa = {}; 561 ajaxdataa['action']='evors_get_rsvp_form'; 562 563 ROW = OBJ.closest('.evo_metarow_rsvp'); 564 if(OBJ.closest('.evo_metarow_rsvp').length) load_json_to_local( OBJ); 565 566 if(JDATA){ 567 $.each(JDATA, function(index, val){ 568 ajaxdataa[index] = val; 569 }); 570 } 571 572 if( extra_data && extra_data !== undefined){ 573 $.each(extra_data, function(ind, vall){ 574 ajaxdataa[ ind ] = vall; 575 }); 576 } 577 578 ajaxdataa['rsvp'] = RSVP; 579 ajaxdataa['formtype'] = formtype; 580 const FORM = OBJ.closest('.evors_forms'); 581 FORMNEST = FORM.parent(); 582 583 $.ajax({ 584 beforeSend: function(){ loading(OBJ); }, 585 url: evors_ajax_script.ajaxurl,data: ajaxdataa, dataType:'json', type: 'POST', 586 success:function(data){ 587 if(data.status=='good'){ 588 // show form inside eventcard 589 if( ajaxdataa.incard =='yes'){ 590 ROW.find('.evors_incard_form') 591 .removeClass('error') 592 .html( data.content ) 593 .slideDown('fast'); 594 // open dynamic lightbox 595 }else{ 596 597 var is_LB_exists = $('body').find('.evors_lightbox.evo_lightbox').length ? true: false; 598 599 600 if( is_LB_exists ){ 601 const LB = $('body').find('.evors_lightbox.evo_lightbox'); 602 LB.find('.evolb_content').html( data.content); 603 }else{ 604 var lb_ajax_data = { 605 lbdata:{ 606 class:'evors_lightbox', 607 padding:'evopad0', 608 additional_class: ( ajaxdataa['form_style'] == 'clean' ? 'clean':''), 609 content: data.content 610 }, 611 adata:{ end:'_client' } 612 }; 613 ROW.evo_lightbox_open( lb_ajax_data ); 614 } 615 616 // Change rsvp form -- focus on input field 617 if( ajaxdataa.formtype == 'update' && ajaxdataa.rsvpid == ''){ 618 setTimeout(function(){ $('body').find('.evors_findrsvp_trig').focus(); },500); 619 } 620 621 $('body').trigger('evolightbox_show'); 622 } 623 624 $('body').find('form.evors_gen_form').evors_form(); 625 626 }else{ 627 // error notice *** 628 } 629 },complete:function(){ 630 completeloading(OBJ); 631 FORMNEST.closest('.evorow').removeClass('loading'); 632 FORM.removeClass('loading'); 633 } 634 }); 635 } 636 637 // during ajax eventcard loading 638 function loading(obj){ 639 640 if( obj.hasClass('change')){ 641 obj.addClass('evobtn_loader'); 642 return; 643 } 644 645 obj.closest('.evorow').addClass('loading'); 646 obj.closest('.trig_evo_loading').addClass('evoloading'); 647 obj.closest('p.rsvpmanager_event').addClass('loading'); 648 } 649 function completeloading(obj){ 650 obj.closest('.evorow').removeClass('loading'); 651 obj.closest('.trig_evo_loading').removeClass('evoloading'); 652 obj.closest('p.rsvpmanager_event').removeClass('loading'); 653 654 if( obj.hasClass('change')) obj.removeClass('evobtn_loader'); 655 } 656 657 // Find RSVP 658 $(document).on('keypress', '.evors_findrsvp_trig', function (e) { 659 if (e.which === 13) { // Enter key 660 e.preventDefault(); // Prevent default Enter behavior (e.g., newline) 661 $('body').find('.evors_findrsvp_form_btn').trigger('click'); 662 } 663 }); 664 $('body').on('click','.evors_findrsvp_form_btn', function(){ 665 var obj = $(this); 666 var form = obj.closest('form.evors_findrsvp_form'); 667 var error = 0; 668 669 // get form data 670 var formdata = form.serializeArray().reduce(function(obj, item) { 671 obj[item.name] = item.value; 672 return obj;
673 }, {}); 674 675 f_holder = obj.closest('.evors_forms'); 676 677 // run through each rsvp field 678 form.find('.input').each(function(index){ 679 // check required fields filled 680 if( $(this).hasClass('req') && $(this).val()=='' ){ 681 error = 1; 682 } 683 }); 684 if(error=='1'){ 685 rsvp_error('err','','',form); 686 }else{ 687 var ajaxdataa = {}; 688 ajaxdataa['action']='evors_find_rsvp_form'; 689 form.ajaxSubmit({ 690 beforeSend: function(){ obj.addClass('evobtn_loader full'); }, 691 url: evors_ajax_script.ajaxurl, 692 data: ajaxdataa, dataType:'json', type: 'POST', 693 success:function(data){ 694 if(data.status=='good'){ 695 696 if( formdata.incard == 'yes'){ 697 698 }else{ 699 700 } 701 702 f_holder.parent().removeClass('error').addClass('t'); 703 f_holder.parent().html( data.content ); 704 705 $('body').find('form.evors_gen_form').evors_form(); 706 707 }else{ 708 rsvp_error('err5','','',form); 709 } 710 obj.removeClass('evobtn_loader full'); 711 },complete:function(){ } 712 }); 713 } 714 }); 715 716 // hover over guests list icons 717 $('body').on('mouseover','.evors_whos_coming span.initials', function(){ 718 OBJ = $(this); 719 EM = OBJ.parent().find('em.tooltip'); 720 TEXT = OBJ.data('name'); 721 722 POS = OBJ.position(); 723 724 EM.css({'left':(POS.left+20), 'top':(POS.top-30)}).html(TEXT).show(); 725 726 }); 727 $('body').on('mouseout','.evors_whos_coming span', function(){ 728 OBJ = $(this); 729 EM = OBJ.parent().find('em.tooltip'); 730 EM.hide(); 731 }); 732 733 // Buddypress profile linking 734 $('body').on('click','.evors_whos_coming span',function(){ 735 LINK = $(this).data('link'); 736 737 if(LINK != 'na') 738 window.open(LINK, '_blank'); 739 }); 740 741 742 743// ADDONS 744 // action user event manager 745 // show rsvp stats for events 746 $('#evoau_event_manager').on('click','a.load_rsvp_stats',function(event){ 747 event.preventDefault(); 748 O = $(this); 749 750 var data_arg = { 751 eid: O.data('eid'), 752 ri: O.data('ri'), 753 data: O.closest('.evoau_manager').find('.evoau_manager_json').data('js') 754 }; 755 756 load_rsvp_stats( O , data_arg); 757 }); 758 // refresh rsvp data 759 $(document).on('click','.evorsau_refresh_data',function(){ 760 O = $(this); 761 var data_arg = { 762 eid: O.closest('.evoau_manager_continer').data('eid'), 763 ri: O.closest('.evoau_manager_continer').data('ri'), 764 data: O.closest('.evoau_manager').find('.evoau_manager_json').data('js') 765 }; 766 767 load_rsvp_stats( O , data_arg, true); 768 }); 769 770 function load_rsvp_stats(O, data_arg, refresh){ 771 data_arg['action'] = 'evors_ajax_get_auem_stats'; 772 MANAGER = O.closest('.evoau_manager'); 773 $.ajax({
774 beforeSend: function(){ 775 MANAGER.find('.trig_evo_loading').addClass('evoloading'); 776 MANAGER.find('.eventon_actionuser_eventslist').addClass('evoloading'); 777 }, 778 type: 'POST', 779 url:evors_ajax_script.ajaxurl, 780 data: data_arg, 781 dataType:'json', 782 success:function(data){ 783 if( refresh){ 784 MANAGER.find('.evoau_manager_event_content').html( data.html ); 785 }else{ 786 $('body').trigger('evoau_show_eventdata',[MANAGER, data.html, true]); 787 } 788 789 },complete:function(){ 790 MANAGER.find('.eventon_actionuser_eventslist').removeClass('evoloading'); 791 MANAGER.find('.trig_evo_loading').removeClass('evoloading'); 792 } 793 }); 794 } 795 796 // find an attendee 797 $(document).on('click','.evorsau_trig_find_attendee',function(){ 798 $(this).parent().siblings('.evorsau_find_rsvp').toggle(); 799 }); 800 $(document).on('change paste keyup','input.evorsau_find_attendee',function(){ 801 var O = $(this); 802 var val = O.val(); 803 const section = O.closest('.evorsau_attendee_list'); 804 805 section.find('li').each(function(){ 806 var show = false; 807 // if rsvp id typed and it matches 808 if( val == $(this).data('rsvpid')) show = true; 809 if( val == $(this).data('e')) show = true; 810 if( $(this).data('e').includes( val)) show = true; 811 if( val == '') show = true; 812 813 (show) ? $(this).show(): $(this).hide(); 814 }); 815 }); 816 817 // register attendee on the spot 818 $('body').on('click','.evorsau_trig_rsvp_form',function(){ 819 OBJ = $(this); 820 // load Json data 821 JDATA = OBJ.siblings('.evors_jdata').data('j'); 822 823 var extra_data = {}; 824 extra_data['loginuser'] = 'no'; 825 show_rsvp_form(OBJ, '','submit', extra_data); 826 }); 827 828 // checkin guests 829 $('.evoau_manager_event').on('click','span.checkin',function(){ 830 var obj = $(this); 831 var PAR = obj.closest('.evorsau_attendee_list'); 832 833 if(!PAR.hasClass('checkable')) return false; 834 835 var status = obj.attr('data-status'); 836 837 status = (status=='' || status=='check-in')? 'checked':'check-in'; 838 839 var data_arg = { 840 action: 'the_ajax_evors_f4', 841 rsvp_id: obj.attr('data-id'), 842 status: status, 843 nonce: PAR.find('input#evors_nonce').val() 844 }; 845 $.ajax({
846 beforeSend: function(){ 847 obj.html( obj.html()+'...'); 848 }, 849 type: 'POST', 850 url:evors_ajax_script.ajaxurl, 851 data: data_arg, 852 dataType:'json', 853 success:function(data){ 854 //alert(data); 855 obj.attr({'data-status':status}).html(data.new_status_lang) 856 .removeAttr('class') 857 .addClass(status+' checkin'); 858 } 859 }); 860 }); 861 // waitlist 862 // Remove from waitlist 863 $('body').on('click','.evorsw_remove_wl',function(){ 864 865 FORM = $(this).closest('form'); 866 867 // update form values to remove from waitlist 868 FORM.find('input[name="formtype"]').val('wl-remove'); 869 870 // submit form 871 FORM.find('.evors_submit_rsvpform_btn').trigger('click'); 872 873 }); 874 875// Supporting functions 876 // eventon 4.9.2 -- remove 877 $('body').on('click', '.evo_elm_dynamic_select_trig',function(e){ 878 e.preventDefault(); 879 }); 880 // show error messages 881 function rsvp_error(code, type, message, O){ 882 FORM = O.closest('.evors_forms'); 883 F = FORM.find('form'); 884 885 if(message == '' || message === undefined){ 886 var C = FORM.find('.evors_msg_').data('j'); 887 var classN = (type== undefined || type=='error' || type == '')? 'err':type; 888 message = C.codes[code] 889 } 890 FORM.find('.notification').addClass(classN).show().find('p').html(message); 891 FORM.parent().addClass('error'); 892 F.addClass('error'); 893 } 894 895 // hide form messages 896 function rsvp_hide_notifications(){ 897 $('.evors_lightbox_body').find('.notification').hide(); 898 } 899 // validate humans 900 function rsvp_validate_human(field){ 901 if(field==undefined){ 902 return true; 903 }else{ 904 var numbers = ['11', '3', '6', '3', '8']; 905 if(numbers[field.attr('data-cal')] == field.val() ){ 906 return true; 907 }else{ return false;} 908 } 909 } 910 911 function is_email(email){ 912 var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 913 return regex.test(email); 914 } 915});
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.