1/* 2 * Javascript: EventON functions for all calendars 3 * @version: 4.3.5 4 */ 5(function($){ 6 7 // Calendar function s 8 $.fn.evo_cal_functions = function(O){ 9 el = this; 10 switch(O.return){ 11 // load shortcodes inside calendar data 12 case 'load_shortcodes': 13 return el.find('.evo_cal_data').data('sc'); 14 break; 15 case 'update_shortcodes': 16 el.find('.evo_cal_data').data( 'sc', O.SC ); 17 break; 18 } 19 }; 20 21 // access page GLOBALS 22 $.fn.evo_get_global = function(opt){ 23 var defaults = { S1:'', S2:''}; 24 var OPT = $.extend({}, defaults, opt); 25 26 var BUS = $('#evo_global_data').data('d'); 27 28 if(!(OPT.S1 in BUS)) return false; 29 if(!(OPT.S2 in BUS[OPT.S1])) return false; 30 return BUS[OPT.S1][OPT.S2]; 31 } 32 $.fn.evo_get_txt = function(opt){ 33 var defaults = { V:''} 34 var OPT = $.extend({}, defaults, opt); 35 36 var BUS = $('#evo_global_data').data('d'); 37 if(!('txt' in BUS)) return false; 38 if(!(OPT.V in BUS.txt)) return false; 39 return BUS.txt[OPT.V]; 40 } 41 $.fn.evo_get_cal_def = function(opt){ 42 var defaults = { V:''} 43 var OPT = $.extend({}, defaults, opt); 44 45 var BUS = $('#evo_global_data').data('d'); 46 if(!('cal_def' in BUS)) return false; 47 if(!(OPT.V in BUS.cal_def)) return false; 48 return BUS.cal_def[OPT.V]; 49 } 50 51 // return dms translates values from global data 52 // added 4.0 53 $.fn.evo_get_dms_vals = function(opt){ 54 // type = d, d1,d3, m, m3 55 // V = 0-x 56 var defaults = { type:'d', V:''} 57 var OPT = $.extend({}, defaults, opt); 58 59 var BUS = $('#evo_global_data').data('d'); 60 if(!('dms' in BUS)) return false; 61 if(!(OPT.type in BUS.dms)) return false; 62 63 return BUS.dms[ OPT.type ][ OPT.V ]; 64 65 } 66 67 // GENERAL AJAX ACCESS + 4.1.2 68 $.fn.evo_admin_get_ajax = function(opt){ 69 var defs = { 70 'lightbox_key':'', // same as lightbox class 71 'lightbox_loader': true, 72 'load_new_content': true, 73 'load_new_content_id': '', // @since 4.3.5 74 'hide_lightbox':false, // @since 4.3.5 75 'hide_message':2000, // @since 4.3.5 76 'ajaxdata':{ 77 'load_lbcontent':'', 78 'load_new_content':'' 79 }, 80 'uid':'', 81 'end':'admin', // admin or client 82 'loader_el':'', 83 'ajax_type':'ajax', 84 'ajax_action':'', 85 } 86 87 var el = $(this); 88 var OO = $.extend({}, defs, opt); 89 90 //console.log(OO); 91 92 93 var ajaxdata = OO.ajaxdata; 94 95 // passing nonce 96 ajaxdata['nn'] = ( OO.end == 'client' ) ? evo_general_params.n : evo_admin_ajax_handle.postnonce; 97 98 // uid use ajax_action as backup 99 if( OO.uid == '' && OO.ajax_action != '') OO.uid = OO.ajax_action; 100 101 LB = false; 102 if( OO.lightbox_key != '') LB = $('body').find('.evo_lightbox.'+ OO.lightbox_key); 103 104 105 var returnvals = ''; 106 107 // process action value 108 if( 'a' in ajaxdata ) ajaxdata['action'] = ajaxdata.a; 109 110 // ajax url processing 111 var ajax_url = el.evo_get_ajax_url({a: OO.ajax_action, e: OO.end, type: OO.ajax_type}); 112 113 $.ajax({ 114 beforeSend: function(){ 115 $('body').trigger('evo_ajax_beforesend_' + OO.uid ,[ OO, el ]); 116 if( LB && OO.lightbox_loader){ 117 LB.find('.ajde_popup_text').addClass( 'loading'); 118 LB.find('.evolb_content').addClass( 'loading'); 119 } 120 if( OO.loader_el){ 121 $( OO.loader_el ).addClass('evoloading loading'); 122 } 123 }, 124 type: 'POST', 125 url: ajax_url, 126 data: ajaxdata, 127 dataType:'json', 128 success:function(data){ 129 //console.log(OO); 130 if( LB ){ 131 132 // show message 133 if( 'msg' in data && data.msg != '' && LB){ 134 LB.evo_lightbox_show_msg({'type': data.status, 135 'message':data.msg, 136 hide_lightbox: OO.hide_lightbox, 137 hide_message: OO.hide_message 138 });
139 } 140 141 142 // populate content 143 if( OO.ajaxdata.load_lbcontent || OO.ajaxdata.load_new_content || OO.load_new_content ){ 144 // populate a specific dom element with content 145 if( OO.load_new_content_id != '' ){ 146 $('body').find('#'+OO.load_new_content_id ).replaceWith( data.content ); 147 }else{ 148 LB.evo_lightbox_populate_content({content: data.content}); 149 } 150 } 151 } 152 153 // process trumbowyg editors 154 $('body').trigger('evo_elm_load_interactivity'); 155 156 //console.log(OO); 157 $('body').trigger('evo_ajax_success_' + OO.uid,[ OO, data , el]); 158 159 },complete:function(){ 160 $('body').trigger('evo_ajax_complete_' + OO.uid ,[ OO , el ]); 161 if( LB && OO.lightbox_loader){ 162 LB.find('.ajde_popup_text').removeClass( 'loading'); 163 LB.find('.evolb_content').removeClass( 'loading'); 164 } 165 if( OO.loader_el){ 166 $( OO.loader_el ).removeClass('evoloading loading'); 167 } 168 } 169 }); 170 } 171 172 // submit forms via ligtbox 173 // @since 4.2.2 @updated 4.3.5 174 $.fn.evo_ajax_lightbox_form_submit = function(opt){ 175 var defs = { 176 'lightbox_key':'', // lightbox class 177 'lightbox_loader': true, // show lightbox loading animations 178 'uid':'', 179 'end':'admin', // admin or client 180 'hide_lightbox':false, 181 'hide_message':false, 182 'load_new_content':false, 183 'load_new_content_id':'', 184 'ajax_type':'ajax', 185 'ajax_action':'', 186 } 187 188 var OO = $.extend({}, defs, opt); 189 el = this; 190 191 const form = this.closest('form'); 192 var LB = false; 193 if( OO.lightbox_key != '') LB = $('body').find('.evo_lightbox.'+ OO.lightbox_key); 194 195 //console.log(OO); 196 197 var ajax_url = el.evo_get_ajax_url({a: OO.ajax_action, e: OO.end, type: OO.ajax_type}); 198 199 form.ajaxSubmit({ 200 beforeSubmit: function(){ 201 $('body').trigger('evo_ajax_beforesend_' + OO.uid ,[ OO ]); 202 if( LB && OO.lightbox_loader) LB.evo_lightbox_start_inloading(); 203 }, 204 dataType: 'json', url: ajax_url, type: 'POST', 205 success:function(data){ 206 207 $('body').trigger('evo_ajax_success_' + OO.uid,[ OO, data, el ]); 208 209 if( data.status == 'good'){ 210 if(LB){ 211 LB.evo_lightbox_show_msg({'type': 'good', 212 'message':data.msg, 213 hide_lightbox: OO.hide_lightbox, 214 hide_message: OO.hide_message 215 }); 216 } 217 218 // populate specific element 219 if( OO.load_new_content && OO.load_new_content_id != ''){ 220 $('body').find('#'+OO.load_new_content_id ).replaceWith( data.content ); 221 }else{ 222 // populate current lightbox 223 if( OO.load_new_content ) LB.evo_lightbox_populate_content({content: data.content}); 224 } 225 226 227 // if ajax data pass dom content to be replaced with run through each and replace - @4.2.3 228 if( 'refresh_dom_content' in data ){ 229 $.each(data.refresh_dom_content, function(domid, content){ 230 $('body').find('#'+ domid).replaceWith( content); 231 }); 232 } 233 234 }else{ 235 LB.evo_lightbox_show_msg({'type': 'bad', 'message':data.msg}); 236 } 237 }, 238 complete:function(){ 239 $('body').trigger('evo_ajax_complete_' + OO.uid ,[ OO ]); 240 $('body').trigger('evo_ajax_form_complete_' + OO.uid ,[ OO , form]); 241 if( LB && OO.lightbox_loader) LB.evo_lightbox_stop_inloading(); 242 } 243 }); 244 } 245 246 // LIGHTBOX version 4.2
247 // @version 4.2 248 $('body').on('click','.evolb_trigger', function(event){ 249 if( event !== undefined ){ 250 event.preventDefault(); 251 event.stopPropagation(); 252 } 253 254 $(this).evo_lightbox_open($(this).data('lbvals')); 255 }); 256 $('body').on('click','.evolb_close_btn', function (){ 257 const LB = $(this).closest('.evo_lightbox'); 258 LB.evo_lightbox_close(); 259 }); 260 261 // @since 4.2.2 262 $('body').on('click','.evolb_trigger_save, .evo_submit_form', function(event){ 263 if( event !== undefined ){ 264 event.preventDefault(); 265 event.stopPropagation(); 266 } 267 $(this).evo_ajax_lightbox_form_submit( $(this).data('d') ); 268 }); 269 270 $('body').on('click','.evo_trigger_ajax_run', function(event){ 271 if( event !== undefined ){ 272 event.preventDefault(); 273 event.stopPropagation(); 274 } 275 $(this).evo_admin_get_ajax( $(this).data('d') ); 276 }); 277 // @since 4.3.3 278 $('body').on('evo_lightbox_trigger', function(event, data){ 279 $('body').evo_lightbox_open(data); 280 }); 281 282 $.fn.evo_lightbox_open = function (opt){ 283 var defaults = { 284 'uid':'', 285 't':'', //title 286 'lbc':'',// * lightbox class - REQUIRED 287 'lbsz':'',// lightbox size = mid small 288 'content':'',// passed on dynamic content 289 'content_id' :'',// id to get dynamic content from page 290 'ajax':'no',// use ajax to load content yes no 291 'ajax_url':'', 292 'd':'', // data object for ajax 293 'end':'admin',// admin or client end 294 'other_data':'', 295 'lightbox_loader': true, 296 'load_new_content': true, // @since 4.3.5 297 'lb_padding': 'evopad30', // @4.3.5 298 'ajax_action':'', // @4.4 pass on ajax endpoint action key 299 'ajax_type':'ajax', // @4.4 ajax type, ajax, rest or endpoint 300 }; 301 302 var OO = $.extend({}, defaults, opt); 303 304 // create lightbox HTML 305 var html = '<div class="evo_lightbox '+OO.lbc+' '+OO.end+'" data-lbc="'+OO.lbc+'"><div class="evolb_content_in"><div class="evolb_content_inin"><div class="evolb_box '+OO.lbc+' '+OO.lbsz +'"><div class="evolb_header"><a class="evolb_backbtn" style="display:none"><i class="fa fa-angle-left"></i></a><p class="evolb_title">' + OO.t + '</p><span class="evolb_close_btn evolbclose ">X</span></div><div class="evolb_content '+ OO.lb_padding +'"></div><p class="message"></p></div></div></div></div>'; 306 307 $('#evo_lightboxes').append( html ); 308 309 310 LIGHTBOX = $('.evo_lightbox.'+ OO.lbc); 311 312 // Open lightbox on page 313 setTimeout( function(){ 314 $('#evo_lightboxes').show(); 315 LIGHTBOX.addClass('show'); 316 $('body').addClass('evo_overflow'); 317 $('html').addClass('evo_overflow'); 318 },300); 319 320 // show loading animation 321 LIGHTBOX.evo_lightbox_show_open_animation(); 322 323 // Load content 324 // dynamic content within the site 325 if(OO.content_id != ''){ 326 var content = $('#'+ OO.content_id ).html(); 327 LIGHTBOX.find('.evolb_content').html( content); 328 } 329 // load passed on content 330 if(OO.content != ''){ 331 LIGHTBOX.find('.evolb_content').html( OO.content); 332 } 333 334 // run ajax to load content for the lightbox inside 335 if( OO.ajax == 'yes' && OO.d != ''){ 336 337 var D = {}; 338 D = OO.d; 339 340 LB.evo_admin_get_ajax({ 341 ajaxdata: D, 342 ajax_action: OO.ajax_action, 343 ajax_type: OO.ajax_type, 344 lightbox_key: OO.lbc, 345 uid: ( OO.uid != '' ) ? OO.uid : OO.d.uid, 346 end: OO.end, 347 lightbox_loader: OO.lightbox_loader, 348 load_new_content: OO.load_new_content, 349 }); 350 } 351 352 // load content from a AJAX file 353 if( OO.ajax_url != ''){ 354 $.ajax({
355 beforeSend: function(){}, 356 url: OO.ajax_url, 357 success:function(data){ 358 LIGHTBOX.find('.evolb_content').html( data); 359 },complete:function(){} 360 }); 361 } 362 363 364 365 $('body').trigger('evo_lightbox_processed', [ OO, LIGHTBOX]); 366 } 367 368 $.fn.evo_lightbox_close = function (opt){ 369 LB = this; 370 var defaults = { 371 'delay':500, 372 'remove_from_dom':true, 373 }; 374 375 if( !(LB.hasClass('show')) ) return; 376 377 var OO = $.extend({}, defaults, opt); 378 379 var hide_delay = parseInt( OO.delay); 380 381 complete_close = (LB.parent().find('.evo_lightbox.show').length == 1)? true: false; 382 383 if( hide_delay > 500){ 384 setTimeout( function(){ 385 LB.removeClass('show'); 386 }, ( hide_delay - 500 ) ); 387 }else{ 388 LB.removeClass('show'); 389 } 390 391 setTimeout( function(){ 392 if(complete_close){ 393 $('body').removeClass('evo_overflow'); 394 $('html').removeClass('evo_overflow'); 395 } 396 // remove lightbox HTML from DOM 397 if( OO.remove_from_dom) LB.remove(); 398 }, hide_delay); 399 } 400 401 402 $.fn.evo_lightbox_populate_content = function(opt){ 403 LB = this; 404 var defaults = { 405 'content':'', 406 }; var OO = $.extend({}, defaults, opt); 407 LB.find('.evolb_content').html( OO.content ); 408 } 409 $.fn.evo_lightbox_start_inloading = function(opt){ 410 LB = this; 411 LB.find('.evolb_content').addClass('loading'); 412 } 413 $.fn.evo_lightbox_stop_inloading = function(opt){ 414 LB = this; 415 LB.find('.evolb_content').removeClass('loading'); 416 } 417 $.fn.evo_lightbox_show_msg = function(opt){ 418 LB = this; 419 var defaults = { 420 'type':'good', 421 'message':'', 422 'hide_message': false,// hide message after some time pass time or false 423 'hide_lightbox': false, // hide lightbox after some time of false 424 }; var OO = $.extend({}, defaults, opt); 425 LB.find('.message').removeClass('bad good').addClass( OO.type ).html( OO.message ).fadeIn(); 426 427 if( OO.hide_message ) setTimeout(function(){ LB.evo_lightbox_hide_msg() }, OO.hide_message ); 428 429 if( OO.hide_lightbox ) LB.evo_lightbox_close({ delay: OO.hide_lightbox }); 430 } 431 $.fn.evo_lightbox_hide_msg = function(opt){ 432 LB = this; 433 LB.find('p.message').hide(); 434 } 435 436 437 $.fn.evo_lightbox_show_open_animation = function(opt){ 438 LB = this; 439 var defaults = { 440 'animation_type':'initial', // animation type initial or saving 441 }; 442 var OO = $.extend({}, defaults, opt); 443 444 if( OO.animation_type == 'initial'){ 445 LB.find('.evolb_content').html('<div class="evo_loading_bar_holder"><div class="evo_loading_bar wid_40 hi_50"></div><div class="evo_loading_bar"></div><div class="evo_loading_bar"></div><div class="evo_loading_bar"></div><div class="evo_loading_bar wid_25"></div></div>'); 446 } 447 448 if( OO.animation_type == 'saving') 449 LB.find('.evolb_content').addClass('loading'); 450 451 } 452 453 // Get Ajax url @since 4.4 454 $.fn.evo_get_ajax_url = function(opt){ 455 var defaults = { a:'',e:'client', type: 'ajax'}; 456 var OO = $.extend({}, defaults, opt); 457 458 // end point url 459 if( OO.type == 'endpoint'){ 460 var evo_ajax_url = ( OO.e == 'client' )? 461 evo_general_params.evo_ajax_url : evo_admin_ajax_handle.evo_ajax_url; 462 return evo_ajax_url.toString().replace( '%%endpoint%%', OO.a ); 463 // rest api url 464 }else if( OO.type == 'rest' ){ 465 var evo_ajax_url = ( OO.e == 'client' )? 466 evo_general_params.rest_url : evo_admin_ajax_handle.rest_url; 467 //console.log(evo_ajax_url); 468 //console.log(OO); 469 return evo_ajax_url.toString().replace( '%%endpoint%%', OO.a ); 470 }else{ 471 return ( OO.e == 'client' ) ? 472 evo_general_params.ajaxurl : evo_admin_ajax_handle.ajaxurl; 473 } 474 } 475 476 // Count down // @+ 3.0 477 $.fn.evo_countdown_get = function(opt){ 478 var defaults = { gap:''}; 479 var OPT = $.extend({}, defaults, opt); 480 481 distance = (OPT.gap * 1000); 482 483 var days = Math.floor(distance / (1000 * 60 * 60 * 24)); 484 var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 485 var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); 486 var seconds = Math.floor((distance % (1000 * 60)) / 1000); 487 488 minutes = minutes<10? '0'+minutes : minutes; 489 seconds = seconds<10? '0'+seconds : seconds; 490 491 return { 492 'd': days, 493 'h':hours, 494 'm':minutes, 495 's':seconds 496 }; 497 }; 498 $.fn.evo_countdown = function(opt){ 499 var defaults = { S1:''}; 500 var OPT = $.extend({}, defaults, opt); 501 var el = $(this); 502 503 const day_text = ( el.data('d') !== undefined && el.data('d') != '' )? el.data('d'):'Day'; 504 const days_text = ( el.data('ds') !== undefined && el.data('ds') != '' )? el.data('ds'):'Days'; 505 506 // intial run 507 var gap = parseInt(el.data('gap')); 508 var text = el.data('t'); 509 if(text === undefined) text = ''; 510 511 if( el.hasClass('evo_cd_on')) return; 512 513 if( gap > 0 ){ 514 dd = el.evo_countdown_get({ 'gap': gap}); 515 el.html( ( dd.d>0 ? dd.d + ' ' + ( dd.d >1 ? days_text: day_text ) + " " :'') + dd.h + ":" + dd.m +':'+ dd.s +' '+text ); 516 517 el.data('gap', (gap -1) ); 518 var duration = el.data('dur'); 519 520 el.addClass('evo_cd_on'); 521 522 // maybe adopt moment 523 //var M = moment(); 524 //console.log(M); 525 526 // set intervals 527 var CD = setInterval(function(){ 528 529 gap = el.data('gap'); 530 duration = el.data('dur'); 531 532 const bar_elm = el.closest('.evo_event_progress').find('.evo_ep_bar'); 533 534 if( gap > 0 ){ 535 536 // increase bar width if exists 537 if( duration !== undefined && bar_elm.length){ 538 perc = ( (duration - gap)/ duration ) * 100; 539 bar_elm.find('b').css('width',perc+'%'); 540 } 541 542 dd = el.evo_countdown_get({ 'gap': gap}); 543 544 el.html( ( dd.d>0 ? dd.d + ' ' + ( dd.d >1 ? days_text: day_text ) + " ":'') + dd.h + ":" + dd.m +':'+ dd.s +' '+text );
545 el.data('gap', ( gap - 1) ); 546 547 }else{ 548 549 const expire_timer_action = el.data('exp_act'); 550 551 // perform ajax task after expiration 552 if(expire_timer_action !== undefined){ 553 $('body').trigger('runajax_refresh_now_cal',[ 554 el , 555 el.data('n'), 556 ]); 557 } 558 559 const _complete_text = el.evo_get_txt({V:'event_completed'}); 560 561 // live now text 562 if(bar_elm.length){ 563 bar_elm.addClass('evo_completed'); 564 //el.siblings('.evo_ep_pre').html( _complete_text ); 565 } 566 567 568 // event tag & live elements 569 if( el.closest('.evcal_desc').length){ 570 el.closest('.evcal_desc').find('.eventover').html( _complete_text); 571 el.closest('.evcal_desc').find('.evo_live_now').remove(); 572 } 573 574 // event card 575 if( el.closest('.eventon_list_event').length){ 576 el.closest('.eventon_list_event').find('span.evo_live_now').hide(); 577 } 578 579 el.html(''); 580 clearInterval(CD); 581 } 582 583 },1000); 584 }else{ 585 clearInterval(CD); 586 } 587 }; 588 589 // Handlebar process template data into html 590 $.fn.evo_HB_process_template = function(opt){ 591 var defaults = { TD:'', part:''} 592 var OPT = $.extend({}, defaults, opt); 593 594 BUS = $('#evo_global_data').data('d'); 595 596 template = Handlebars.compile( BUS.temp[ OPT.part ] ); 597 return template( OPT.TD ); 598 } 599 600 // Date range and events 601 // Date range and events - from webpage 602 $.fn.evo_cal_events_in_range = function(opt){ 603 var defaults = { S:'', E:'', 604 hide: true, 605 closeEC:true, 606 showEV: false, // show events 607 showEVL: false, // show events list 608 showAllEvs: false // show all events regardless of the range 609 }; 610 var OPT = $.extend({}, defaults, opt); 611 var CAL = $(this); 612 613 eJSON = CAL.find('.evo_cal_events').data('events'); 614 615 R = {}; 616 html = ''; 617 json = {}; 618 619 show = 0; 620 621 // using events JSON data 622 if( eJSON && eJSON.length > 0){ 623 $.each(eJSON, function(ind, ED){ 624 eO = CAL.find('#event_'+ ED._ID); 625 if(eO === undefined || eO.length==0) return; 626 627 if(OPT.hide) eO.hide(); // pre hide 628 this_show = false; 629 630 // month long or year long events 631 if( ED.month_long || ED.year_long ){ 632 this_show = true; 633 634 }else{ 635 if(CAL.evo_is_in_range({ 636 'S': OPT.S, 'E': OPT.E, 'start': ED.event_start_unix , 'end':ED.event_end_unix 637 })){ 638 this_show = true; 639 } 640 } 641 642 if( OPT.showAllEvs) this_show = true; 643 644 if( this_show){ 645 // show event 646 if( OPT.showEV) eO.show(); 647 648 // close open event cards 649 if(OPT.closeEC && SC.evc_open == 'no') eO.find('.event_description').hide().removeClass('open'); 650 651 html += eO[0].outerHTML; 652 json[ ED._ID] = ED; 653 show++; 654 } 655 }); 656 }else{ 657 // get all the events in the events list 658 var cal_events = CAL.find('.eventon_list_event'); 659 660 cal_events.each(function(index, elm){ 661 var ED = $(elm).evo_cal_get_basic_eventdata(); 662 if( !ED) return; 663 664 if(OPT.hide) $(elm).hide(); // pre hide 665 this_show = false; 666 667 // month long or year long events 668 if( $(elm).hasClass('month_long') || $(elm).hasClass('year_long') ){ 669 this_show = true; 670 671 }else{ 672 if(CAL.evo_is_in_range({ 673 'S': OPT.S, 'E': OPT.E, 'start': ED.event_start_unix , 'end':ED.event_end_unix 674 })){ 675 this_show = true; 676 } 677 } 678 679 if( OPT.showAllEvs) this_show = true; 680 681 if( this_show){ 682 // show event 683 if( OPT.showEV) $(elm).show(); 684 685 // close open event cards 686 if(OPT.closeEC && SC.evc_open == 'no') 687 $(elm).find('.event_description').hide().removeClass('open'); 688 689 html += $(elm)[0].outerHTML; 690 json[ ED.uID ] = ED; 691 show++; 692 } 693 }); 694 } 695 696 697 // No events 698 if( OPT.showEV){ 699 700 no_event_content = CAL.evo_get_global({S1: 'html', S2:'no_events'}); 701 702 tx_noevents = CAL.evo_get_txt({V:'no_events'}); 703 EL = CAL.find('.eventon_events_list'); 704 EL.find('.eventon_list_event.no_events').remove(); 705 if( show == 0 ) 706 EL.append('<div class="eventon_list_event no_events">
706'+ no_event_content +'</div>'); 707 } 708 709 // if show events list 710 if( OPT.showEVL){ 711 CAL.find('.eventon_events_list').show().removeClass('evo_hide'); 712 } 713 714 R['count'] = show; 715 R['html'] = html; 716 R['json'] = json; 717 718 return R; 719 } 720 721 // check if an event is in the given date range 722 $.fn.evo_is_in_range = function(opt){ 723 var defaults = { S:'', E:'', start:'',end:''} 724 var OPT = $.extend({}, defaults, opt); 725 726 S = parseInt(OPT.S); 727 E = parseInt(OPT.E); 728 start = parseInt(OPT.start); 729 end = parseInt(OPT.end); 730 731 return ( 732 ( start <= S && end >= E ) || 733 ( start <= S && end >= S && end <= E) || 734 ( start <= E && end >= E ) || 735 ( start >= S && end <= E ) 736 ) ? true: false; 737 } 738 $.fn.evo_cal_hide_events = function(){ 739 CAL = $(this); 740 CAL.find('.eventon_list_event').hide(); 741 } 742 743 // get event data basics from html event on page 744 // ~@version 4.0.3 745 $.fn.evo_cal_get_basic_eventdata = function(){ 746 var ELM = $(this); 747 748 var _time = ELM.data('time'); 749 if( _time === undefined ) return false; 750 751 const time = _time.split('-'); 752 const ri = ELM.data('ri').replace('r',''); 753 const eID = ELM.data('event_id'); 754 755 var _event_title = ELM.find('.evcal_event_title').text(); 756 _event_title = _event_title.replace(/'/g, '''); 757 758 759 var RR = { 760 'uID': eID + '_' + ri, 761 'ID': eID , 762 'event_id': eID , 763 'ri': ri, 764 'event_start_unix': parseInt(time[0]), 765 'event_end_unix': parseInt(time[1]), 766 'ux_val': ELM.find('.evcal_list_a').data('ux_val'), 767 'event_title': _event_title, 768 'hex_color': ELM.data('colr'), 769 'hide_et': ELM.hasClass('no_et') ? 'y':'n', // hide endtime 770 'evcal_event_color': ELM.data('colr'), 771 }; 772 773 // event type 774 RR['ett1'] = {}; 775 ELM.find('.evoet_eventtypes.ett1 .evoetet_val').each(function(){ 776 RR['ett1'][ $(this).data('id')] = $(this).data('v'); 777 }); 778 779 // since 4.3.5 780 const eventtop_data = ELM.find('.evoet_data').data('d'); 781 782 // location 783 if('loc.n' in eventtop_data && eventtop_data['loc.n'] != ''){ 784 RR['location'] = eventtop_data['loc.n']; 785 } 786 787 // organizer 788 if('orgs' in eventtop_data && eventtop_data.orgs !== undefined ){ 789 var org_names = ''; 790 $.each(eventtop_data.orgs, function(index, value){ 791 org_names += value +' '; 792 }); 793 RR['organizer'] = org_names; 794 } 795 796 return RR; 797 798 } 799 800 801 // DATE time functions @+2.8 802 $.fn.evo_day_in_month = function(opt){ 803 var defaults = { M:'', Y:''} 804 var OPT = $.extend({}, defaults, opt); 805 806 return new Date(OPT.Y, OPT.M, 0).getDate(); 807 } 808 $.fn.evo_get_day_name_index = function(opt){ 809 var defaults = { M:'', Y:'', D:''} 810 var OPT = $.extend({}, defaults, opt); 811 812 //return moment(OPT.Y+'-'+OPT.M+'-'+OPT.D).utc().day(); 813 814 return new Date( Date.UTC(OPT.Y, OPT.M-1, OPT.D) ).getUTCDay(); 815 } 816 817 // LIGHTBOX 818 // page Lightbox functions @+2.8 819 // append to the lightbox main class name .evo_lightbox 820 821 // Legacy 822 $.fn.evo_prepare_lb = function(){ 823 $(this).find('.evo_lightbox_body').html(''); 824 } 825 $.fn.evo_show_lb = function(opt){ 826 var defaults = { RTL:'', calid:''} 827 var OPT = $.extend({}, defaults, opt); 828 829 $(this).addClass('show '+ OPT.RTL).attr('data-cal_id', OPT.calid); 830 $('body').trigger('evolightbox_show'); 831 } 832 $.fn.evo_append_lb = function(opt){ 833 var defaults = { C:'', CAL:''} 834 var OPT = $.extend({}, defaults, opt); 835 $(this).find('.evo_lightbox_body').html( OPT.C); 836 837 if( OPT.CAL!= '' && OPT.CAL !== undefined && OPT.CAL.hasClass('color')){ 838 const LIST = $(this).find('.eventon_events_list'); 839 if( LIST.length>0){ 840 LIST.find('.eventon_list_event').addClass('color'); 841 } 842 } 843 } 844 845 846 847 // Shortcodes 848 // update shortcode values from filter changes @updated 4.3.3 849 $.fn.evo_update_sc_from_filters = function(){ 850 var ev_cal = $(this); 851 SC = ev_cal.find('.evo_cal_data').data('sc'); 852 853 var filter_section = ev_cal.find('.eventon_filter_line').first(); 854 855 filter_section.find('.eventon_filter').each(function(index){ 856 O = $(this); 857 var default_val = O.data('fldef'); 858 var filter_val = O.data('filter_val'); 859 const NOT_values = O.data('notvals'); 860
861 filter_val = filter_val == ''? 'NOT-all': filter_val; 862 863 var not_string = ''; 864 865 // if NOT filter in place > include that in tax value for query 866 if( NOT_values!== undefined && NOT_values.length >0 && filter_val != default_val ){ 867 868 $.each(NOT_values, function(index, value){ 869 not_string += 'NOT-'+ value +','; 870 }); 871 } 872 873 SC[ O.data('filter_field') ] = not_string + filter_val; 874 }); 875 876 ev_cal.find('.evo_cal_data').data( 'sc', SC ); 877 } 878 879 // get shortcodes from evo bottom 880 $.fn.evo_shortcode_data = function(){ 881 var ev_cal = $(this); 882 return ev_cal.find('.evo_cal_data').data('sc'); 883 } 884 885 // get shortcode single value 886 $.fn.evo_get_sc_val = function(opt){ 887 var defaults = { F:''} 888 var OPT = $.extend({}, defaults, opt); 889 var ev_cal = $(this); 890 891 if(OPT.F=='') return false; 892 SC = ev_cal.find('.evo_cal_data').data('sc'); 893 894 if(!(SC[ OPT.F])) return false; 895 return SC[ OPT.F]; 896 } 897 // UPDATE Single value 898 $.fn.evo_update_cal_sc = function(opt){ 899 var defaults = { 900 F:'', V:'' 901 } 902 var OPT = $.extend({}, defaults, opt); 903 var ev_cal = $(this); 904 SC = ev_cal.find('.evo_cal_data').data('sc'); 905 906 SC[ OPT.F ] = OPT.V; 907 908 ev_cal.find('.evo_cal_data').data( 'sc', SC ); 909 } 910 // UPDATE all shortcode values 911 $.fn.evo_update_all_cal_sc = function(opt){ 912 var defaults = {SC:''} 913 var OPT = $.extend({}, defaults, opt); 914 var CAL = $(this); 915 CAL.find('.evo_cal_data').data( 'sc', OPT.SC ); 916 } 917 918 // OTHERS 919 // hex colors // @+2.8 920 $.fn.evo_is_hex_dark = function(opt){ 921 var defaults = { hex:'808080'} 922 var OPT = $.extend({}, defaults, opt); 923 924 hex = OPT.hex; 925 926 var c = hex.replace('#',''); 927 var is_hex = typeof c === 'string' && c.length === 6 && !isNaN(Number('0x' + c)); 928 929 if(is_hex){ 930 var values = c.split(''); 931 r = parseInt(values[0].toString() + values[1].toString(), 16); 932 g = parseInt(values[2].toString() + values[3].toString(), 16); 933 b = parseInt(values[4].toString() + values[5].toString(), 16); 934 }else{ 935 var vals = c.substring(c.indexOf('(') +1, c.length -1).split(', '); 936 var r = vals[0] // extract red 937 var g = vals[1]; // extract green 938 var b = vals[2]; 939 } 940 941 var luma = ((r * 299) + (g * 587) + (b * 114)) / 1000; // per ITU-R BT.709 942 943 return luma>155? true:false; 944 } 945 // Other data 946 $.fn.evo_get_OD = function(){ 947 var ev_cal = $(this); 948 return ev_cal.find('.evo_cal_data').data('od'); 949 } 950 951 // return all filter values for given calendar -- DEP 2.8 952 $.fn.evoGetFilters = function(){ 953 954 var ev_cal = $(this); 955 var evodata = ev_cal.find('.evo-data'); 956 957 var filters_on = ( evodata.attr('data-filters_on')=='true')?'true':'false'; 958 959 // creat the filtering data array if exist 960 if(filters_on =='true'){ 961 var filter_section = ev_cal.find('.eventon_filter_line'); 962 var filter_array = []; 963 964 965 filter_section.find('.eventon_filter').each(function(index){ 966 var filter_val = $(this).attr('data-filter_val'); 967 968 if(filter_val !='all'){ 969 var filter_ar = {}; 970 filter_ar['filter_type'] = $(this).attr('data-filter_type'); 971 filter_ar['filter_name'] = $(this).attr('data-filter_field'); 972 973 if($(this).attr('data-fl_o')=='NOT'){ 974 filter_ar['filter_op']='NOT IN'; 975 } 976 filter_ar['filter_val'] = filter_val; 977 filter_array.push(filter_ar); 978 } 979 }); 980 }else{ 981 var filter_array =''; 982 } 983 return filter_array; 984 } 985 986 987 // get evo data for a given calendar 988 $.fn.evo_getevodata = function(){ 989 990 var ev_cal = $(this); 991 var evoData = {}; 992 993 ev_cal.find('.evo-data').each(function(){ 994 $.each(this.attributes, function(i, attrib){ 995 var name = attrib.name; 996 if(attrib.name!='class' && attrib.name!='style' ){ 997 name__ = attrib.name.split('-'); 998 evoData[name__[1]] = attrib.value; 999 } 1000 }); 1001 }); 1002 1003 return evoData; 1004 } 1005 1006 // eventon loading functions 1007 // v 2.4.5 1008 $.fn.evo_loader_animation = function(opt){ 1009 var defaults = { 1010 direction:'start' 1011 } 1012 var OPT = $.extend({}, defaults, opt); 1013 1014 if(OPT.direction == 'start'){ 1015 $(this).find('#eventon_loadbar').slideDown(); 1016 }else{ 1017 $(this).find('#eventon_loadbar').slideUp(); 1018 } 1019 } 1020 1021 // DEPRECATED functions 1022 $.fn.evo_item_shortcodes = function(){ 1023 var OBJ = $(this); 1024 var shortcode_array ={}; 1025 OBJ.each(function(){ 1026 $.each(this.attributes, function(i, attrib){ 1027 var name = attrib.name; 1028 if(attrib.name!='class' && attrib.name!='style' && attrib.value !=''){ 1029 name__ = attrib.name.split('-'); 1030 shortcode_array[name__[1]] = attrib.value; 1031 } 1032 }); 1033 }); 1034 return shortcode_array; 1035 } 1036 $.fn.evo_shortcodes = function(){
1037 var ev_cal = $(this); 1038 var shortcode_array ={}; 1039 1040 ev_cal.find('.cal_arguments').each(function(){ 1041 $.each(this.attributes, function(i, attrib){ 1042 var name = attrib.name; 1043 if(attrib.name!='class' && attrib.name!='style' && attrib.value !=''){ 1044 name__ = attrib.name.split('-'); 1045 shortcode_array[name__[1]] = attrib.value; 1046 } 1047 }); 1048 }); 1049 return shortcode_array; 1050 } 1051 1052 1053}(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.