1 2 3 4 5 6<!DOCTYPE html> 7<html> 8<head> 9 <title>Our Courses</title> 10 <meta name="keywords" content="Courses"/> 11 <meta name="description" content=""/> 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 69 70 71 72 73 74 75 76 77 78 79 80 81 <meta name="google" content="notranslate"> 82 83 84 <link rel="canonical" href="https://learn.mahdavia-academy.com/s/store" /> 85 86 87 88<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> 89<link rel="icon" href="/favicon.ico" type="image/x-icon"> 90 91 92 93 94 95 96 97
97<script>var orgCountry = "US";</script>
97 98 99 100 101 102<link id="theme" href="https://d502jbuhuh9wk.cloudfront.net/resources/themes/default/spectre.min.css" rel="stylesheet"> 103 104<link rel="preconnect" href="https://fonts.googleapis.com"> 105<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 106 107<link rel="preload" href="https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined" as="style" onload="this.onload=null;this.rel='stylesheet'"> 108<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined" ></noscript> 109 110<link rel="preload" href="https://d502jbuhuh9wk.cloudfront.net/resources/css/intlTelInput.css?v=1" as="style" onload="this.onload=null;this.rel='stylesheet'"> 111<noscript><link rel="stylesheet" href="https://d502jbuhuh9wk.cloudfront.net/resources/css/intlTelInput.css?v=1" ></noscript> 112 113<link rel="preload" href="https://d502jbuhuh9wk.cloudfront.net/fontawesome/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 114<noscript><link rel="stylesheet" href="https://d502jbuhuh9wk.cloudfront.net/fontawesome/css/all.min.css" ></noscript> 115 116<link id="theme-exp" href="https://d502jbuhuh9wk.cloudfront.net/resources/themes/default/spectre-exp.min.css" rel="stylesheet"> 117 118 119 120 121 <link href="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/stylesheets/sstyles_0f8f8346b730ed7f9d44d25335e652c6.css" rel="stylesheet"> 122 <link rel="stylesheet" href="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/stylesheets/sstore_052a28d8fc16dab749345a09dfcd63bf.css"/> 123 124 <link rel="stylesheet" href="https://d502jbuhuh9wk.cloudfront.net/resources/stylesheets/gtheme4.css?v=7"/> 125 126 <style type="text/css"> 127 #loginLoader{ 128 position: absolute; 129 left: 0; 130 right: 0; 131 margin-left: auto; 132 margin-right: auto; 133 width: 100px; 134 top: 50%; 135 } 136 .customSocialBtn { 137 display: flex; 138 white-space: nowrap; 139 justify-content: center; 140 align-items: center; 141 padding: 11px 67px; 142 position: static; 143 left: 0px; 144 top: 40px; 145 cursor: pointer; 146 margin: auto; 147 border: none; 148 gap: 10px; 149 /*width: 364px; 150 height: 48px; 151 background: #000000; */ 152 /*For New Button Remove Bellow Codes and Uncomment upper Code */ 153 background: white; 154 border-radius: 4px; 155 box-shadow: 0 2px 4px 0 rgb(0 0 0 / 25%); 156 width: 245px; 157 height: 40px; 158 } 159 160 .customSocialBtn img.icon { 161 height: 20px; 162 width: 20px; 163 } 164 .customSocialBtn span.buttonText { 165 font-style: normal; 166 font-weight: 900; 167 font-size: 16px; 168 line-height: 120%; 169 opacity: 0.9; 170 font-family: 'Roboto', sans-serif; 171 /* color: #F7F7F7; */ 172 /*For New Button Remove Bellow Codes and Uncomment upper Code */ 173 color: #808080; 174 } 175 </style> 176 177 178 179 180 181 <style type="text/css"> 182 183 .main.container { margin-top: calc(var(--headerHeight) + 25px); } 184 185 </style> 186 187 188 189 190 191 <style type="text/css"> 192 footer a, footer+div a { 193 color: var(--footerTextColor) !important; 194 } 195 footer .socialIcons {text-align: right;} 196 @media (max-width: 600px) { 197 footer .linksCont a { display: block !important; } 198 footer .socialIcons {text-align: center;margin-top: 20px;} 199 } 200 </style> 201 202 203 204 205 206 207 208<style type="text/css"> 209 :root { 210 --themeColor: #5755d9; 211 --themeBGColor: #fff; 212 --headerHeight: 80px; 213 --headerTextColor: #194583; 214 --headerBGColor: #c0c0c0; 215 216 } 217 218 219 :root { 220 --themeColor: #73BAA1; 221 --themeBGColor: #EBFAF5; 222 --themeCornerRadius: 2px; 223 --themeGrayColor: #F7F5F2; 224 } 225 226</style> 227 228<style type="text/css"> 229 .loginBtn 230{ 231background-color: #F3980E !important; 232color: #0F4327 !important; 233} 234 235 236</style> 237 238 239 240
241<script type="text/javascript"> 242 window.onload = function(event) { 243 document.querySelectorAll('header .avatar img').forEach(function(img){ 244 if(img.naturalWidth == 0) { 245 img.style.display='none'; 246 } 247 }) 248 }; 249 var RESCDN = "https://d502jbuhuh9wk.cloudfront.net"; 250 251 function showCourseDefaultCover(img, cid) { 252 var rndm = ((parseInt(cid.replace(/[a-z]/g, '')) % 10) % 6) + 1; 253 rndm = isNaN(rndm) ? 1 : rndm; 254 if(img === null) { 255 return RESCDN + "/resources/images/cc"+rndm+".jpg"; 256 } 257 258 img.src = RESCDN + "/resources/images/cc"+rndm+".jpg"; 259 } 260</script>
260 261 262 263 264 265 266 267 268 269 270 271 272
273<script type="text/javascript">var learnerConsentMsg = `We've updated our <a href='/termsofuse' target='_blank' style='text-decoration:underline'>terms and conditions</a> and <a href='/privacy-policy' target='_blank' style='text-decoration:underline'>privacy policy</a>.<br>By proceeding, you agree to our new terms.`;</script>
273 274
275<script type="text/javascript">var creatorConsentMsg = `We've updated our <a href='https://graphy.com/legal/terms' target='_blank' style='text-decoration:underline'>terms and conditions</a> and <a href='https://graphy.com/legal/privacy' target='_blank' style='text-decoration:underline'>privacy policy</a>.<br>By proceeding, you agree to our new terms.`;</script>
275 276
277<script type="text/javascript">var cookieMsg = `We use cookies to personalise your experience and to analyse our website traffic. By continuing to use our website, you consent to our cookies.`;</script>
277 278 279 280 281 282
282<script>var orgTermsOfUseVersion = parseInt("2");</script>
282 283 284 285
286<script type="text/template" id="consentPromptTemplate"> 287<div class="spectre"> 288 <div class="modal active" id="consentPrompt"> 289 <a href="javascript:void(0);" class="modal-overlay" aria-label="Close"></a> 290 <div class="modal-container" style="max-width:325px"> 291 <div class="modal-header" style="padding:0.8rem 0.8rem 0px 0.8rem;"> 292 <div class="modal-title h5 text-center">Updated Terms</div> 293 </div> 294 <div class="modal-body"> 295 296 <form id="consentForm" style="text-align:center; font-size:13px"> 297 <div class="content"></div><br> 298 <div class="text-center"> 299 <button id="consentBtn" type="button" class="btn close btn-primary">I Agree</button> 300 </div> 301 </form> 302 303 </div> 304 </div> 305</div> 306</script>
306 307 308
309<script> 310 var hideCookiePopup = false; 311 var cookieConsentEnabled = true; 312 if(!cookieConsentEnabled){ 313 hideCookiePopup = true; 314 } 315 var SPORG = {subscriptionPlan: "rise", checkout_version: "2", customer_type: "s"}; 316</script>
vendor: 1 bytes, line 316
316
317<script type="text/template" id="cookiePopupTemplate"> 318<div class="spectre" style="position: fixed; bottom: 0; width: 100%; opacity:1; z-index: 9999;"> 319 <div class="modal-container p-0" id="cookiePopup"> 320 <form id="cookiePopupForm"> 321 <div class="columns" style="align-items: center;"> 322 <div class="column col-sm-12 content text-center"></div> 323 <div class="column col-sm-12 text-center"> 324 <a href="/privacy-policy" class="btn" target="_blank" id="viewPrivacyPolicyBtn" style="margin-right:15px;">View privacy policy</a> 325 <button id="acceptCookiesBtn" type="button" class="btn close btn-primary">Accept cookies</button> 326 </div> 327 </div> 328 </form> 329 </div> 330</div> 331</script>
331 332 333 334 335 336 337 338 <!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 338-339
338 339<script async src="https://www.googletagmanager.com/gtag/js?id=
339G-2KLRCYX2NJ
vendor: 12 bytes, line 339
339"></script>
340<script> 341
vendor: 134 bytes, lines 341-345
341window.dataLayer = window.dataLayer || []; 342 function gtag(){dataLayer.push(arguments);} 343 gtag('js', new Date()); 344 345 gtag('config', '
345G-2KLRCYX2NJ
vendor: 4 bytes, line 345
345');
346</script>
346 347 348 349 350 351 352 353
353<script async src="http://www.googletagmanager.com/gtag/js?id=<meta name="google-site-verification" content="AvInxwCZ24FJ72op0AfDnlFZdCpLu301p7gPqXL-UBs" />"></script>
353 354
354<script> 355 window.dataLayer = window.dataLayer || []; 356 function gtag(){dataLayer.push(arguments);} 357 gtag('js', new Date()); 358 359 gtag('config', '<meta name="google-site-verification" content="AvInxwCZ24FJ72op0AfDnlFZdCpLu301p7gPqXL-UBs" />'); 360 </script>
360 361 362 363 364 365 366 367 368 369 370 371 372<!-- Google Tag Manager -->
373<script>
vendor: 327 bytes, lines 373-377
373(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 374new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 375j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 376'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 377})(window,document,'script','dataLayer','
377GTM-KW7N9P2
vendor: 4 bytes, line 377
377');
378</script>
378 379<!-- End Google Tag Manager --> 380 381
381<script defer type="text/javascript" src="https://api.pirsch.io/pirsch-extended.js" 382 id="pirschextendedjs" 383 data-code="f0qlTkbcuNsW6gfgQvSYpUjBZsnc8TKe"></script>
383 384 385 <meta name="google-site-verification" content="AvInxwCZ24FJ72op0AfDnlFZdCpLu301p7gPqXL-UBs" /> 386</head> 387<body class="theme4"> 388 389 390 391 392 393 394 395<div class="header spectre fixed" 396 style="background-color: #c0c0c0;"> 397 398 <header class="navbar container" style="min-height: 80px;"> 399 400 <div id="navbar-section-btn"> 401 402 <a class="btn btn-link btn-action ml-2" id="header-collapse-btn" href="javascript:void(0);"> 403 <i class="icon-menu material-icons">menu</i> 404 </a> 405 </div> 406 <section class="navbar-section" style="min-height: 80px;"> 407 <a href="/" amplitude-event="navbar_link_tapped_user_landing_page" amplitude-payload='{"custom_domain": "learn.mahdavia-academy.com","button":"profile_logo"}'><img alt="logo" onerror="this.src='https://d502jbuhuh9wk.cloudfront.net/resources/images/yourlogohere.jpg'" src='https://d502jbuhuh9wk.cloudfront.net/logos/679123eaf879d2437ac3c915.png?v=1'/></a> 408 </section> 409 410 <section class="navbar-section hide-md"> 411 <form class="input-group p-0 relative" action="/s/store/courses" method="GET" style="width:100%;background:transparent"> 412 <div class="input-group" style="width: 100%;"> 413 <input type="text" name="query" value="" class="form-input input-lg searchTxtBox" placeholder="Search"> 414 <button type="submit" class="btn btn-link"><i class="fa-regular fa-magnifying-glass"></i></button> 415 </div> 416 </form> 417 </section> 418 419 <section class="navbar-section menu-links"> 420 421 <a href="/s/store" class="nav-link" data-id="courses" amplitude-event="navbar_link_tapped_user_landing_page" amplitude-payload='{"custom_domain": "learn.mahdavia-academy.com","button":"store"}'>Courses</a> 422 423 424 425 <a href="/aboutus" class="nav-link" data-id="about" amplitude-event="navbar_link_tapped_user_landing_page" amplitude-payload='{"custom_domain": "learn.mahdavia-academy.com","button":"about"}'>About</a> 426 427 428 429 430 431 432 433 <a href="/products#nav_bar" class="nav-link" amplitude-event="digital_products_tapped" amplitude-payload='{"source":"nav_bar"}' href="javascript:void(0);">Digital Products</a> 434 435 436 437 438 439 440 441 442 443 <a href="javascript:void(0);" class="btn btn-primary loginBtn">Login</a> 444 445 446 </section> 447 </header> 448 449 450 <form class="show-md container" action="/s/store/courses" method="GET" style="background:transparent;"> 451 <div class="input-group relative" style="width: 100%;"> 452 <input type="text" name="query" value="" class="form-input input-lg searchTxtBox" placeholder="Search"> 453 <button type="submit" class="btn btn-link"><i class="fa-regular fa-magnifying-glass"></i></button> 454 </div> 455 </form> 456 457</div> 458 459 460 <div class="spectre"> 461 <div class="main container" style="margin-top: 80px;"> 462 <div class="columns pt-2"> 463 <div class="column col-4 col-sm-12"> 464 <div class="dropdown categoriesBtn col-12"> 465 <a href="#" class="btn btn-lg btn-primary dropdown-toggle" tabindex="0"><span class="icon-text">Category</span> <i class="material-icons">arrow_drop_down</i></a> 466 <ul class="menu"></ul> 467 </div> 468 </div> 469 </div> 470 471 472 <div class="columns" style="margin-top: 50px;" id="courseslist"> 473 <div class="column col-12 loading loading-lg"></div> 474 <div class="empty col-12" style="display: none;"> 475 <p class="empty-title"> 476 477 Keep a lookout for our courses, they're coming soon 478 479 </p> 480 481 </div> 482 </div> 483 484 485 486 </div> 487 </div> 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506<div class="yogya-footer" style="display: flex !important;align-items:center;justify-content:center;clear:both;width: 100%;flex-direction: column; row-gap:30px; background: #F7F7F7; color: #232228; padding: 80px 10px;"> 507 508 509 510 511 512 513 <a style="display: flex !important;align-items:center;justify-content:center;text-decoration: none !important;background: #000 !important;color: #fff !important;padding: 12px 20px !important;border-radius: 4px !important;font-size: 14px !important;font-weight: 600 !important;line-height: 20px !important;" rel="nofollow" href="https://graphy.com/products/create-and-sell-course-online?utm_campaign=mahdaviaacademy&utm_source=gc&utm_device=website&gref=mahdaviaacademy" target="_blank"><img alt="Launch your Graphy" style="height: 20px; width: 11px; margin-right: 12px;" src="/resources/images/grvector.svg">Launch your Graphy</a> 514 <div class="text-center" style="font-size: 12px;font-weight: 400;line-height: 20px;letter-spacing: 0.015em;">100K+ creators trust <a href="https://graphy.com/products/create-and-sell-course-online?utm_campaign=mahdaviaacademy&utm_source=gc&utm_device=website&gref=mahdaviaacademy" target="_blank" rel="nofollow" style="color: #000 !important;text-decoration: underline !important;padding: 0 !important;font-size: inherit !important;">Graphy</a> to teach online</div> 515 516 517 518 519 <div style="display: flex !important;align-items:center;justify-content:center;column-gap: 12px;"> 520 521 522 523 524 525 526 </div> 527 <div style="display: flex !important;align-items:center;justify-content:center;font-size: 14px;font-weight: 500;line-height: 20px;letter-spacing: 0.015em;column-gap: 12px;flex-wrap: wrap;"> 528 <span>
528Mahdavia Academy <i class="fa-regular fa-copyright"></i> 2026</span> <i class="fa-solid fa-circle" style="font-size: 4px;"></i> 529 <a href="/privacypolicy" style="color: #232228 !important; padding: 0 !important;font-size: inherit !important;text-decoration: underline !important">Privacy policy</a> <i class="fa-solid fa-circle" style="font-size: 4px;"></i> 530 <a href="/termsofuse" style="color: #232228 !important;padding: 0 !important;font-size: inherit !important;text-decoration: underline !important">Terms of use</a> <i class="fa-solid fa-circle" style="font-size: 4px;"></i> 531 <a href="/contactus" style="color: #232228 !important;padding: 0 !important;font-size: inherit !important;text-decoration: underline !important">Contact us</a> <i class="fa-solid fa-circle" style="font-size: 4px;"></i> 532 <a href="/refundpolicy" style="color: #232228 !important;padding: 0 !important;font-size: inherit !important;text-decoration: underline !important">Refund policy</a> 533 </div> 534</div> 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549
550<script>const customDomain = "learn.mahdavia-academy.com";</script>
550 551 552 553 554
555<script> 556var disabledLocleVar='Disabled'; 557var enabledLocaleVar='Enabled'; 558var smsLocaleVar='SMS'; 559var webpushLocaleVar='Web Push'; 560var mobilepushLocaleVar='Mobile Push'; 561var invoicenumberLocaleVar='Invoice Number'; 562var productLocaleVar='Product'; 563var dateLocaleVar='Date'; 564var amountLocaleVar='Amount'; 565var detailsLocaleVar='Details'; 566var subscriptionPlanLocaleVar='Subscription Plan'; 567var addonsLocaleVar='Add Ons'; 568var showLocalVar='Show'; 569var hideLocaleVar='Hide'; 570</script>
570 571<div class="spectre"> 572 573 574 575 576 577 578 579
579<script> 580 var isPopupLogin = true; 581 var login = ''; 582 var message = ''; 583 function closeLoginPopup() { 584 $("#loginFormHtml").removeClass("active"); 585 $("body").removeClass("overflowYDisable"); 586 } 587 </script>
587 588 589 590 591 592 593 594 <div class="modal" id="loginFormHtml"> 595 <iframe id="microfe-popup-login" src="/t/public/login" loading="lazy" 596 style="width: calc(100% + 10px); height: 100vh; border: none;" 597 onload="$(this).parent().removeClass('loading');"></iframe> 598 </div> 599 600 601 602 603 604 <div class="modal" id="cartHtml"> 605 <a href="javascript:void(0);" class="modal-overlay close" 606 aria-label="Close"></a> 607 <div class="modal-container" style="max-width: 800px;"> 608 <div class="modal-header"> 609 <a href="javascript:void(0);" 610 class="close btn btn-clear float-right" aria-label="Close"></a> 611 <div class="modal-title h5"> 612 <i class="fa-regular fa-shopping-cart"></i> 613 Cart 614 (<span class="cartCount">0</span> 615 Items 616 ) 617 </div> 618 </div> 619 <div class="modal-body" style="max-height: 70vh;"> 620 <div class="content"> 621 622 <div class="text-center msg loading"></div> 623 <div class="text-center msg noItems" style="display: none;"> 624 There are no items in your cart<br/> 625 <a class="btn btn-primary" href="/s/store" 626 style="margin: 20px auto;"> 627 Add More 628 </a> 629 </div> 630 <div class="items msg" style="display: none;"> 631 <div class="m-0 cartDiv"> 632 <table class="table cartTable"> 633 <thead> 634 <tr> 635 <th colspan="2">Item Details</th> 636 <th class="text-right">Price</th> 637 <th style="width: 50px;"></th> 638 </tr> 639 </thead> 640 <tbody></tbody> 641 </table> 642 </div> 643 <div class="suggestCart mt-2 bg-gray p-2" style="display: none;"> 644 <h6>You may also be interested in</h6> 645 <div class="columns loading" id="cartRelatedCont"></div> 646 </div> 647 </div> 648 </div> 649 </div> 650 <div class="modal-footer"> 651 <div class="msg items clearfix"> 652 653 654 655 656 657 <div class="float-right"> 658 Total Amount 659 <span class="text-primary curr">$<span 660 class="totalAmount">0</span></span> 661 </div> 662 </div> 663 <div class="msg items clearfix mt-2"> 664 <a class="btn float-left" href="/s/store" amplitude-event="add_more_course_checkout"> 665 Add More 666 </a> 667 668 669 670 671 672 673 674 <a class="btn btn-primary float-right" href="/s/checkout" amplitude-event="checkout_tapped_course_checkout" amplitude-payload='{"currency": "USD" }'>Checkout</a> 675 </div> 676 </div> 677 </div> 678 </div> 679 <div class="modal" id="newCheckoutHtml" style="padding: 0; z-index: 10000;"> 680 <div id="newCheckoutLoader" class="loading loading-lg" style="position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);width: 100%;height: 100%;background-color: rgba(0, 0, 0, 0.5); z-index: 1000;display:none;"></div> 681 <!-- <a href="javascript:void(0);" class="modal-overlay close" 682 aria-label="Close"></a> 683 <div class="modal-container" style=""> --> 684 685 686 <iframe onload="hideCheckoutLoader()" id="newCheckoutIframe" sandbox="allow-top-navigation allow-modals allow-popups allow-presentation allow-orientation-lock allow-pointer-lock allow-popups-to-escape-sandbox allow-top-navigation-by-user-activation allow-scripts allow-same-origin allow-forms" style = "width: calc(100% + 10px); height: 100%; border: none;" src=""></iframe> 687 688 <!-- </div> --> 689 </div> 690</div> 691
692<script type="text/template" id="cartItemTemplate"> 693 <tr data-id="<@- item.id @>" data-type="<@- item.type @>" data-title="<@- item.title @>" data-price="<@- item.price @>" data-coursecategory="<@- item.courseCategory @>"> 694 <@ var itemType = item.type; @> 695 <td style="width:150px;"> 696 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item.id +"/"+ item.id +"_scaled_cover.jpg?v=" + coverVersion; if(isNaN(coverVersion)) { curl = showCourseDefaultCover(null, item.id) } @> 697 <img alt="<@- item.title @> cover" style="width:100%;max-height:100px;" class="img-fit-contain lazy" onerror="showCourseDefaultCover(this, '<@- item.id @>')" 698 data-src='<@- curl @>' /> 699 </td> 700 <td class="itemTitle"><@- item.title @><@ if(item.description !== undefined) { @><div class='text-gray variantDescription'><@ print(item.description) @></div><@ } @></td> 701 <td class="text-right curr"><@ if(item.priceWithoutTax !== undefined && 'Tax' != '') { @><@ print(getDisplayAmount(item.priceWithoutTax)) @><br><small><@ print(getDisplayAmount(item.price)) @> incl. <@- item.gstRate @>% Tax</small><@ } else { @><@ print(getDisplayAmount(item.price)) @> <@ if(item.gstRate > 0 && 'Tax' != '') { print("<br><small>incl. " +item.gstRate+"% Tax</small>") } @><@ } @> 702 <@ if(item.pgChargesLearnerPercent !==undefined && getDisplayAmount(item.pgChargesLearnerPercent).includes('₹')) {@> <br><small>Internet handling fees: <@print(getDisplayAmount(item.pgChargesLearnerPercent/100*item.price))@></small> <@} @> 703 </td> 704 <td>
704<button class="btn btn-sm btn-error btn-action circle removeItemBtn" data-url="/s/cart/remove/<@- item.id @>"><i class="material-icons">clear</i></button></td> 705 </tr> 706 </script>
vendor: 1 bytes, line 706
706
707<script type="text/template" id="cartcoursecard-template"> 708 <div class="column col-2 col-md-4 scourse <@- item['spayee:resource']['spayee:courseType'] @>" title="<@- item["spayee:resource"]["spayee:title"] @>"> 709 <a class="card" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"> 710 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item["spayee:resource"]["spayee:coverVersion"]; if(isNaN(item["spayee:resource"]["spayee:coverVersion"])) { curl = showCourseDefaultCover(null, item._id) } @> 711 <img style="width: 100%;" alt="<@- item['spayee:resource']['spayee:title'] @> cover" class="lazy" data-src="<@- curl @>" onerror="showCourseDefaultCover(this, '<@- item._id @>')"> 712 <div class="card-footer" style="padding: 0.2rem;"><span class="ctitle text-ellipsis d-block" style="color:#2f4f4f;font-size:small;"><@- item["spayee:resource"]["spayee:title"] @></span></div> 713 </a> 714 </div> 715 </script>
vendor: 1 bytes, line 715
715
716<script type="text/template" id="coursecard-template"> 717 <div class="column scourse <@- item['spayee:resource']['spayee:courseType'] @> hidePackageRibbon<@- item['spayee:resource']['spayee:hidePackageRibbon'] @>"> 718 719 720 721 <@ var itemCategory = (item['spayee:resource']['spayee:filter1'] !== undefined)? item['spayee:resource']['spayee:filter1'][0]:'' @> 722 723 <a class="card courseDiscId" style="height:100%" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" data-id="<@- item._id@>" data-dcid="<@-item._id@>" 724 amplitude-event="course_card_tapped_checkout" 725 amplitude-payload='{"<@- item['spayee:resource']['spayee:courseType']== 'package' ? "package_id" : "course_id" @>": "<@- item._id @>","is_a_package":"<@- item['spayee:resource']['spayee:courseType']== 'package' ? "true" : "false" @>","price_on_card":"<@- removeCurrencySymbol(getCourseDisplayPrice('$', '', item, '0.0', '', false)) @>","currency":"USD","multiple_pricing_plans_exist":"<@- isMultiplePlansAvailable('', item) @>","wallet_coins_enabled_on_school":"false","category":"<@- itemCategory @>"}' 726 > 727 728 729 730 <div class="card-image relative <@ print(item["spayee:resource"]["spayee:availableForMembership"] ? 'includedInMembership' : '') @>"> 731 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id + "/" + item._id +"_scaled_cover.jpg?v=" + item["spayee:resource"]["spayee:coverVersion"]; if(isNaN(item["spayee:resource"]["spayee:coverVersion"])) { curl = showCourseDefaultCover(null, item._id); } @> 732 <div class="blurbg lazy" data-bg="<@- curl @>"></div> 733 <img alt="<@- item['spayee:resource']['spayee:title'] @> cover" class="lazy" data-src="<@- curl @>" onerror="showCourseDefaultCover(this, '<@- item._id @>')"> 734 </div> 735 <div class="card-body text-ellipsis"> 736 <span class="ctitle" style="color:#2f4f4f;text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;"><@- item["spayee:resource"]["spayee:title"] @></span><br> 737 738 <@ if(item.rating !== undefined) { @> 739 <span class="text-gray ratingIcons icon-text"> 740 <@ for(var i=1;i<6;i++) { @> 741 <@ if(item.rating.avgRating >= i) { @><i class="material-icons text-primary">star</i><@ }else if(item.rating.avgRating > i-1 && item.rating.avgRating < i) { @><i class="material-icons text-primary">star_half</i><@ }else { @> 742 <i class="material-icons">star_border</i> 743 <@ } } @></span><small class="d-inline-block pl-1 text-dark"><@ print(formatRating(item['rating']['avgRating'])) @> (<@- item['rating']['total'] @> ratings)</small> 744 <@ }else { @> <span class="text-gray ratingIcons icon-text"> </span> <@ } @> 745 <br> 746 <span class="text-gray"> 747 <@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @> 748 <@ print(item["courses-count"]!==undefined?item["courses-count"]:"0") @> Courses 749 <@ }else { @> 750 <@ print(item["spayee:resource"]["spayee:publisher"]!==undefined?htmlEntities(item["spayee:resource"]["spayee:publisher"]):" ") @> 751 <@ } @> 752 </span> 753 </div> 754 <div class="card-footer"> 755 <@ print(getCourseDisplayPrice('$', '', item, '0.0', '', true)) @> 756 <span class="text-gray" style="font-size:small"> 757 <@ if(item['spayee:resource']['spayee:instalmentPlanId']!=null && item['spayee:resource']['spayee:instalmentPlanId'] !== "") { @> 758 <@ print(getCourseInstalmentDisplayPrice('', item))@> 759 <@ }else { @> 760 <@ " " @> 761 <@ } @> 762 </span> 763 </div> 764 <div style="padding: 0 0.8rem 0.8rem 0.8rem;"> 765 <span class="text-gray" style="font-size:small"> 766 <@ if(getMultiplePlanLabel('', item)>1) {@> 767 <i class="material-icons text-primary" style="font-size:small">discount</i> 768 <@ print(' Flexible pricing plans') } @> 769 </span> 770 </div> 771 </a> 772 </div> 773 </script>
773 774
775<script type="text/template" id="blogcard-template"> 776 <div class="column col-3 col-md-6 col-sm-6 col-xs-12 scourse" style="margin-bottom: 20px;"> 777 <a class="card" title="<@- item['spayee:resource']['spayee:title'] @>" href="/blog/<@- item['spayee:resource']['spayee:url'] @>"> 778 <div class="card-image relative"> 779 <@ if(item['spayee:resource']['spayee:cover'] !== undefined && item['spayee:resource']['spayee:cover']) { @> 780 <div class="blurbg lazy" data-bg="https://d502jbuhuh9wk.cloudfront.net/articles/<@- item._id @>/cover.jpg<@ print(item["spayee:resource"]["spayee:coverVersion"] !== undefined?"?v="+item["spayee:resource"]["spayee:coverVersion"]:"") @>"></div> 781 <img alt="<@- item['spayee:resource']['spayee:title'] @> cover" class="img-responsive centered relative lazy" style="max-height: 100%;" data-src="https://d502jbuhuh9wk.cloudfront.net/articles/<@- item._id @>/cover.jpg?v=<@- item['spayee:resource']['spayee:coverVersion'] @>" onerror="showCourseDefaultCover(this, '<@- item._id @>')"> 782 <@ }else { @> 783 <div class="blurbg lazy" data-bg="https://d502jbuhuh9wk.cloudfront.net/resources/images/defaultCourseCover.png"></div> 784 <img alt="<@- item['spayee:resource']['spayee:title'] @> cover" class="img-responsive centered relative lazy" style="max-height: 100%;" data-src='https://d502jbuhuh9wk.cloudfront.net/resources/images/defaultCourseCover.png'> 785 <@ } @> 786 </div> 787 <div class="card-body text-ellipsis"><span style="color:#2f4f4f;"><@- item["spayee:resource"]["spayee:title"] @></span></div> 788 <div class="card-footer" style="padding: 0.4rem;"> 789 <span class="text-gray float-left text-ellipsis" style="max-width: calc(100% - 110px);"><@ print(item["spayee:resource"]["spayee:author"]!==undefined?htmlEntities(item["spayee:resource"]["spayee:author"]):"") @></span> 790 <@ var pdate = item.createdDate.$date; if(item['spayee:resource']['spayee:publishDate'] !== undefined && item['spayee:resource']['spayee:publishDate'] !== '') { pdate = item['spayee:resource']['spayee:publishDate']; } @> 791 <time class="float-right text-warning"><@ print(formatDate(new Date(pdate))) @></time> 792 </div> 793 </a> 794 </div> 795 </script>
795 796 797
797<script type="text/javascript"> 798 var uuid = function (a) { 799 // https://github.com/amplitude/Amplitude-Javascript/blob/master/src/uuid.js 800 return a // if the placeholder was passed, return 801 ? // a random number from 0 to 15 802 ( 803 a ^ // unless b is 8, 804 ((Math.random() * // in which case 805 16) >> // a random number from 806 (a / 4)) 807 ) // 8 to 11 808 .toString(16) // in hexadecimal 809 : // or otherwise a concatenated string: 810 ( 811 [1e7] + // 10000000 + 812 -1e3 + // -1000 + 813 -4e3 + // -4000 + 814 -8e3 + // -80000000 + 815 -1e11 816 ) // -100000000000, 817 .replace( 818 // replacing 819 /[018]/g, // zeroes, ones, and eights with 820 uuid, // random hex digits 821 ); 822 }; 823 824 (function(e,t){var n=e.amplitude||{_q:[],_iq:{}};var r=t.createElement("script") 825 ;r.type="text/javascript" 826 ;r.integrity="sha384-tzcaaCH5+KXD4sGaDozev6oElQhsVfbJvdi3//c2YvbY02LrNlbpGdt3Wq4rWonS" 827 ;r.crossOrigin="anonymous";r.async=true 828 ;r.src="https://cdn.amplitude.com/libs/amplitude-8.5.0-min.gz.js" 829 ;r.onload=function(){if(!e.amplitude.runQueuedFunctions){ 830 console.log("[Amplitude] Error: could not load SDK")}} 831 ;var i=t.getElementsByTagName("script")[0];i.parentNode.insertBefore(r,i) 832 ;function s(e,t){e.prototype[t]=function(){ 833 this._q.push([t].concat(Array.prototype.slice.call(arguments,0)));return this}} 834 var o=function(){this._q=[];return this} 835 ;var a=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove"] 836 ;for(var c=0;c<a.length;c++){s(o,a[c])}n.Identify=o;var u=function(){this._q=[] 837 ;return this} 838 ;var l=["setProductId","setQuantity","setPrice","setRevenueType","setEventProperties"] 839 ;for(var p=0;p<l.length;p++){s(u,l[p])}n.Revenue=u 840 ;var d=["init","logEvent","logRevenue","setUserId","setUserProperties","setOptOut","setVersionName","setDomain","setDeviceId","enableTracking","setGlobalUserProperties","identify","clearUserProperties","setGroup","logRevenueV2","regenerateDeviceId","groupIdentify","onInit","logEventWithTimestamp","logEventWithGroups","setSessionId","resetSessionId"] 841 ;function v(e){function t(t){e[t]=function(){ 842 e._q.push([t].concat(Array.prototype.slice.call(arguments,0)))}} 843 for(var n=0;n<d.length;n++){t(d[n])}}v(n);n.getInstance=function(e){ 844 e=(!e||e.length===0?"$default_instance":e).toLowerCase() 845 ;if(!Object.prototype.hasOwnProperty.call(n._iq,e)){n._iq[e]={_q:[]};v(n._iq[e]) 846 }return n._iq[e]};e.amplitude=n})(window,document); 847 848 amplitude.getInstance().init('e56929a4c3888c23e97a7e70e34ccf6c'); 849 amplitude.getInstance().setUserId(null); 850 //amplitude.getInstance().regenerateDeviceId(); 851 852 var userProperties = { 853 custom_domain: "learn.mahdavia-academy.com", 854 org_id: "679123eaf879d2437ac3c915", 855 default_google_login_enabled: 'true' == 'true', 856 personalized_google_login_enabled: '969912363006-pl9qaic2m02vvqck8g80nb4k0te3o4mh.apps.googleusercontent.com' != '' && 'true' == 'false' ? true : false, 857 facebook_login_enabled: '' == 'true' ? true : false 858 }; 859 amplitude.getInstance().setUserProperties(userProperties); 860 861/* var deviceId = uuid(); 862 amplitude.getInstance().setDeviceId(deviceId); 863 sessionStorage.setItem('amplitudeDeviceId', deviceId); */ 864 </script>
864 865 866
866<script type="text/javascript"> 867 window.signupParams = {source: "store", platform: "web", sourceId: null}; 868 var showGraphyFomoFlag = ''; 869 870 </script>
870 871 872
872<script type="text/javascript"> 873 function hideCheckoutLoader() { 874 if(typeof window.hideLoader =="function") { 875 window.hideLoader(); 876 } 877 } 878 var checkoutRedirectGuestUsers = 'login'; 879 </script>
879 880 881 882 883 884 885
886<script type="text/template" id="spcoursecard-2-template"> 887 <div class="column third"> 888 <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @> 889 <a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;"> 890 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @> 891 <img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')"> 892 <h4 class="size-21 text-ellipsis" style="text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"><@- item['spayee:resource']['spayee:title'] @></h4> 893 <p class="size-16"><@ if(item.rating !== undefined) { @> 894 <span class="text-gray ratingIcons icon-text"> 895 <@ for(var i=1;i<6;i++) { @> 896 <@ if(item.rating.avgRating >= i) { @><i class="material-icons text-primary">star</i><@ }else if(item.rating.avgRating > i-1 && item.rating.avgRating < i) { @><i class="material-icons text-primary">star_half</i><@ }else { @> 897 <i class="material-icons">star_border</i> 898 <@ } } @></span><span><@ print(formatRating(item['rating']['avgRating'])) @> (<@- item['rating']['total'] @> ratings)</span> 899 <@ }else { @> <span class="text-gray ratingIcons icon-text"> </span> <@ } @></p> 900 <p class="size-16 text-ellipsis"><@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @><@ print(item["courses-count"]!==undefined?item["courses-count"]:"0") @> Courses<@ }else { @> 901 <@ print(item["spayee:resource"]["spayee:publisher"]!==undefined?item["spayee:resource"]["spayee:publisher"]:" ") @><@ } @></p> 902 903 <p class="size-18"><span style="color: rgb(21, 101, 192);"><@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', true)) @></span><br></p> 904 <div style="margin:1em 0"></div> 905 </a> 906 </div> 907 </script>
vendor: 1 bytes, line 907
907
908<script type="text/template" id="spcoursecard-1-template"> 909 <div class="column third"> 910 <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @> 911 <a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;"> 912 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @> 913 <img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')"> 914 <h4 class="size-21 text-ellipsis" style="text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"><@- item['spayee:resource']['spayee:title'] @></h4> 915 <div class="size-16 text-ellipsis" style="max-height: 3rem;"><@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"") @></div> 916 917 <p class="size-18"><span style="color: rgb(21, 101, 192);"><@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', true)) @></span><br></p> 918 <div style="margin:1em 0"></div> 919 </a> 920 </div> 921 </script>
vendor: 1 bytes, line 921
921
922<script type="text/template" id="spcoursecard-3-template"> 923 <div class="column third"> 924 <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @> 925 <a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;"> 926 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @> 927 <img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')"> 928 <h4 class="size-21 text-ellipsis" style="text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"><@- item['spayee:resource']['spayee:title'] @></h4> 929 <div class="size-16 text-ellipsis" style="max-height: 3rem;"><@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"") @></div> 930 <p class="size-16 text-ellipsis"><@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @><@ print(item["courses-count"]!==undefined?item["courses-count"]:"0") @> Courses<@ }else { @> 931 <@ print(item["spayee:resource"]["spayee:publisher"]!==undefined?item["spayee:resource"]["spayee:publisher"]:" ") @><@ } @></p> 932 <p class="size-18"><span style="color: rgb(21, 101, 192);"><@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', true)) @></span><br></p> 933 <div style="margin:1em 0"></div> 934 </a> 935 </div> 936 </script>
936 937
938<script type="text/template" id="spcoursecard-4-template"> 939 <div class="column third text-center" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 0px;"> 940 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @> 941 <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @> 942 <a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;"> 943 <img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')"> 944 </a> 945 <h3 class="size-18 text-center" style="text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"><b class="text-primary"><@- item['spayee:resource']['spayee:title'] @></b></h3> 946 <div class="discription"><@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"") @></div> 947 <p class="size-18 price text-primary"><@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', true)) @></p> 948 <a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" class="buy-btn btn btn-primary" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'>Buy now<br></a> 949 </div> 950 </script>
950
951<script type="text/template" id="spcoursecard-5-template"> 952 <div class="column third" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 0px;"> 953 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @> 954 <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @> 955 <a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;"> 956 <img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')"> 957 </a> 958 <h3 class="sub-heading"><b class="size-18 text-primary"><@- item['spayee:resource']['spayee:title'] @></b></h4> 959 <p class="size-16 description text-primary"> <@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @><@ print(item["courses-count"]!==undefined?item["courses-count"]:"0") @> Courses<@ }else { @> 960 Instructor : <@ print(item["spayee:resource"]["spayee:publisher"]!==undefined?item["spayee:resource"]["spayee:publisher"]:" ") @><@ } @></p> 961 <@if(item.rating){@> 962 <p class="size-16 description text-primary">Rating: 963 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 964 <@if(item.rating){@> 965 <@if(item.rating.avgRating){@> 966 <@ if(item.rating.avgRating >= ratingsSize) {@> 967 <i class="icon ion-android-star text-primary"></i> 968 <@ } else if(item.rating.avgRating > ratingsSize-1 && item.rating.avgRating < ratingsSize) { @> 969 <i class="icon ion-android-star-half text-primary"></i> 970 <@ } @> 971 <@}@> 972 <@}@> 973 <@}@> 974 </p> 975 <@}@> 976 977 <p class="size-18 price text-primary">Price : <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', true)) @></p> 978 <a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" class="buy-btn btn btn-primary" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'>Buy now</a> 979 </div> 980 </script>
980 981
982<script type="text/template" id="spcoursecard-6-template"> 983 <div class="column third"> 984 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @> 985 <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @> 986 987 988 <@ var itemCategory = (item['spayee:resource']['spayee:filter1'] !== undefined)? item['spayee:resource']['spayee:filter1'][0]:''@> 989 990 <@ if (item['spayee:resource']['spayee:availableForMarket']==="true" ) { @> 991 <a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="course_card_tapped_checkout" amplitude-payload='{"<@- item['spayee:resource']['spayee:courseType']== 'package' ? "package_id" : "course_id" @>": "<@- item._id @>","is_a_package":"<@- item['spayee:resource']['spayee:courseType']== 'package' ? "true" : "false" @>","price_on_card":"<@- removeCurrencySymbol(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @>","currency":"USD","multiple_pricing_plans_exist":"<@- isMultiplePlansAvailable(sessionCountry, item) @>","wallet_coins_enabled_on_school":"<@- false @>","category":"<@- itemCategory @>"}'> 992 <@ } else { @> 993 <a title="<@- item['spayee:resource']['spayee:title'] @>" amplitude-event="course_card_tapped_checkout" amplitude-payload='{"<@- item['spayee:resource']['spayee:courseType']== 'package' ? "package_id" : "course_id" @>": "<@- item._id @>","is_a_package":"<@- item['spayee:resource']['spayee:courseType']== 'package' ? "true" : "false" @>","price_on_card":"<@- removeCurrencySymbol(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @>","currency":"USD","multiple_pricing_plans_exist":"<@- isMultiplePlansAvailable(sessionCountry, item) @>","wallet_coins_enabled_on_school":"<@- false @>","category":"<@- itemCategory @>"}'> 994 <@ } @> 995 996 997 <img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')" style="border-radius: 20px; margin-bottom: 0px; width: 100%; height: 190px;object-fit:cover;"> 998 </a> 999 <div style="font-weight: 800; line-height: 1.1; text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;" class="text-ellipsis"><@- item['spayee:resource']['spayee:title'] @></div> 1000 <p class="size-16 description text-primary"><@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @> Courses<@ } @></p> 1001 <p class="size-18 price text-primary"><@ if (item['spayee:resource']['spayee:availableForMarket']==="true" ) @> <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @></p> 1002 <@ if (item.isMembershipPage != undefined && !item.isMembershipPage) { @> 1003 1004 1005 <@ var itemCategory = (item['spayee:resource']['spayee:filter1'] !== undefined)? item['spayee:resource']['spayee:filter1'][0]:'' @> 1006 <@ if(isMultiplePlansAvailable(sessionCountry, item) === false) { @> 1007 <a title="<@- item['spayee:resource']['spayee:title'] @>" href="/single-checkout/<@- item['_id'] @>?pid=<@ print(getCoursePid(sessionCountry, item)) @>" class="buy-btn btn btn-primary" amplitude-event="course_buy_now_tapped_checkout" amplitude-payload='{"<@- item['spayee:resource']['spayee:courseType']== 'package' ? "package_id" : "course_id" @>": "<@- item._id @>","is_a_package":"<@- item['spayee:resource']['spayee:courseType']== 'package' ? "true" : "false" @>","price_on_card":"<@- removeCurrencySymbol(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @>","currency":"USD","multiple_pricing_plans_exist":"<@- isMultiplePlansAvailable(sessionCountry, item) @>","wallet_coins_enabled_on_school":"<@- false @>","category":"<@- itemCategory @>"}' style="border: none;padding: 16px 61px; font-size: 16px; letter-spacing: 0.08px; line-height: 16px; font-weight: 600; text-decoration: none; display: block; text-align: center;"> 1008 Buy now 1009 </a> 1010 <@ } else { @> 1011 1012 <a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" class="buy-btn btn btn-primary" amplitude-event="course_buy_now_tapped_checkout" amplitude-payload='{"<@- item['spayee:resource']['spayee:courseType']== 'package' ? "package_id" : "course_id" @>": "<@- item._id @>","is_a_package":"<@- item['spayee:resource']['spayee:courseType']== 'package' ? "true" : "false" @>","price_on_card":"<@- removeCurrencySymbol(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @>","currency":"USD","multiple_pricing_plans_exist":"<@- isMultiplePlansAvailable(sessionCountry, item) @>","wallet_coins_enabled_on_school":"<@- false @>","category":"<@- itemCategory @>"}' style="border: none;padding: 16px 61px; font-size: 16px; letter-spacing: 0.08px; line-height: 16px; font-weight: 600; text-decoration: none; display: block; text-align: center;"> 1013 Buy now 1014 </a> 1015 <@ } @> 1016 1017 1018 1019 <@ } @> 1020 </div> 1021 </script>
1021 1022 1023
1024<script type="text/template" id="spcoursecard-7-template"> 1025 <div class="column third course-mob-block"> 1026 <div class="inner-course-block"> 1027 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @> 1028 <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @> 1029 <a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;"> 1030 <img class="lazy" data-style="width: 100%; height: auto;" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')" > 1031 </a> 1032 <div class="course-price-block"> 1033 <p class="text-ellipsis" title="<@- item['spayee:resource']['spayee:title'] @>" style="font-size: 18px; font-weight: 700; line-height: 1.3rem; width: 100%; margin-top: 0px; margin-bottom: 0px; min-height: 47px; text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"> 1034 <@- item['spayee:resource']['spayee:title'] @> 1035 </p> 1036 <p class="text-primary" style="word-break: break-all; font-size: 14px; font-weight: 500; line-height: 1.5; margin-top: 16px; margin-bottom: 0px;"> 1037 <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @> 1038 </p> 1039 </div> 1040 <a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" class="buy-btn btn btn-primary" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="display: inline-block; text-decoration: none; transition: all 0.16s ease 0s; border: none; cursor: pointer; border-radius: 4px; padding: 13px 28px; line-height: 1.5; font-weight: 600; font-size: 14px; letter-spacing: 0.15px; margin-top: 28px;"> 1041 Enroll now 1042 </a> 1043 </div> 1044 </div> 1045</script>
1045 1046
1047<script type="text/template" id="spcoursecard-8-template"> 1048 <div class="row clearfix" style="margin-bottom: 24px; margin-top: 14px;"> 1049 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @> 1050 <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @> 1051 <div class="column third center" style="padding-left: 0px; padding-right: 0px;"> 1052 <img 1053 class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')" 1054 style="margin-top: 0px; margin-bottom: 0px;" 1055 /> 1056 </div> 1057 <div class="column two-third course-block-mob" style="display: flex; flex-direction: column; justify-content: center;"> 1058 <div class="course-price-block"> 1059 <h3 style="color: rgb(255, 255, 255); font-size: 18px; font-weight: 700; line-height: 1.1; margin-bottom: 0px; margin-top: 0px; text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"> 1060 <@- item['spayee:resource']['spayee:title'] @> 1061 </h3> 1062 <div class="sortDescription8"> 1063 <@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"") @> 1064 </div> 1065 </div> 1066 1067 <a class="buy-btn btn btn-primary" title="<@- item['spayee:resource']['spayee:title'] @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" style="width: fit-content; text-align: left; display: inline-block; text-decoration: none; transition: all 0.16s ease 0s; cursor: pointer; background-color: rgb(231, 215, 73); color: rgb(0, 0, 0);border-radius: 0px;padding: 16px 48px;line-height: 16px;font-weight: 700;font-size: 16px;letter-spacing: 0.08px;border-image: initial;"> 1068 Enroll for <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @> 1069 </a> 1070 </div> 1071 </div> 1072 </script>
1072 1073 1074 1075 <!-- vegas TEMPLATE 9 NEW--> 1076
1076<script type="text/template" id="spcoursecard-9-template" > 1077 <div class="column third text-center course-card-fixed-height" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 2rem; text-align:left;"> 1078 <div style="border:1px solid #D7D7D7; border-radius:24px; padding-bottom: 20px; height: 100%; display: flex; flex-direction: column;"> 1079 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @> 1080 <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @> 1081 1082 <a style="color:black; text-align:left;" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'> 1083 <img style="height:200px; width:100%; object-fit:fill; margin:0px 0px; border-top-left-radius:24px; border-top-right-radius:24px;" class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')"> 1084 </a> 1085 1086 <div style="padding:10px 20px; flex-grow: 1; display: flex; flex-direction: column;" class="course-card-content"> 1087 <h3 1088 class="size-18 text-left" 1089 title="<@- item['spayee:resource']['spayee:title'] @>" 1090 style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; display: block; margin-bottom: 12px; color: black;" 1091 > 1092 <b style="color:black;"><@- item['spayee:resource']['spayee:title'] @></b> 1093 </h3> 1094 1095 <div 1096 class="size-16 text-ellipsis course-card-text" 1097 title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" 1098 style="max-height: 3rem; min-height: 3rem; margin-bottom: 12px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;" 1099 > 1100 <@= (item['spayee:resource']['spayee:shortDescription'] || '').replace(/<[^>]*>/g, '') @> 1101 </div> 1102 </div> 1103 1104 <div style="margin-top: auto; margin-left:10px;"> 1105 <a style="background-color:#FB5607 !important; border:0px !important; border-radius:62px !important; padding:10px 16px !important; width: fit-content; display: inline-block; text-decoration: none; color: white; padding: 12px 24px; font-weight: 600 !important; font-size: 16px;letter-spacing:0px; !important" 1106 class="buy-btn btn btn-primary" 1107 title="<@- item['spayee:resource']['spayee:title'] @>" 1108 amplitude-event="buy_now_tapped_course_checkout" 1109 amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' 1110 href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"> 1111 Enroll for <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @> 1112 </a> 1113 </div> 1114 </div> 1115 </div> 1116 </div> 1117</script>
1117 1118 1119 <!--Blaze Course nEW tEMPLATE 10--> 1120
1120<script type="text/template" id="spcoursecard-10-template"> 1121 <div class="column third text-center course-card-fixed-height" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 10px;margin-top:10px; text-align:left;"> 1122 <div style="height: 100%; display: flex; flex-direction: column;"> 1123 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @> 1124 <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @> 1125 1126 <a style="color:black; text-align:left;" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none; color:black; font-size:24px;"> 1127 <img style="height:320px; object-fit:cover; margin:0px 0px;" class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')"> 1128 </a> 1129 1130 <div style=" flex-grow: 1; display: flex; flex-direction: column;" class="course-card-content"> 1131 <h3 1132 class="size-18 text-left" 1133 style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; display: block; margin-bottom: 12px; color: white;" 1134 > 1135 <b title="<@= item['spayee:resource']['spayee:title'] @>" style="color:white;"> 1136 <@- item['spayee:resource']['spayee:title'] @> 1137 </b> 1138 </h3> 1139 1140 <div title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" class="size-16 text-ellipsis course-card-text" style="max-height: 3rem; min-height: 3rem; margin-bottom: 12px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;color:white;"> 1141 <@= (item['spayee:resource']['spayee:shortDescription'] || '').replace(/<[^>]*>/g, '') @> 1142 </div> 1143 1144 <div style="margin-top: auto;"> 1145 <a style="width:100% !important;font-weight:600 !important; letter-spacing:0px; color:black !important; background-color:#D8FD46 !important; border:0px !important; border-radius:0px !important; padding:20px 36px !important; width: fit-content; display: inline-block; text-decoration: none; transition: all 0.16s ease 0s; cursor: pointer; padding: 16px 28px; line-height: 16px; font-weight: 700; font-size: 16px; letter-spacing: 0px; border-image: initial;" 1146 class="buy-btn btn btn-primary" 1147 title="<@- item['spayee:resource']['spayee:title'] @>" 1148 amplitude-event="buy_now_tapped_course_checkout" 1149 amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' 1150 href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"> 1151 Enroll for <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @> 1152 </a> 1153 1154 </div> 1155 </div> 1156 </div> 1157 </div> 1158 </script>
1158 1159 1160 <!--Olive Course 11--> 1161
1161<script type="text/template" id="spcoursecard-11-template" > 1162 <@ 1163 // Calculate colors based on index 1164 var colorIndex = (typeof window.courseCardColorIndex === 'undefined') ? 0 : window.courseCardColorIndex; 1165 var colors = [ 1166 { bg: '#FFA46B', btnBg: '#361500' }, // Orange card → Dark brown button 1167 { bg: '#87A1F6', btnBg: '#001A71' }, // Blue card → Dark blue button 1168 { bg: '#B073DC', btnBg: '#34005A' } // Purple card → Dark brown button (default) 1169 ]; 1170 var currentColor = colors[colorIndex % 3]; 1171 window.courseCardColorIndex = colorIndex + 1; 1172 @> 1173 1174 <div class="column third text-center course-card course-card-fixed-height" style="padding: 0 15px; margin-bottom: 30px;"> 1175 <div class="course-card-wrapper" style="background-color: <@- currentColor.bg @>; height: 100%; border-radius: 32px; overflow: hidden;"> 1176 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; 1177 if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @> 1178 1179 <a class="course-image-link" style="display: block; padding: 16px;padding-bottom:0px" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"> 1180 <img style="height:320px; width:100%; object-fit:cover; border-radius: 32px;" class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')"> 1181 </a> 1182 1183 <div style="padding: 20px;" class="course-card-content"> 1184 <h3 style="font-size:24px; text-transform:uppercase; color: black; margin: 0 0 15px 0; text-align: left;white-space:nowrap; overflow: hidden; text-overflow: ellipsis;width: 100%;display:block;"> 1185 <b title="<@= item['spayee:resource']['spayee:title'] @>"><@- item['spayee:resource']['spayee:title'] @></b> 1186 </h3> 1187 <div title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" class="size-16 text-ellipsis course-card-text" style="max-height: 3rem; min-height: 3rem; color:black; margin-bottom: 12px;text-align: left;"> 1188 <@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:" ") @> 1189 </div> 1190 <a class="enroll-button" 1191 style="display: block; 1192 background-color: <@- currentColor.btnBg @>; 1193 color: white !important; 1194 padding: 12px; 1195 text-align: center; 1196 font-weight: 600; 1197 text-decoration: none; 1198 border-radius: 32px;" 1199 href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"> 1200 Enroll for <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @> 1201 </a> 1202 </div> 1203 </div> 1204 </div> 1205 1206 </script>
1206 1207 1208 1209 <!-- Nebula Course 12--> 1210
1210<script type="text/template" id="spcoursecard-12-template" > 1211 <div class="column third text-center course-card-fixed-height" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 2rem; text-align:left;"> 1212 <div style="border:0px; border-radius:16px; padding-bottom: 20px; height: 100%; display: flex; flex-direction: column;"> 1213 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @> 1214 <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @> 1215 1216 <a style="color:black; text-align:left;" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'> 1217 <img style="height:240px; width:100%; object-fit:fill; margin:0px 0px; border-radius:16px; " class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')"> 1218 </a> 1219 1220 <div style="padding:10px 0px; flex-grow: 1; display: flex; flex-direction: column;" class="course-card-content"> 1221 <h3 1222 class="size-18 text-left" 1223 title="<@- item['spayee:resource']['spayee:title'] @>" 1224 style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; display: block; margin-bottom: 12px; color: black;" 1225 > 1226 <b style="color:black;"><@- item['spayee:resource']['spayee:title'] @></b> 1227 </h3> 1228 1229 <div 1230 class="size-16 text-ellipsis course-card-text" 1231 title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" 1232 style="max-height: 3rem; min-height: 3rem; margin-bottom: 12px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;" 1233 > 1234 <@= (item['spayee:resource']['spayee:shortDescription'] || '').replace(/<[^>]*>/g, '') @> 1235 </div> 1236 </div> 1237 1238 <div style="margin-top: auto; margin-left:0px;"> 1239 <a style="background-color:#6715FF !important; border-radius:12px !important; padding:10px 16px !important; width: fit-content; display: inline-block; text-decoration: none; color: white; padding: 12px 24px; font-weight: 600 !important; font-size: 16px;letter-spacing:0px; !important" 1240 class="buy-btn btn btn-primary" 1241 title="<@- item['spayee:resource']['spayee:title'] @>" 1242 amplitude-event="buy_now_tapped_course_checkout" 1243 amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' 1244 href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"> 1245 Enroll for <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @> 1246 </a> 1247 </div> 1248 </div> 1249 </div> 1250 </div> 1251 </script>
1251 1252 1253 1254 1255 <!--Dusk Course-13--> 1256
1256<script type="text/template" id="spcoursecard-13-template" > 1257 <div class="column third text-center course-card-fixed-height" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 2rem; text-align:left;"> 1258 <div style="border:0px; border-radius:16px; padding-bottom: 20px; height: 100%; display: flex; flex-direction: column;"> 1259 <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @> 1260 <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @> 1261 1262 <a style="color:black; text-align:left;" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'> 1263 <img style="height:240px; width:100%; object-fit:fill; margin:0px 0px; border-radius:16px; " class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')"> 1264 </a> 1265 1266 <div style="padding:10px 0px; flex-grow: 1; display: flex; flex-direction: column;" class="course-card-content"> 1267 <h3 1268 class="size-18 text-left" 1269 title="<@- item['spayee:resource']['spayee:title'] @>" 1270 style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; display: block; margin-bottom: 12px; color: black;" 1271 > 1272 <b style="color:black;"><@- item['spayee:resource']['spayee:title'] @></b> 1273 </h3> 1274 1275 <div 1276 class="size-16 text-ellipsis course-card-text" 1277 title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" 1278 style="max-height: 3rem; min-height: 3rem; margin-bottom: 12px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;" 1279 > 1280 <@= (item['spayee:resource']['spayee:shortDescription'] || '').replace(/<[^>]*>/g, '') @> 1281 </div> 1282 </div> 1283 1284 1285 1286 <div style="margin-top: auto; margin-left:0px;"> 1287 <a style="background-color:#282400 !important;border:0px ; border-radius:41px !important; padding:10px 24px !important; width: fit-content; display: inline-block; text-decoration: none; color: white; padding: 12px 24px; font-weight: 600 !important; font-size: 16px;letter-spacing:0px; !important" 1288 class="buy-btn btn btn-primary" 1289 title="<@- item['spayee:resource']['spayee:title'] @>" 1290 amplitude-event="buy_now_tapped_course_checkout" 1291 amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' 1292 href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"> 1293 Enroll for <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @> 1294 </a> 1295 </div> 1296 </div> 1297 </div> 1298 </div> 1299 </script>
1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309<!-- Curriculum 1st Template -->
1310<script type="text/template" id="coursecurr-1-template"> 1311 <table class="table courseContents"> 1312 <thead> 1313 <tr> 1314 <td style="width: 50px;"></td> 1315 <td style="width: 50px;"></td> 1316 <td></td> 1317 </tr> 1318 </thead> 1319 <tbody> 1320 <@ $.each(item, function(index, value) { @> 1321 <tr> 1322 <td><i class="material-icons courseItemIcon" data-type="<@- value.type @>"></i></td> 1323 <td colspan="2"> 1324 <@- value.title @> 1325 <@ if(value.type == 'aiheading') { @> 1326 <small>(coming soon)</small><@ } @> 1327 <@ if(assetInfo && value.type == 'video' && value.duration !== undefined && value.duration > 0) { @> 1328 <small>(<@ print(Math.floor(value.duration)) @>:00)</small><@ } @> 1329 <@ if(assetInfo && value.type == 'pdf' && value.pages !== undefined && value.pages > 0) { @> 1330 <small>(<@- value.pages @> pages)</small> 1331 <@ } @> 1332 </td> 1333 </tr> 1334 <@ if(value.items != undefined) { @> <@ $.each(value['items'], function(index1, value1) { @> 1335 <tr> 1336 <td></td> 1337 <td><i class="material-icons courseItemIcon" data-type="<@- value1.type @>"></i></td> 1338 <td> 1339 <@- value1.title @> 1340 <@ if(assetInfo && value.type == 'video' && value1.duration !== undefined && value1.duration > 0) { @><small>(<@ print(Math.floor(value1.duration)) @>:00)</small><@ } @> 1341 <@ if(assetInfo && value1.type =='pdf' && value1.pages !== undefined && value1.pages > 0) { @><small>(<@- value1.pages @> pages)</small><@ } @> 1342 <@ if(value1.type =='aiheading') { @><small>(coming soon)</small><@ } @> 1343 </td> 1344 </tr> 1345 <@ }); @> <@ } @> <@ }); @> 1346 </tbody> 1347 </table> 1348</script>
1348 1349 1350 1351<!-- Curriculum 2nd Template -->
1352<script type="text/template" id="coursecurr-2-template"> 1353 <div class="column full curriculum2" spellcheck="false"> 1354 <div class="course-content1" > 1355 <p style="font-size: 15px; font-weight: 400; margin-top: 0px;"> 1356 <@if(summary.modules && summary.modules>0){@> 1357 <@print(summary.modules)@> Modules <i class="icon ion-android-folder-open"></i> <@if(summary.sessions && summary.sessions>0 && curriculumAssetInfo){@>|<@}@> 1358 <@}@> 1359 <@if(summary.sessions && summary.sessions>0 && curriculumAssetInfo){@> 1360 <@print(summary.sessions)@> Sessions <i class="icon ion-android-laptop"></i> <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>|<@}@> 1361 <@}@> 1362 <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@> 1363 <@print(millisecondsToHHMMSSStr(summary.durations))@> Total Time <i class="icon ion-ios-clock-outline"></i> 1364 <@}@> 1365 </p> 1366 </div> 1367 1368 1369 <@ $.each(item, function(index, value) { @> 1370 <div class="course-course-content-box" > 1371 <div class="course-content-blue-title <@if(value && value.contents){@> bg-primary <@}else if($('#'+id).closest('div.is-section').hasClass("is-bg-grey")){@>bg-white<@}else{@>is-bg-grey<@}@>" > 1372 <span class="title-icon"> 1373 <span class="material-icons <@if(value && !value.contents){@> text-primary <@}@>"><@ print(getCourseAssetIcon(value.type))@></span> 1374 </span> 1375 <div class="titl5b" > 1376 <h3 class="<@if(value && !value.contents){@> text-primary <@}@>"> 1377 <@print(value.title)@> <@ if(curriculumAssetInfo && value.type == 'pdf' && value.pages !== undefined && value.pages > 0) { @><small>(<@- value.pages @> pages)</small><@ } @> 1378 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@> 1379 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,"-"))@>-<@- courseId @>#<@print(value.id)@>" class="previewBtn"><span class="<@if(value && !value.contents){@> text-primary <@}@>">Preview</span></a> 1380 <@}@> 1381 </h3> 1382 <p class="<@if(value && !value.contents){@> text-primary <@}@>"><@if(value && value.contents && curriculumAssetInfo){@> 1383 Sessions: <@print(value.contents)@> 1384 <@}@> 1385 <@if(value.moduleDurations && curriculumAssetInfo){@><@if(value && value.contents){@>|<@}@> 1386 Time: <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 1387 <@}@> 1388 <@if(value && value.contents>0){@><span class="material-icons">expand_more</span><@}@> </p> 1389 </div> 1390 </div> 1391 <@if(value && value.items){@> 1392 <@ $.each(value['items'], function(index1, value1) { @> 1393 <div class="course-content-body <@if(index==0){@>showing<@ }@>" > 1394 <div class="desc1 " > 1395 <div class="is-box-9" > 1396 <div class="boxa1" > 1397 <span class="material-icons text-primary"><@ print(getCourseAssetIcon(value1.type))@></span> 1398 <p> <@print(value1.title)@> <@ if(curriculumAssetInfo && value1.type == 'pdf' && value1.pages !== undefined && value1.pages > 0) { @><small>(<@- value1.pages @> pages)</small><@ } @> 1399 <@ if(value1.type == 'aiheading') { @><small>(coming soon)</small><@ } @> 1400 </p> 1401 1402 </div> 1403 </div> 1404 <div class="is-box-1" > 1405 <div class="boxa2" > 1406 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@> 1407 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,"-"))@>#<@print(value1.id)@>"> 1408 <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> 1409 </a> 1410 <@}@> 1411 </div> 1412 </div> 1413 <div class="is-box-2" > 1414 <div class="boxa2" > 1415 <p class="duration"><@if(value1.duration && curriculumAssetInfo){@><@print(millisecondsToHHMMSSStr(value1.duration))@><@}@></p> 1416 </div> 1417 </div> 1418 </div> 1419 </div> 1420 <@ }); @> 1421 <@}@> 1422 </div> 1423 <@ }); @> 1424 1425 </div> 1426</script>
1426 1427 1428 1429 1430 1431 1432<!-- Curriculum 3rd Template -->
1433<script type="text/template" id="coursecurr-3-template"> 1434 <div class="column full" spellcheck="false" data-gramm="false"> 1435 <div class="accordion-syllabus" > 1436 <@ $.each(item, function(index, value) { @> 1437 <div class="accordion-syllabus-item"> 1438 <header class="accordion-syllabus-header"> 1439 <h4 class="accordion-syllabus-header__title"> 1440 <span class="text-primary"> 1441 <@if(index<9){@> 1442 0<@print(index+1)@> 1443 <@ } else {@> 1444 <@print(index+1)@> 1445 <@ } @> 1446 </span> 1447 <p><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;"> 1448 <@if(value && value.items){@> 1449 <@ print(value.items.length) @> attachment(s) 1450 <@}@> 1451 <@if(value.moduleDurations && curriculumAssetInfo){@> 1452 <@if(value && value.contents){@> • <@}@> 1453 <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 1454 <@}@> 1455 </span></p> 1456 1457 </h4> 1458 <div class="accordion-syllabus-header__info"> 1459 <p class="text-primary hide-sm"> 1460 <@if(value && value.items){@> 1461 <@ print(value.items.length) @> attachment(s) 1462 <@}@> 1463 <@if(value.moduleDurations && curriculumAssetInfo){@> 1464 <@if(value && value.contents){@> • <@}@> 1465 <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 1466 <@}@> 1467 </p> 1468 <@if(value && value.items){@> 1469 <div class="accordion-syllabus-header__icon text-primary"> 1470 <i class="fa fa-angle-left" aria-hidden="true"></i> 1471 </div> 1472 <@}@> 1473 </div> 1474 </header> 1475 <@if(value && value.items){@> 1476 <div class="accordion-content" style=""> 1477 <div class="accordian-content-block"> 1478 <ul class="accordian-list"> 1479 <@ $.each(value['items'], function(index1, value1) { @> 1480 <li class="accordian-list__item"> 1481 <div class="accordian-content-card"> 1482 <div class="accordian-content-card__info"> 1483 <div class="accordian-content-card__ico"> 1484 <@ if(value1.type == 'code'){ @> 1485 <img src="/resources/images/CodeIcon.svg"> 1486 <@ } else { @> 1487 <span class="material-icons text-primary"> 1488 <@ print(getCourseAssetIcon(value1.type))@> 1489 </span> 1490 <@ } @> 1491 </div> 1492 <div class="accordian-content-card__title"> 1493 <@print(value1.title)@> <@ if(curriculumAssetInfo && value1.type == 'pdf' && value1.pages !== undefined && value1.pages > 0) { @><small>(<@- value1.pages @> pages)</small><@ } @> 1494 <@ if(value1.type == 'aiheading') { @><small>(coming soon)</small><@ } @> 1495 </div> 1496 </div> 1497 <div class="accordian-content-card__link"> 1498 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@> 1499 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,"-"))@>-<@- courseId @>#<@print(value1.id)@>" class="previewBtn"> 1500 <span class="text-primary"> 1501 <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @><span style="color:#000"><i class="fa fa-solid fa-arrow-up-right"></i></span> 1502 </span> 1503 </a> 1504 <@}@> 1505 </div> 1506 </div> 1507 </li> 1508 <@ }); @> 1509 </ul> 1510 </div> 1511 </div> 1512 <@ } @> 1513 </div> 1514 <@ }); @> 1515 </div> 1516 </div> 1517</script>
1517 1518 1519 1520 1521<!-- Curriculum 4th Template -->
1522<script type="text/template" id="coursecurr-4-template"> 1523 <div class="column full coursecurr4"> 1524 <@ $.each(item, function(index, value) { @> 1525 <div class="accordion-syllabus-item"> 1526 <header class="accordion-syllabus-header" > 1527 <h4 class="accordion-syllabus-header__title"> 1528 <span> 1529 <@if(index<9){@>0<@print(index+1)@><@ } else {@> <@print(index+1)@> <@ } @> 1530 </span> 1531 <div class="accordion-syllabus-header__title-block" > 1532 <p style="font-size: 20px; font-weight: 700;"> 1533 <@print(value.title)@> 1534 </p> 1535 <p class="text-primary" style="font-weight: 500; font-size: 14px; line-height: 150%; margin-top: 10px; "> 1536 <@if(value && value.type == 'aiheading'){@> 1537 (coming soon) 1538 <@}@> 1539 <@if(value && value.items){@> 1540 <@ print(value.items.length) @> attachment(s) 1541 <@}@> 1542 <@if(value.moduleDurations && curriculumAssetInfo){@><@if(value && value.contents){@> • <@}@> 1543 <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 1544 <@}@> 1545 </p> 1546 </div> 1547 </h4> 1548 <@if(value && value.items){@> 1549 <div class="accordion-syllabus-header__info" > 1550 <div class="accordion-syllabus-header__icon" > 1551 <i class="fa fa-angle-left" aria-hidden="true"></i> 1552 </div> 1553 </div> 1554 <@ } @> 1555 </header> 1556 <@if(value && value.items){@> 1557 <div class="accordion-content" style=""> 1558 <div class="accordian-content-block" > 1559 <ul class="accordian-list"> 1560 <@ $.each(value['items'], function(index1, value1) { @> 1561 <li class="accordian-list__item"> 1562 <div class="accordian-content-card" > 1563 <div class="accordian-content-card__info" > 1564 <div class="accordian-content-card__ico" > 1565 <@ if(value1.type == 'code'){ @> 1566 <img src="/resources/images/CodeIcon.svg"> 1567 <@ } else { @> 1568 <span class="material-icons text-primary"> 1569 <@ print(getCourseAssetIcon(value1.type))@>262 1570 </span> 1571 <@ } @> 1572 </div> 1573 <div class="accordian-content-card__title" > 1574 <@print(value1.title)@> <@ if(curriculumAssetInfo && value1.type == 'pdf' && value1.pages !== undefined && value1.pages > 0) { @><small>(<@- value1.pages @> pages)</small><@ } @> 1575 <@ if(value1.type == 'aiheading') { @><small>(coming soon)</small><@ } @> 1576 </div> 1577 </div> 1578 <div class="accordian-content-card__link" > 1579 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@> 1580 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,"-"))@>-<@- courseId @>#<@print(value1.id)@>" class="previewBtn"> 1581 <span class="text-primary"> 1582 <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right"></i></span> 1583 </span> 1584 </a> 1585 <@ } @> 1586 </div> 1587 </div> 1588 </li> 1589 <@ }); @> 1590 </ul> 1591 </div> 1592 </div> 1593 <@ } @> 1594 </div> 1595 <@ }); @> 1596 </div> 1597 </script>
1597 1598 1599 <!-- vegas curriculum-5--> 1600
1600<script> 1601 // Simple responsive positioning 1602 function updatePosition() { 1603 const element = document.getElementById('totalTimeElement'); 1604 if(element){ 1605 if (window.innerWidth > 768) { 1606 element.style.position = 'absolute'; 1607 element.style.top = "5px"; 1608 element.style.right = '122px'; 1609 } else { 1610 element.style.position = 'static'; 1611 element.style.margin = '0 0'; 1612 } 1613 } 1614 } 1615 1616 // Run on load and resize 1617 window.addEventListener('load', updatePosition); 1618 window.addEventListener('resize', updatePosition); 1619 </script>
1619 1620
1620<script type="text/template" id="coursecurr-5-template"> 1621 <div class="total-time" id="totalTimeElement" style=" 1622 font-size: 18px; 1623 font-weight: 600; 1624 color: #FB5607; 1625 padding: 8px 12px; 1626 border-radius: 4px; 1627 white-space: nowrap;"> 1628 <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@> 1629 <@print(millisecondsToHHMMSSStr(summary.durations))@> 1630 <@}@> 1631</div> 1632 1633<div class="accordion-syllabus" style="max-width:1000px !important"> 1634 <@ $.each(item, function(index, value) { @> 1635 <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>"> 1636 <header class="accordion-syllabus-header" style="background:#F5F5F5 !important; border-radius:0px;box-shadow:none;padding:0.5rem !important"> 1637 <h4 class="accordion-syllabus-header__title"> 1638 <span class="text-primary" style="font-size:18px ; font-weight:600; color:black;"> 1639 <@if(index < 9) {@> 1640 Week <@print(index + 1)@>: 1641 <@ } else {@> 1642 Week <@print(index + 1)@>: 1643 <@ } @> 1644 </span> 1645 <p style="font-size:18px ; font-weight:600;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;"> 1646 <@if(value && value.items){@> 1647 <@ print(value.items.length) @> attachment(s) 1648 <@} else {@> 1649 1 attachment(s) 1650 <@}@> 1651 <@if(value.moduleDurations && curriculumAssetInfo){@> 1652 • <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 1653 <@}@> 1654 </span></p> 1655 </h4> 1656 1657 <div class="accordion-syllabus-header__info"> 1658 <p class="text-primary hide-sm" style="color:#FB5607 !important;"> 1659 <@if(value && value.items){@> 1660 <@ print(value.items.length) @> attachment(s) 1661 <@} else {@> 1662 1 attachment(s) 1663 <@}@> 1664 <@if(value.moduleDurations && curriculumAssetInfo){@> 1665 • <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 1666 <@}@> 1667 </p> 1668 <div class="accordion-syllabus-header__icon text-primary"> 1669 <i class="fa fa-angle-left" aria-hidden="true" style="color:#FB5607;"></i> 1670 </div> 1671 </div> 1672 </header> 1673 <div class="accordion-content" style="filter:none;"> 1674 <div class="accordian-content-block" style="background:#F5F5F5 !important;box-shadow:none;padding:16px 66px 3px 69px !important;"> 1675 <ul class="accordian-list"> 1676 <@ var itemsCount = value['items'] ? value['items'].length : 0; @> 1677 <@ if(value['items'] && value['items'].length > 0) { @> 1678 <@ $.each(value['items'], function(index1, value1) { @> 1679 <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 1680 <style> 1681 @media (max-width: 768px) { 1682 .accordian-content-card { 1683 flex-direction: column !important; 1684 align-items: stretch !important; 1685 } 1686 1687 .accordian-content-card__top { 1688 flex-direction: row !important; 1689 justify-content: space-between !important; 1690 align-items: center !important; 1691 width: 100% !important; 1692 } 1693 1694 .accordian-content-card__title { 1695 flex: 1 !important; 1696 margin: 0 10px !important; 1697 white-space: nowrap; 1698 overflow: hidden; 1699 text-overflow: ellipsis; 1700 } 1701 1702 .accordian-content-card__bottom { 1703 flex-direction: row !important; 1704 justify-content: space-between !important; 1705 align-items: center !important; 1706 width: 100% !important; 1707 margin-top: 6px !important; 1708 } 1709 1710 .accordian-content-card__link { 1711 flex: 1 !important; 1712 min-width: 0 !important; 1713 text-align: left !important; 1714 } 1715 1716 .accordian-content-card__time { 1717 flex-shrink: 0 !important; 1718 text-align: right !important; 1719 } 1720 } 1721 </style> 1722 1723 <div class="accordian-content-card" 1724 style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;"> 1725 1726 1727 <!-- Row 1: Icon + Title + Collapse Icon --> 1728 <div class="accordian-content-card__top" 1729 style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 1730 1731 <!-- Icon --> 1732 <div class="accordian-content-card__ico" style="flex-shrink: 0;"> 1733 <@ if(value1.type == 'code'){ @> 1734 <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;"> 1735 <@ } else { @>
1736 <span class="material-icons text-primary" style="color:#FB5607; font-size: 24px;"> 1737 <@ print(getCourseAssetIcon(value1.type))@> 1738 </span> 1739 <@ } @> 1740 </div> 1741 1742 <!-- Title --> 1743 <div class="accordian-content-card__title" 1744 style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"> 1745 <@print(value1.title)@> 1746 </div> 1747 1748 <!-- Collapse Icon (optional) --> 1749 <div class="accordian-content-card__collapse" style="flex-shrink: 0;"> 1750 <!-- Example placeholder, add real icon if needed --> 1751 <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> --> 1752 </div> 1753 </div> 1754 1755 <!-- Row 2: Preview Button and Time --> 1756 <div class="accordian-content-card__bottom" 1757 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;"> 1758 1759 <!-- Preview Button --> 1760 <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;"> 1761 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@> 1762 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>" 1763 class="previewBtn" 1764 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #FB5607; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;"> 1765 <span class="text-primary" style="color:#FB5607;"> 1766 <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> 1767 <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#FB5607;"></i></span> 1768 </span> 1769 </a> 1770 <@}@> 1771 </div> 1772 1773 <!-- Time --> 1774 <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;"> 1775 <p class="text-primary course-asset-time" 1776 style="font-size: 14px; font-weight: 500; color:#FB5607 !important; margin: 0;"> 1777 <@ if(value1.duration && value1.duration > 0) { @> 1778 <@ print(millisecondsToHHMMSSStr(value1.duration)) @> 1779 <@ } else { @> 1780 -- 1781 <@ } @> 1782 </p> 1783 </div> 1784 1785 </div> 1786 </div> 1787 1788 1789 </li> 1790 <@ }); @> 1791 <@ } else { @> 1792 <li class="accordian-list__item" style="padding:0px 0px !important;"> 1793 <div class="accordian-content-card" 1794 style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;"> 1795 1796 <!-- Row 1: Icon + Title + Collapse Icon --> 1797 <div class="accordian-content-card__top" 1798 style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 1799 1800 <!-- Icon --> 1801 <div class="accordian-content-card__ico" style="flex-shrink: 0;"> 1802 <@ if(value.type == 'code'){ @> 1803 <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;"> 1804 <@ } else { @> 1805 <span class="material-icons text-primary" style="color:#FB5607; font-size: 24px;"> 1806 <@ print(getCourseAssetIcon(value.type))@> 1807 </span> 1808 <@ } @> 1809 </div> 1810 1811 <!-- Title --> 1812 <div class="accordian-content-card__title" 1813 style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"> 1814 <@print(value.title)@> 1815 </div> 1816 1817 <!-- Collapse Icon (optional) --> 1818 <div class="accordian-content-card__collapse" style="flex-shrink: 0;"> 1819 <!-- Example placeholder, add real icon if needed --> 1820 <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> --> 1821 </div> 1822 </div> 1823 1824 <!-- Row 2: Preview Button and Time --> 1825 <div class="accordian-content-card__bottom" 1826 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;"> 1827 1828 <!-- Preview Button --> 1829 <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;"> 1830 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@> 1831 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>" 1832 class="previewBtn" 1833 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #FB5607; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
1834 <span class="text-primary" style="color:#FB5607;"> 1835 <@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> 1836 <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#FB5607;"></i></span> 1837 </span> 1838 </a> 1839 <@}@> 1840 </div> 1841 1842 <!-- Time --> 1843 <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;"> 1844 <p class="text-primary course-asset-time" 1845 style="font-size: 14px; font-weight: 500; color:#FB5607 !important; margin: 0;"> 1846 <@ if(value.duration && value.duration > 0) { @> 1847 <@ print(millisecondsToHHMMSSStr(value.duration)) @> 1848 <@ } else { @> 1849 -- 1850 <@ } @> 1851 </p> 1852 </div> 1853 </div> 1854 </div> 1855 </li> 1856 <@ } @> 1857 </ul> 1858 1859 <@ if(itemsCount > 5) { @> 1860 <div style="text-align: center; margin-top: 10px;"> 1861 <button style="background-color: #FB5607; color: white; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 1862 onclick=" 1863 var parentAccordion = this.closest('.accordion-content'); 1864 parentAccordion.style.maxHeight = 'none'; 1865 this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 1866 this.style.display = 'none'; 1867 "> 1868 View All 1869 </button> 1870 </div> 1871 <@ } @> 1872 </div> 1873 </div> 1874 </div> 1875 <@ }); @> 1876 <@ if(item.length > 5) { @> 1877 <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;"> 1878 <button style="background-color: #FB5607; color: white; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 1879 onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';"> 1880 View All Sessions 1881 </button> 1882 </div> 1883 <@ } @> 1884</div> 1885 </div> 1886</script>
1886 1887 1888 1889<!--Blaze-Curriculum-6-->
1890<script type="text/template" id="coursecurr-6-template"> 1891 <div class="column full" spellcheck="false" data-gramm="false"> 1892 <div class="total-time" id="totalTimeElement" style=" 1893 font-size: 18px; 1894 font-weight: 600; 1895 color: #D8FD46; 1896 padding: 8px 12px; 1897 border-radius: 4px; 1898 white-space: nowrap; 1899 background: #232323; 1900 margin-bottom: 20px;"> 1901 <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@> 1902 <@print(millisecondsToHHMMSSStr(summary.durations))@> 1903 <@}@> 1904 </div> 1905 1906 <div class="accordion-syllabus"> 1907 <@ $.each(item, function(index, value) { @> 1908 <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>"> 1909 <header class="accordion-syllabus-header" style="background:#232323 !important; border-radius:0px;box-shadow:none;padding:20px 20px !important"> 1910 <h4 class="accordion-syllabus-header__title"> 1911 <span class="text-primary" style="font-size:18px ; font-weight:600; color:white;"> 1912 <@if(index < 9) {@> 1913 Week <@print(index + 1)@>: 1914 <@ } else {@> 1915 Week <@print(index + 1)@>: 1916 <@ } @> 1917 </span> 1918 <p style="font-size:18px ; font-weight:600;color:white;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;color:#D8FD46 !important;"> 1919 <@if(value && value.items){@> 1920 <@ print(value.items.length) @> attachment(s) 1921 <@} else {@> 1922 1 attachment(s) 1923 <@}@> 1924 <@if(value.moduleDurations && curriculumAssetInfo){@> 1925 • <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 1926 <@}@> 1927 </span></p> 1928 </h4> 1929 <div class="accordion-syllabus-header__info"> 1930 <p class="text-primary hide-sm" style="color:#D8FD46 !important;"> 1931 <@if(value && value.items){@> 1932 <@ print(value.items.length) @> attachment(s) 1933 <@} else {@> 1934 1 attachment(s) 1935 <@}@> 1936 <@if(value.moduleDurations && curriculumAssetInfo){@> 1937 • <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 1938 <@}@> 1939 </p> 1940 <div class="accordion-syllabus-header__icon text-primary"> 1941 <i class="fa fa-angle-left" aria-hidden="true" style="color:#D8FD46;"></i> 1942 </div> 1943 </div> 1944 </header> 1945 <div class="accordion-content" style="filter:none;background:#181818;"> 1946 <div class="accordian-content-block" style="box-shadow:none;padding:16px 20px !important;background:transparent !important;"> 1947 <ul class="accordian-list"> 1948 <@ var itemsCount = value['items'] ? value['items'].length : 0; @> 1949 <@ if(value['items'] && value['items'].length > 0) { @> 1950 <@ $.each(value['items'], function(index1, value1) { @> 1951 <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 1952 <style> 1953 @media (max-width: 768px) { 1954 .accordian-content-card { 1955 flex-direction: column !important; 1956 align-items: stretch !important; 1957 } 1958 1959 .accordian-content-card__top { 1960 flex-direction: row !important; 1961 justify-content: space-between !important; 1962 align-items: center !important; 1963 width: 100% !important; 1964 } 1965 1966 .accordian-content-card__title { 1967 flex: 1 !important; 1968 margin: 0 10px !important; 1969 white-space: nowrap; 1970 overflow: hidden; 1971 text-overflow: ellipsis; 1972 } 1973 1974 .accordian-content-card__bottom { 1975 flex-direction: row !important; 1976 justify-content: space-between !important; 1977 align-items: center !important; 1978 width: 100% !important; 1979 margin-top: 6px !important; 1980 } 1981 1982 .accordian-content-card__link { 1983 flex: 1 !important; 1984 min-width: 0 !important; 1985 text-align: left !important; 1986 } 1987 1988 .accordian-content-card__time { 1989 flex-shrink: 0 !important; 1990 text-align: right !important; 1991 } 1992 } 1993 </style> 1994 1995 <div class="accordian-content-card" 1996 style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; "> 1997 1998 <!-- Row 1: Icon + Title + Collapse Icon --> 1999 <div class="accordian-content-card__top" 2000 style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 2001 2002 <!-- Icon --> 2003 <div class="accordian-content-card__ico" style="flex-shrink: 0;"> 2004 <@ if(value1.type == 'code'){ @> 2005 <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px; filter: invert(1);"> 2006 <@ } else { @>
2007 <span class="material-icons text-primary" style="color:#D8FD46; font-size: 24px;"> 2008 <@ print(getCourseAssetIcon(value1.type))@> 2009 </span> 2010 <@ } @> 2011 </div> 2012 2013 <!-- Title --> 2014 <div class="accordian-content-card__title" 2015 style="font-weight: 400; font-size: 14px; color: white; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"> 2016 <@print(value1.title)@> 2017 <!-- <@ if(curriculumAssetInfo && value1.type == 'pdf' && value1.pages !== undefined && value1.pages > 0) { @> 2018 <small style="color: #999;">(<@- value1.pages @> pages)</small> 2019 <@ } @> 2020 <@ if(value1.type == 'aiheading') { @> 2021 <small style="color: #999;">(coming soon)</small> 2022 <@ } @> --> 2023 </div> 2024 2025 <!-- Collapse Icon --> 2026 <div class="accordian-content-card__collapse" style="flex-shrink: 0;"> 2027 </div> 2028 </div> 2029 2030 <!-- Row 2: Preview Button and Time --> 2031 <div class="accordian-content-card__bottom" 2032 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;"> 2033 2034 <!-- Preview Button --> 2035 <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;"> 2036 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@> 2037 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>" 2038 class="previewBtn" 2039 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #D8FD46 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;"> 2040 <span class="text-primary" style="color:#D8FD46;"> 2041 <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> 2042 <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#D8FD46;"></i></span> 2043 </span> 2044 </a> 2045 <@}@> 2046 </div> 2047 2048 <!-- Time --> 2049 <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;"> 2050 <p class="text-primary course-asset-time" 2051 style="font-size: 14px; font-weight: 500; color:#D8FD46 !important; margin: 0;"> 2052 <@ if(value1.duration && value1.duration > 0) { @> 2053 <@ print(millisecondsToHHMMSSStr(value1.duration)) @> 2054 <@ } else { @> 2055 -- 2056 <@ } @> 2057 </p> 2058 </div> 2059 </div> 2060 </div> 2061 </li> 2062 <@ }); @> 2063 <@ } else { @> 2064 <li class="accordian-list__item" style="padding:0px 0px !important;"> 2065 <div class="accordian-content-card" 2066 style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; "> 2067 2068 <!-- Row 1: Icon + Title + Collapse Icon --> 2069 <div class="accordian-content-card__top" 2070 style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 2071 2072 <!-- Icon --> 2073 <div class="accordian-content-card__ico" style="flex-shrink: 0;"> 2074 <@ if(value.type == 'code'){ @> 2075 <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px; filter: invert(1);"> 2076 <@ } else { @> 2077 <span class="material-icons text-primary" style="color:#D8FD46; font-size: 24px;"> 2078 <@ print(getCourseAssetIcon(value.type))@> 2079 </span> 2080 <@ } @> 2081 </div> 2082 2083 <!-- Title --> 2084 <div class="accordian-content-card__title" 2085 style="font-weight: 400; font-size: 14px; color: white; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"> 2086 <@print(value.title)@> 2087 </div> 2088 2089 <!-- Collapse Icon (optional) --> 2090 <div class="accordian-content-card__collapse" style="flex-shrink: 0;"> 2091 <!-- Example placeholder, add real icon if needed --> 2092 <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> --> 2093 </div> 2094 </div> 2095 2096 <!-- Row 2: Preview Button and Time --> 2097 <div class="accordian-content-card__bottom" 2098 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;"> 2099 2100 <!-- Preview Button --> 2101 <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;"> 2102 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@> 2103 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>" 2104 class="previewBtn" 2105 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #D8FD46 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;"> 2106 <span class="text-primary" style="color:#D8FD46;"> 2107 <@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> 2108 <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#D8FD46;"></i></span> 2109 </span> 2110 </a> 2111 <@}@> 2112 </div> 2113 2114 <!-- Time --> 2115 <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;"> 2116 <p class="text-primary course-asset-time" 2117 style="font-size: 14px; font-weight: 500; color:#D8FD46 !important; margin: 0;"> 2118 <@ if(value.duration && value.duration > 0) { @> 2119 <@ print(millisecondsToHHMMSSStr(value.duration)) @> 2120 <@ } else { @> 2121 -- 2122 <@ } @> 2123 </p> 2124 </div> 2125 </div> 2126 </div> 2127 </li> 2128 <@ } @> 2129 </ul> 2130 2131 <@ if(itemsCount > 5) { @> 2132 <div style="text-align: center; margin-top: 10px;"> 2133 <button style="background-color: #D8FD46; color: black; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 0px;" 2134 onclick=" 2135 var parentAccordion = this.closest('.accordion-content'); 2136 parentAccordion.style.maxHeight = 'none'; 2137 this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 2138 this.style.display = 'none'; 2139 "> 2140 View All 2141 </button> 2142 </div> 2143 <@ } @> 2144 </div> 2145 </div> 2146 </div> 2147 <@ }); @> 2148 <@ if(item.length > 5) { @> 2149 <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;"> 2150 <button style="background-color: #D8FD46; color: black; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 0px;" 2151 onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';"> 2152 View All Sessions 2153 </button> 2154 </div> 2155 <@ } @> 2156 </div> 2157 </div> 2158</script>
2158 2159
2160<script> 2161 // Simple responsive positioning (same as Vegas) 2162 function updatePosition() { 2163 const element = document.getElementById('totalTimeElement'); 2164 if(element){ 2165 if (window.innerWidth > 768) { 2166 element.style.position = 'absolute'; 2167 element.style.top = "5px"; 2168 element.style.right = '122px'; 2169 } else { 2170 element.style.position = 'static'; 2171 element.style.margin = '0 0'; 2172 } 2173 } 2174 } 2175 2176 // Run on load and resize 2177 window.addEventListener('load', updatePosition); 2178 window.addEventListener('resize', updatePosition); 2179</script>
2179 2180 2181 2182 2183 2184<!--Nebula Curriculum 7--> 2185 2186
2187<script> 2188 // Simple responsive positioning 2189 function updatePosition() { 2190 const element = document.getElementById('totalTimeElement'); 2191 if(element){ 2192 if (window.innerWidth > 768) { 2193 element.style.position = 'absolute'; 2194 element.style.top = "5px"; 2195 element.style.right = '122px'; 2196 } else { 2197 element.style.position = 'static'; 2198 element.style.margin = '0 0'; 2199 } 2200 } 2201 } 2202 2203 // Run on load and resize 2204 window.addEventListener('load', updatePosition); 2205 window.addEventListener('resize', updatePosition); 2206 </script>
2206 2207
2207<script type="text/template" id="coursecurr-7-template"> 2208 <div class="total-time" id="totalTimeElement" style=" 2209 font-size: 18px; 2210 font-weight: 600; 2211 color: #6715FF; 2212 padding: 8px 12px; 2213 border-radius: 4px; 2214 white-space: nowrap;"> 2215 <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@> 2216 <@print(millisecondsToHHMMSSStr(summary.durations))@> 2217 <@}@> 2218</div> 2219 2220<div class="accordion-syllabus" style="max-width:1000px !important"> 2221 <@ $.each(item, function(index, value) { @> 2222 <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>"> 2223 <header class="accordion-syllabus-header" style="background:#F1ECFB !important; border-radius16px;box-shadow:none;padding:20px !important"> 2224 <h4 class="accordion-syllabus-header__title"> 2225 <span class="text-primary" style="font-size:18px ; font-weight:600; color:black;"> 2226 <@if(index < 9) {@> 2227 Week <@print(index + 1)@>: 2228 <@ } else {@> 2229 Week <@print(index + 1)@>: 2230 <@ } @> 2231 </span> 2232 <p style="font-size:18px ; font-weight:600;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;"> 2233 <@if(value && value.items){@> 2234 <@ print(value.items.length) @> attachment(s) 2235 <@} else {@> 2236 1 attachment(s) 2237 <@}@> 2238 <@if(value.moduleDurations && curriculumAssetInfo){@> 2239 • <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 2240 <@}@> 2241 </span></p> 2242 </h4> 2243 2244 <div class="accordion-syllabus-header__info"> 2245 <p class="text-primary hide-sm" style="color:#6715FF !important;"> 2246 <@if(value && value.items){@> 2247 <@ print(value.items.length) @> attachment(s) 2248 <@} else {@> 2249 1 attachment(s) 2250 <@}@> 2251 <@if(value.moduleDurations && curriculumAssetInfo){@> 2252 • <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 2253 <@}@> 2254 </p> 2255 <div class="accordion-syllabus-header__icon text-primary"> 2256 <i class="fa fa-angle-left" aria-hidden="true" style="color:#6715FF;"></i> 2257 </div> 2258 </div> 2259 </header> 2260 <div class="accordion-content" style="filter:none;background:transparent !important;"> 2261 <div class="accordian-content-block" style="background:transparent !important;box-shadow:none;padding:16px 66px 3px 69px !important;"> 2262 <ul class="accordian-list"> 2263 <@ var itemsCount = value['items'] ? value['items'].length : 0; @> 2264 <@ if(value['items'] && value['items'].length > 0) { @> 2265 <@ $.each(value['items'], function(index1, value1) { @> 2266 <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 2267 <style> 2268 @media (max-width: 768px) { 2269 .accordian-content-card { 2270 flex-direction: column !important; 2271 align-items: stretch !important; 2272 } 2273 2274 .accordian-content-card__top { 2275 flex-direction: row !important; 2276 justify-content: space-between !important; 2277 align-items: center !important; 2278 width: 100% !important; 2279 } 2280 2281 .accordian-content-card__title { 2282 flex: 1 !important; 2283 margin: 0 10px !important; 2284 white-space: nowrap; 2285 overflow: hidden; 2286 text-overflow: ellipsis; 2287 } 2288 2289 .accordian-content-card__bottom { 2290 flex-direction: row !important; 2291 justify-content: space-between !important; 2292 align-items: center !important; 2293 width: 100% !important; 2294 margin-top: 6px !important; 2295 } 2296 2297 .accordian-content-card__link { 2298 flex: 1 !important; 2299 min-width: 0 !important; 2300 text-align: left !important; 2301 } 2302 2303 .accordian-content-card__time { 2304 flex-shrink: 0 !important; 2305 text-align: right !important; 2306 } 2307 } 2308 </style> 2309 2310 <div class="accordian-content-card" 2311 style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;"> 2312 2313 2314 <!-- Row 1: Icon + Title + Collapse Icon --> 2315 <div class="accordian-content-card__top" 2316 style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 2317 2318 <!-- Icon --> 2319 <div class="accordian-content-card__ico" style="flex-shrink: 0;"> 2320 <@ if(value1.type == 'code'){ @> 2321 <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;"> 2322 <@ } else { @>
2323 <span class="material-icons text-primary" style="color:#6715FF; font-size: 24px;"> 2324 <@ print(getCourseAssetIcon(value1.type))@> 2325 </span> 2326 <@ } @> 2327 </div> 2328 2329 <!-- Title --> 2330 <div class="accordian-content-card__title" 2331 style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"> 2332 <@print(value1.title)@> 2333 </div> 2334 2335 <!-- Collapse Icon (optional) --> 2336 <div class="accordian-content-card__collapse" style="flex-shrink: 0;"> 2337 <!-- Example placeholder, add real icon if needed --> 2338 <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> --> 2339 </div> 2340 </div> 2341 2342 <!-- Row 2: Preview Button and Time --> 2343 <div class="accordian-content-card__bottom" 2344 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;"> 2345 2346 <!-- Preview Button --> 2347 <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;"> 2348 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@> 2349 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>" 2350 class="previewBtn" 2351 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #6715FF; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;"> 2352 <span class="text-primary" style="color:#6715FF;"> 2353 <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> 2354 <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#6715FF;"></i></span> 2355 </span> 2356 </a> 2357 <@}@> 2358 </div> 2359 2360 <!-- Time --> 2361 <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;"> 2362 <p class="text-primary course-asset-time" 2363 style="font-size: 14px; font-weight: 500; color:#6715FF !important; margin: 0;"> 2364 <@ if(value1.duration && value1.duration > 0) { @> 2365 <@ print(millisecondsToHHMMSSStr(value1.duration)) @> 2366 <@ } else { @> 2367 -- 2368 <@ } @> 2369 </p> 2370 </div> 2371 2372 </div> 2373 </div> 2374 2375 2376 </li> 2377 <@ }); @> 2378 <@ } else { @> 2379 <li class="accordian-list__item" style="padding:0px 0px !important;"> 2380 <div class="accordian-content-card" 2381 style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;"> 2382 2383 <!-- Row 1: Icon + Title + Collapse Icon --> 2384 <div class="accordian-content-card__top" 2385 style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 2386 2387 <!-- Icon --> 2388 <div class="accordian-content-card__ico" style="flex-shrink: 0;"> 2389 <@ if(value.type == 'code'){ @> 2390 <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;"> 2391 <@ } else { @> 2392 <span class="material-icons text-primary" style="color:#6715FF; font-size: 24px;"> 2393 <@ print(getCourseAssetIcon(value.type))@> 2394 </span> 2395 <@ } @> 2396 </div> 2397 2398 <!-- Title --> 2399 <div class="accordian-content-card__title" 2400 style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"> 2401 <@print(value.title)@> 2402 </div> 2403 2404 <!-- Collapse Icon (optional) --> 2405 <div class="accordian-content-card__collapse" style="flex-shrink: 0;"> 2406 <!-- Example placeholder, add real icon if needed --> 2407 <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> --> 2408 </div> 2409 </div> 2410 2411 <!-- Row 2: Preview Button and Time --> 2412 <div class="accordian-content-card__bottom" 2413 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;"> 2414 2415 <!-- Preview Button --> 2416 <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;"> 2417 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@> 2418 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>" 2419 class="previewBtn" 2420 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #6715FF; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
2421 <span class="text-primary" style="color:#6715FF;"> 2422 <@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> 2423 <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#6715FF;"></i></span> 2424 </span> 2425 </a> 2426 <@}@> 2427 </div> 2428 2429 <!-- Time --> 2430 <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;"> 2431 <p class="text-primary course-asset-time" 2432 style="font-size: 14px; font-weight: 500; color:#6715FF !important; margin: 0;"> 2433 <@ if(value.duration && value.duration > 0) { @> 2434 <@ print(millisecondsToHHMMSSStr(value.duration)) @> 2435 <@ } else { @> 2436 -- 2437 <@ } @> 2438 </p> 2439 </div> 2440 </div> 2441 </div> 2442 </li> 2443 <@ } @> 2444 </ul> 2445 2446 <@ if(itemsCount > 5) { @> 2447 <div style="text-align: center; margin-top: 10px;"> 2448 <button style="background-color: #6715FF; color: white; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 2449 onclick=" 2450 var parentAccordion = this.closest('.accordion-content'); 2451 parentAccordion.style.maxHeight = 'none'; 2452 this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 2453 this.style.display = 'none'; 2454 "> 2455 View All 2456 </button> 2457 </div> 2458 <@ } @> 2459 </div> 2460 </div> 2461 </div> 2462 <@ }); @> 2463 <@ if(item.length > 5) { @> 2464 <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;"> 2465 <button style="background-color: #6715FF; color: white; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 2466 onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';"> 2467 View All Sessions 2468 </button> 2469 </div> 2470 <@ } @> 2471</div> 2472 </div> 2473</script>
2473 2474 2475 2476 2477<!--Olive Curriculum 8-->
2478<script> 2479 // Simple responsive positioning 2480 function updatePosition() { 2481 const element = document.getElementById('totalTimeElement'); 2482 if(element){ 2483 if (window.innerWidth > 768) { 2484 element.style.position = 'absolute'; 2485 element.style.top = "5px"; 2486 element.style.right = '122px'; 2487 } else { 2488 element.style.position = 'static'; 2489 element.style.margin = '0 0'; 2490 } 2491 } 2492 } 2493 2494 // Run on load and resize 2495 window.addEventListener('load', updatePosition); 2496 window.addEventListener('resize', updatePosition); 2497 </script>
2497 2498
2498<script type="text/template" id="coursecurr-8-template"> 2499 <div class="total-time" id="totalTimeElement" style=" 2500 font-size: 18px; 2501 font-weight: 600; 2502 color: #064400; 2503 padding: 8px 12px; 2504 border-radius: 4px; 2505 white-space: nowrap;"> 2506 <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@> 2507 <@print(millisecondsToHHMMSSStr(summary.durations))@> 2508 <@}@> 2509</div> 2510 2511<div class="accordion-syllabus" style="max-width:1000px !important"> 2512 <@ $.each(item, function(index, value) { @> 2513 <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>"> 2514 <header class="accordion-syllabus-header" style="background:#E5E5E5 !important; border-radius16px;box-shadow:none;padding:20px !important"> 2515 <h4 class="accordion-syllabus-header__title"> 2516 <span class="text-primary" style="font-size:18px ; font-weight:600; color:black;"> 2517 <@if(index < 9) {@> 2518 Week <@print(index + 1)@>: 2519 <@ } else {@> 2520 Week <@print(index + 1)@>: 2521 <@ } @> 2522 </span> 2523 <p style="font-size:18px ; font-weight:600;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;"> 2524 <@if(value && value.items){@> 2525 <@ print(value.items.length) @> attachment(s) 2526 <@} else {@> 2527 1 attachment(s) 2528 <@}@> 2529 <@if(value.moduleDurations && curriculumAssetInfo){@> 2530 • <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 2531 <@}@> 2532 </span></p> 2533 </h4> 2534 2535 <div class="accordion-syllabus-header__info"> 2536 <p class="text-primary hide-sm" style="color:#064400 !important;"> 2537 <@if(value && value.items){@> 2538 <@ print(value.items.length) @> attachment(s) 2539 <@} else {@> 2540 1 attachment(s) 2541 <@}@> 2542 <@if(value.moduleDurations && curriculumAssetInfo){@> 2543 • <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 2544 <@}@> 2545 </p> 2546 <div class="accordion-syllabus-header__icon text-primary"> 2547 <i class="fa fa-angle-left" aria-hidden="true" style="color:#064400;"></i> 2548 </div> 2549 </div> 2550 </header> 2551 <div class="accordion-content" style="filter:none;background:transparent !important;"> 2552 <div class="accordian-content-block" style="background:transparent !important;box-shadow:none;padding:16px 66px 3px 69px !important;"> 2553 <ul class="accordian-list"> 2554 <@ var itemsCount = value['items'] ? value['items'].length : 0; @> 2555 <@ if(value['items'] && value['items'].length > 0) { @> 2556 <@ $.each(value['items'], function(index1, value1) { @> 2557 <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 2558 <style> 2559 @media (max-width: 768px) { 2560 .accordian-content-card { 2561 flex-direction: column !important; 2562 align-items: stretch !important; 2563 } 2564 2565 .accordian-content-card__top { 2566 flex-direction: row !important; 2567 justify-content: space-between !important; 2568 align-items: center !important; 2569 width: 100% !important; 2570 } 2571 2572 .accordian-content-card__title { 2573 flex: 1 !important; 2574 margin: 0 10px !important; 2575 white-space: nowrap; 2576 overflow: hidden; 2577 text-overflow: ellipsis; 2578 } 2579 2580 .accordian-content-card__bottom { 2581 flex-direction: row !important; 2582 justify-content: space-between !important; 2583 align-items: center !important; 2584 width: 100% !important; 2585 margin-top: 6px !important; 2586 } 2587 2588 .accordian-content-card__link { 2589 flex: 1 !important; 2590 min-width: 0 !important; 2591 text-align: left !important; 2592 } 2593 2594 .accordian-content-card__time { 2595 flex-shrink: 0 !important; 2596 text-align: right !important; 2597 } 2598 } 2599 </style> 2600 2601 <div class="accordian-content-card" 2602 style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;"> 2603 2604 2605 <!-- Row 1: Icon + Title + Collapse Icon --> 2606 <div class="accordian-content-card__top" 2607 style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 2608 2609 <!-- Icon --> 2610 <div class="accordian-content-card__ico" style="flex-shrink: 0;"> 2611 <@ if(value1.type == 'code'){ @> 2612 <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;"> 2613 <@ } else { @>
2614 <span class="material-icons text-primary" style="color:#064400; font-size: 24px;"> 2615 <@ print(getCourseAssetIcon(value1.type))@> 2616 </span> 2617 <@ } @> 2618 </div> 2619 2620 <!-- Title --> 2621 <div class="accordian-content-card__title" 2622 style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"> 2623 <@print(value1.title)@> 2624 </div> 2625 2626 <!-- Collapse Icon (optional) --> 2627 <div class="accordian-content-card__collapse" style="flex-shrink: 0;"> 2628 <!-- Example placeholder, add real icon if needed --> 2629 <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> --> 2630 </div> 2631 </div> 2632 2633 <!-- Row 2: Preview Button and Time --> 2634 <div class="accordian-content-card__bottom" 2635 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;"> 2636 2637 <!-- Preview Button --> 2638 <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;"> 2639 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@> 2640 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>" 2641 class="previewBtn" 2642 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #064400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;"> 2643 <span class="text-primary" style="color:#064400;"> 2644 <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> 2645 <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#064400;"></i></span> 2646 </span> 2647 </a> 2648 <@}@> 2649 </div> 2650 2651 <!-- Time --> 2652 <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;"> 2653 <p class="text-primary course-asset-time" 2654 style="font-size: 14px; font-weight: 500; color:#064400 !important; margin: 0;"> 2655 <@ if(value1.duration && value1.duration > 0) { @> 2656 <@ print(millisecondsToHHMMSSStr(value1.duration)) @> 2657 <@ } else { @> 2658 -- 2659 <@ } @> 2660 </p> 2661 </div> 2662 2663 </div> 2664 </div> 2665 2666 2667 </li> 2668 <@ }); @> 2669 <@ } else { @> 2670 <li class="accordian-list__item" style="padding:0px 0px !important;"> 2671 <div class="accordian-content-card" 2672 style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;"> 2673 2674 <!-- Row 1: Icon + Title + Collapse Icon --> 2675 <div class="accordian-content-card__top" 2676 style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 2677 2678 <!-- Icon --> 2679 <div class="accordian-content-card__ico" style="flex-shrink: 0;"> 2680 <@ if(value.type == 'code'){ @> 2681 <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;"> 2682 <@ } else { @> 2683 <span class="material-icons text-primary" style="color:#064400; font-size: 24px;"> 2684 <@ print(getCourseAssetIcon(value.type))@> 2685 </span> 2686 <@ } @> 2687 </div> 2688 2689 <!-- Title --> 2690 <div class="accordian-content-card__title" 2691 style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"> 2692 <@print(value.title)@> 2693 </div> 2694 2695 <!-- Collapse Icon (optional) --> 2696 <div class="accordian-content-card__collapse" style="flex-shrink: 0;"> 2697 <!-- Example placeholder, add real icon if needed --> 2698 <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> --> 2699 </div> 2700 </div> 2701 2702 <!-- Row 2: Preview Button and Time --> 2703 <div class="accordian-content-card__bottom" 2704 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;"> 2705 2706 <!-- Preview Button --> 2707 <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;"> 2708 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@> 2709 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>" 2710 class="previewBtn" 2711 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #064400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
2712 <span class="text-primary" style="color:#064400;"> 2713 <@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> 2714 <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#064400;"></i></span> 2715 </span> 2716 </a> 2717 <@}@> 2718 </div> 2719 2720 <!-- Time --> 2721 <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;"> 2722 <p class="text-primary course-asset-time" 2723 style="font-size: 14px; font-weight: 500; color:#064400 !important; margin: 0;"> 2724 <@ if(value.duration && value.duration > 0) { @> 2725 <@ print(millisecondsToHHMMSSStr(value.duration)) @> 2726 <@ } else { @> 2727 -- 2728 <@ } @> 2729 </p> 2730 </div> 2731 </div> 2732 </div> 2733 </li> 2734 <@ } @> 2735 </ul> 2736 2737 <@ if(itemsCount > 5) { @> 2738 <div style="text-align: center; margin-top: 10px;"> 2739 <button style="background-color: #064400; color: white; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 2740 onclick=" 2741 var parentAccordion = this.closest('.accordion-content'); 2742 parentAccordion.style.maxHeight = 'none'; 2743 this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 2744 this.style.display = 'none'; 2745 "> 2746 View All 2747 </button> 2748 </div> 2749 <@ } @> 2750 </div> 2751 </div> 2752 </div> 2753 <@ }); @> 2754 <@ if(item.length > 5) { @> 2755 <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;"> 2756 <button style="background-color: #064400; color: white; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 2757 onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';"> 2758 View All Sessions 2759 </button> 2760 </div> 2761 <@ } @> 2762</div> 2763 </div> 2764</script>
2764 2765 2766 2767 2768<!--Dusk Curriculum 9-->
2769<script> 2770 // Simple responsive positioning 2771 function updatePosition() { 2772 const element = document.getElementById('totalTimeElement'); 2773 if(element){ 2774 if (window.innerWidth > 768) { 2775 element.style.position = 'absolute'; 2776 element.style.top = "5px"; 2777 element.style.right = '122px'; 2778 } else { 2779 element.style.position = 'static'; 2780 element.style.margin = '0 0'; 2781 } 2782 } 2783 } 2784 2785 // Run on load and resize 2786 window.addEventListener('load', updatePosition); 2787 window.addEventListener('resize', updatePosition); 2788 </script>
2788 2789
2789<script> 2790 // Simple responsive positioning 2791 function updatePosition() { 2792 const element = document.getElementById('totalTimeElement'); 2793 if(element){ 2794 if (window.innerWidth > 768) { 2795 element.style.position = 'absolute'; 2796 element.style.top = "5px"; 2797 element.style.right = '122px'; 2798 } else { 2799 element.style.position = 'static'; 2800 element.style.margin = '0 0'; 2801 } 2802 } 2803 } 2804 2805 // Run on load and resize 2806 window.addEventListener('load', updatePosition); 2807 window.addEventListener('resize', updatePosition); 2808 </script>
2808 2809
2809<script type="text/template" id="coursecurr-9-template"> 2810 <div class="total-time" id="totalTimeElement" style=" 2811 font-size: 18px; 2812 font-weight: 600; 2813 color: #282400; 2814 padding: 8px 12px; 2815 border-radius: 4px; 2816 white-space: nowrap;"> 2817 <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@> 2818 <@print(millisecondsToHHMMSSStr(summary.durations))@> 2819 <@}@> 2820</div> 2821 2822<div class="accordion-syllabus" style="max-width:1000px !important"> 2823 <@ $.each(item, function(index, value) { @> 2824 <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>"> 2825 <header class="accordion-syllabus-header" style="background:#F5F5F5 !important; border-radius:8px;box-shadow:none;padding:20px !important"> 2826 <h4 class="accordion-syllabus-header__title"> 2827 <span class="text-primary" style="font-size:18px ; font-weight:600; color:black;"> 2828 <@if(index < 9) {@> 2829 Week <@print(index + 1)@>: 2830 <@ } else {@> 2831 Week <@print(index + 1)@>: 2832 <@ } @> 2833 </span> 2834 <p style="font-size:18px ; font-weight:600;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;"> 2835 <@if(value && value.items){@> 2836 <@ print(value.items.length) @> attachment(s) 2837 <@} else {@> 2838 1 attachment(s) 2839 <@}@> 2840 <@if(value.moduleDurations && curriculumAssetInfo){@> 2841 • <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 2842 <@}@> 2843 </span></p> 2844 </h4> 2845 2846 <div class="accordion-syllabus-header__info"> 2847 <p class="text-primary hide-sm" style="color:#282400 !important;"> 2848 <@if(value && value.items){@> 2849 <@ print(value.items.length) @> attachment(s) 2850 <@} else {@> 2851 1 attachment(s) 2852 <@}@> 2853 <@if(value.moduleDurations && curriculumAssetInfo){@> 2854 • <@print(millisecondsToHHMMSSStr(value.moduleDurations))@> 2855 <@}@> 2856 </p> 2857 <div class="accordion-syllabus-header__icon text-primary"> 2858 <i class="fa fa-angle-left" aria-hidden="true" style="color:#282400;"></i> 2859 </div> 2860 </div> 2861 </header> 2862 <div class="accordion-content" style="filter:none;background:transparent !important;"> 2863 <div class="accordian-content-block" style="background:transparent !important;box-shadow:none;padding:16px 66px 3px 69px !important;"> 2864 <ul class="accordian-list"> 2865 <@ var itemsCount = value['items'] ? value['items'].length : 0; @> 2866 <@ if(value['items'] && value['items'].length > 0) { @> 2867 <@ $.each(value['items'], function(index1, value1) { @> 2868 <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 2869 <style> 2870 @media (max-width: 768px) { 2871 .accordian-content-card { 2872 flex-direction: column !important; 2873 align-items: stretch !important; 2874 } 2875 2876 .accordian-content-card__top { 2877 flex-direction: row !important; 2878 justify-content: space-between !important; 2879 align-items: center !important; 2880 width: 100% !important; 2881 } 2882 2883 .accordian-content-card__title { 2884 flex: 1 !important; 2885 margin: 0 10px !important; 2886 white-space: nowrap; 2887 overflow: hidden; 2888 text-overflow: ellipsis; 2889 } 2890 2891 .accordian-content-card__bottom { 2892 flex-direction: row !important; 2893 justify-content: space-between !important; 2894 align-items: center !important; 2895 width: 100% !important; 2896 margin-top: 6px !important; 2897 } 2898 2899 .accordian-content-card__link { 2900 flex: 1 !important; 2901 min-width: 0 !important; 2902 text-align: left !important; 2903 } 2904 2905 .accordian-content-card__time { 2906 flex-shrink: 0 !important; 2907 text-align: right !important; 2908 } 2909 } 2910 </style> 2911 2912 <div class="accordian-content-card" 2913 style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;"> 2914 2915 2916 <!-- Row 1: Icon + Title + Collapse Icon --> 2917 <div class="accordian-content-card__top" 2918 style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 2919 2920 <!-- Icon --> 2921 <div class="accordian-content-card__ico" style="flex-shrink: 0;"> 2922 <@ if(value1.type == 'code'){ @> 2923 <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;"> 2924 <@ } else { @>
2925 <span class="material-icons text-primary" style="color:#282400; font-size: 24px;"> 2926 <@ print(getCourseAssetIcon(value1.type))@> 2927 </span> 2928 <@ } @> 2929 </div> 2930 2931 <!-- Title --> 2932 <div class="accordian-content-card__title" 2933 style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"> 2934 <@print(value1.title)@> 2935 </div> 2936 2937 <!-- Collapse Icon (optional) --> 2938 <div class="accordian-content-card__collapse" style="flex-shrink: 0;"> 2939 <!-- Example placeholder, add real icon if needed --> 2940 <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> --> 2941 </div> 2942 </div> 2943 2944 <!-- Row 2: Preview Button and Time --> 2945 <div class="accordian-content-card__bottom" 2946 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;"> 2947 2948 <!-- Preview Button --> 2949 <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;"> 2950 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@> 2951 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>" 2952 class="previewBtn" 2953 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #282400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;"> 2954 <span class="text-primary" style="color:#282400;"> 2955 <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> 2956 <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#282400;"></i></span> 2957 </span> 2958 </a> 2959 <@}@> 2960 </div> 2961 2962 <!-- Time --> 2963 <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;"> 2964 <p class="text-primary course-asset-time" 2965 style="font-size: 14px; font-weight: 500; color:#282400 !important; margin: 0;"> 2966 <@ if(value1.duration && value1.duration > 0) { @> 2967 <@ print(millisecondsToHHMMSSStr(value1.duration)) @> 2968 <@ } else { @> 2969 -- 2970 <@ } @> 2971 </p> 2972 </div> 2973 2974 </div> 2975 </div> 2976 2977 2978 </li> 2979 <@ }); @> 2980 <@ } else { @> 2981 <li class="accordian-list__item" style="padding:0px 0px !important;"> 2982 <div class="accordian-content-card" 2983 style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;"> 2984 2985 <!-- Row 1: Icon + Title + Collapse Icon --> 2986 <div class="accordian-content-card__top" 2987 style="display: flex; align-items: center; justify-content: space-between; width: 100%;"> 2988 2989 <!-- Icon --> 2990 <div class="accordian-content-card__ico" style="flex-shrink: 0;"> 2991 <@ if(value.type == 'code'){ @> 2992 <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;"> 2993 <@ } else { @> 2994 <span class="material-icons text-primary" style="color:#282400; font-size: 24px;"> 2995 <@ print(getCourseAssetIcon(value.type))@> 2996 </span> 2997 <@ } @> 2998 </div> 2999 3000 <!-- Title --> 3001 <div class="accordian-content-card__title" 3002 style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"> 3003 <@print(value.title)@> 3004 </div> 3005 3006 <!-- Collapse Icon (optional) --> 3007 <div class="accordian-content-card__collapse" style="flex-shrink: 0;"> 3008 <!-- Example placeholder, add real icon if needed --> 3009 <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> --> 3010 </div> 3011 </div> 3012 3013 <!-- Row 2: Preview Button and Time --> 3014 <div class="accordian-content-card__bottom" 3015 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;"> 3016 3017 <!-- Preview Button --> 3018 <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;"> 3019 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@> 3020 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>" 3021 class="previewBtn" 3022 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #282400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
3023 <span class="text-primary" style="color:#282400;"> 3024 <@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> 3025 <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#282400;"></i></span> 3026 </span> 3027 </a> 3028 <@}@> 3029 </div> 3030 3031 <!-- Time --> 3032 <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;"> 3033 <p class="text-primary course-asset-time" 3034 style="font-size: 14px; font-weight: 500; color:#282400 !important; margin: 0;"> 3035 <@ if(value.duration && value.duration > 0) { @> 3036 <@ print(millisecondsToHHMMSSStr(value.duration)) @> 3037 <@ } else { @> 3038 -- 3039 <@ } @> 3040 </p> 3041 </div> 3042 </div> 3043 </div> 3044 </li> 3045 <@ } @> 3046 </ul> 3047 3048 <@ if(itemsCount > 5) { @> 3049 <div style="text-align: center; margin-top: 10px;"> 3050 <button style="background-color: #282400; color: white; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 3051 onclick=" 3052 var parentAccordion = this.closest('.accordion-content'); 3053 parentAccordion.style.maxHeight = 'none'; 3054 this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 3055 this.style.display = 'none'; 3056 "> 3057 View All 3058 </button> 3059 </div> 3060 <@ } @> 3061 </div> 3062 </div> 3063 </div> 3064 <@ }); @> 3065 <@ if(item.length > 5) { @> 3066 <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;"> 3067 <button style="background-color: #282400; color: white; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 3068 onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';"> 3069 View All Sessions 3070 </button> 3071 </div> 3072 <@ } @> 3073</div> 3074 </div> 3075</script>
3075 3076 3077 3078 3079 3080 3081 3082<!-- Feedback Template First -->
3083<script type="text/template" id="widget-1-template"> 3084<div class="column full feedbackContainer feedback1 spectre"> 3085<@if(msg){@> 3086 <h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4> 3087<@}else{@> 3088<div class="avgratingbox"> 3089 <div class="flex-row" > 3090 <div class="is-box-2" > 3091 <p style="color: rgb(247, 247, 247); font-weight: 700!important; font-size: 40px!important; text-align: center; letter-spacing: 3px; padding-bottom: 0px; margin-bottom: 0px; line-height: 1; margin-top: 0px;"> 3092 <@ if(ratings && ratings.avgRating) {@> 3093 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @> 3094 <@}else{@> 3095 0 3096 <@}@> 3097 </p> 3098 <h5 class="ratings1" style="text-align: center; margin-bottom: 0px; margin-top: 0px; line-height: 1;"> 3099 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 3100 <@if(ratings){@> 3101 <@ if(ratings.avgRating >= ratingsSize) {@> 3102 <i class="icon ion-android-star"></i> 3103 <@ } else if(ratings.avgRating > ratingsSize-1 && ratings.avgRating < ratingsSize) { @> 3104 <i class="icon ion-android-star-half"></i> 3105 <@ } else { @> 3106 <i class="icon ion-android-star-outline"></i> 3107 <@ } @> 3108 <@} else {@> 3109 <i class="icon ion-android-star-outline"></i> 3110 <@}@> 3111 <@}@> 3112 </h5> 3113 <p style="margin: 10px 0 0 !important;text-align: center;line-height: 1;font-size: 30px!important;"><i class="fa-light fa-users t-white"></i> </p> 3114 <p style="margin-bottom: 10px; margin-top: 0px; font-size: 12px!important; letter-spacing: 1px; font-weight: 500!important; color: rgb(247, 247, 247); text-align: center;"> 3115 Total <@ if(ratings){print(ratings.total) }else{0}@> Reviews 3116 </p> 3117 </div> 3118 <div class="is-box-9"> 3119 <@ for (i = 0; i < 5; i++) {@> 3120 <div class="box7878"> 3121 <div style="flex:1;"> 3122 <div class="meter <@print(ratingsPer[(parseInt(i)+1)+'-star'].cls)@> nostripes"> 3123 <span style="width: <@print(ratingsPer[(parseInt(i)+1)+'-star'].rates)@>%"></span> 3124 </div> 3125 </div> 3126 <div id="ratingbox"> 3127 <p class="ratings2" style=" line-height: 1;"> 3128 <@ for (ratingsSize = 5; ratingsSize >=1; ratingsSize--) {@> 3129 <@if(ratingsSize>i){@> 3130 <i class="fa fa-solid fa-star-sharp text-primary"></i> 3131 <@} else {@> 3132 <i class="fa fa-solid fa-star-sharp"></i> 3133 <@}@> 3134 <@}@> 3135 <span class="t-white"> 3136 <@ if(ratings && ratings.ratingsCount){print(ratings.ratingsCount[(parseInt(5)-i)+'-stars'])}else{0} @> 3137 </span> 3138 </p> 3139 3140 </div> 3141 </div> 3142 <@}@> 3143 </div> 3144 </div> 3145</div> 3146 <div class="bg-secondary" style="padding:15px 15px;border-radius:10px;border-top-right-radius: 0;border-top-left-radius: 0;" > 3147 <p 3148 style="font-size: 16px!important; font-weight: 500!important; letter-spacing: 1px;" class="text-primary"> 3149 Reviews 3150 </p> 3151 3152<div class="review-box" id="createCustomReview" style="display:none"> 3153<div class="flex-row"> 3154 <div class="is-box-2 centerbox"> 3155 <div class="spectre"> 3156 <figure data-initial="<@if(typeof SPUSER !== 'undefined'){print(SPUSER.email.substring(0, 1))}else{@>Me<@}@>" class="uppercase avatar avatar-lg figsize" > 3157 <img src="/s/profile/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ if(typeof SPUSER !== 'undefined'){print(SPUSER.mhash)} @>"> 3158 </figure> 3159 <@if(typeof SPUSER !== 'undefined'){ @><p class="review-name"><@ print(SPUSER.name) @> </p><@ } @> 3160 </div> 3161 </div> 3162 <div class="is-box-10"> 3163 <textarea rows="3" class="form-input" 3164 placeholder="Add your review here"></textarea> 3165 <div class="rating3"> 3166 <p id="rating-stars"> 3167 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> <i 3168 class="fa fa-solid fa-star-sharp text-primary rating-star" data-value='<@- ratingsSize @>'></i> <@}@> 3169 </p> 3170 3171 <button class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>" 3172 data-reviewData="reviewlist" 3173 style="padding: 2px 28px; text-transform: uppercase; border-radius: 40px;">Post</button> 3174 </div> 3175 </div> 3176</div> 3177</div> 3178 3179 <div id="reviewlist"> 3180 <@ $.each(items, function(index, item) { @> 3181 <div class="review-box reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @>selfreview<@ } @>"> 3182 <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @> 3183 <a class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a> 3184 <@ } @> 3185 <div class="flex-row"> 3186 <div class="is-box-2 centerbox"> 3187 <div class="spectre"> 3188 <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @> 3189 <figure data-initial="<@if(typeof SPUSER !== 'undefined'){print(SPUSER.email.substring(0, 1))}else{@>Me<@}@>" class="uppercase avatar avatar-lg figsize" > 3190 <img src="/s/profile/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ if(typeof SPUSER !== 'undefined'){print(SPUSER.mhash)} @>"> 3191 <@ } else {@> 3192 <figure data-initial="<@ print(getUserInitial(null, item.userName)) @>" class="uppercase avatar avatar-lg figsize" > 3193 <img src="/s/profile/<@- item.userId @>/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ item.mhash @>"> 3194 <@ } @> 3195 </figure> 3196 <p class="review-name"><@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @><@ print(SPUSER.name) @><@ } else {@> <@ print(item.userName) @><@ } @> </p> 3197 </div> 3198 </div> 3199 <div class="is-box-10"> 3200 <div class="rating4"> 3201 <p> 3202 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> <@ 3203 if(item.rating >= ratingsSize) {@> 3204 <i class="fa fa-solid fa-star-sharp text-primary"></i> 3205 <@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 3206 <i class="fa fa-solid fa-star-sharp-half text-primary"></i> 3207 <@ } else { @> 3208 <i class="fa fa-solid fa-star-sharp"></i> 3209 <@}@> 3210 <@ }@> 3211 </p> 3212 <p 3213 style="font-size: 13px!important; color: rgb(174, 170, 170); font-weight: 600!important; margin-top: 4px;"> 3214 <time class="timestamp"
3215 datetime="<@ print((new Date(item.createdDate.$date)).toISOString()) @>"><@ 3216 print(parseDate(item.createdDate.$date)) @></time> 3217 </p> 3218 </div> 3219 <p class="reviewTxt" 3220 style="color: rgb(102, 102, 102); font-weight: 500!important; font-size: 13px!important; margin-bottom: 10px;"><@ 3221 print(item.reviewtext.replace(/</g,'<').replace(/>/g,'>')) @></p> 3222 <div class="comment-tag"> 3223 <@ if(item.isFeatured) {@><span>Featured Review </span><@ } @><@ if(item.isVerifiedPurchase) {@> <span>Verified Purchase </span><@ } @> 3224 </div> 3225 </div> 3226 </div> 3227 </div> 3228 <@ }); @> 3229 </div> 3230 <button class="bg-primary loadMoreReviewsBtn reviewLMbtn" data-itemTemplate="feedback-1-item-template" data-reviewData="reviewlist" >Load More Reviews</button> 3231</div> 3232<@}@> 3233</script>
3233 3234 3235
3236<script type="text/template" id="feedback-1-item-template"> 3237<div class="review-box reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @>selfreview<@ } @>""> 3238<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @> 3239 <a class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a> 3240<@ } @> 3241<div class="flex-row"> 3242 <div class="is-box-2 centerbox"> 3243 <div class="spectre"> 3244 <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @> 3245 <figure data-initial="<@if(typeof SPUSER !== 'undefined'){print(SPUSER.email.substring(0, 1))}else{@>Me<@}@>" class="avatar avatar-lg figsize" > 3246 <img src="/s/profile/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ if(typeof SPUSER !== 'undefined'){print(SPUSER.mhash)} @>"> 3247 <@ } else {@> 3248 <figure data-initial="<@ print(getUserInitial(null, item.userName)) @>" class="avatar avatar-lg figsize" > 3249 <img src="/s/profile/<@- item.userId @>/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ item.mhash @>"> 3250 <@ } @> 3251 </figure> 3252 <p class="review-name"><@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @><@ print(SPUSER.name) @><@ } else {@> <@ print(item.userName) @><@ } @> </p> 3253 </div> 3254 </div> 3255 <div class="is-box-10"> 3256 <div class="rating4"> 3257 <p> 3258 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> <@ 3259 if(item.rating >= ratingsSize) {@> 3260 <i class="fa fa-solid fa-star-sharp text-primary"></i> 3261 <@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 3262 <i class="fa fa-solid fa-star-sharp-half text-primary"></i> 3263 <@ } else { @> 3264 <i class="fa fa-solid fa-star-sharp-outline"></i> 3265 <@}@> 3266 <@ } @> 3267 </p> 3268 <p 3269 style="font-size: 13px!important; color: rgb(174, 170, 170); font-weight: 600!important; margin-top: 4px;"> 3270 <time class="timestamp" 3271 datetime="<@ print((new Date(item.createdDate.$date)).toISOString()) @>"><@ 3272 print(parseDate(item.createdDate.$date)) @></time> 3273 </p> 3274 </div> 3275 <p class="reviewTxt" 3276 style="color: rgb(102, 102, 102); font-weight: 500!important; font-size: 13px!important; margin-bottom: 10px;"><@ 3277 print(item.reviewtext.replace(/</g,'<').replace(/>/g,'>')) @></p> 3278 <div class="comment-tag"> 3279 <@ if(item.isFeatured) {@><span>Featured Review </span><@ } @><@ if(item.isVerifiedPurchase) {@> <span>Verified Purchase </span><@ } @> 3280 </div> 3281 </div> 3282</div> 3283</div> 3284</script>
3284 3285 3286 3287<!-- Feedback Template Second -->
3288<script type="text/template" id="feedback-2-template"> 3289<div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;"> 3290<@if(msg){@> 3291 <h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4> 3292<@}else{@> 3293<@ if(total > 0 && ratings && ratings.avgRating) {@> 3294<div class="avgratingbox"> 3295<div class="column third"> 3296 <div class="is-card avgRatingContainer" > 3297 <div class="avgRatingInnerContainer"> 3298 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3> 3299 <div style="display: flex; flex-direction: row; align-items: center; justify-content: center;"> 3300 <i class="icon ion-android-star text-primary" style="font-size: 80px;"></i> 3301 <div style="margin-left: 25px;"> 3302 <span style="display: flex; justify-content: flex-start; align-items: baseline;"> 3303 <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800; color: var(--themeColor); line-height: 1.3;"> 3304 <@ if(ratings && ratings.avgRating) {@> 3305 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @> 3306 <@}else{@> 3307 0 3308 <@}@> 3309 </h3> 3310 <p class="avgRatingReviews">/5</p> 3311 </span> 3312 <p class="avgRatingReviews"> 3313 <@ if(ratings){print(ratings.total) }else{0}@> reviews 3314 </p> 3315 </div> 3316 </div> 3317 </div> 3318 </div> 3319</div> 3320</div> 3321<@ } @> 3322<div id="feedback2Reviewlist" class="reviewslist"> 3323 <@ $.each(items, function(index, item) { @> 3324 <@ var template = _.template($("#feedback-2-item-template").html()); print(template({item: item})) @> 3325 <@ }); @> 3326 <@}@> 3327</div> 3328<div class="row clearfix"> 3329 <div class="column full"> 3330 <p class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-2-item-template" data-reviewData="feedback2Reviewlist" style="text-align: right; font-size: 14px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none;"> 3331 View more 3332 </p> 3333 </div> 3334</div> 3335</script>
3335 3336
3337<script type="text/template" id="feedback-2-item-template"> 3338 <div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @>selfreview<@ } @>"> 3339 <div class="is-card avgRatingContainer"> 3340 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" > 3341 <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @> 3342 <a class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a> 3343 <@ } @> 3344 <p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 80px; max-height: 80px; overflow: hidden;"> 3345 <@ print(item.reviewtext.replace(/</g,'<').replace(/>/g,'>')) @> 3346 </p> 3347 <div class="reviewerName"> 3348 <p style="font-size: 12px; font-weight: 500; line-height: 1.3; text-align: left; padding-top: 0px; margin:0px;"> 3349 <@ print(item.userName) @> 3350 </p></div> 3351 3352 <p style="margin: 0px;"> 3353 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 3354 <@ if(item.rating >= ratingsSize) {@> 3355 <i class="fa fa-solid fa-star-sharp text-primary"></i> 3356 <@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 3357 <i class="fa fa-solid fa-star-sharp-half text-primary"></i> 3358 <@ } @> 3359 <@ }@> 3360 </p> 3361 3362 </div> 3363 </div> 3364 </div> 3365</script>
vendor: 1 bytes, line 3365
3365
3366<script type="text/template" id="feedback-2-createTemplate"> 3367 <div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>"> 3368 <div class="is-boxes"> 3369 <div class="is-box-centered"> 3370 <div class="is-container container" style="max-width: 940px;"> 3371 3372 <div class="review-box review-add-box"> 3373 <div class="is-container container is-content-800" > 3374 <div class="row clearfix" > 3375 <div class="column full" > 3376 <h1 style="text-align: center; font-size: 28px; line-height: 1.1; font-weight: 700; letter-spacing: 0px; color: var(--themeColor); margin-bottom: 44px;">Add a review</h1> 3377 </div> 3378 </div> 3379 <div class="textarea-cont"> 3380 <div class="review-star text-primary" style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;"> 3381 <span id="rating-stars"> 3382 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> <i 3383 class="fa fa-solid fa-star-sharp rating-star" data-value='<@- ratingsSize @>'></i> <@}@> 3384 </span> 3385 </div> 3386 <textarea class="add-review-textarea" id="reviewText" style="background: transparent;width: 100%; border-width: 0px; padding-right: 28px; padding-bottom: 28px; min-height: 150px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;" placeholder="Add your review here"></textarea> 3387 <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0) { @> 3388 <p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p> 3389 <@ } @> 3390 </div> 3391 <div style="margin-top: 20px; display: flex; justify-content: flex-end;"> 3392 <button id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>" 3393 data-reviewData="feedback2Reviewlist" disabled >Submit</button> 3394 </div> 3395 </div> 3396 </div> 3397 </div> 3398 </div> 3399 </div> 3400</div> 3401</script>
3401 3402 3403<!-- Vegas 4th feedback Template--> 3404 3405
3406<script type="text/template" id="feedback-4-template"> 3407 <div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;"> 3408 <@if(msg){@> 3409 <h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4> 3410 <@}else{@> 3411 <@ if(total > 0 && ratings && ratings.avgRating) {@> 3412 <div class="avgratingbox"> 3413 <div class="column third"> 3414 <div class="is-card avgRatingContainer" style="border-radius:16px !important ; padding:20px ;border:1px solid #E5E5E5 !important;" > 3415 <div class="avgRatingInnerContainer"> 3416 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3> 3417 <div style="display: flex; flex-direction: row; align-items: center; justify-content: center;"> 3418 <i class="icon ion-android-star text-primary" style="font-size: 80px;"></i> 3419 <div style="margin-left: 25px;"> 3420 <span style="display: flex; justify-content: flex-start; align-items: baseline;"> 3421 <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800; color: var(--themeColor); line-height: 1.3;"> 3422 <@ if(ratings && ratings.avgRating) {@> 3423 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @> 3424 <@}else{@> 3425 0 3426 <@}@> 3427 </h3> 3428 <p class="avgRatingReviews">/5</p> 3429 </span> 3430 <p class="avgRatingReviews"> 3431 <@ if(ratings){print(ratings.total) }else{0}@> reviews 3432 </p> 3433 </div> 3434 </div> 3435 </div> 3436 </div> 3437 </div> 3438 </div> 3439 <@ } @> 3440 <div id="feedback4Reviewlist" class="reviewslist"> 3441 <@ $.each(items, function(index, item) { @> 3442 <@ var template = _.template($("#feedback-4-item-template").html()); print(template({item: item})) @> 3443 <@ }); @> 3444 <@}@> 3445 </div> 3446 <div class="row clearfix"> 3447 <div class="column full" style="text-align: center;"> 3448 <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-4-item-template" data-reviewData="feedback4Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#FB5607; color:white; padding:12px 28px; border-radius:24px;text-decoration:none;"> 3449 View All Reviews 3450 </a> 3451 </div> 3452 </div> 3453 </script>
3453 3454 3455
3455<script type="text/template" id="feedback-4-item-template"> 3456 <div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @>selfreview<@ } @>"> 3457 <div class="is-card avgRatingContainer" style="border:1px solid #E5E5E5 !important; border-radius:16px !important;background:white; padding:20px; "> 3458 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" > 3459 <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @> 3460 <a style="color:#FB5607 !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a> 3461 <@ } @> 3462 <p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;"> 3463 <@ print(item.reviewtext.replace(/</g,'<').replace(/>/g,'>')) @> 3464 </p> 3465 <div class="reviewerName"> 3466 <p style="font-size: 12px; font-weight: 500; line-height: 1.3; text-align: left; padding-top: 0px; margin:0px; opacity:0.5;"> 3467 <@ print(item.userName) @> 3468 </p></div> 3469 3470 <p style="margin: 0px;"> 3471 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 3472 <@ if(item.rating >= ratingsSize) {@> 3473 <i class="fa fa-solid fa-star-sharp text-primary" style="color:#FB5607 !important;"></i> 3474 <@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 3475 <i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#FB5607 !important;"></i> 3476 <@ } @> 3477 <@ }@> 3478 </p> 3479 3480 </div> 3481 </div> 3482 </div> 3483 </script>
3483 3484
3484<script type="text/template" id="feedback-4-createTemplate"> 3485 <div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>"> 3486 <div class="is-boxes"> 3487 <div class="is-box-centered"> 3488 <div class="is-container container" style="max-width: 1200px;"> 3489 3490 <div class="review-box review-add-box"> 3491 <div class="is-container container is-content-1200" > 3492 <div class="row clearfix" > 3493 <div class="column full" > 3494 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: black; ">Add a review</h1> 3495 </div> 3496 </div> 3497 <div class="textarea-cont"> 3498 <div style="display:flex; gap:30px;"> 3499 <div><h3 style="font-size:18px;font-weight:600;">Overall Rating</h3></div> 3500 <div class="review-star1 text-primary" 3501 style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important"> 3502 <span id="rating-stars" > 3503 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 3504 <i class="fa fa-solid fa-star-sharp rating-star" 3505 data-value='<@- ratingsSize @>' 3506 style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i> 3507 <@}@> 3508 </span> 3509 </div> 3510 <style></style> 3511 3512 3513 </div> 3514 <textarea class="add-review-textarea" id="reviewText" style="background:#E5E5E5;width: 100%; border: 1px solid #E5E5E5; padding-right: 28px; padding-bottom: 28px; min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:16px !important" placeholder="Add your review here"></textarea> 3515 <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0) { @> 3516 <p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p> 3517 <@ } @> 3518 </div> 3519 <div style=" display: flex; justify-content: center;"> 3520 <button style="letter-spacing:0px !important ; background-color:#FB5607;padding:12px 28px !important;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>" 3521 data-reviewData="feedback4Reviewlist" disabled >Submit</button> 3522 </div> 3523 </div> 3524 </div> 3525 </div> 3526 </div> 3527 </div> 3528 </div> 3529 </script>
3529 3530 3531 3532 3533 3534<!-- Blaze 5th feedback Template-->
3535<script type="text/template" id="feedback-5-template"> 3536 <div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;"> 3537 <@if(msg){@> 3538 <h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4> 3539 <@}else{@> 3540 <@ if(total > 0 && ratings && ratings.avgRating) {@> 3541 <div class="avgratingbox"> 3542 <div class="column third"> 3543 <div class="is-card avgRatingContainer" style="background:#232323; border-radius:0px;padding:21px;" > 3544 <div class="avgRatingInnerContainer"> 3545 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;color:white;">Customer ratings</h3> 3546 <div style="display: flex; flex-direction: row; align-items: center; justify-content: center;"> 3547 <i class="icon ion-android-star text-primary" style="font-size: 80px;color:rgb(216, 253, 70);"></i> 3548 <div style="margin-left: 25px;"> 3549 <span style="display: flex; justify-content: flex-start; align-items: baseline;"> 3550 <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800; color: rgb(216, 253, 70); line-height: 1.3;"> 3551 <@ if(ratings && ratings.avgRating) {@> 3552 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @> 3553 <@}else{@> 3554 0 3555 <@}@> 3556 </h3> 3557 <p class="avgRatingReviews" style="color:white;">/5</p> 3558 </span> 3559 <p class="avgRatingReviews" style="color:white;"> 3560 <@ if(ratings){print(ratings.total) }else{0}@> reviews 3561 </p> 3562 </div> 3563 </div> 3564 </div> 3565 </div> 3566 </div> 3567 </div> 3568 <@ } @> 3569 <div id="feedback5Reviewlist" class="reviewslist"> 3570 <@ $.each(items, function(index, item) { @> 3571 <@ var template = _.template($("#feedback-5-item-template").html()); print(template({item: item})) @> 3572 <@ }); @> 3573 <@}@> 3574 </div> 3575 <div class="row clearfix"> 3576 <div class="column full" style="text-align: center;"> 3577 <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-5-item-template" data-reviewData="feedback5Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#D8FD46; color:black; padding:12px 28px; border-radius:0px;text-decoration:none;"> 3578 View All Reviews 3579 </a> 3580 </div> 3581 </div> 3582 </script>
3582 3583 3584 3585
3585<script type="text/template" id="feedback-5-item-template"> 3586 <style> 3587 .template5-review .reviewTxt{ 3588 color:white !important; 3589 } 3590 .template5-review .reviewerName p{ 3591 color:white !important; 3592 } 3593 </style> 3594 <div class="column third reviewcontainer template5-review <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @> selfreview <@ } @>"> 3595 <div class="is-card avgRatingContainer" style="border:1px solid #232323;padding:20px;"> 3596 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;"> 3597 <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @> 3598 <a style="color:#D8FD46 !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"> 3599 <i class="material-icons">delete</i> 3600 </a> 3601 <@ } @> 3602 <p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;"> 3603 <@ print(item.reviewtext.replace(/</g,'<').replace(/>/g,'>')) @> 3604 </p> 3605 <div class="reviewerName"> 3606 <p style="font-size: 12px; font-weight: 500; line-height: 1.3; text-align: left; padding-top: 0px; margin:0px; opacity:0.5; "> 3607 <@ print(item.userName) @> 3608 </p> 3609 </div> 3610 3611 <p style="margin: 0px;"> 3612 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) { @> 3613 <@ if(item.rating >= ratingsSize) { @> 3614 <i class="fa fa-solid fa-star-sharp text-primary" style="color:#D8FD46 !important;"></i> 3615 <@ } else if(item.rating > ratingsSize - 1 && item.rating < ratingsSize) { @> 3616 <i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#D8FD46 !important;"></i> 3617 <@ } @> 3618 <@ } @> 3619 </p> 3620 </div> 3621 </div> 3622 </div> 3623 </script>
3623 3624 3625
3625<script type="text/template" id="feedback-5-createTemplate"> 3626 <div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>"> 3627 <div class="is-boxes"> 3628 <div class="is-box-centered" style="background:#181818;"> 3629 <div class="is-container container" style="max-width: 1200px;"> 3630 3631 <div class="review-box review-add-box"> 3632 <div class="is-container container is-content-1200" > 3633 <div class="row clearfix" > 3634 <div class="column full" > 3635 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: white; ">Add a review</h1> 3636 </div> 3637 </div> 3638 <div class="textarea-cont" style="background:transparent"> 3639 <div style="display:flex; gap:30px;"> 3640 <div><h3 style="font-size:18px;font-weight:600; color:white;">Overall Rating</h3></div> 3641 <div class="review-star text-primary" 3642 style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important"> 3643 <span id="rating-stars" > 3644 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 3645 <i class="fa fa-solid fa-star-sharp rating-star" 3646 data-value='<@- ratingsSize @>' 3647 style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i> 3648 <@}@> 3649 </span> 3650 </div> 3651 3652 3653 </div> 3654 <textarea class="add-review-textarea" id="reviewText" style="color:white;background:#232323;width: 100%; border: 1px solid #636363; padding: 28px; min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:0px !important" placeholder="Add your review here"></textarea> 3655 <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0) { @> 3656 <p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p> 3657 <@ } @> 3658 </div> 3659 <div style=" display: flex; justify-content: center;margin-top:20px;"> 3660 <button style="letter-spacing:0px !important ; background-color:#D8FD46;padding:12px 28px !important; border-radius:0px !important; color:black;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>" 3661 data-reviewData="feedback5Reviewlist" disabled >Submit</button> 3662 </div> 3663 </div> 3664 </div> 3665 </div> 3666 </div> 3667 </div> 3668 </div> 3669 </script>
3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685<!-- Nebula Feedback 6--> 3686
3687<script type="text/template" id="feedback-6-template"> 3688 <div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;"> 3689 <@if(msg){@> 3690 <h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4> 3691 <@}else{@> 3692 <@ if(total > 0 && ratings && ratings.avgRating) {@> 3693 <div class="avgratingbox"> 3694 <div class="column third"> 3695 <div class="is-card avgRatingContainer" style="border-radius:16px !important ; padding:20px ;border:1px solid #E5E5E5 !important;" > 3696 <div class="avgRatingInnerContainer"> 3697 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3> 3698 <div style="display: flex; flex-direction: row; align-items: center; justify-content: center;"> 3699 <i class="icon ion-android-star text-primary" style="font-size: 80px; color: #6715FF !important;"></i> 3700 <div style="margin-left: 25px;"> 3701 <span style="display: flex; justify-content: flex-start; align-items: baseline;"> 3702 <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800; color: #6715FF !important; line-height: 1.3;"> 3703 <@ if(ratings && ratings.avgRating) {@> 3704 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @> 3705 <@}else{@> 3706 0 3707 <@}@> 3708 </h3> 3709 <p class="avgRatingReviews">/5</p> 3710 </span> 3711 <p class="avgRatingReviews"> 3712 <@ if(ratings){print(ratings.total) }else{0}@> reviews 3713 </p> 3714 </div> 3715 </div> 3716 </div> 3717 </div> 3718 </div> 3719 </div> 3720 <@ } @> 3721 <div id="feedback6Reviewlist" class="reviewslist"> 3722 <@ $.each(items, function(index, item) { @> 3723 <@ var template = _.template($("#feedback-6-item-template").html()); print(template({item: item})) @> 3724 <@ }); @> 3725 <@}@> 3726 </div> 3727 <div class="row clearfix"> 3728 <div class="column full" style="text-align: center;"> 3729 <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-6-item-template" data-reviewData="feedback6Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#6715FF; color:white; padding:12px 28px; border-radius:24px;text-decoration:none;"> 3730 View All Reviews 3731 </a> 3732 </div> 3733 </div> 3734 </script>
3734 3735 3736
3736<script type="text/template" id="feedback-6-item-template"> 3737 <div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @>selfreview<@ } @>"> 3738 <div class="is-card avgRatingContainer" style="border:1px solid #E5E5E5 !important; border-radius:16px !important;background:white; padding:20px; "> 3739 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" > 3740 <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @> 3741 <a style="color:#6715FF !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a> 3742 <@ } @> 3743 <p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;"> 3744 <@ print(item.reviewtext.replace(/</g,'<').replace(/>/g,'>')) @> 3745 </p> 3746 <div class="reviewerName"> 3747 <p style="font-size: 12px; font-weight: 500; line-height: 1.3; text-align: left; padding-top: 0px; margin:0px; opacity:0.5;"> 3748 <@ print(item.userName) @> 3749 </p></div> 3750 3751 <p style="margin: 0px;"> 3752 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 3753 <@ if(item.rating >= ratingsSize) {@> 3754 <i class="fa fa-solid fa-star-sharp text-primary" style="color:#6715FF !important;"></i> 3755 <@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 3756 <i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#6715FF !important;"></i> 3757 <@ } @> 3758 <@ }@> 3759 </p> 3760 3761 </div> 3762 </div> 3763 </div> 3764 </script>
3764 3765
3765<script type="text/template" id="feedback-6-createTemplate"> 3766 <div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>"> 3767 <div class="is-boxes"> 3768 <div class="is-box-centered"> 3769 <div class="is-container container" style="max-width: 1200px;"> 3770 3771 <div class="review-box review-add-box"> 3772 <div class="is-container container is-content-1200" > 3773 <div class="row clearfix" > 3774 <div class="column full" > 3775 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: black; ">Add a review</h1> 3776 </div> 3777 </div> 3778 <div class="textarea-cont" style="background:transparent"> 3779 <div style="display:flex; gap:30px;"> 3780 <div><h3 style="font-size:18px;font-weight:600;">Overall Rating</h3></div> 3781 <div class="review-star1 text-primary" 3782 style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important"> 3783 <span id="rating-stars" > 3784 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 3785 <i class="fa fa-solid fa-star-sharp rating-star" 3786 data-value='<@- ratingsSize @>' 3787 style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i> 3788 <@}@> 3789 </span> 3790 </div> 3791 <style></style> 3792 3793 3794 </div> 3795 <textarea class="add-review-textarea" id="reviewText" style="background:white;width: 100%; border: 1px solid #c3c0c0; padding-right: 28px; padding-bottom: 28px;padding-left:20px; min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:16px !important" placeholder="Add your review here"></textarea> 3796 <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0) { @> 3797 <p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: grey; margin-top: 0px;"><@ print(SPUSER.name) @></p> 3798 <@ } @> 3799 </div> 3800 <div style=" display: flex; justify-content: center;"> 3801 <button style="letter-spacing:0px !important ; background-color:#6715FF;padding:12px 28px !important;margin-top:30px;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>" 3802 data-reviewData="feedback6Reviewlist" disabled >Submit</button> 3803 </div> 3804 </div> 3805 </div> 3806 </div> 3807 </div> 3808 </div> 3809 </div> 3810 </script>
3810 3811 3812 3813 3814 3815 3816<!-- Olive Feedback 7-->
3817<script type="text/template" id="feedback-7-template"> 3818 <div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;"> 3819 <@if(msg){@> 3820 <h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4> 3821 <@}else{@> 3822 <@ if(total > 0 && ratings && ratings.avgRating) {@> 3823 <div class="avgratingbox"> 3824 <div class="column third"> 3825 <div class="is-card avgRatingContainer" style="border-radius:16px !important ; padding:20px ;border:1px solid #E5E5E5 !important;" > 3826 <div class="avgRatingInnerContainer"> 3827 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3> 3828 <div style="display: flex; flex-direction: row; align-items: center; justify-content: center;"> 3829 <i class="icon ion-android-star text-primary" style="font-size: 80px; color: #064400 !important;"></i> 3830 <div style="margin-left: 25px;"> 3831 <span style="display: flex; justify-content: flex-start; align-items: baseline;"> 3832 <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800; color: #064400 !important; line-height: 1.3;"> 3833 <@ if(ratings && ratings.avgRating) {@> 3834 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @> 3835 <@}else{@> 3836 0 3837 <@}@> 3838 </h3> 3839 <p class="avgRatingReviews">/5</p> 3840 </span> 3841 <p class="avgRatingReviews"> 3842 <@ if(ratings){print(ratings.total) }else{0}@> reviews 3843 </p> 3844 </div> 3845 </div> 3846 </div> 3847 </div> 3848 </div> 3849 </div> 3850 <@ } @> 3851 <div id="feedback7Reviewlist" class="reviewslist"> 3852 <@ $.each(items, function(index, item) { @> 3853 <@ var template = _.template($("#feedback-7-item-template").html()); print(template({item: item})) @> 3854 <@ }); @> 3855 <@}@> 3856 </div> 3857 <div class="row clearfix"> 3858 <div class="column full" style="text-align: center;"> 3859 <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-7-item-template" data-reviewData="feedback7Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#064400; color:white; padding:12px 28px; border-radius:24px;text-decoration:none;"> 3860 View All Reviews 3861 </a> 3862 </div> 3863 </div> 3864 </script>
3864 3865 3866
3866<script type="text/template" id="feedback-7-item-template"> 3867 <div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @>selfreview<@ } @>"> 3868 <div class="is-card avgRatingContainer" style="border:1px solid #E5E5E5 !important; border-radius:16px !important;background:white; padding:20px; "> 3869 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" > 3870 <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @> 3871 <a style="color:#064400 !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a> 3872 <@ } @> 3873 <p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;"> 3874 <@ print(item.reviewtext.replace(/</g,'<').replace(/>/g,'>')) @> 3875 </p> 3876 <div class="reviewerName"> 3877 <p style="font-size: 12px; font-weight: 500; line-height: 1.3; text-align: left; padding-top: 0px; margin:0px; opacity:0.5;"> 3878 <@ print(item.userName) @> 3879 </p></div> 3880 3881 <p style="margin: 0px;"> 3882 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 3883 <@ if(item.rating >= ratingsSize) {@> 3884 <i class="fa fa-solid fa-star-sharp text-primary" style="color:#064400 !important;"></i> 3885 <@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 3886 <i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#064400 !important;"></i> 3887 <@ } @> 3888 <@ }@> 3889 </p> 3890 3891 </div> 3892 </div> 3893 </div> 3894 </script>
3894 3895
3895<script type="text/template" id="feedback-7-createTemplate"> 3896 <div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>"> 3897 <div class="is-boxes"> 3898 <div class="is-box-centered"> 3899 <div class="is-container container" style="max-width: 1200px;"> 3900 3901 <div class="review-box review-add-box"> 3902 <div class="is-container container is-content-1200" > 3903 <div class="row clearfix" > 3904 <div class="column full" > 3905 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: black; ">Add a review</h1> 3906 </div> 3907 </div> 3908 <div class="textarea-cont"> 3909 <div style="display:flex; gap:30px;"> 3910 <div><h3 style="font-size:18px;font-weight:600;">Overall Rating</h3></div> 3911 <div class="review-star1 text-primary" 3912 style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important"> 3913 <span id="rating-stars" > 3914 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 3915 <i class="fa fa-solid fa-star-sharp rating-star" 3916 data-value='<@- ratingsSize @>' 3917 style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i> 3918 <@}@> 3919 </span> 3920 </div> 3921 <style></style> 3922 3923 3924 </div> 3925 <textarea class="add-review-textarea" id="reviewText" style="background:#E5E5E5;width: 100%; border: 1px solid #E5E5E5; padding-right: 28px; padding-bottom: 28px;padding-left:20px; min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:16px !important" placeholder="Add your review here"></textarea> 3926 <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0) { @> 3927 <p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p> 3928 <@ } @> 3929 </div> 3930 <div style=" display: flex; justify-content: center;"> 3931 <button style="letter-spacing:0px !important ; background-color:#064400;padding:12px 28px !important;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>" 3932 data-reviewData="feedback7Reviewlist" disabled >Submit</button> 3933 </div> 3934 </div> 3935 </div> 3936 </div> 3937 </div> 3938 </div> 3939 </div> 3940 </script>
3940 3941 3942 3943 3944 3945 <!--Dusk Feedback-8--> 3946
3946<script type="text/template" id="feedback-8-template"> 3947 <div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;"> 3948 <@if(msg){@> 3949 <h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4> 3950 <@}else{@> 3951 <@ if(total > 0 && ratings && ratings.avgRating) {@> 3952 <div class="avgratingbox"> 3953 <div class="column third"> 3954 <div class="is-card avgRatingContainer" style="border-radius:16px !important ; padding:20px ;border:1px solid #E5E5E5 !important;background:#F5F5F5;" > 3955 <div class="avgRatingInnerContainer"> 3956 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3> 3957 <div style="display: flex; flex-direction: row; align-items: center; justify-content: center;"> 3958 <i class="icon ion-android-star text-primary" style="font-size: 80px; color: #282400 !important;"></i> 3959 <div style="margin-left: 25px;"> 3960 <span style="display: flex; justify-content: flex-start; align-items: baseline;"> 3961 <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800; color: #282400 !important; line-height: 1.3;"> 3962 <@ if(ratings && ratings.avgRating) {@> 3963 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @> 3964 <@}else{@> 3965 0 3966 <@}@> 3967 </h3> 3968 <p class="avgRatingReviews">/5</p> 3969 </span> 3970 <p class="avgRatingReviews"> 3971 <@ if(ratings){print(ratings.total) }else{0}@> reviews 3972 </p> 3973 </div> 3974 </div> 3975 </div> 3976 </div> 3977 </div> 3978 </div> 3979 <@ } @> 3980 <div id="feedback8Reviewlist" class="reviewslist"> 3981 <@ $.each(items, function(index, item) { @> 3982 <@ var template = _.template($("#feedback-8-item-template").html()); print(template({item: item})) @> 3983 <@ }); @> 3984 <@}@> 3985 </div> 3986 <div class="row clearfix"> 3987 <div class="column full" style="text-align: center;"> 3988 <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-8-item-template" data-reviewData="feedback8Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#282400; color:white; padding:12px 28px; border-radius:24px;text-decoration:none;"> 3989 View All Reviews 3990 </a> 3991 </div> 3992 </div> 3993 </script>
3993 3994 3995
3995<script type="text/template" id="feedback-8-item-template"> 3996 <div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @>selfreview<@ } @>"> 3997 <div class="is-card avgRatingContainer" style="border:1px solid #E5E5E5 !important; border-radius:16px !important;background:#F5F5F5; padding:20px; "> 3998 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" > 3999 <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @> 4000 <a style="color:#282400 !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a> 4001 <@ } @> 4002 <p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;"> 4003 <@ print(item.reviewtext.replace(/</g,'<').replace(/>/g,'>')) @> 4004 </p> 4005 <div class="reviewerName"> 4006 <p style="font-size: 12px; font-weight: 500; line-height: 1.3; text-align: left; padding-top: 0px; margin:0px; opacity:0.5;"> 4007 <@ print(item.userName) @> 4008 </p></div> 4009 4010 <p style="margin: 0px;"> 4011 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 4012 <@ if(item.rating >= ratingsSize) {@> 4013 <i class="fa fa-solid fa-star-sharp text-primary" style="color:#282400 !important;"></i> 4014 <@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 4015 <i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#282400 !important;"></i> 4016 <@ } @> 4017 <@ }@> 4018 </p> 4019 4020 </div> 4021 </div> 4022 </div> 4023 </script>
4023 4024
4024<script type="text/template" id="feedback-8-createTemplate"> 4025 <div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>"> 4026 <div class="is-boxes"> 4027 <div class="is-box-centered"> 4028 <div class="is-container container" style="max-width: 1200px;"> 4029 4030 <div class="review-box review-add-box"> 4031 <div class="is-container container is-content-1200" > 4032 <div class="row clearfix" > 4033 <div class="column full" > 4034 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: black; ">Add a review</h1> 4035 </div> 4036 </div> 4037 <div class="textarea-cont"> 4038 <div style="display:flex; gap:30px;"> 4039 <div><h3 style="font-size:18px;font-weight:600;">Overall rating</h3></div> 4040 <div class="review-star1 text-primary" 4041 style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important"> 4042 <span id="rating-stars" > 4043 <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 4044 <i class="fa fa-solid fa-star-sharp rating-star" 4045 data-value='<@- ratingsSize @>' 4046 style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i> 4047 <@}@> 4048 </span> 4049 </div> 4050 <style></style> 4051 4052 4053 </div> 4054 <textarea class="add-review-textarea" id="reviewText" style="background:#E5E5E5;width: 100%; border: 1px solid #E5E5E5; padding-right: 28px; padding-bottom: 28px;padding-left:20px; min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:16px !important" placeholder="Add your review here"></textarea> 4055 <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0) { @> 4056 <p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p> 4057 <@ } @> 4058 </div> 4059 <div style=" display: flex; justify-content: center;"> 4060 <button style="letter-spacing:0px !important ; background-color:#282400;padding:12px 28px !important;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>" 4061 data-reviewData="feedback8Reviewlist" disabled >Submit</button> 4062 </div> 4063 </div> 4064 </div> 4065 </div> 4066 </div> 4067 </div> 4068 </div> 4069 </script>
4069 4070 4071 4072 4073<div class="spectre"> 4074<div class="modal" id="reviewModal"> 4075 <a href="javascript:void(0);" class="modal-overlay close" 4076 aria-label="Close"></a> 4077 <div class="modal-container"> 4078 <div class="modal-header"> 4079 <a href="javascript:void(0);" 4080 class="close btn btn-clear float-right" aria-label="Close"></a> 4081 <div class="modal-title h5">Review</div> 4082 </div> 4083 <div class="modal-body" style="max-height: 90vh;padding-top: 0;"> 4084 </div> 4085 </div> 4086 4087 4088 4089</div> 4090 4091 4092</div> 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107
4108<script> 4109 var created_date = `Created Date`; 4110 var uname_msg = `Name`; 4111 var email_msg = `Email`; 4112 var has_web_token = `Has Web Token`; 4113 var has_mobile_token = `Has Mobile Token`; 4114 var actions_msg = `Actions`; 4115 var delete_user = `Delete User`; 4116 var create_target_audience = `Create Target Audience`; 4117 var msg_now = `NOW`; 4118 var msg_now_2 = `Now`; 4119 var msg_scheduled = `SCHEDULED`; 4120 var msg_recurring = `RECURRING`; 4121 var msg_weeks = `weeks`; 4122 var msg_months = `month(s)`; 4123 var msg_days = `days`; 4124 var notification_screen = `Notification Screen`; 4125 var coursepackagelandingpage = `Course/Package landing page`; 4126 var search_course_name = `Search by course/package name`; 4127 var webinar_landing_page = `Webinar landing page`; 4128 var search_by_webinar_name = `Search by webinar name`; 4129 var categorypage = `Category Page`; 4130 var custompage = `Custom Page`; 4131 var blogpage = `Blog Page`; 4132 var customlink = `Custom Link`; 4133 var homepage_msg = `Homepage`; 4134 var search_category = `Search category`; 4135 var search_page_title = `Search by Page title`; 4136 var search_blog_title = `Search by Blog title`; 4137 var enter_the_link = `Enter the link`; 4138 var membership_page = `Membership page`; 4139 var pick_a_date = `Pick a date`; 4140 var pick_first_push_date = `Pick a first push date`; 4141 var every_msg = `Every`; 4142 var starting_msg = `Starting`; 4143 var msg_published = `Published`; 4144 var msg_unpublished = `Unpublished`; 4145 var msg_customize = `Customize`; 4146 var msg_edit = `Edit`; 4147 var msg_featured_image = `Featured Image`; 4148 var msg_preview = `Preview`; 4149 var msg_delete = `Delete`; 4150 var msg_unpublish = `Unpublish`; 4151 var msg_publish = `Publish `; 4152 var msg_question= `questions`; 4153 var try_new_coding_assignment= `Try new coding assignment`; 4154 var change_enrollment_date = `Change Enrollment Date`; 4155 var change_expiry = `Change Expiry`; 4156 var change_remanining_time = `Change Remaining Time`; 4157 var remove_from_course = `Remove From Course`; 4158 var reset_course_progress = `Reset Course Progress`; 4159 var complete_report = `Complete Report`; 4160 var msg_progress = `Progress`; 4161 var timetaken = `Time Taken`; 4162 var msg_user_details = `User Details`; 4163 var graphy_platform_fees_note = `Amount after deducting Graphy platform fees. This does not include your payment gateway charges.`; 4164 var final_price_note = `Final payable price by learners`; 4165 var save_alert_message = `Save progress before moving forward.`; 4166 var no_chapter_alert_message = `Please add at least one chapter in the course.`; 4167 var download_msg = `Download`; 4168 var revoke_msg = `Revoke`; 4169 var yes_msg = `Yes`; 4170 var no_msg = `No`; 4171 var details_hover = `Details`; 4172 var hide_notification = `Hide Notification`; 4173 var notify_learners_hover = `Notify Learners`; 4174 var search_course_package = `Search Courses to add in this package.`; 4175 var bulk_delete = `Bulk Delete`; 4176 var scheduled_msg = `Scheduled`; 4177 var inprogress_msg = `In Progress`; 4178 var completed_msg = `Completed`; 4179 var yes_all_caps = `YES`; 4180 var no_all_caps = `NO`; 4181 var discount_msg = `Discount`; 4182 var max_discount = `Max Discount`; 4183 var min_cart = `Min Cart`; 4184 var delete_bookmark = `Delete Bookmark`; 4185 var view_question = `View question`; 4186 var msg_free = `Free`; 4187 var membership_expiration_note = `Membership will be canceled on next billing date.`; 4188 var msg_active = `Active`; 4189 var msg_inactive = `Inactive`; 4190 var delete_hover = `Delete`; 4191 var view_hover = `View`; 4192 var coursewise = `Course Wise`; 4193 var learner_wise = `Learner wise`; 4194 var segment_wise = `Segment wise`; 4195 var unregistered_msg = `Unregistered`; 4196 var target_audience_deleted = `Target Audience Deleted`; 4197 var courses_msg = `course(s)`; 4198 var learners_msg = `learner(s)`; 4199 var unregistered_learners = `Unregistered Learner`; 4200 var all_learners = `All Learners`; 4201 var course_wise_learners = `Course wise Learners`; 4202 var segment_wise_learners = `Segment wise Learners`; 4203 var with_token = `with token`; 4204 var segments_msg = `segments`; 4205 var add_users_msg = `Add Users`; 4206 var approx_msg = `Approx`; 4207 var revoke_cancellation_request = `Revoke Cancellation request.`; 4208 var remove_scheduled_membership_cancellation = `Remove Scheduled Membership Cancellation`; 4209 var schedule_to_stop_subscription = `Schedule to stop Subscription`; 4210 var stop_subscription = `Stop subscription`; 4211 var available_for_review_all_caps = `AVAILABLE FOR REVIEW`; 4212 var reviewed_all_caps = `REVIEWED`; 4213 var rejected_all_caps = `REJECTED`; 4214 var preview_code = `Preview Code`; 4215 var approve_msg = `Approve`; 4216 var reject_msg = `Reject`; 4217 var history_msg = `History`; 4218 var message_hover= `Message`; 4219 var remove_msg= `Remove`; 4220 var enroll_msg= `Enroll`; 4221 var change_validity= `Change Validity`; 4222 var learners_selected= `learner(s) selected`; 4223 var select_all_msg= `Select all`; 4224 var do_you_want_to_delete_course= `Do you really want to delete this course?`; 4225 var do_you_want_to_revoke_this_certificate= `Do you really want to revoke this certificate?`; 4226 var do_you_want_to_revoke_entry= `Do you really want to revoke this entry?`; 4227 var do_you_want_to_edit_enrollment_date= `Do you really want to edit enrollment date of all learners?`; 4228 var do_you_want_to_edit_enrollment_date_for_selected= `Do you really want to edit enrollment date of selected learners?`; 4229 var do_you_want_to_edit_course_validity= `Do you really want to edit course validity of all learners?`; 4230 var do_you_want_to_edit_course_validity_for_selected= `Do you really want to edit course validity of selected learners?`; 4231 var do_you_want_to_remove_selected= `Do you really want to remove selected learners?`; 4232 var do_you_want_to_remove_all= `Do you really want to remove all learners?`; 4233 var do_you_want_to_create_zip= `Do you really want to create zip for this course?`; 4234 var do_you_want_to_deactivate= `Do you really want to deactivate?`; 4235 var successfully_done_alert= `Successfully Done.`; 4236 var please_select_atleast_1_learner= `Please select atleast 1 learner !`; 4237 var on_msg= `On`; 4238 var single_correct_option = `Single Correct Option`; 4239 var multiple_correct_options = `Multiple Correct Options`; 4240 var numerical_Fill_in_the_Blank = `Numerical/Fill in the Blank`; 4241 var match_the_Column = `Match the Column`; 4242 var subjective = `Subjective`; 4243 var your_target_audience_appear= `Your target audience user(s) will appear here`; 4244 var your_upcoming_campaign= `Your upcoming campaign will appear here`; 4245 var status_msg= `Status`; 4246 var stop_campaign= `Stop Campaign`; 4247 var copy_campaign= `Copy Campaign`; 4248 var platform_fee_tax = `platform fees including taxes`; 4249 var pg_fees_taxes = `payment gateway fees including taxes`; 4250 var msg_quiz = `Quiz`; 4251 var msg_livetest = `Live test`; 4252 var msg_heading = `Heading`; 4253 var msg_text = `Text`; 4254 var msg_form = `Form`; 4255 var msg_live_class = `Live class`; 4256 var msg_live_class_rec = `live class recording`; 4257 var msg_code = `Code`; 4258 var msg_assignment = `Assignment`; 4259 var msg_added = `added`; 4260 var msg_about = `About`; 4261 var msg_year = `year`;
4262 var msg_month = `Month`; 4263 var msg_day = `day`; 4264 //var msg_hour = `hh`; 4265 //var msg_minute = `mm`; 4266 //var msg_seconds = `seconds`; 4267 var msg_month_l = `month`; 4268 var msg_day_l = `day`; 4269 var msg_hour_l = `hour`; 4270 var msg_minute_l = `minute`; 4271 var msg_second_l = `second`; 4272 var mobile_number=`Mobile Number`; 4273 var status_android =`Status (ANDROID)`; 4274 var status_ios =`Status (IOS)`; 4275 var delivery_time=`Delivery Time`; 4276 var sure_unhide=`Are you sure you want to unhide this course ?`; 4277 var become_a_partner=`Become a Partner`; 4278 var failed_msg=`Failed`; 4279 var sent_msg=`Sent`; 4280 var pending_msg=`Pending`; 4281 var running_msg=`Running`; 4282 var add_pricing_plan = `Add pricing plan`; 4283 var msg_add = `Add`; 4284 var of_msg = `of`; 4285 var items_msg = `items` 4286 var ago_msg = `ago` 4287 var items_msg = `items`; 4288 4289 var january_msg = `January`; 4290 var february_msg = `February`; 4291 var march_msg = `March`; 4292 var april_msg = `April`; 4293 var may_msg = `May`; 4294 var june_msg = `June`; 4295 var july_msg = `July`; 4296 var august_msg = `August`; 4297 var september_msg = `September`; 4298 var october_msg = `October`; 4299 var november_msg = `November`; 4300 var december_msg = `December`; 4301 var sunday_msg = `Sunday`; 4302 var monday_msg = `Monday`; 4303 var tuesday_msg = `Tuesday`; 4304 var wednesday_msg = `Wednesday`; 4305 var thursday_msg = `Thursday`; 4306 var friday_msg = `Friday`; 4307 var saturday_msg = `Saturday`; 4308 var at_msg = `at`; 4309 var generate_outline = `Generate outline using AI`; 4310 var it_take_min = `It may take a min.`; 4311 var msg_ok = `OK`; 4312 var edit_pricing_plan = `Edit pricing plan`; 4313 4314</script>
4314 4315 4316 4317 4318 4319 4320 4321
4322<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery-2.0.3.min.js"></script>
4322 4323
4324<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/underscore-min.js?v=1.9.1"></script>
4324 4325
4326<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery.form.js"></script>
vendor: 1 bytes, line 4326
4326
4327<script async src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery.noty.packaged.min.js"></script>
vendor: 1 bytes, line 4327
4327
4328<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery-ui.min.js"></script>
vendor: 1 bytes, line 4328
4328
4329<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery.timeago.js"></script>
vendor: 1 bytes, line 4329
4329
4330<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/js-webshim/minified/extras/modernizr-custom.js"></script>
vendor: 1 bytes, line 4330
4330
4331<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery.datetimepicker.js"></script>
4331 4332 4333 4334 4335 4336 4337 4338 4339
4340<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/aes.js"></script>
vendor: 1 bytes, line 4340
4340
4341<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/mode-ecb-min.js"></script>
vendor: 1 bytes, line 4341
4341
4342<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/pad-nopadding-min.js"></script>
4342 4343 4344<!--
4344<script src="https://unpkg.com/@popperjs/core@2"></script>
vendor: 1 bytes, line 4344
4344
4345<script src="https://unpkg.com/tippy.js@6"></script>
4345 -->
4346<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.3.3/umd/popper.js" integrity="sha512-jSMYzs1Iebw2Uew+Y9karoqkqTDEzbqkdttIkHJKh3auQ6aGV7p8b7A3Yo9k/LsMvUFqWt5AV66hfo1OwH4Jjg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
vendor: 1 bytes, line 4346
4346
4347<script src="https://cdnjs.cloudflare.com/ajax/libs/tippy.js/6.0.0/tippy-bundle.umd.js"></script>
4347 4348
4349<script type="text/javascript"> 4350 var passwordPolicyRequired = true; 4351 var checkoutV2 = true; 4352 var primaryFieldPhoneEnabled = false; 4353 var orgLanguageCode = ""; 4354 var SPEERESCDN = "https://d502jbuhuh9wk.cloudfront.net"; 4355</script>
4355 4356
4357<script src="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/scripts/sutils_2554f4dd8b008786399d04c1781a4598.js"></script>
vendor: 1 bytes, line 4357
4357
4358<script src="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/scripts/utils/dateUtils_f53456b03f1287667a7b24fb63b367ce.js"></script>
vendor: 1 bytes, line 4358
4358
4359<script type="text/javascript"> 4360 // Make org object globally available for dateUtils 4361 window.org = window.org || {}; 4362 window.org.currencyCode = "true"=='true'?'USD':'INR'; 4363 var websiteV3Org = false; 4364 var orgCreatedDate = {"$date":"2025-01-22T16:59:22.996Z"}; 4365</script>
4365 4366 4367
4367<script src="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/scripts/talk_b564486691065235006e186474078666.js"></script>
4367 4368 4369 4370 4371 4372
4373<script type="text/javascript"> 4374 var trialExpired = "false"; 4375 var planCancelled = "false"; 4376 var isFreePlan = false; 4377 4378</script>
vendor: 1 bytes, line 4378
4378
4379<script type="text/javascript" id="dsf239df"> 4380 var ctx = "/s", 4381 isFirstLogin = "", cjs = CryptoJS; 4382 4383 var defaultCoreColor = "#5755d9", theme1CoreColor = "#572b7a", theme2CoreColor = "#3f51b5", theme3CoreColor = "#009051", 4384 theme4CoreColor = "#596439", theme5CoreColor = "#F0591D", theme6CoreColor = "#28a745", theme7CoreColor = "#1bbc9b", 4385 theme8CoreColor = "#f38f20", apkId = "6231373436231373432363038663465653864613523630386634656538646135", theme9CoreColor = "#c0af01", theme10CoreColor = "#e8d3a4", 4386 webColor = defaultCoreColor, 4387 CFCDN = "https://d502jbuhuh9wk.cloudfront.net", mobileNotification = true, webNotification = true, 4388 iosPlayVideo = false, 4389 chromeDrmPlayback = false, 4390 gaType = "ga4"; 4391 4392 4393 4394 $("#dsf239df").remove(); 4395</script>
4395 4396 4397 4398<!-- Google Tag Manager Integration --> 4399
4399<script>
vendor: 478 bytes, lines 4399-4406
4399(function (w, d, s, l, i) { 4400 w[l] = w[l] || []; w[l].push({ 4401 'gtm.start': 4402 new Date().getTime(), event: 'gtm.js' 4403 }); var f = d.getElementsByTagName(s)[0], 4404 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 4405 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 4406 })(window, document, 'script', 'dataLayer', "
4406GTM-5J9VD4B9
vendor: 3 bytes, line 4406
4406");
4406</script>
4406 4407<!-- End Google Tag Manager Integration--> 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 <input type="hidden" id="orgCurrencyCode" value="USD" /> 4418 4419 4420 4421 4422 4423
4423<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/detect-private-browsing.js"></script>
4423 4424
4424<script type="text/javascript"> 4425 detectPrivateMode( 4426 function(is_private) { 4427 if(typeof is_private !== 'undefined' && is_private) { 4428 $("input[name=privateMode]").val("private"); 4429 } 4430 } 4431 ); 4432 </script>
4432 4433 4434 4435 4436 4437 4438
4438<script type="text/javascript" 4439 src="https://d502jbuhuh9wk.cloudfront.net/resources/js/intlTelInput.min.js"></script>
4439 4440
4440<script type="text/javascript"> 4441 4442 var ipInfo = localStorage.getItem('ipInfo'); 4443 if(!ipInfo) { 4444 $.get("https://ipinfo.io", function() {}, "jsonp").always(function(resp) { 4445 if(resp) { 4446 var ipInfoStr = JSON.stringify(resp); 4447 var ipInfoField = document.getElementById("ipInfo"); 4448 var countryCode = (resp.country) ? resp.country : "in"; 4449 sessionStorage.setItem('countryCode', countryCode); 4450 if('statusText' in resp) { 4451 if((resp['statusText'] !== 'error') && ('ip' in resp)) { 4452 localStorage.setItem('ipInfo', ipInfoStr); 4453 if(ipInfoField) { 4454 ipInfoField.value = ipInfoStr; 4455 } 4456 } 4457 } 4458 else if('ip' in resp) { 4459 localStorage.setItem('ipInfo', ipInfoStr); 4460 if(ipInfoField) { 4461 ipInfoField.value = ipInfoStr; 4462 } 4463 } 4464 } 4465 }) 4466 } 4467 4468 $("#sphone").intlTelInput({ 4469 initialCountry: "auto", 4470 geoIpLookup: function(callback) { 4471 var scountryCode = sessionStorage.getItem('countryCode'); 4472 4473 if(scountryCode !== null) { 4474 callback(scountryCode); 4475 }else { 4476 $.get("https://ipinfo.io", function() {}, "jsonp").always(function(resp) { 4477 var countryCode = (resp && resp.country) ? resp.country : "in"; 4478 callback(countryCode); 4479 sessionStorage.setItem('countryCode', countryCode); 4480 }); 4481 } 4482 }, 4483 preferredCountries: ["in", "us"], 4484 separateDialCode: true, 4485 utilsScript: "/resources/js/intlUtils.js" 4486 }); 4487 4488 </script>
4488 4489 4490 4491 4492 4493<div class="spectre"> 4494 4495 4496 4497 4498 4499
4499<script type="text/javascript"> 4500 if(top != self) { 4501 //iframe 4502 $(".toast").remove(); 4503 } 4504 </script>
4504 4505 4506 4507</div> 4508 4509 4510 4511<input type="hidden" id="orgCreditAlias" 4512 value="Mahdavia Academy Coins" /> 4513 4514 4515 4516 4517 4518
4519<script> 4520 4521 4522 4523 4524 var orgTaxLabel = "Tax"; 4525 4526 4527 4528 var sessionCountry = ""; 4529 4530 $(document).ready(function() { 4531 $("input[name='userMobileVerify']").change(function(data){ 4532 var uniqueMobileSwitch = $('#uniqueMobileId'); 4533 if(data.target.value==='true'){ 4534 $('input[name=uniqueMobile]').prop('checked', true) 4535 $('#uniqueMobileLabelId').show(); 4536 }else{ 4537 $('input[name=uniqueMobile]').prop('checked', false) 4538 $('#uniqueMobileLabelId').hide(); 4539 } 4540 }); 4541 }); 4542 4543 4544 4545 4546 localStorage.removeItem('microserviceAuthToken'); 4547 4548 4549 4550 4551 4552 4553 localStorage.removeItem('communityToken'); 4554 4555 4556 4557 4558 4559 4560 localStorage.removeItem('chatRefreshToken'); 4561 4562 4563 4564 4565 4566 4567 localStorage.removeItem('refreshToken'); 4568 4569 4570 4571</script>
4571 4572 4573 4574<!-- amplitude script start --> 4575 4576 4577 4578
4578<script type="text/javascript"> 4579 window.localStorage.removeItem('loginAmplitudeEventSent'); 4580 </script>
4580 4581 4582 4583<!-- amplitude script end --> 4584 4585 4586 4587 <div id="template-container"></div> 4588 4589 4590
4590<script src="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/scripts/sstore_5ffb558e86d7b5ef265e05fb0bfbef79.js"></script>
4590 4591 4592 4593
4593<script type="text/template" id="categoryTemplate"> 4594 <li class="menu-item"><a href="/s/store/courses/<@- label @>"><@- label @></a> 4595 </script>
4595 4596
4596<script type="text/javascript"> 4597 store.init(true); 4598 store.bindEvents(); 4599 </script>
4599 4600
4600<script type="text/javascript"> 4601 window.signupParams = {source: "store", platform: "web", sourceId: null}; 4602 </script>
4602 4603 4604 4605 4606 4607 4608 <div id="ui-notification-container" class="spectre"></div> 4609
4609<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery-easing.js"></script>
4609 4610
4610<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery-notification.js"></script>
4610 4611 4612 <!-- Import and configure the Firebase SDK --> 4613 <!-- These scripts are made available when the app is served or deployed on Firebase Hosting --> 4614 <!-- If you do not serve/host your project using Firebase Hosting see https://firebase.google.com/docs/web/setup --> 4615
4615<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js"></script>
4615 4616
4616<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-messaging.js"></script>
4616 4617 4618
4618<script> 4619 // Retrieve Firebase Messaging object. 4620 var firebaseConfig = {"apiKey":"AIzaSyCQ2wNyeXrIzifB0IKKVCalHXrDk7pg32w","authDomain":"live-stream-chat-efac5.firebaseapp.com","databaseURL":"https://live-stream-chat-efac5.firebaseio.com","projectId":"live-stream-chat-efac5","storageBucket":"live-stream-chat-efac5.appspot.com","messagingSenderId":"158909475587","appId":"1:158909475587:web:93ede0a9feef2b3f"}; 4621 // Initialize Firebase 4622 firebase.initializeApp(firebaseConfig); 4623 const messaging = firebase.messaging(); 4624 // Add the public key generated from the console here. 4625 messaging.usePublicVapidKey("BN3BYOmWjo3NAW7if4jCE5cG-yIOXAvmoKB9k53ZssAfgb7Z6ZZ-oAQWFK7j6EqHIG3f-G9QAVKLOIK7Vw3X0_k"); 4626 4627 // Callback fired if Instance ID token is updated. 4628 messaging.onTokenRefresh(function(){ 4629 messaging.getToken().then(function(refreshedToken){ 4630 // Indicate that the new Instance ID token has not yet been sent to the 4631 // app server. 4632 setTokenSentToServer(false); 4633 // Send Instance ID token to app server. 4634 sendTokenToServer(refreshedToken); 4635 // Display new Instance ID token and clear UI of all previous messages. 4636 resetUI(); 4637 // [END_EXCLUDE] 4638 })["catch"](function(err){ 4639 console.log('Unable to retrieve refreshed token ', err); 4640 showToken('Unable to retrieve refreshed token ', err); 4641 requestPermission(); 4642 }); 4643 }); 4644 4645 // Handle incoming messages. Called when: 4646 // - a message is received while the app has focus 4647 // - the user clicks on an app notification created by a service worker 4648 // `messaging.setBackgroundMessageHandler` handler. 4649 messaging.onMessage(function(payload){ 4650 console.log('Message received. ', payload); 4651 appendMessage(payload); 4652 }); 4653 4654 function resetUI() { 4655 clearMessages(); 4656 $(function(){ 4657 $("#ui-notification-container").notification(); 4658 }); 4659 // Get Instance ID token. Initially this makes a network call, once retrieved 4660 // subsequent calls to getToken will return from cache. 4661 messaging.getToken().then(function(currentToken) { 4662 if (currentToken) { 4663 sendTokenToServer(currentToken); 4664 updateUIForPushEnabled(currentToken); 4665 } else { 4666 // Show permission request. 4667 console.log('No Instance ID token available. Request permission to generate one.'); 4668 // Show permission UI. 4669 updateUIForPushPermissionRequired(); 4670 setTokenSentToServer(false); 4671 } 4672 })["catch"](function(err) { 4673 console.log('An error occurred while retrieving token. ', err); 4674 showToken('Error retrieving Instance ID token. ', err); 4675 setTokenSentToServer(false); 4676 }); 4677 // [END get_token] 4678 } 4679 4680 function showToken(currentToken) { 4681 // Show token in console and UI. 4682 console.log(currentToken); 4683 } 4684 4685 // Send the Instance ID token your application server, so that it can: 4686 // - send messages back to this app 4687 // - subscribe/unsubscribe the token from topics 4688 function sendTokenToServer(currentToken) { 4689 if (!isTokenSentToServer()) { 4690 console.log('Sending token to server...'); 4691 var packet = { 4692 url : "/public/v1/fcm/token", 4693 data: {token: currentToken}, 4694 success: function(data, params) { 4695 console.log("Token successfully sent") 4696 setTokenSentToServer(true); 4697 setTokenSentToServerUserId(window.userId); 4698 } 4699 }; 4700 postData(packet, {}); 4701 } else { 4702 console.log('Token already sent to server so won\'t send it again ' + 4703 'unless it changes'); 4704 } 4705 4706 } 4707 4708 function isTokenSentToServer() { 4709 return window.localStorage.getItem('sentToServer') === '1' && isTokenSentToServerWithUser(window.userId); 4710 } 4711 4712 function isTokenSentToServerWithUser(userId) { 4713 return window.localStorage.getItem('sentToServer-user') === userId; 4714 } 4715 4716 function setTokenSentToServer(sent) { 4717 window.localStorage.setItem('sentToServer', sent ? '1' : '0'); 4718 } 4719 4720 function setTokenSentToServerUserId(userId) { 4721 window.localStorage.setItem('sentToServer-user', userId); 4722 } 4723 4724 function requestPermission() { 4725 console.log('Requesting permission...'); 4726 // [START request_permission] 4727 Notification.requestPermission().then(function(permission) { 4728 if (permission === 'granted') { 4729 console.log('Notification permission granted.'); 4730 resetUI(); 4731 } else { 4732 console.log('Unable to get permission to notify.'); 4733 } 4734 }); 4735 // [END request_permission] 4736 } 4737 4738 function deleteToken() { 4739 // Delete Instance ID token. 4740 // [START delete_token] 4741 messaging.getToken().then(function(currentToken){ 4742 messaging.deleteToken(currentToken).then(function(){ 4743 console.log('Token deleted.'); 4744 setTokenSentToServer(false); 4745 // Once token is deleted update UI. 4746 resetUI(); 4747 })["catch"](function(err) { 4748 console.log('Unable to delete token. ', err); 4749 }); 4750 })["catch"](function(err) { 4751 console.log('Error retrieving Instance ID token. ', err); 4752 showToken('Error retrieving Instance ID token. ', err); 4753 }); 4754 4755 } 4756 4757 // Add a message to the messages element. 4758 function appendMessage(payload) { 4759 $("#ui-notification-container").notification("create", { 4760 title: payload.data.title, 4761 content: payload.data.message, 4762 customIcon: payload.data.customIcon, 4763 customImage: payload.data.customImage, 4764 link: payload.data.link 4765 }, 4766 { 4767 sticky: true 4768 }); 4769 } 4770 4771 // Clear the messages element of all children. 4772 function clearMessages() { 4773 const messagesElement = document.querySelector('#ui-notification-container'); 4774 while (messagesElement.hasChildNodes()) { 4775 messagesElement.removeChild(messagesElement.lastChild); 4776 } 4777 } 4778 4779 function updateUIForPushEnabled(currentToken) { 4780 showToken("Token update ui: " + currentToken); 4781 } 4782 4783 function updateUIForPushPermissionRequired() { 4784 console.warg("Push notification permission is requred") 4785 } 4786 4787 window.userId = ""; 4788 resetUI(); 4789 4790 4791 </script>
4791 4792 4793
4793<script src="https://d502jbuhuh9wk.cloudfront.net/static/files/lazyload.min.js"></script>
4793 4794
4794<script type="text/javascript"> 4795 var lazyLoadInstance = new LazyLoad({ 4796 unobserve_entered: true, 4797 callback_enter: function(element) { 4798 resizeCdnImage(element); 4799 } 4800 }); 4801 </script>
4801 4802</body> 4803</html>
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.