1(function ($) { 2 $(document).ready(() => { 3 $('.filter_reset').on('click', function() { 4 $('.filter-select-option .form-select select').each(function() { 5 $(this).val('').trigger('change'); // Reset to default (first) option 6 }); 7 }) 8 /** 9 * Load more on elementor 10 */ 11 let paged = 1; 12 $('.rbt_course_elementor_load_more_btn').on( 'click', function() { 13 const queryArgs = $('input[name="rbt_query_args_data"]').val(); 14 const parsedQuery = JSON.parse(queryArgs); 15 paged++; 16 $.ajax({ 17 type: 'post', 18 url: filterAjax.ajaxurl, 19 data: { 20 action: 'rbt_ajax_load_more_tutor_courses', 21 nonce: filterAjax.nonce, 22 parsedQuery, 23 paged 24 }, 25 beforeSend: () => { 26 $('.rbt_course_elementor_load_more_btn').attr('disabled', true); 27 }, 28 success: (response) => { 29 $('.rbt_course_elementor_load_more_btn').removeAttr('disabled'); 30 const max_page = response?.data?.max_page; 31 $('.rbt-course-horizontal-list').append(response?.data?.markup); 32 if( paged + 1 === max_page ) { 33 $('.rbt_course_elementor_load_more_btn').addClass('d-none'); 34 } 35 }, 36 error: (err) => { 37 console.log(err); 38 } 39 }) 40 } ); 41 $('#search-input').keyup(function() { 42 var searchTerm = $(this).val(); 43 44 if (searchTerm.length > 3) { 45 setTimeout(function() { 46 // Perform search using searchTerm 47 }, 1000); 48 } 49 }); 50 const parentSearchIdLayoutOne = $('#rbt-course-search-wrapper-layout-1'); 51 const parentSearchTitleLayoutOne = $('.rbt-title-style-2'); 52 $('.ajax_search_tutor_courses input').on('input keypress', function(e) { 53 const postType = $(this).attr('data-post_type'); 54 lastInputTime = new Date().getTime(); 55 if (e.which === 13) { 56 e.preventDefault(); // Disable default Enter key behavior 57 return; 58 } 59 60 setTimeout(function() { 61 const inputValue = e.target.value; 62 var currentTime = new Date().getTime(); 63 var timeSinceLastInput = currentTime - lastInputTime; 64 65 if (timeSinceLastInput >= 1000 || e.type === 'keypress') { 66 /** 67 * Handle ajax request 68 */ 69 $.ajax({
70 type: 'post', 71 url: filterAjax.ajaxurl, 72 data: { 73 action: 'rbt_ajax_search_tutor_courses', 74 courseName: inputValue, 75 postType 76 }, 77 beforeSend: () => { 78 parentSearchIdLayoutOne.empty(); 79 parentSearchTitleLayoutOne.text('Loading'); 80 parentSearchIdLayoutOne.append('<img src="https://img.icons8.com/?size=80&id=MzzEkuHLLvrm&format=png" />'); 81 }, 82 success: (response) => { 83 if(response.length > 0) { 84 parentSearchIdLayoutOne.empty(); 85 parentSearchTitleLayoutOne.text( filterAjax.searchResultsText + inputValue); 86 parentSearchIdLayoutOne.append(response); 87 } else { 88 parentSearchIdLayoutOne.empty(); 89 parentSearchTitleLayoutOne.text(filterAjax.noResultfound + " " + inputValue); 90 parentSearchIdLayoutOne.append('<div class="no-result-found"><img src="https://img.freepik.com/free-vector/error-404-concept-landing-page_52683-11371.jpg?size=626&ext=jpg" /></div>'); 91 } 92 }, 93 error: (response) => { 94 console.log(response); 95 parentSearchIdLayoutOne.empty().append('<div class="error-message">An error occurred. Please try again later.</div>'); 96 } 97 }); 98 } 99 }, 1000); 100 }); 101 102 $('input[name="event_cat[]"]').on('change', function() { 103 var selectedValues = []; 104 var per_page = $('input[name="posts_per_page"]').val(); 105 if(!per_page) { 106 per_page = 6; 107 } 108 $('input[name="event_cat[]"]:checked').each(function () { 109 selectedValues.push($(this).val()); 110 }); 111 if(selectedValues.length > 0) { 112 $.ajax({
113 type: 'post', 114 url: filterAjax.ajaxurl, 115 data: { 116 ids: selectedValues, 117 per_page, 118 action: 'rbt_ajax_event_filter_by_category' 119 }, 120 beforeSend: () => { 121 $('.rbt-archive-course-event').empty(); 122 for(let i=1;i <= per_page;i++) { 123 $('.rbt-archive-course-event').append(` 124 <div class="col-xl-4 col-lg-6 col-md-6 col-12"> 125 <div class="course-grid-3"> 126 <div class="rb-tutor-course-card-placeholder"> 127 <div class="rb-tutor-course-thumbnail animated-placeholder"></div> 128 <div class="rb-tutor-course-rating animated-placeholder"></div> 129 <div class="rb-tutor-course-title animated-placeholder"></div> 130 <div class="rb-tutor-course-meta animated-placeholder"></div> 131 <div class="rb-tutor-course-excerpt animated-placeholder"></div> 132 <div class="rb-tutor-course-author-meta animated-placeholder"></div> 133 <div class="rb-tutor-course-bottom animated-placeholder"></div> 134 </div> 135 </div> 136 <div> 137 `); 138 } 139 }, 140 success: (response) => { 141 $('.rbt-archive-course-event').empty(); 142 $('.rbt-has-pagination').hide(); 143 $('.rbt-archive-course-event').append(response); 144 $('.rbt-archive-course-event').append(); 145 }, 146 error: (e) => { 147 console.log(e); 148 }, 149 complete: (e) => { 150 } 151 }) 152 } else { 153 $.ajax({
154 type: 'post', 155 url: filterAjax.ajaxurl, 156 data: { 157 action: 'rbt_ajax_rbt_ajax_get_all_events', 158 per_page, 159 }, 160 beforeSend: () => { 161 $('.rbt-archive-course-event').empty(); 162 for(let i=1;i <= per_page;i++) { 163 $('.rbt-archive-course-event').append(` 164 <div class="col-xl-4 col-lg-6 col-md-6 col-12"> 165 <div class="course-grid-3"> 166 <div class="rb-tutor-course-card-placeholder"> 167 <div class="rb-tutor-course-thumbnail animated-placeholder"></div> 168 <div class="rb-tutor-course-rating animated-placeholder"></div> 169 <div class="rb-tutor-course-title animated-placeholder"></div> 170 <div class="rb-tutor-course-meta animated-placeholder"></div> 171 <div class="rb-tutor-course-excerpt animated-placeholder"></div> 172 <div class="rb-tutor-course-author-meta animated-placeholder"></div> 173 <div class="rb-tutor-course-bottom animated-placeholder"></div> 174 </div> 175 </div> 176 <div> 177 `); 178 } 179 }, 180 success: (response) => { 181 $('.rbt-archive-course-event').empty(); 182 $('.rbt-has-pagination').show(); 183 $('.rbt-archive-course-event').append(response); 184 }, 185 error: (e) => { 186 console.log(e); 187 }, 188 complete: (e) => { 189 } 190 }) 191 } 192 }); 193 $('.ajax-buy-now-product').on('click', function() { 194 const productId = $(this).data('product_id'); 195 const redirect = $(this).data('redirect'); 196 $.ajax({
197 type: 'post', 198 url: filterAjax.ajaxurl, 199 data: { 200 action: 'rbt_ajax_product_buy_now', 201 productId: productId 202 }, 203 beforeSend: () => { 204 205 }, 206 success: (response) => { 207 console.log( response ) 208 // Redirect to the cart page 209 if( productId > 0 ) { 210 window.location.href = redirect; 211 } 212 213 }, 214 complete: () => { 215 }, 216 error: () => { 217 218 } 219 }) 220 }); 221 }) 222 function course_ajax_filter(course_data, ppp = 6, offset = 0, pagination = 0, in_default_load) { 223 let column = $('input[name="rainbow_course_card_column_hidden"]').val(); 224 const override_ajax_archive = filterAjax.override_ajax_archive; 225 let course_archive = ''; 226 if (typeof filter_course_archive !== 'undefined') { 227 course_archive = filter_course_archive; 228 } else { 229 course_archive = ''; 230 } 231 const rbt_course_archive_box_layout = $('#rbt_course_archive_box_layout').val(); 232 233 $.ajax({
234 type: "post", 235 url: filterAjax.ajaxurl, 236 data: { 237 action: "course_filter", 238 sortby: course_data['sortby'], 239 tags: course_data['tags'], 240 category: course_data['category'], 241 instructor: course_data['instructor'], 242 style: course_data['archive_style'], 243 rating: course_data['rating'], 244 course_taxonomies: course_data['course_taxonomies'], 245 course_taxonomies_tags: course_data['course_taxonomies_tags'], 246 difficulty: course_data['difficulty'], 247 rbt_course_archive_box_layout, 248 price: course_data['price'], 249 ppp: ppp, 250 offset: offset, 251 column, 252 search: course_data['search'], 253 course_archive 254 }, 255 beforeSend: function () { 256 $('.load_more_button .load_more_btn').addClass('disabled'); 257 if( course_data['load_more'] == false ) { 258 $('.course_grid_archive').empty(); 259 } else { 260 if( override_ajax_archive == 1 ) { 261 $('.course_grid_archive').empty(); 262 } 263 } 264 for(let i=1;i <= 6;i++) { 265 $('.course_grid_archive').append(` 266 <div class="course-grid-${column}"> 267 <div class="rb-tutor-course-card-placeholder"> 268 <div class="rb-tutor-course-thumbnail animated-placeholder"></div> 269 <div class="rb-tutor-course-rating animated-placeholder"></div> 270 <div class="rb-tutor-course-title animated-placeholder"></div> 271 <div class="rb-tutor-course-meta animated-placeholder"></div> 272 <div class="rb-tutor-course-excerpt animated-placeholder"></div> 273 <div class="rb-tutor-course-author-meta animated-placeholder"></div> 274 <div class="rb-tutor-course-bottom animated-placeholder"></div> 275 </div> 276 </div> 277 `); 278 } 279 }, 280 success: function (response) { 281 282 $('.load_more_button .load_more_btn').removeClass('disabled'); 283 if( course_data['load_more'] == false ) { 284 $('.course_grid_archive').empty(); 285 } else { 286 if( override_ajax_archive == 1 ) { 287 $('.course_grid_archive').empty(); 288 } 289 } 290 if (pagination == 1) { 291 var res_data = ""; 292 var res_data = res_data.concat(response); 293 $('.course_grid_archive').append(response); 294 var currentURL = new URL(window.location.href); 295 if (currentURL.searchParams.has('view') && currentURL.searchParams.get('view') === 'list') { 296 $('.rbt-course-grid-column').removeClass('active-grid-view'); 297 $('.rbt-course-grid-column').addClass('active-list-view'); 298 $('.rbt-card').addClass('card-list-2'); 299 } 300 } else { 301 $('.course_grid_archive').append(response); 302 var currentURL = new URL(window.location.href); 303 if (currentURL.searchParams.has('view') && currentURL.searchParams.get('view') === 'list') { 304 $('.rbt-course-grid-column').removeClass('active-grid-view'); 305 $('.rbt-course-grid-column').addClass('active-list-view'); 306 $('.rbt-card').addClass('card-list-2'); 307 } 308 } 309 var total_course = $('.ajax_course_count').val(); 310 var ajax_course_from = $('.ajax_course_from').val(); 311 var ajax_course_to = $('.ajax_course_to').val(); 312 if(parseInt(ajax_course_to) >= parseInt(total_course)) { 313 ajax_course_to = parseInt(total_course); 314 } 315 $('.rbt-course-archive-count-from').html(ajax_course_from); 316 $('.rbt-course-archive-count-to').html(ajax_course_to); 317 $('.rbt-course-archive-count').html(total_course); 318 var offset_var_count = ppp + offset; 319 if (offset_var_count < total_course) { 320 $('.load_more_btn').show(); 321 $('.load_more_button').show(); 322 } else { 323 $('.load_more_btn').hide(); 324 $('.load_more_button').hide(); 325 } 326 327 // Selected filter block 328 try { 329 var select_list = ""; 330 var select_element = {}; 331 for (const [key, value] of Object.entries(course_data)) { 332 if (Array.isArray(value) && value.length == 0 && ($(`.selected_${key}`).length > 0)) { 333 $(`.selected_${key}`).remove(); 334 } 335 336 if (value && (key !== "archive_style") && (key !== "filter")) { 337 if (key in select_element) { 338 delete thisIsObject(key); 339 } 340 if ((Array.isArray(value) && (value.length !== 0)) || (value.length !== 0)) { 341 select_element[key] = value; 342 } 343 344 } 345 } 346 347 if ($('#author_username_data').length > 0) { 348 let authorData = $('#author_username_data').val(); 349 350 // Check if authorData is empty 351 if (!authorData || authorData.trim() === '') { 352 // Initialize authorData as an array with 'test' if it's empty 353 authorData = JSON.stringify(['test']); 354 } else { 355 // Ensure authorData is a valid JSON string 356 try { 357 var usernames = JSON.parse(authorData); 358 } catch (e) { 359 console.error('Error parsing JSON data:', e); 360 // Handle JSON parsing error if needed 361 var usernames = []; 362 } 363 } 364 } 365 366 for (var [filtered_key, filtered_value] of Object.entries(select_element)) { 367 if ($(`.selected_${filtered_key}`).length > 0) { 368 if (Array.isArray(filtered_value)) { 369 $(`.selected_${filtered_key}`).remove(); 370 filtered_value.map(e => { 371 372 if ($(`.selected_${filtered_key}.${e}`).length <= 0) { 373 if(filtered_key == 'instructor' && $('#author_username_data').length > 0 ) {
374 usernames.forEach(function(username, index) { 375 e = username; 376 377 let itemToAdd= `<li class="selected_${filtered_key} ${e}" data-key="${e}">${e} </li>`; 378 379 if (!select_list.includes(itemToAdd)) { 380 select_list = select_list.concat(itemToAdd); 381 } 382 }); 383 } else { 384 select_list = select_list.concat(`<li class="selected_${filtered_key} ${e}" data-key="${e}">${e} </li>`); 385 } 386 } 387 }); 388 389 } else { 390 if(filtered_key == 'rating') { 391 if( filtered_value > 0 ) { 392 filtered_value = filtered_value + " Star"; 393 } else { 394 filtered_value = "Not Rated"; 395 } 396 } 397 else if(filtered_value == 'ASC') { 398 filtered_value = "Oldest"; 399 } 400 else if(filtered_value == 'DESC') { 401 filtered_value = "Latest"; 402 } 403 else if(filtered_key == 'instructor' && $('#author_username_data').length > 0 ) { 404 usernames.forEach(function(username, index) { 405 filtered_value = username; 406 $(`.selected_${filtered_key}`).html(`${filtered_value} `); 407 }); 408 } 409 410 $(`.selected_${filtered_key}`).html(`${filtered_value} `); 411 412 } 413 414 } else { 415 416 417 418 if( filtered_key == 'load_more') { 419 filtered_value = 'Appned'; 420 } else if(filtered_key == 'rating') { 421 if( filtered_value > 0 ) { 422 filtered_value = filtered_value + " Star"; 423 } else { 424 filtered_value = "Not Rated"; 425 } 426 427 } else if(filtered_value == 'ASC') { 428 filtered_value = "Oldest"; 429 } 430 else if(filtered_value == 'DESC') { 431 filtered_value = "Latest"; 432 } 433 else if(filtered_key == 'instructor' && $('#author_username_data').length > 0 ) { 434 435 usernames.forEach(function(username, index) { 436 filtered_value = username; 437 let itemToAdd = `<li class="selected_${filtered_key} ${filtered_value}" data-key="${filtered_value}">${filtered_value}</li>`; 438 console.log(select_list); 439 let i = 0; 440 if (!select_list.includes(itemToAdd)) { 441 select_list = select_list.concat(itemToAdd); 442 i++; 443 } 444 445 446 }); 447 } 448 449 if ((filtered_key != 'instructor' && filtered_value !== "desc" && filtered_key != "course_taxonomies") && (filtered_key != "course_taxonomies_tags" && filtered_key && filtered_key != 'load_more')) { 450 select_list = select_list.concat(`<li class="selected_${filtered_key} ${filtered_value}" data-key="${filtered_value}">${filtered_value} </li>`); 451 } 452 } 453 } 454 455 $('.selected_course_filters ul').append(select_list); 456 457 // Now check if there are any <li> elements and add the "Reset Filter" button if necessary 458 if ($('.selected_course_filters ul li').length > 0 && ($('button.filter_reset').length <= 0)) { 459 $('.selected_course_filters ul').last().prepend("<button class='btn filter_reset'>Reset Filter</button>"); 460 } 461 462 if ($('.selected_course_filters ul li').length <= 0) { 463 $('button.filter_reset').remove(); 464 } 465 466 } catch (e) { 467 console.log(e); 468 } 469 // Function to reset dropdowns 470 function resetDropdowns() { 471 $('.dropdown-toggle').each(function() { 472 // Update text inside filter-option-inner-inner 473 var $inner = $(this).find('.filter-option-inner-inner'); 474 var currentText = $inner.text().trim(); 475 476 // Check current text and update accordingly 477 if (currentText === 'Latest' || currentText === 'Oldest') { 478 $inner.text('Default'); 479 $(this).attr('title', 'Default'); // Update title attribute 480 } else if (currentText === 'Free' || currentText === 'Paid') { 481 $inner.text('All'); 482 $(this).attr('title', 'All'); // Update title attribute 483 } 484 }); 485 } 486 function resetDropdowns2() { 487 $('.dropdown.bootstrap-select.show-tick.form-select .dropdown-toggle').each(function() { 488 // Find the inner text element 489 var $inner = $(this).find('.filter-option-inner-inner'); 490 $inner.text('Nothing selected'); 491 $(this).attr('title', 'Nothing selected'); 492 493 }); 494 } 495 // Bind resetDropdowns function to the Reset Filter button 496 var timeoutID; 497 498 $(document).on('click', 'button.filter_reset', function() { 499 500 // Clear any existing timeout 501 if (timeoutID) { 502 clearTimeout(timeoutID); 503 } 504 505 // Set a new timeout 506 timeoutID = setTimeout(function() { 507 resetDropdowns(); 508 resetDropdowns2(); 509 $('.rbt-sidebar-list-wrapper.categories-list-check input[type="checkbox"]').prop('checked', false); 510 511 // Uncheck all radio buttons in rating and price lists 512 $('.rbt-sidebar-list-wrapper.rating-list-check input[type="radio"]').prop('checked', false); 513 514 // Uncheck all radio buttons in difficulty levels and features lists 515 $('.rbt-sidebar-list-wrapper.lavels-list-check input[type="radio"]').prop('checked', false); 516 $('.rbt-sidebar-list-wrapper.features-list-check input[type="radio"]').prop('checked', false); 517 $('.rbt-sidebar-list-wrapper.instructor-list-check input[type="radio"]').prop('checked', false); 518 519 // Reset price radio buttons - check only the first one 520 $('.rbt-sidebar-list-wrapper.prices-list-check input[type="radio"]').each(function(index) { 521 $(this).prop('checked', index === 0); // Check only the first item 522 }); 523 }, 300); 524 }); 525 526 527 /** 528 * Show warning if success is false 529 */ 530 if( response?.data?.markup.length > 0 ) { 531 const markup = response?.data?.markup; 532 const isCourse_not_Found = $(markup).hasClass('rainbow-course-not-found-error'); 533 console.log(isCourse_not_Found); 534 if( isCourse_not_Found ) { 535 $('.rbt-course-archive-count-from').html(0); 536 $('.rbt-course-archive-count-to').html(0); 537 $('.rbt-course-archive-count').html(0); 538 } 539 $('.course_grid_archive').empty(); 540 $('.course_grid_archive').html(markup); 541 } 542 543 }, 544 error: function (response) { 545 console.log(response) 546 }, 547 complete: function () { 548 $('.rb-tutor-course-card-placeholder').closest('.course-grid-' + column).hide(); 549 } 550 }) 551 552 } 553 554 555 var ppp = 6; 556 var g_offset = 6; 557 var flag = 1; 558 var pagination = 1; 559 560 $(document).ready(function () { 561 const course_data = {}; 562 course_data['sortby'] = ""; 563 course_data['category'] = []; 564 course_data['tags'] = []; 565 course_data['load_more'] = false; 566 course_data['rating'] = []; 567 course_data['instructor'] = []; 568 course_data['archive_style'] = $('.archive_style').val(); 569 course_data['course_taxonomies'] = $('.archive_course_taxonomy').val(); 570 course_data['course_taxonomies_tags'] = $('.archive_course_taxonomy_tags').val(); 571 course_data['difficulty'] = ""; 572 course_data['filter'] = false; 573 course_data['price'] = ""; 574 course_data['search'] = ""; 575 $('ul.rbt-sidebar-list-wrapper.rating-list-check label').on('click', function() { 576 $(".rbt-single-widget.rbt-single-rating-widget-padding.rbt-widget-rating").slideUp(); 577 }) 578 $('.form-check-input').click(function () { 579 g_offset = 6; 580 if ($(this).attr('data-var') == "sortby") { 581 if ($(this).is(":checked")) { 582 course_data['sortby'] = $(this).attr('data-id'); 583 } else { 584 course_data['sortby'] = ""; 585 } 586 587 } else if ($(this).attr('data-var') == "category") { 588 if ($(this).is(":checked")) { 589 course_data['category'].push($(this).attr('data-id')); 590 } else { 591 for (var i = 0; i < course_data['category'].length; i++) { 592 if (course_data['category'][i] === $(this).attr('data-id')) { 593 594 course_data['category'].splice (i, 1); 595 } 596 } 597 } 598 }else if ($(this).attr('data-var') == "price") { 599 if ($(this).is(":checked")) { 600 course_data['price'] = $(this).attr('data-id'); 601 } else { 602 course_data['price'] = ""; 603 } 604 }else if ($(this).attr('data-var') == "tags") { 605 if ($(this).is(":checked")) { 606 course_data['tags'].push($(this).attr('data-id')); 607 } else { 608 for (var i = 0; i < course_data['tags'].length; i++) { 609 if (course_data['tags'][i] === $(this).attr('data-id')) { 610 611 course_data['tags'].splice(i, 1); 612 } 613 } 614 } 615 } else if ($(this).attr('data-var') == "instructor") { 616 if ($(this).is(":checked")) { 617 course_data['instructor'].push($(this).attr('data-id')); 618 } else { 619 for (var i = 0; i < course_data['instructor'].length; i++) { 620 if (course_data['instructor'][i] === $(this).attr('data-id')) { 621 course_data['instructor'].splice(i, 1); 622 } 623 } 624 } 625 } 626 627 else if ($(this).attr('data-var') == "difficulty") { 628 if ($(this).is(":checked")) { 629 course_data['difficulty'] = $(this).attr('data-id'); 630 } else { 631 course_data['difficulty'] = ""; 632 } 633 634 } 635 course_data['filter'] = true; 636 $('.course_grid_archive').empty(); 637 course_ajax_filter(course_data); 638 }); 639 640 641 //Style 2 642 $('.form-select, .rbt-list input').on('change', function(e) { 643 g_offset = 6; 644 if($(this).attr('data-var') === 'sortby'){ 645 course_data['sortby'] = $(e.target).val() 646 } 647 if($(this).attr('data-var') === 'sortrating'){ 648 course_data['rating'] = $(e.target).val(); 649 } 650 if ($(this).attr('data-var') === 'category') { 651 course_data['category'] = $(this).val(); 652 } 653 if($(this).attr('data-var') === 'instructor'){ 654 course_data['instructor'] = $(this).val(); 655 } 656 if($(this).attr('data-var') === 'price'){ 657 course_data['price'] = $(e.target).val() 658 } 659 if($(this).attr('data-var') === 'difficulty'){ 660 course_data['difficulty'] = $(e.target).val(); 661 } 662 course_data['filter'] = true; 663 course_data['load_more'] = false; 664 course_ajax_filter(course_data); 665 }); 666 $('.rbt-portfolio-filter li button').on( 'click', function() { 667 $('.course_grid_archive').empty(); 668 $('.load_more_btn').addClass('d-none'); 669 course_data['category'] = []; 670 course_data['category'].push($(this).data('cat_slug')); 671 course_data['load_more'] = false 672 course_ajax_filter(course_data); 673 } ); 674 675 //Search Filter 676 $('.rbt-banner-course-filter-search').on('submit', function(e){
677 e.preventDefault(); 678 if($('.course_search_input').val().length > 0){ 679 course_data['search'] = $('.course_search_input').val(); 680 course_data['filter'] = true; 681 course_data['load_more'] = false 682 $('.course_grid_archive').empty(); 683 course_ajax_filter(course_data); 684 } else { 685 alert('Please insert value first'); 686 } 687 }); 688 689 $(document).on('click', ".filter_reset", function () { 690 course_data['load_more'] = false 691 $('.course_grid_archive').empty(); 692 Object.keys(course_data).map(e => { 693 if (Array.isArray(course_data[e])) { 694 course_data[e] = []; 695 } else if (e != "archive_style") { 696 course_data[e] = ""; 697 } 698 }); 699 700 $(this).parents('.course_archive_page_identifier').find('.filter_panel').slideToggle(); 701 702 $(".filter_panel_common .form-check-input").each(function (i) { 703 this.checked = false; 704 }); 705 706 $('.selected_course_filters ul').empty(); 707 course_ajax_filter(course_data); 708 709 }); 710 711 $(".load_more_btn").click(function () { 712 // Check if the 'view' parameter exists and is set to 'list' 713 course_data['load_more'] = true; 714 course_ajax_filter(course_data, ppp, g_offset, pagination); 715 if (flag == 1) { 716 g_offset += ppp; 717 } 718 }); 719 720 if ($('.course_archive_page_identifier').length) { 721 course_data['sortby'] = tutor_course_objects.default_course_order; 722 course_data['load_more'] = false; 723 course_ajax_filter(course_data); 724 } 725 }); 726 727 728 // rtl ajax 729 730 jQuery(document).ready(function($) { 731 // Click event for .demo-rtl button (Set value to 1) 732 $('.demo-rtl').on('click', function() { 733 // Set the RTL value to 1 734 var rtlValue = 1; 735 736 // AJAX call 737 $.ajax({
738 url: filterAjax.ajaxurl, 739 type: 'POST', 740 data: { 741 action: 'histudy_set_rtl_cookie', 742 rtl_enable: rtlValue // Pass the RTL value 743 }, 744 success: function(response) { 745 if (response.success) { 746 747 var rtlValue = response.data.rtl_enable; 748 749 if (rtlValue === '1') { 750 $('#main-rtl-style-css').remove(); 751 752 // Prevent caching issues with timestamp 753 var timestamp = new Date().getTime(); 754 755 // Dynamically load RTL stylesheet 756 $('head').append('<link id="main-rtl-style-cssfarid" rel="stylesheet" href="http://histudy-new.local/wp-content/themes/histudy/assets/css/rtl.css?v=' + timestamp + '" type="text/css" />'); 757 console.log('RTL style loaded.'); 758 } 759 setRtlCookie(rtlValue); 760 } else { 761 console.error(response.data.message); // Log error message 762 } 763 }, 764 error: function(xhr, status, error) { 765 console.error('AJAX error:', error); 766 } 767 }); 768 }); 769 770 // Click event for .demo-lrt button (Set value to 0) 771 $('.demo-lrt').on('click', function() { 772 // Set the RTL value to 0 773 var rtlValue = 0; 774 775 // AJAX call 776 $.ajax({
777 url: filterAjax.ajaxurl, 778 type: 'POST', 779 data: { 780 action: 'histudy_set_rtl_cookie', 781 rtl_enable: rtlValue 782 }, 783 success: function(response) { 784 console.log(response) 785 if (response.success) { 786 787 var rtlValue = response.data.rtl_enable; 788 789 if (rtlValue === '1') { 790 // Dynamically load RTL stylesheet 791 $('head').append('<link id="histudy-rtl-css-dynamic" rel="stylesheet" href="http://histudy-new.local/wp-content/themes/histudy/assets/css/rtl.css" type="text/css" />'); 792 console.log('RTL style loaded.'); 793 } 794 setRtlCookie(rtlValue); 795 } else { 796 console.error(response.data.message); // Log error message 797 } 798 }, 799 error: function(xhr, status, error) { 800 console.error('AJAX error:', error); 801 } 802 }); 803 }); 804 805 // Function to set the RTL cookie using JavaScript 806 function setRtlCookie(rtl_value) { 807 document.cookie = "rtl_enable=" + rtl_value + "; path=/; max-age=86400"; // Set for 24 hours 808 updateLayoutBasedOnRtl(rtl_value); 809 } 810 811 // Update the layout based on the RTL value 812 function updateLayoutBasedOnRtl(rtl_value) { 813 if (rtl_value === '1') { 814 document.body.setAttribute('dir', 'rtl'); 815 } else { 816 document.body.setAttribute('dir', 'ltr'); 817 } 818 } 819 }); 820 821 822})(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.