CINXE.COM
Global Search Results | Myskillsfuture.gov.sg
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta content="width=device-width, initial-scale=1.0" name="viewport"/> <!-- Will override in child template --> <meta http-equiv="cache-control" content="max-age=0"/> <meta http-equiv="cache-control" content="no-cache"/> <meta http-equiv="expires" content="0"/> <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT"/> <meta http-equiv="pragma" content="no-cache"/> <meta name="keywords"/> <meta name="description" content="MySkillsFuture is a one-stop online portal that enables Singaporeans of all ages to make informed learning and career choices, so that they can pursue their skills and career development throughout their lives. Search for SSG-funded courses, submit SkillsFuture Credit claim and find resources and tools to help you make informed decisions on skills upgrading."/> <!-- Schema.org markup for Google+ --> <meta itemprop="name" content="Global Search Results | Myskillsfuture.gov.sg"/> <meta itemprop="description" content="MySkillsFuture is a one-stop online portal that enables Singaporeans of all ages to make informed learning and career choices, so that they can pursue their skills and career development throughout their lives. Search for SSG-funded courses, submit SkillsFuture Credit claim and find resources and tools to help you make informed decisions on skills upgrading."/> <meta itemprop="image" content="https://www.myskillsfuture.gov.sg/content/dam/portal/social/skillsfuture_fb_1200by630_w.jpg"/> <!-- Twitter card data --> <meta name="twitter:card" content="summary_large_image"/> <meta name="twitter:site" content="@SkillsFutureSG"/> <meta name="twitter:title" content="Global Search Results | Myskillsfuture.gov.sg"/> <meta name="twitter:description" content="MySkillsFuture is a one-stop online portal that enables Singaporeans of all ages to make informed learning and career choices, so that they can pursue their skills and career development throughout their lives. Search for SSG-funded courses, submit SkillsFuture Credit claim and find resources and tools to help you make informed decisions on skills upgrading."/> <meta name="twitter:creator" content="@SkillsFutureSG"/> <!-- Twitter summary card with large image must be at least 280x150px --> <meta name="twitter:image:src" content="https://www.myskillsfuture.gov.sg/content/dam/portal/social/skillsfuture_fb_1200by630_w.jpg"/> <!-- Open graph data --> <meta property="og:type" content="website"/> <meta property="og:title" content="Global Search Results | Myskillsfuture.gov.sg"/> <meta property="og:description" content="MySkillsFuture is a one-stop online portal that enables Singaporeans of all ages to make informed learning and career choices, so that they can pursue their skills and career development throughout their lives. Search for SSG-funded courses, submit SkillsFuture Credit claim and find resources and tools to help you make informed decisions on skills upgrading."/> <meta property="og:url" content="https://www.myskillsfuture.gov.sg/content/portal/en/portal-search/portal-search.html"/> <meta property="og:image" content="https://www.myskillsfuture.gov.sg/content/dam/portal/social/skillsfuture_fb_1200by630_w.jpg"/> <meta property="og:image" content="https://www.myskillsfuture.gov.sg/content/dam/portal/social/skillsfuture_fb_200by200_w.jpg"/> <!-- Google Sign In --> <meta name="google-signin-client_id" content="138989246253-3rgkq9hpgcf2s1donoe66u58danb9icv.apps.googleusercontent.com.apps.googleusercontent.com"/> <link rel="icon" href="/favicon.ico"/> <title>Global Search Results | Myskillsfuture.gov.sg</title> <script> //The scope of this file is to create global variables and function that are available in all pages. //Do not override this file in the child pages. Becareful on the variable name and also the variable //Secure Cookie Vulnerability //Function to check if need to set secure flag for client side cookies. function GetSecureCookieFlag(){ var securityProtocol=""; if(location && location.protocol == "https:"){ securityProtocol=";secure"; } return securityProtocol; } //Boolean Function to check if need to set secure flag for client side cookies. function CheckSecureCookieFlag(){ var securityProtocol=false; if(location && location.protocol == "https:"){ securityProtocol=true; } return securityProtocol; } </script> <!-- <sly data-sly-include="/libs/wcm/core/components/init/init.jsp" data-sly-unwrap/> --> <script src="/etc.clientlibs/clientlibs/granite/jquery.min.js"></script> <script src="/etc.clientlibs/clientlibs/granite/utils.min.js"></script> <script src="/etc.clientlibs/clientlibs/granite/jquery/granite.min.js"></script> <script src="/etc.clientlibs/foundation/clientlibs/jquery.min.js"></script> <script src="/etc/clientlibs/msf/core-base/csrfheader.min.js"></script> <script src="/etc.clientlibs/clientlibs/granite/jquery/granite/csrf.min.js"></script> <script src="/etc/clientlibs/granite/jquery/granite/csrf.min.js"></script> <link rel="stylesheet" href="/etc/clientlibs/msf/core-base/Workforce-v3.min.css" type="text/css"> <script src="/etc/clientlibs/msf/core-base/Workforce-v3.min.js"></script> <link rel="stylesheet" href="/etc/clientlibs/msf/core-base/V3-ui.min.css" type="text/css"> <script type="text/javascript" src="//cdn.evgnet.com/beacon/skillsfuturesingapore/ssg_prod/scripts/evergage.min.js"/> <style id="antiClickjack">body{display:none !important;}</style> <script type="text/javascript"> if (self === top) { var antiClickjack = document.getElementById("antiClickjack"); antiClickjack.parentNode.removeChild(antiClickjack); } else { top.location = self.location; } </script> <script type="text/javascript"> var digitalData = { page: { pillar: "Portal", audience: "Individuals", type: "Global Search" }, user: { // optional, for logged in users only id: '294de3557d9d00b3d2d8a1e6aab028cf' // ID is from the backend user database }, organisation: { name: '' // e.g. Hotel Jen } }; </script> <script src="//assets.adobedtm.com/7354f1c0c20b/d6ddc6e14c09/launch-f3038b0e7b74.min.js" defer></script> <script src="https://assets.wogaa.sg/scripts/wogaa.js" defer></script> <meta http-equiv="Content-Security-Policy" content="default-src https: 'unsafe-eval' 'unsafe-inline'; object-src 'none'; img-src * data:"/> </head> <body class="v3 page msf_globalsearch"> <input id="portalContextPath" type="hidden"/> <link rel="stylesheet" href="/etc/clientlibs/msf/core-base/header-footer-v3.min.css" type="text/css"> <script src="/etc/clientlibs/msf/core-base/header-footer-v3.min.js"></script> <header id="mysf-header-v3" class="fixed-top bootstrap-v3 screen-v3" data-bind="showHide : isHeaderPopulated()"> <div class="header-alert-holder"> <!-- Note: This implementation is done purely on the html page due to following. 1. To optimise page loading speed by retaining the logic at client side. 2. To work around Cloud Front caching, Dispatcher caching and Local Browser caching 3. To reuse the component across various portal's from 1 single source. Do consider the above before changing. --> <style> .close-cookie{ position: relative; margin-left: 99%; z-index: 11; cursor: pointer; color: #ffffff; top: 2px; font-size: 20px; font-family: 'FontAwesome'; width: 100%; } #cookieDiv .leftBox{ width:98%; } .cookie_message_text{ font-family:"Work Sans", sans-serif; font-size: 16px; color: #fff; width:96%; } .cookie_message_close{ width:0; /* padding-right: 5%; */ /* padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto; */ } .exclamation{ position: relative; z-index: 11; color: #e68717; font-size: 36px; font-family: 'FontAwesome'; width:4%; } fa-exclamation-triangle::before { font-family: 'FontAwesome'; font-weight:normal; line-height: 24px; padding-top: 1px; content: '\f00d'; color: #e68717; } .leftContent{ } .cookieMessageBox{ background-color: #3e3e3e; } #cookieDiv{ background-color: #3e3e3e; height: 50px; bottom:0px; padding-top:10px; position: fixed; z-index: 1051; width: 100%; } @media(max-width:1215px){ #cookieDiv{ height: 80px; } } @media(max-width:662px){ #cookieDiv{ height: 100px; } } </style> <div id="cookieDiv" class="col-xs-12" style="display:none"> <div id="cookieMessageBox" class='clear'> <div class="container"> <div style="float:left" class='leftBox'> <div class="leftContent"> <div class="cookie_message_text" id="cookieMessage"></div> </div> </div> <div class="cookie_message_close"> <span class="close-cookie fa-close" onclick="closeCookieMessage()"></span> </div> </div> </div> </div> <script> var COOKIE={ PORTAL:"MySkillsFuture uses cookies to personalise content for you. By continuing to use this website, you consent to our use of cookies.", TPG:"Training Partners Gateway uses cookies to personalise content for you. By continuing to use this website, you consent to our use of cookies." } function closeCookieMessage() { $('#cookieDiv').hide(); }; $( document ).ready(function() { //Cookie Enable message Logic -- Start var cookieEnabled = navigator.cookieEnabled; if(!cookieEnabled ){ //donot display on mobile apps page try{ var viewSource = RequestUtil.getURLParameter("viewSource"); if (!(viewSource && (viewSource == 'mobileApp'))) { var cookieText = COOKIE.PORTAL; if(window.location.href.indexOf("/content/portal/en/training-provider") >= 0){ cookieText = COOKIE.TPG; } $('.cookie_message_text').text(cookieText); $('#cookieDiv').show(); } }catch(e){ } } //Cookie Enable message Logic -- End }); </script> <script> var MAINTENANCE={ KEY:"MAIN-2024-11-23-1", //STUDENT:"Course fees after SkillsFuture Funding in course listings will be temporarily unavailable from 23 NOV 2024 11:00 PM to 24 NOV 2024 07:00 AM.", WORKFORCE:"Course fees after SkillsFuture Funding in course listings will be temporarily unavailable from 23 NOV 2024 11:00 PM to 24 NOV 2024 07:00 AM.", //TRAINING_PROVIDER: "<b>Training Partners Gateway</b> will be undergoing scheduled maintenance on the following dates: <b>22 NOV 2024 09:00 PM to 23 NOV 2024 07:00 AM</b>. During this period, the portal will not be available. Thank you for your patience.", UAM:"Course fees after SkillsFuture Funding in course listings will be temporarily unavailable from 23 NOV 2024 11:00 PM to 24 NOV 2024 07:00 AM.", SHOW_MAINTENACE:true, START_TIME: "2017-11-29T00:06:00.000Z", END_TIME: "2024-11-23T23:00:00.000Z" } </script> <style> .maintenancePlaceholder.alert.alert-dark.fade.show { display: flex !important; opacity: 1; z-index: 11; } .maintenancePlaceholder.alert.alert-dark.fade.show.close { display: none !important; } </style> <div class="maintenancePlaceholder alert alert-dark fade show" role="alert" style="display: none !important"> <div class="alert-message flex-fill"> <i class="bi bi-exclamation-circle-fill"></i> <span id="maintenanceMessage"></span> </div> <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close" onclick="closeMessage()"> <i class="bi bi-x"></i> </button> </div> <script> function checkMessageShowstatus(){ var showMessage = true; if(sessionStorage.getItem('curMessageKey')==MAINTENANCE.KEY){ showMessage= false; return showMessage; } if(!MAINTENANCE.SHOW_MAINTENACE){ showMessage=false; return showMessage; } if(getMessage()==null){ showMessage=false; return showMessage; } //donot display on mobile apps page try{ var viewSource = RequestUtil.getURLParameter("viewSource"); if (viewSource && (viewSource == 'mobileApp')) { showMessage=false; return showMessage; } }catch(e){ } /* if other conditions are true check if the date is inbetween the start and end date */ showMessage = checkdateInbetween(); return showMessage; } /* this function checks for if the date is inbetween 2 dates */ function checkdateInbetween(){ var dateInBetween = true; var fromDate; var toDate; var curDate = new Date(); if(typeof DateOverridenFlag !== 'undefined' && DateOverridenFlag==true){ fromDate= new Date(MAINTENANCE.START_TIME,false); toDate= new Date(MAINTENANCE.END_TIME,false); }else{ fromDate= new Date(MAINTENANCE.START_TIME); toDate= new Date(MAINTENANCE.END_TIME); } if(!(curDate.getTime() <= toDate.getTime() && curDate.getTime() >= fromDate.getTime())) { dateInBetween=false; } return dateInBetween; } function closeMessage() { //add messageKey to local storage sessionStorage.setItem("curMessageKey",MAINTENANCE.KEY); //close the message $('.maintenancePlaceholder').hide(); //if(window.location.href.indexOf("/content/portal/en/training-provider") >= 0){ $('#spaceMaintenance').css('padding-top','0px'); //} setTimeout(function(){ $(window).trigger('resize'); }, 100); }; function getMessage(){ if(window.location.href.indexOf("/content/student") >= 0){ return MAINTENANCE.STUDENT; } else if(window.location.href.indexOf("/content/portal/en/training-provider") >= 0){ return MAINTENANCE.TRAINING_PROVIDER; } else if(window.location.href.indexOf("/uam") >= 0){ return MAINTENANCE.UAM; } else{ return MAINTENANCE.WORKFORCE; } return null; } $( document ).ready(function() { $('.maintenancePlaceholder').hide(); $('.maintenancePlaceholder').addClass('close'); if(sessionStorage.getItem("curMessageKey") !=MAINTENANCE.KEY){ var returnStatus = checkMessageShowstatus(); if(!returnStatus){ MAINTENANCE.SHOW_MAINTENACE=false; $('#displayMessage').html(""); $('#mainDiv').hide(); $('.maintenancePlaceholder').hide(); $('.maintenancePlaceholder').addClass('close'); }else{ $('.maintenancePlaceholder').removeClass('close'); $('.maintenancePlaceholder').show(); $('#maintenanceMessage').html(getMessage()); setTimeout(function(){ $(window).trigger('resize'); }, 200); } if(window.location.href.indexOf("student") > -1 != true){ // except student pages var splashScreenFlag = CookieStorage.cookieStorage(CookieConstants.COOKIE_SPLASH_SCREEN_FLAG) || ''; if (splashScreenFlag && splashScreenFlag === 'true') { $('#splashscreen').modal('show'); CookieStorage.removeCookieStorageWithPath(CookieConstants.COOKIE_SPLASH_SCREEN_FLAG,'/content'); } } } //$(window).trigger('resize'); }); if(_satellite == null){ var _satellite = { pageBottom : function(rawUrl) { console.log('analytics not loaded'); }, track : function(rawUrl){ console.log('analytics not loaded'); } } } var MODSEC_PARAMS = { RESTRICTED_KEYWORDS:["coalesce","root@"], REPLACEMENT_CHARACTERS:"_" } function modSecSanitiseAgainstSingleItem(value,singleItem,replacementCharacter){ var returnValue = value; if(singleItem && replacementCharacter && value && value.toLowerCase().indexOf(singleItem.toLowerCase()) >-1){ var regex = new RegExp(singleItem , "ig"); returnValue=value.replace(regex, value.split(" ")[value.toLowerCase().indexOf(singleItem.toLowerCase())]+replacementCharacter); } return returnValue; } function modSecSanitiseAgainstArray(value,arrayList,replacementCharacter){ var returnValue = value; if(value && arrayList && arrayList.length>0){ arrayList.forEach(function(element) { returnValue = modSecSanitiseAgainstSingleItem(returnValue,element,replacementCharacter); }); } return returnValue; } // if(null!=digitalData && digitalData.organisation && digitalData.organisation.name){ // digitalData.organisation.name = modSecSanitiseAgainstArray(digitalData.organisation.name,MODSEC_PARAMS.RESTRICTED_KEYWORDS,MODSEC_PARAMS.REPLACEMENT_CHARACTERS); // } try{ $.ajaxSetup({contents: {script: false}}); }catch(e){ } </script> </div> <!-- start - Inclusion of SGDS script for Masthead banner --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@govtechsg/sgds-masthead/dist/sgds-masthead/sgds-masthead.css"/> <script type="module" src="https://cdn.jsdelivr.net/npm/@govtechsg/sgds-masthead/dist/sgds-masthead/sgds-masthead.js"> </script> <div class="masthead-placeholder" style="min-height: 32px;"> <sgds-masthead fluid></sgds-masthead> </div> <script> $(document).ready(function() { const mastHeadBanner = document.querySelector('.masthead-placeholder'); mastHeadBanner.addEventListener('click', function() { console.log('First click event listener'); setTimeout(function(){ $(window).trigger('resize'); }, 100); }); }); </script> <!-- <div class="masthead-layout d-flex"> <div class="masthead-text-size-change "> <span>Change Text Size:</span> <a href="#" onclick="javascript:zoomOut(event);"><small>A-</small></a> <a href="#" onclick="javascript:zoomIn(event);">A+</a> </div> </div> --> <!-- <div id="sgds-masthead" class="sgds-masthead" aria-label="A Singapore Government Agency Website"> <div class="sgds-masthead-banner"> <div class="container-fluid"> <div class="masthead-layout"> <div class="masthead-govt-crest flex-fill"> <span style="cursor: pointer;" data-bind="click : function() { $root.iconClick($root.mastheadUrl(),'_blank') }" class="sgds-icon sgds-icon-sg-crest text-decoration-none"></span> <div style="cursor: pointer;" data-bind="click : function() { $root.iconClick($root.mastheadUrl(),'_blank') }" class="is-text">A Singapore Government Agency Website</div> </div> <div class="masthead-text-size-change"> <span>Change Text Size:</span> <a href="#" onclick="javascript:zoomOut(event);"><small>A-</small></a> <a href="#" onclick="javascript:zoomIn(event);">A+</a> </div> </div> </div> --> <!-- end - Inclusion of SGDS script for Masthead banner --> <div class="header-holder" id="mainHeader"> <div class="container-fluid"> <div class="d-flex align-items-center"> <div class="navbar-brand header-logo-holder" data-title="Welcome!" data-intro="Take a short tour of the MySkillsFuture Portal.<br/>Click 'Next' to proceed." data-step="1"> <a href="/content/portal/en/index.html" class="text-decoration-none stretched-link"> <!-- <img src="/etc/clientlibs/msf/core-base/V3-ui/images/myskillsfuture-color.png" alt="MySkillsFuture logo"> --> <img src="/etc/clientlibs/msf/core-base/V3-ui/images/myskillsfuture-color.png" alt="MySkillsFuture"/> </a> </div> <div class="header-nav-holder flex-fill"> <div class="navbar-menu"> <!-- Remove explore dropdown header --> <!-- <div class="explore-dropdown-header"> <div class="container-xxl"> <div class="explore-dropdown-header-content"> <div class="d-flex flex-fill"></div> <button type="button" class="btn-close"></button> </div> </div> </div> --> <div class="mobile-search-holder collapse" id="globalSearch" data-bs-parent="#mainHeader"> <div class="container-xxl"> <div class="input-group global-search-bar"> <input id="global-search-header-searchbar" type="text" class="form-control global-search header-search" placeholder='Include " " for better search results, e.g. "data security"' data-bind="jqAuto: { source: $PORTAL_SEARCH.remoteHandler, value : $PORTAL_SEARCH.portalSearchKeyword, labelProp : 'parameter', valueProp: 'parameter', options: { html:true, delay:250, minLength : 3 , select : function(data, event) { }} }, valueUpdate: 'afterkeydown', value : $PORTAL_SEARCH.portalSearchKeyword, executeOnEnter : function() { $PORTAL_SEARCH.searchPortalArticles(document.getElementById('global-search-header-searchbar').value)}"/> <div class="input-group-append"> <a rel="nofollow" href="#" class="clear-search animated" aria-label="Clear search bar"> <span class="sgds-icon sgds-icon-cross clear-global-search"></span> </a> <button class="btn btn-primary" type="button" data-bind="click : function() { $PORTAL_SEARCH.searchPortalArticles(document.getElementById('global-search-header-searchbar').value) }"> <i class="sgds-icon sgds-icon-search"></i> <span>Search</span> </button> </div> </div> </div> <div class="search-suggestions recent-popular-results"> <div class="container-xxl"> <div data-bind="foreach : $PORTAL_SEARCH.getRecentSearches()"> <h6 class="my-2" data-bind="text: category"></h6> <ul data-bind="foreach : searches"> <li> <a href="#"> <i class="material-icons-outlined">history</i> <span data-bind="text: title, click :function() { $PORTAL_SEARCH.navigateRecentSearch(url);}"></span> </a> </li> </ul> </div> <h6 class="my-2">Popular Searches</h6> <ul data-bind="foreach : $PORTAL_SEARCH.popularSearches()"> <li> <a href="#"> <i class="material-icons-outlined">search</i> <span data-bind="text : keyword,click :function() { $PORTAL_SEARCH.searchPortalArticles(keywordText);}"></span> </a> </li> </ul> </div> </div> <div class="search-suggestions suggestion-results d-none"> <section class="autoSuggestInitiatives d-none"> <div class="container-xxl"> <div> <h6 class="my-2">Initiatives</h6> <ul></ul> </div> </div> </section> <section class="autoSuggestCourses d-none"> <div class="container-xxl"> <div> <h6 class="my-2">Courses</h6> <ul></ul> </div> </div> </section> <section class="search-suggestions__related-occupation autoSuggestOccupations d-none"> <div class="container-xxl"> <div> <h6 class="my-2">View Courses By Related Occupations</h6> <ul></ul> </div> </div> </section> <section class="autoSuggestArticles d-none"> <div class="container-xxl"> <div> <h6 class="my-2">Articles</h6> <ul></ul> </div> </div> </section> </div> </div> <!-- <sly data-sly-test="true"> --> <div class="navbar-item active d-none"> <div class="navbar-item-top-level-link"> <a class="navbar-link" rel="nofollow" href="#"> <h6><span>Home</span></h6> </a> </div> </div> <div class="navbar-item nav-header-link navbar-contactus"> <div class="navbar-item-top-level-link"> <a class="navbar-link" href="javascript:$HOME_V3.clickGoToCSP('HOME');"> <h6><span>Careers & Skills Passport</span></h6> </a> </div> </div> <div class="navbar-item nav-header-link navbar-courses"> <div class="navbar-item-top-level-link"> <a class="navbar-link" rel="nofollow" href="#"> <h6> <span>Courses</span> <i class="sgds-icon sgds-icon-chevron-down"></i> </h6> </a> <button class="mobile-collapse-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#menuDropdown-03"> <i class="sgds-icon sgds-icon-chevron-down"></i> </button> </div> <div class="navbar-dropdown collapse mega-menu" id="menuDropdown-03"> <div class="container-xxl"> <div class="mega-menu-holder"> <div class="mega-menu-navigation"> <!-- <sly data-sly-use.aot="aot.js"> <div class="row row-cols-1 row-cols-lg-3"> <sly data-sly-list.child=""> <div class="col"> <a href="" class="navbar-item sub-link"></a> </div> </sly> </div> </sly> --> <div class="row row-cols-1 text-center"> <div class="col"> <a href="/content/portal/en/portal-search/portal-search.html" class="navbar-item sub-link">Search Courses</a> </div> <div class="col"> <a href="/content/portal/en/portal-search/portal-search.html?fq=IsValid%3Atrue&q=Tags%3A%22SkillsFuture%20Credit%20(Mid-Career)%22&jumpstart=false" class="navbar-item sub-link">SkillsFuture Credit (Mid-Career) Courses</a> </div> <div class="col"> <a href="/content/portal/en/career-resources/career-resources/education-career-personal-development/use_SFC_for_online_subscriptions_and_courses.html" class="navbar-item sub-link">Online Courses and Subscriptions</a> </div> </div> </div> </div> </div> </div> </div> <!-- <div class="navbar-item nav-header-link navbar-initiatives"> <div class="navbar-item-top-level-link"> <a class="navbar-link" href="/content/portal/en/initiatives/initiatives.html"> <h6><span>Initiatives</span></h6> </a> </div> </div> --> <div class="navbar-item nav-header-link navbar-eservices"> <div class="navbar-item-top-level-link"> <a class="navbar-link" href="/content/portal/en/e-services.html"> <h6><span>E-Services</span></h6> </a> </div> </div> <div class="navbar-item nav-header-link navbar-resources"> <div class="navbar-item-top-level-link"> <a class="navbar-link" rel="nofollow" href="#"> <h6> <span>Resources</span> <i class="sgds-icon sgds-icon-chevron-down"></i> </h6> </a> <button class="mobile-collapse-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#menuDropdown-04"> <i class="sgds-icon sgds-icon-chevron-down"></i> </button> </div> <div class="navbar-dropdown collapse mega-menu" id="menuDropdown-04"> <div class="container-xxl"> <div class="mega-menu-holder"> <div class="mega-menu-navigation"> <div class="row row-cols-1 text-center"> <div class="col"> <a href="/content/portal/en/career-resources/career-resources.html" class="navbar-item sub-link">View Articles</a> </div> <div class="col"> <a href="/content/portal/en/initiatives/initiatives.html" class="navbar-item sub-link">View SkillsFuture Initiatives</a> </div> </div> </div> </div> </div> </div> </div> <!-- <div class="navbar-item nav-header-link navbar-contactus"> <div class="navbar-item-top-level-link"> <a class="navbar-link" href="/content/portal/en/header/faqs/for-further-assistance.html"> <h6><span>Contact Us</span></h6> </a> </div> </div> --> <div class="navbar-item nav-header-link navbar-aboutus"> <div class="navbar-item-top-level-link"> <a class="navbar-link" href="/content/portal/en/about/about-myskillsfuture.html"> <h6><span>About Us</span></h6> </a> </div> </div> <!-- </sly> --> </div> </div> <div class="header-actions-holder"> <div class="d-flex align-items-center justify-content-end"> <div class="d-flex"> <!-- ko if: isLoggedIn() --> <!-- ko if: isLoggedIn() && isSingPassLogin() --> <div class="right-action-single-btn d-none d-lg-flex" data-bind="if : isSingPassLogin() && isLoggedIn()"> <span class="badge rounded-pill bg-danger" data-bind="html : $root.notificationsCount()"></span> <button class="sgds btn btn-link" type="button" data-bind="click : function() { $root.iconClick($root.notifications().inboxUrl, '_blank') }"> <i class="fa-regular fa-bell"></i> </button> </div> <div class="right-action-single-btn d-none d-lg-flex" data-bind="if : isSingPassLogin() && isLoggedIn()"> <span class="badge rounded-pill bg-danger" data-bind="html : $root.bookmarkResultCount()"></span> <button class="sgds btn btn-link" type="button" data-bind="click : function() { $root.iconClick($root.bookmarkResultUrl(), '_blank') }"> <i class="fa-regular fa-heart"></i> </button> </div> <!-- /ko --> <div class="right-action-single-btn" data-bind="if : isLoggedIn()"> <a class="right-action-header-profile-btn streched-link" data-bs-toggle="offcanvas" href="#offcanvasMenu" role="button"> <div class="right-action-header-profile d-flex"> <div class="right-action-header-profile-img"> <span class="material-icons-two-tone">account_circle</span> </div> <div class="right-action-header-profile-info d-none d-lg-flex"> <div> <span class="profile-name"><strong data-bind="text : $Util.shortenText(preferredName(), 20),attr:{title:preferredName()}"></strong></span> <!-- <span class="profile-credit" data-bind="if : availableCredits()">Credit Balance: <strong data-bind="text : availableCredits()"></strong></span>--> <span class="profile-credit"><a style="white-space: nowrap;" data-bind="if : availableCredits(), attr: { href: $GLOBAL_CONSTANTS.SFC_URL.PROD }">SkillsFuture Credit</a></span> </div> </div> </div> </a> </div> <div class="right-action-header-profile d-none" data-bind="if : isLoggedIn()"> <div class="right-action-header-profile-img"> <!--<i class="bi bi-person-circle"></i>--> <span class="material-icons-two-tone">account_circle</span> </div> <div class="right-action-header-profile-info"> <a class="streched-link" href="#"> <span class="profile-name"><strong data-bind="text : $Util.shortenText(preferredName(), 20),attr:{title:preferredName()}"></strong></span> <!-- <span class="profile-credit" data-bind="if : availableCredits()">Credit Balance: <strong data-bind="text : availableCredits()"></strong></span>--> <span class="profile-credit"><a style="white-space: nowrap;" data-bind="if : availableCredits(), attr: { href: $GLOBAL_CONSTANTS.SFC_URL.PROD }">SkillsFuture Credit</a></span> </a> </div> </div> <div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasMenu" aria-modal="true" role="dialog"> <div class="offcanvas-header"> <div class="d-flex flex-fill"> <div class="right-action-header-profile"> <div style="display:none" class="right-action-header-profile-img d-none"> <span class="material-icons-two-tone">account_circle</span> </div> <div class="right-action-header-profile-info"> <div> <span class="profile-name"><strong data-bind="text : $Util.shortenText(preferredName(), 20),attr:{title:preferredName()}"></strong></span> <!-- <span class="profile-credit" data-bind="if : availableCredits()">Credit Balance: <strong data-bind="text : '$' + availableCredits()"></strong></span> --> <!-- <span class="profile-credit" data-bind="if : availableCredits()">Credit Balance: <strong data-bind="text : availableCredits()"></strong></span>--> </div> </div> </div> </div> <div class="header-actions-holder"> <div class="d-flex align-items-center"> <div class="right-action-single-btn d-lg-none" data-bind="if : isSingPassLogin() && isLoggedIn()"> <span class="badge rounded-pill bg-danger" data-bind="html : $root.notificationsCount()"></span> <button class="sgds btn btn-link" type="button" data-bind="click : function() { $root.iconClick($root.notifications().inboxUrl, '_blank') }"> <i class="fa-regular fa-bell"></i> </button> </div> <div class="right-action-single-btn d-lg-none" data-bind="if : isSingPassLogin() && isLoggedIn()"> <span class="badge rounded-pill bg-danger" data-bind="html : $root.bookmarkResultCount()"></span> <button class="sgds btn btn-link" type="button" data-bind="click : function() { $root.iconClick($root.bookmarkResultUrl(), '_blank') }"> <i class="fa-regular fa-heart"></i> </button> </div> </div> </div> <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body"> <div class="offcanvas-section"> <div class="list-group"> <!-- clientlibs/msf/core-base/Workforce-v3/js/use-api/userNav.js --> <!-- clientlibs/workforce/Workforce-v2/js/use-api/userNav.js --> <!-- <a class="list-group-item" href="/content/portal/en/individual/profile.html"><span>Profile</span></a> <a data-bind="visible: isSingPassLogin() || $AccessControl.isPortalIdLogin() " class="list-group-item" href="/content/portal/en/individual/skills-passport.html"><span>Skills Passport</span></a> <a data-bind="visible: isSingPassLogin() || $AccessControl.isPortalIdLogin() " class="list-group-item" href="/content/portal/en/individual/skills-passport.html#timeline"><span>Initiatives Applications</span></a> <a data-bind="visible: isSingPassLogin() || $AccessControl.isPortalIdLogin() " class="list-group-item" href="/content/portal/en/individual/documents.html"><span>Documents</span></a> <a class="list-group-item" href="/content/portal/en/individual/courses.html"><span>Course Enquiries</span></a> <a data-bind="visible: isSingPassLogin() || $AccessControl.isPortalIdLogin() " class="list-group-item" href="/content/portal/en/individual/feedback.html"><span>Feedback</span></a> <a class="list-group-item" href="/content/portal/en/individual/take-attendance.html"><span>Take Attendance</span></a> <a data-bind="visible: $AccessControl.isPortalIdLogin() " class="list-group-item" href="/content/portal/en/portalid/change-password.html"><span>Change Password</span></a> <a class="list-group-item" href="/content/portal/en/individual/settings.html"><span>Settings</span></a> --> </div> </div> </div> <div class="offcanvas-footer"> <div class="d-flex gap-3"> <a href="#" class="text-dark" onclick="window.open('/content/portal/en/header/faqs/others.html')">Help</a> <a href="#" class="text-dark" onclick="$UserLoginUtil.triggerLogout(); $UserLoginUtil.closeSideMenu();">Logout</a> </div> </div> </div> <!-- /ko --> <!-- ko if: !isLoggedIn() --> <div class="navbar-item align-self-center btn-login-v3"> <a class="sgds btn btn-outline-primary" onclick="assignRoute(window.location.href); $UserLoginUtil.setTargetUserMsg(0);" role="button" data-bs-toggle="offcanvas" href="#offcanvasLogin"> <span>Login</span> </a> </div> <!-- /ko --> <div class="right-action-single-btn d-none d-lg-flex"> <button class="btn btn-header-search" type="button" data-bs-toggle="collapse" data-bs-target="#globalSearch" aria-label="Search MySkillsFuture website" aria-expanded="false"> <span class="sgds-icon sgds-icon-search"></span> <span class="sgds-icon sgds-icon-cross"></span> </button> </div> </div> <div class="d-lg-none"> <a aria-label="Mobile navigation menu" class="hamburger-menu" data-bs-toggle="collapse" href="#siteMainNav" role="button" aria-expanded="false"> <span class="icon-bar"></span> </a> </div> </div> </div> </div> </div> </div> <div class="breadcrumb-holder"> <div class="container-fluid"> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> <li class="breadcrumb-item"><a href="/content/portal/en/index.html">Home</a></li> <li class="breadcrumb-item active" aria-current="page">Global Search Results</li> <!-- <li class="breadcrumb-item active" aria-current="page">Areas of Training</li> --> </ol> </nav> </div> </div> <div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasLogin" aria-modal="true" role="dialog" aria-label="Login modal"> <div class="offcanvas-header"> <div class="d-flex flex-fill"> </div> <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body"> <div class="offcanvas-login-holder"> <span id="loginWoMsg"><h4 class="mb-4">Hi there! Please log in to use this e-service.</h4></span> <p class="interested d-none">Login to use the service safely and for us to pre-fill your name and contact details for the training provider to respond to you.<br/></p> <h4 id="loginWMsg" class="d-none mb-4"> </h4> <div class="singpass-v3-login"> <h3 class="h6" id="login_panel_target_user">For Singapore Citizens and Permanent Residents</h3> <!-- <h3 class="h6" id="login_panel_target_user">For Singapore Citizens, Permanent Residents and holders of Foreign Identification Number (FIN)</h3> --> <form id="individual-sp-login-form" action="/services/common/doLogin" method="post"> <input type="hidden" name="loginType" value="SP"/> <input type="hidden" name="roleNameType" value=""/> <input type="hidden" id="redirectURL" name="redirectURL" value=""/> <input type="hidden" id="isMaintainLoginSession" name="isMaintainLoginSession" value=""/> <input type="hidden" id="lgnModalwMsgisMaintainLoginSession" name="lgnModalwMsgisMaintainLoginSession" value=""/> <a rel="nofollow" href="#" class="btn btn-danger d-block text-center singpass-v3-login-btn" isDefault="yes" onclick="$UserLoginUtil.clickSingPassLogin()">Singpass</a> </form> <p class="small singpass-note">Don't have a Singpass account? Forgot your password? <a href="https://www.singpass.gov.sg/main" class="link-primary fw-bold" rel="nofollow">Click here</a></p> </div> <div class="security-liner-message"> <br/> <h3 class="h6" data-bind="html: Granite.I18n.get('security-liner-message')"></h3> </div> </div> </div> <div class="offcanvas-footer"> <div class="d-flex gap-3"> <a href="#" class="text-dark" onclick="window.open('/content/portal/en/header/faqs/others.html')">Help</a> <a href="#" class="text-dark skipButton d-none" data-bs-dismiss="offcanvas">Skip</a> </div> </div> </div> <!-- ALERT BOX POP UP PANEL --> <!-- **************************** --> <div id="Alert_PopupPanel" style="display:none;" class="modal fade"> <div class="Closebtn_PopupPanel"></div> <div class="contentblock"> <div class="message">Place your text here</div> <div class="ActionPanel"> <button class="btn btn_bigorange confirmButton" type="button">OK</button> <a href="#" class="btn btn_bigorange confirmLink" style="display:none;" type="button">OK</a> <button class="btn btn_bigorange cancelButton" type="button">Cancel</button> </div> </div> </div> <!-- Yes No POP UP PANEL --> <!-- **************************** --> <div id="Common_PopupPanel" style="display:none;" class="modal fade"> <div class="Closebtn_PopupPanel"></div> <div class="contentblock"> <div class="message"></div> <div class="ctabox"> <button class="ctabtn small confirmButton" type="button"></button> <a rel="nofollow" href="#" class="btn btn_bigorange confirmLink" style="display:none;" type="button"></a> <button class="ctabtn small cancelButton" type="button"></button> </div> </div> </div> <!-- Common Modal Popup by Bootstrap --> <div class="modal fade" id="Common_Bootstrap_Modal_Popup" tabindex="-1" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <div class="general-message-holder"> <div> <div class="card"> <div class="card-body"> <div id="popup-icon-holder" class="message-icon mb-4"> </div> <h3 id="popup-content" class="mb-4"></h3> <div class="btn-holder justify-content-center"> <button data-bs-dismiss="modal" id="popup-btn-2" type="button" class="btn btn-outline-dark"></button> <button data-bs-dismiss="modal" id="popup-btn-1" type="button" class="btn btn-primary"></button> <!-- <a data-dismiss="modal" class="btn btn-outline-dark" id="popup-btn-2"></a> <a data-dismiss="modal" class="btn btn-primary" id="popup-btn-1"></a> --> </div> </div> </div> </div> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary d-none" data-bs-dismiss="modal">Close</button> </div> </div> </div> </div> <!-- Common Modal XL Popup by Bootstrap --> <div class="modal fade" id="Common_Bootstrap_XL_Modal_Popup" tabindex="-1" aria-hidden="true"> <div class="modal-dialog modal-xl modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title"></h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> </div> <div class="modal-footer"> <div class="btn-holder"> <button data-bs-dismiss="modal" id="popup-btn-2" type="button" class="btn btn-outline-dark"></button> <button data-bs-dismiss="modal" id="popup-btn-1" type="button" class="btn btn-primary"></button> </div> </div> </div> </div> </div> <!-- Info Modal --> <div class="modal fade" id="infoModal" tabindex="-1" aria-hidden="true"> <div class="modal-dialog modal-lg modal-fluid modal-dialog-centered"> <div class="modal-content"> <div class="modal-header border-0"> <!--<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>--> <button type="button" class="btn-close my-1" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body p-4"> <div class="general-message-holder"> <div> <div class="card"> <div class="card-body"> <h3 class="mb-3 fw-normal"></h3> <p></p> <br/> <div class="btn-holder justify-content-center"> <button type="button" data-bs-dismiss="modal" id="popup-btn-2" class="btn btn-outline-dark">No</button> <button type="button" data-bs-dismiss="modal" id="popup-btn-1" class="btn btn-primary">Yes</button> </div> </div> </div> </div> </div> </div> <div class="modal-footer border-0"></div> </div> </div> </div> <div id="duplicate_session_popup_modal" data-keyboard="false" data-backdrop="static" aria-hidden="true" class="modal fade duplicateSessionPopupModal" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" style="text-align: center;">Duplicate Sessions</h4> </div> <div class="modal-body"> <div id="duplicate_session_container" style="text-align: center;"> <span>Another login session has been detected. If you continue, the previous session will be removed.</span> <br/><br/> <span>Do you want to continue?</span> </div> <div class="duplicateSessionContainer" style="text-align: center;margin-top: 23px;"> <a rel="nofollow" href="#" id="duplicate_session_popup_modal_yes_buttton" class="ctabtn tiffany">Yes</a> <a rel="nofollow" href="#" id="duplicate_session_popup_modal_logout_buttton" class="ctabtn tiffany">Logout</a> </div> </div> </div> </div> </div> <!-- message of network disconnection CR-34 2020-11-07 --> <div class="header-alert-holder d-none" id="networkDisconnectionMessageBoxV3"> <style> .networkDisconnectionPlaceholder.alert.alert-dark.fade.show { display: flex !important; opacity: 1; } .networkDisconnectionPlaceholder.alert.alert-dark.fade.show.close { display: none !important; } #networkDisconnectionMessageBoxV3 { position: relative; z-index: -1; } </style> <div class="networkDisconnectionPlaceholder alert alert-dark fade show" role="alert" style=""> <div class="alert-message flex-fill"> <i class="bi bi-exclamation-circle-fill"></i> <span id="networkDisconnectionMessage">No network connection. Reconnect to keep the browsing going.</span> </div> <button type="button" class="btn-close" aria-label="Close" onclick="closeNetworkMessageBox()"> <i class="bi bi-x"></i> </button> </div> </div> <script> function openNetworkMessageBox() { $('#networkDisconnectionMessageBoxV3').addClass('d-block'); $('#networkDisconnectionMessageBoxV3').removeClass('d-none'); } function closeNetworkMessageBox() { $('#networkDisconnectionMessageBoxV3').removeClass('d-block'); $('#networkDisconnectionMessageBoxV3').addClass('d-none'); }; function initializeDetection() { console.log('initializeDetection....'); window.addEventListener("offline", function (event) { console.log('status: network is disconnected at ', new Date()); openNetworkMessageBox(); $(window).trigger('resize'); }) window.addEventListener("online", function (event) { console.log('status: network is connected at ', new Date()); closeNetworkMessageBox(); $(window).trigger('resize'); }) if (!navigator.onLine) openNetworkMessageBox(); else closeNetworkMessageBox(); } $(document).ready(function () { initializeDetection(); }) </script> <div class="site-action-holder"> <a rel="nofollow" href="#" class="back-top cd-top shadow"> <div><span class="material-symbols-outlined">vertical_align_top</span></div> </a> </div> </header> <div class="coverall"></div> <script> // Populate Header var populateHeaderMenuViewModel = new PopulateHeaderMenuViewModel(); populateHeaderMenuViewModel.renderHeaderMenu_v3(); </script> <div class="modal fade" id="loginTempSingPassModal" tabindex="-1" style="z-index:9999998; margin-top: 10%; padding-top: 45px;" role="dialog" data-type="0"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h4 class="modal-title" style="text-align: center">Login</h4> </div> <div class="modal-body"> <form id="sing-pass-login-form"> <input type="hidden" name="redirectURL" value=""/> <input type="hidden" id="isMaintainLoginSession" name="isMaintainLoginSession" value="false"/> <h2 class="form-signin-heading"></h2> <div class="form-group row"> <label for="inputUser" class="col-sm-2 col-form-label">User Id</label> <div class="col-sm-10"> <input class="form-control" type="text" name="userId" id="inputUser" placeholder="User ID" autocomplete="off" autofocus/> <div id="ERROR-userid" class="help-block with-errors hidden"> <ul class="list-unstyled"> <li></li> </ul> </div> </div> </div> <div class="form-group row"> <label for="inputPassword" class="col-sm-2 col-form-label">Password</label> <div class="col-sm-10"> <input type="password" class="form-control" id="inputPassword" name="userPwd" placeholder="Password" autocomplete="off" autofocus/> <div id="ERROR-password" class="help-block with-errors hidden"> <ul class="list-unstyled"> <li></li> </ul> </div> </div> </div> <div class="form-group row "> <div class="col-sm-10" style="float: right;text-align: left"> <input class="form-control" type="hidden" name="userType" id="userType" value="SP"/> </div> </div> <div class="form-group row"> <label class="col-sm-2 col-form-label"></label> <div class="col-sm-10"> <div id="ERROR-loginError" class="help-block with-errors hidden"> <ul class="list-unstyled"> <li></li> </ul> </div> </div> </div> <div class="theme1 form-group aligncenter"> <a rel="nofollow" href="#" id="button-submit-login-sing-pass" class="ctabtn" style="background-color: #5aacb4;">Sign in</a> <a rel="nofollow" href="#" class="ctabtn" data-bs-dismiss="modal" onclick="clearInput()" style="background-color: #5aacb4;">Cancel</a> <a href="javascript:loginWithTempCorpass('TP');" class="ctabtn" style="background-color: #5aacb4;">Corp Pass Login</a> </div> </form> </div> </div> </div> </div> <script> var serializeFormJSON = function(formObj) { var o = {}; var a = formObj.serializeArray(); $.each(a, function() { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; } $("#button-submit-login-sing-pass").click(function() { var postLoginURLredirect = document.getElementById('sing-pass-login-form').redirectURL.value; if (!postLoginURLredirect) { document.getElementById('sing-pass-login-form').redirectURL.value = window.location.href ; } if(validateLoginForm()){ var formData = serializeFormJSON($("#sing-pass-login-form")); $.ajax({ type: "POST", url: "/services/common/spcplogin-temp", cache: false, data: formData, success: function(rawData) { var result = rawData; if (typeof rawData === 'string') { try { result = JSON.parse(rawData); } catch(e) { // invalid json } } if (result.status) { $('#ERROR-loginError').addClass('hidden'); $('#ERROR-loginError').html(''); if (result.statusCode == 1 || result.statusCode == 17) { $.cookie.defaults = { path: '/content/portal/en/' }; var url = checkAssignedRoute(); if (url == "") { window.location.href = '/content/portal/en/index.html'; } else { // tracking SN login link to MySF account if ($SessionStorage.get('loginFormId')) { WorkforceAnalytics.Common.trackingSocialLoginLinkAndUnLinkMSF($SessionStorage.get('loginFormId'),'link','success'); $SessionStorage.remove('loginFormId'); } window.location.href = url; } } else if (result.statusCode == 3) { $.cookie.defaults = { path: '/content/portal/en/' }; //Should let filter to identify window.location.href = '/content/portal/en/index.html'; // url is registration page, social acc didn't link to singpass // tracking SN login link to MySF account if ($SessionStorage.get('loginFormId')) { WorkforceAnalytics.Common.trackingSocialLoginLinkAndUnLinkMSF($SessionStorage.get('loginFormId'),'link','failure'); $SessionStorage.remove('loginFormId'); } } else if (result.statusCode == 0 || result.statusCode == 4 || result.statusCode == 6) { window.location.href='/services/common/doLogout?redirectURL=/content/portal/en/index.html?loginStatus=' + result.statusCode; } else if (result.statusCode == 14) { window.location.href=PortalConstants.URL.EASY_LOGIN; } } else if (!result.status) { $('#ERROR-loginError').removeClass('hidden'); $('#ERROR-loginError').html(result.message); } localStorage.removeItem("isPostJobs"); } });} }); function validateLoginForm(){ var isValidUser = true; var isValidPassword = true; var isValidUEN=true; var isValidRoles=true; var form=$("#sing-pass-login-form"); if(form.find('input#inputUser').val().trim().length == 0){ isValidUser = false; form.find('input#inputUser').focus(); $('#ERROR-userid ul li').html('User ID field cannot be empty'); $('#ERROR-userid').removeClass('hidden'); } else{ $('#ERROR-userid').addClass('hidden'); $('#ERROR-userid ul li').html(''); } if(form.find('input#inputPassword').val().trim().length == 0){ isValidPassword = false; form.find('input#inputPassword').focus(); $('#ERROR-password ul li').html('Password field cannot be empty'); $('#ERROR-password').removeClass('hidden'); } else{ $('#ERROR-password').addClass('hidden'); $('#ERROR-password ul li').html(''); } if(isValidUser && isValidPassword){ $('#ERROR-loginError').html(''); return true; } return false; } function loginWithTempCorpass(roleNameType){ console.log('temp sing') $('#login_popup_modal').modal('hide'); $('#loginTempSingPassModal').modal('hide'); $('#loginModal_corpass').modal('show'); document.getElementById('corp-pass-login-form').roleNameType.value = roleNameType; } function loginWithTempSingpass(){ $('#login_popup_modal').modal('hide'); $('#loginTempSingPassModal').modal('show'); // window.location = LoginUtils.LOGIN_SP_URL; } </script> <style> .changetextsize_box{ display:none; } </style> <div class="modal fade" id="loginModal_corpass" tabindex="-1" style="z-index:9999999; margin-top: 8%; padding-top: 98px;" role="dialog" data-type="0"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h4 class="modal-title" style="text-align: center">Corp Pass Login</h4> </div> <div class="modal-body"> <form id="corp-pass-login-form"> <input type="hidden" name="roleNameType" value=""/> <input type="hidden" name="redirectURL" value=""/> <h2 class="form-signin-heading"></h2> <div class="form-group row"> <label for="inputUser" class="col-sm-2 col-form-label">UEN</label> <div class="col-sm-10"> <input class="form-control" type="text" name="uen" id="inputUEN" placeholder="UEN Number" autofocus/> <div id="ERROR-uen" class="help-block with-errors hidden"> <ul class="list-unstyled"> <li></li> </ul> </div> </div> </div> <div class="form-group row"> <label for="inputUser" class="col-sm-2 col-form-label">User Id</label> <div class="col-sm-10"> <input class="form-control" type="text" name="userId" id="inputUser" placeholder="User ID" autofocus autocomplete="off"/> <div id="ERROR-userid" class="help-block with-errors hidden"> <ul class="list-unstyled"> <li></li> </ul> </div> </div> </div> <div class="form-group row"> <label for="inputPassword" class="col-sm-2 col-form-label">Password</label> <div class="col-sm-10"> <input type="password" class="form-control" id="inputPassword" name="userPwd" placeholder="Password" autocomplete="off" autofocus/> <div id="ERROR-password" class="help-block with-errors hidden"> <ul class="list-unstyled"> <li></li> </ul> </div> </div> </div> <div class="form-group row"> <label for="tpCode" class="col-sm-2 col-form-label">TP Code</label> <div class="col-sm-10"> <input type="text" class="form-control" id="tpCode" name="tpCode" placeholder="TP Code" autocomplete="off" autofocus/> </div> </div> <div class="form-group row"> <label for="roles" class="col-sm-2 col-form-label">Roles</label> <div class="col-sm-10"> <ul class="roles"> <li style=" display: inline-block;"><input type="checkbox" name="roleName" id="tp_admin" value="TP_ADMIN" style="display: inline;"/><label for="tp_admin_label"> TP Admin </label></li> <li style="display: inline-block;"><input type="checkbox" name="roleName" id="job_admin" value="JOBSBANK_ADMIN" style=" display: inline;"/><label for="job_admin_label"> Job Admin </label></li> <li style="display: inline-block;"><input type="checkbox" name="roleName" id="course_admin" value="COURSE_ADMIN" style="display: inline;"/><label for="course_admin_label"> Course Admin</input></label></li> <li style="display: inline-block;"><input type="checkbox" name="isForeignEntity" id="isForeignEntity" value="true" style="display: inline;"/><label for="course_admin_label"> isForeignEntity</input></label></li> <li style="display: inline-block;"><input type="checkbox" name="isNonSingpassHolder" id="isNonSingpassHolder" value="true" style="display: inline;"/><label for="course_admin_label"> isNonSingpassHolder</input></label></li> </ul> <div id="ERROR-roles" class="help-block with-errors hidden"> <ul class="list-unstyled"> <li></li> </ul> </div> </div> </div> <div class="form-group row "> <div class="col-sm-10" style="float: right;text-align: left"> <input class="form-control" type="hidden" name="userType" id="userType" value="CP"/> </div> </div> <!-- <div class="form-group row hidden"> <div class="col-sm-10" style="float: right;text-align: left"> <sly data-sly-use.SEOTitleUtil="clientlibs/student/sightlyjstool/SEOTitleUtil.js"> <a href="/content/student/en//reset-password.html">Forgot your password?</a> </sly> </div> </div> --> <div class="form-group row"> <label class="col-sm-2 col-form-label"></label> <div class="col-sm-10"> <div id="ERROR-loginError" class="help-block with-errors hidden"> <ul class="list-unstyled"> <li></li> </ul> </div> </div> </div> <div class="theme1 form-group aligncenter"> <a rel="nofollow" href="#" id="button-submit-login-corp-pass" onclick="$UserLoginUtil.corpPassLogin()" class="ctabtn" style="background-color: #5aacb4;">Sign in</a> <a rel="nofollow" href="#" class="ctabtn" data-bs-dismiss="modal" style="background-color: #5aacb4;">Cancel</a> </div> </form> </div> </div> </div> </div> <script src="/etc/clientlibs/msf/core-base/V3-ui.min.js"></script> <main> <link rel="stylesheet" href="/etc/clientlibs/msf/pm/global-search.min.css" type="text/css"> <script src="/etc/clientlibs/msf/pm/global-search.min.js"></script> <script src="/etc/clientlibs/msf/core-base/gcwidget.min.js"></script> <div class="main-body-holder"> <div class="page-header"> <div class="container-xxl"> <div class="page-header-search-holder" id="globalpage-search"> <div class="input-group global-search-bar"> <input id="global-search-page-searchbar" type="text" class="form-control global-search global-search-page global-search-v3" placeholder='Include " " for better search results, e.g. "data security"' data-bind="jqAuto: { source: $PORTAL_SEARCH.remoteHandlerGlobalSearch, value : $root.globalKeywordSearch, labelProp : 'parameter', valueProp: 'parameter', options: { html:true, delay:250, minLength : 3 , select : function(data, event) { }} }, valueUpdate: 'afterkeydown', value : $root.globalKeywordSearch, executeOnEnter : function() { $PORTAL_SEARCH.searchPortalNonHeader(document.getElementById('global-search-page-searchbar').value)}"/> <button class="btn btn-primary" type="button" data-bind="click : function() { $PORTAL_SEARCH.searchPortalNonHeader(document.getElementById('global-search-page-searchbar').value) }"> <i class="sgds-icon sgds-icon-search"></i> <span>Search</span> </button> <a href="javascript:void(0);" class="clear-search animated"> <span class="sgds-icon sgds-icon-cross"></span> </a> </div> <div class="search-suggestions recent-popular-results shadow"> <div class="container-xxl"> <div data-bind="foreach : $PORTAL_SEARCH.getRecentSearches()"> <h6 class="my-2" data-bind="text: category"></h6> <ul data-bind="foreach : searches"> <li> <a href="#"> <i class="material-icons-outlined">history</i> <span data-bind="text: title, click :function() { $PORTAL_SEARCH.navigateRecentSearch(url);}"></span> </a> </li> </ul> </div> <h6 class="my-2">Popular Searches</h6> <ul data-bind="foreach : $PORTAL_SEARCH.popularSearches()"> <li> <a href="#"> <i class="material-icons-outlined">search</i> <span data-bind="text : keyword,click :function() { $PORTAL_SEARCH.searchPortalArticles(keywordText);}"></span> </a> </li> </ul> </div> </div> <div class="search-suggestions suggestion-results shadow d-none"> <section class="autoSuggestInitiatives d-none"> <div class="container-xxl"> <div> <h6 class="my-2">Initiatives</h6> <ul></ul> </div> </div> </section> <section class="autoSuggestCourses d-none"> <div class="container-xxl"> <div> <h6 class="my-2">Courses</h6> <ul></ul> </div> </div> </section> <section class="search-suggestions__related-occupation autoSuggestOccupations d-none"> <div class="container-xxl"> <div> <h6 class="my-2">View Courses By Related Occupations</h6> <ul></ul> </div> </div> </section> <section class="autoSuggestArticles d-none"> <div class="container-xxl"> <div> <h6 class="my-2">Articles</h6> <ul></ul> </div> </div> </section> </div> </div> <script> var globalSearchModel = new GlobalSearchModel(); </script> </div> </div> <div class="page-content-holder"> <div class="global-search-display-control has-articles"> <div class="globalSearchResults"> <div class="page-tab-holder tab-holder"> <div class="container-xxl global-search-result-container"> <script type="text/javascript"> $(function() { var clazz = $('.global-search-result-container ul li button.active').attr('class'); var classList = (!clazz) ? {} : clazz.split(" "); for (var i in classList) { if (classList[i] == "txCourses-tab-title") { numResults = "30,186"; globalSearchCoursesAnalytics(numResults); break; } else if (classList[i] == "initiatives-tab-title") { numResults = "13"; globalSearchCoursesAnalytics(numResults); break; } else if (classList[i] == "articles-tab-title") { numResults = "149"; globalSearchCoursesAnalytics(numResults); break; } } }); function globalSearchCoursesAnalytics(numResults) { var userId = "294de3557d9d00b3d2d8a1e6aab028cf"; var orgName = ""; var keyword = ""; var isAutoSuggested = "false"; $PM_ANALYTICS.searchPortal(userId, orgName, keyword, numResults, isAutoSuggested); } </script> <ul class="nav nav-pills" role="tablist"> <li class="nav-item" role="presentation"> <button id="courses_btn" onclick="globalSearchResultTabControl('txCourses')" data-type="txCourses" data-count="30,186" class="nav-link txCourses-tab-title" data-bs-toggle="pill" data-bs-target="#pageContent_Tab_02" type="button" role="tab" aria-selected="false" tabindex="-1"> <!-- Show 0 by default --> <!-- <span>Courses (30,186)</span> --> <span>Courses (0)</span> </button> </li> <li class="nav-item" role="presentation"> <button id="initiatives_btn" onclick="globalSearchResultTabControl('initiatives')" data-type="initiatives" data-count="13" class="nav-link initiatives-tab-title" data-bs-toggle="pill" data-bs-target="#pageContent_Tab_01" type="button" role="tab" aria-selected="false" tabindex="-1"> <span>Initiatives (13)</span> </button> </li> <li class="nav-item" role="presentation"> <button id="articles_btn" onclick="globalSearchResultTabControl('articles')" data-type="articles" data-count="149" class="nav-link articles-tab-title" data-bs-toggle="pill" data-bs-target="#pageContent_Tab_03" type="button" role="tab" aria-selected="false" tabindex="-1"> <span>Articles (149)</span> </button> </li> </ul> </div> </div> <div class="page-tab-content-holder"> <div class="tab-content"> <div class="tab-pane fade" id="pageContent_Tab_01" role="tabpanel"> <div id="initiativesSearchResult" class="container-xxl"> <div class="one-column-layout"> <div class="page-content-header-holder"> <div class="page-content-search-result-header"> <div class="page-content-result-title flex-lg-grow-1"> <h5>13 result(s) found </h5> </div> </div> </div> <br/> <div class="page-content-body-holder"> <div class="article-card-holder"> <div class="row row-cols-1 g-3"> </div> </div> </div> </div> </div> </div> <div class="tab-pane fade" id="pageContent_Tab_02" role="tabpanel"> <div id="courseSearchResult" class="container-xxl" data-bind="template: 'jobSearchResultTemplate'"></div> <script id="jobSearchResultTemplate" type="text/html"><div class="two-columns-layout main-content-end"> <div class="row"> <div class="col-lg-3"> <div class="collapse search-filter-holder" id="sideSearchFilter"> <div class="explore-dropdown-header"> <button type="button" class="btn-close" data-bs-toggle="collapse" href="#sideSearchFilter" role="button" aria-expanded="true"></button> </div> <div class="search-filter-header"> <i class="fa-solid fa-sliders"></i> <h4 class="">Filter By</h4> <span class="badge text-bg-primary"></span> <div class="flex-fill justify-content-end"> <span class="vr"></span> <a id="clearAll" href="#" class="link-primary">Clear</a> </div> </div> <div class="search-filter-body"> <ul class="list-group list-group-flush"> <li class="list-group-item" id="courseFilter01" style="border-bottom: dotted 3px;"> <div class="collapse-item"> <div class="collapse-header"> <a class="link-dark" data-bs-toggle="collapse" href="#searchFilter01" role="button" aria-expanded="true"> <div class="flex-fill"><span>Featured Initiatives</span></div> <span class="fa-solid fa-circle"></span> <i class="sgds-icon sgds-icon-chevron-down"></i> </a> </div> <div class="collapse show" id="searchFilter01"> <div class="collapse-body" style="background-color: #ECF6FF;margin-bottom: 20px;"> <div id="Tags_text_FeaturedInitiatives" class="form-check-holder facet_container"></div> </div> </div> </div> </li> <li class="list-group-item" id="courseFilter02" style="padding-top: 12px;"> <div class="collapse-item"> <div class="collapse-header"> <a class="link-dark" data-bs-toggle="collapse" href="#searchFilter10" role="button" aria-expanded="false"> <div class="flex-fill"><span>Price (Full Fee)</span> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.fullFeePopUp('', '', '') }"></i> </div> <span class="fa-solid fa-circle"></span> <i class="sgds-icon sgds-icon-chevron-down"></i> </a> </div> <div class="collapse" id="searchFilter10"> <div class="collapse-body"> <div id="Price" class="mb-2 form-check-holder facet_container"></div> </div> </div> </div> </li> <li class="list-group-item"> <div class="collapse-item"> <div class="collapse-header"> <a class="link-dark" data-bs-toggle="collapse" href="#searchFilter02" role="button" aria-expanded="false"> <div class="flex-fill"><span>Ratings</span></div> <span class="fa-solid fa-circle"></span> <i class="sgds-icon sgds-icon-chevron-down"></i> </a> </div> <div class="collapse" id="searchFilter02"> <div class="collapse-body"> <div id="Ratings" class="form-check-holder facet_container"></div> </div> </div> </div> </li> <li class="list-group-item"> <div class="collapse-item"> <div class="collapse-header"> <a class="link-dark" data-bs-toggle="collapse" href="#searchFilter03" role="button" aria-expanded="false"> <div class="flex-fill"><span>Language</span></div> <span class="fa-solid fa-circle"></span> <i class="sgds-icon sgds-icon-chevron-down"></i> </a> </div> <div class="collapse" id="searchFilter03"> <div class="collapse-body"> <div id="Medium_of_Instruction" class="form-check-holder facet_container"></div> </div> </div> </div> </li> <li class="list-group-item"> <div class="collapse-item"> <div class="collapse-header"> <a class="link-dark" data-bs-toggle="collapse" href="#searchFilter04" role="button" aria-expanded="false"> <div class="flex-fill"><span>Training Partner</span></div> <span class="fa-solid fa-circle"></span> <i class="sgds-icon sgds-icon-chevron-down"></i> </a> </div> <div class="collapse" id="searchFilter04"> <div class="collapse-body"> <div id="TP_ALIAS_Suggest" class="form-check-holder facet_container"></div> </div> </div> </div> </li> <!-- <li class="list-group-item"> <div class="collapse-item"> <div class="collapse-header"> <a class="link-dark" data-bs-toggle="collapse" href="#searchFilter05" role="button" aria-expanded="false"> <div class="flex-fill"><span>Duration</span></div> <span class="fa-solid fa-circle"></span> <i class="sgds-icon sgds-icon-chevron-down"></i> </a> </div> <div class="collapse" id="searchFilter05"> <div class="collapse-body"> <div id="CourseDurationRange" class="form-check-holder facet_container"></div> </div> </div> </div> </li> <li class="list-group-item"> <div class="collapse-item"> <div class="collapse-header"> <a class="link-dark" data-bs-toggle="collapse" href="#searchFilter06" role="button" aria-expanded="false"> <div class="flex-fill"><span>Training Commitment</span></div> <span class="fa-solid fa-circle"></span> <i class="sgds-icon sgds-icon-chevron-down"></i> </a> </div> <div class="collapse" id="searchFilter06"> <div class="collapse-body"> <div id="Mode_of_Training" class="form-check-holder facet_container"></div> </div> </div> </div> </li> --> <li class="list-group-item"> <div class="collapse-item"> <div class="collapse-header"> <a class="link-dark" data-bs-toggle="collapse" href="#searchFilter11" role="button" aria-expanded="false"> <div class="flex-fill"><span>Commitment and Duration</span></div> <span class="fa-solid fa-circle"></span> <i class="sgds-icon sgds-icon-chevron-down"></i> </a> </div> <div class="collapse" id="searchFilter11"> <div class="collapse-body"> <div id="CommitmentAndDurationSelectedHolder"></div> <div id="Mode_of_Training" class="form-check-holder facet_container"></div> <div class="form-check-selected-holder"></div> <div id="CourseDurationRange" class="form-check-holder facet_container"></div> </div> </div> </div> </li> <li class="list-group-item"> <div class="collapse-item"> <div class="collapse-header"> <a class="link-dark" data-bs-toggle="collapse" href="#searchFilter07" role="button" aria-expanded="false"> <div class="flex-fill"><span>Min Qualifications</span></div> <span class="fa-solid fa-circle"></span> <i class="sgds-icon sgds-icon-chevron-down"></i> </a> </div> <div class="collapse" id="searchFilter07"> <div class="collapse-body"> <div id="Minimum_Education_Req" class="form-check-holder facet_container"></div> </div> </div> </div> </li> <li class="list-group-item"> <div class="collapse-item"> <div class="collapse-header"> <a class="link-dark" data-bs-toggle="collapse" href="#searchFilter12" role="button" aria-expanded="false"> <div class="flex-fill"><span>SkillsFuture Initiatives</span></div> <span class="fa-solid fa-circle"></span> <i class="sgds-icon sgds-icon-chevron-down"></i> </a> </div> <div class="collapse" id="searchFilter12"> <div class="collapse-body"> <div id="Tags_text_SFInitiatives" class="form-check-holder facet_container"></div> </div> </div> </div> </li> <li class="list-group-item"> <div class="collapse-item"> <div class="collapse-header"> <a class="link-dark" data-bs-toggle="collapse" href="#searchFilter08" role="button" aria-expanded="false"> <div class="flex-fill"><span>Course Categories</span></div> <span class="fa-solid fa-circle"></span> <i class="sgds-icon sgds-icon-chevron-down"></i> </a> </div> <div class="collapse" id="searchFilter08"> <div class="collapse-body"> <div id="Tags_text_Filtered" class="form-check-holder facet_container"></div> </div> </div> </div> </li> <li class="list-group-item"> <div class="collapse-item"> <div class="collapse-header"> <a class="link-dark" data-bs-toggle="collapse" href="#searchFilter09" role="button" aria-expanded="false"> <div class="flex-fill"><span>Areas of Training</span></div> <span class="fa-solid fa-circle"></span> <i class="sgds-icon sgds-icon-chevron-down"></i> </a> </div> <div class="collapse" id="searchFilter09"> <div class="collapse-body"> <div id="Area_of_Training" class="form-check-holder facet_container"></div> </div> </div> </div> </li> </ul> </div> <div class="search-filter-footer"> <button id="clearAll_bottom" class="btn btn-outline-dark flex-lg-fill">Clear</button> <button class="btn btn-primary flex-fill d-lg-none" data-bs-toggle="collapse" href="#sideSearchFilter" role="button">Close </button> </div> </div> </div> <div class="col-lg-9"> <div class="page-content-header-holder"> <div class="page-content-search-result-header"> <div class="page-content-result-title flex-lg-grow-1"> <h5 id="totalRecord" class="mb-2"></h5> <span data-bind="html: $INDIVIDUAL_CONSTANT.MESSAGE_KEY.COURSES_SEARCH_GUIDE_MESSAGE"></span> </div> <div class="page-content-sorting-option"> <div class="sorting-option-button-holder"> <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#sideSearchFilter" aria-expanded="false"> <i class="fa-solid fa-sliders"></i> <div class="flex-fill">Filter By</div> <span class="badge text-bg-light"></span> </button> </div> <div class="sorting-option-select-holder"> <select id="sortby"> <option selected="" disabled="">Sort by</option> <option value="Tol_Cost_of_Trn_Per_Trainee asc,Course_SEO_Name asc">Full Fee (Low to High) </option> <option value="Tol_Cost_of_Trn_Per_Trainee desc,Course_SEO_Name asc">Full Fee (High to Low) </option> <option value="MostViewed desc,Course_SEO_Name asc">Most Viewed</a></option> <option value="Course_Quality_Stars_Rating desc,Course_SEO_Name asc">Rating (5 - 1)</a></option> <option value="Course_Quality_Stars_Rating asc,Course_SEO_Name asc">Rating (1 - 5)</a></option> </select> </div> </div> </div> </div> <br/> <div class="page-content-body-holder"> <div class="courses-card-holder is-horizontal"> <div class="row row-cols-1 g-3"> <!-- ko foreach: {data: courses, as: 'course'} --> <!-- ko if: typeof groupValue !== "undefined" && groupValue != 9999 --> <div class="col"> <div class="card"> <div class="card-img"> <!-- ko if : multipleProviders.length > 1 --> <a href="javascript:void(0);" data-bind="click: $root.multipleTpModel.bookmark" class="btn btn-link"> <i class="fa-regular fa-heart"></i> </a> <!-- /ko --> <!-- ko if : multipleProviders.length == 1 --> <a href="javascript:void(0);" data-bind="click: $root.multipleTpModel.bookmarkShowLogin, attr: { 'title': $Util.showLoginTooltip()}" class="btn btn-link"> <i class="fa-regular fa-heart"></i> </a> <!-- /ko --> <!-- <img data-bind="attr: { src: imageUrl }" alt="" class="img-cover" data-object-fit="cover"/> --> </div> <div class="card-body"> <div class="card-course-main-info-holder"> <!-- Institution --> <div class="course-provider"> <!-- ko if: organisationNames.length > 1 --> <a href="#" data-bind="click: $root.multipleTpModel.redirect">Multiple Training Partners <span class="badge text-bg-primary" data-bind="text: $Util.getTPListUniqueCount(multipleProviders)"></span></a> <!-- /ko --> <!-- ko ifnot: organisationNames.length > 1 --> <a href="#" target="_blank" data-bind="attr: { title: organisationNameTitles[0], href: $INDIVIDUAL_CONSTANT.PAGE_URL.TP_PROFILE_PUBLIC + '?UEN=' + uens[0] }, html: organisationNamesShorten[0]"></a> <!-- /ko --> </div> <!-- Course Title --> <h5 class="card-title" data-bind="attr: { title: courseTitle }"> <!-- ko if: organisationNames.length > 1 --> <a href="#" data-bind="text: courseTitleShorten, click: $root.multipleTpModel.redirect"></a> <!-- /ko --> <!-- ko ifnot: organisationNames.length > 1 --> <a href="#" target="_blank" data-bind="text: courseTitleShorten, attr: { href: $root.multipleTpModel.getRedirectUrl($data) }"></a> <!-- /ko --> </h5> <!-- Upcoming Course Run --> <ul class="list-group list-group-flush"> <!-- ko if: HasCourseRun --> <li class="list-group-item"> <label><span>Upcoming Course Date:</span></label> <p><strong data-bind="text: $Util.formatDate(Course_Start_Date_Nearest)"></strong></p> </li> <!-- /ko --> </ul> </div> <div class="card-course-sub-info-holder"> <!-- Course Rating --> <div class="card-ratings-holder"> <!-- ko if: Course_Quality_NumberOfRespondents > 0 --> <div class="stars-holder"> <!-- ko foreach: new Array(5) --> <i class="fa-solid fa-star" data-bind="attr: {class: generateStar($parent.Course_Quality_Stars_Rating , $index())}"></i> <!-- /ko --> </div> <a href="javascript:void(0);" data-bind="click: $root.courseTraineeCommentViewModel.openCommentsPopUpv3"><span data-bind="text: Course_Quality_NumberOfRespondents + ' Ratings'"></span></a> <!-- /ko --> <!-- ko ifnot: Course_Quality_NumberOfRespondents > 0 --> <span>No Rating Yet</span> <!-- /ko --> </div> <!-- ko if: Course_Duration.length > 1 && isOnlineLearningPlatform == false --> <div class="card-course-duration-holder small"><span data-bind="text: Course_Duration"></span></div> <!-- /ko --> <!-- ko if: Mode_of_Training_text.length > 1 --> <div class="card-course-type-holder small"><span data-bind="text: Mode_of_Training_text"></span></div> <!-- /ko --> </div> </div> <div class="card-footer"> <!-- Fee --> <!-- ko if: organisationNames.length > 1 --> <!-- ko if: isOnlineLearningPlatform --> <!-- ko if: minCostFee == maxCostFee --> <div class="card-cost-holder row row-cols-1"> <div class="col"> <label> <span>Subscription Fee:</span> <!-- ko if: $Util.isSfSeriesKeyword(courseTagging, $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.onlineFeePopUp(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> <!-- /ko --> <!-- ko ifnot: $Util.isSfSeriesKeyword(courseTagging, $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.onlineFeePopUp(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> <!-- /ko --> </label> <p><strong data-bind="text: '$'+maxCostFee"></strong></p> </div> </div> <!-- /ko --> <!-- ko ifnot: minCostFee == maxCostFee --> <div class="card-cost-holder row"> <div class="col"> <label> <span>Range From:</span> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.onlineFeePopUp(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> </label> <p><strong data-bind="text: '$'+minCostFee+' - '+'$'+maxCostFee"></strong></p> </div> </div> <!-- /ko --> <!-- /ko --> <!-- ko ifnot: isOnlineLearningPlatform --> <!-- ko if: minCostFee == maxCostFee --> <div class="card-cost-holder row row-cols-1"> <div class="col"> <label> <span>Full Course Fee:</span> <!-- ko if: $Util.isSfSeriesKeyword(courseTagging, $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.fullFeePopUpSCTP(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> <!-- /ko --> <!-- ko ifnot: $Util.isSfSeriesKeyword(courseTagging, $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.fullFeePopUp(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> <!-- /ko --> </label> <p><strong data-bind="text: '$'+maxCostFee"></strong></p> </div> </div> <!-- /ko --> <!-- ko ifnot: minCostFee == maxCostFee --> <div class="card-cost-holder row"> <div class="col"> <label> <span>Range From:</span> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.fullFeePopUp(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> </label> <p><strong data-bind="text: '$'+minCostFee+' - '+'$'+maxCostFee"></strong></p> </div> </div> <!-- /ko --> <!-- /ko --> <!-- /ko --> <!-- ko ifnot: organisationNames.length > 1 --> <!-- ko if: isOnlineLearningPlatform --> <!-- ko if: !isZeroDollarCourse && (Course_Funding === 'SFC' || Course_Funding === '135') --> <div class="card-cost-holder row row-cols-1"> <div class="col"> <label> <span>Subscription Fee:</span> <!-- ko if: $Util.isSfSeriesKeyword(courseTagging, $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.onlineFeePopUp(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> <!-- /ko --> <!-- ko ifnot: $Util.isSfSeriesKeyword(courseTagging, $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.onlineFeePopUp(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> <!-- /ko --> </label> <p><strong data-bind="text: '$'+Tol_Cost_of_Trn_Per_Trainee"></strong></p> </div> <div class="col" name="nettfee" style="display:none"> <label> <span>After SkillsFuture Funding:</span> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" name="eligibleGrants" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.nettFeePopUp(courseTitle, Course_Ref_Nos[0], null, areaOfTrainingsFull) }"></i> </a> </label> <p><strong data-bind="attr : { id : EXT_Course_Ref_Nos[0]}"></strong></p> </div> <div class="col" name="netspin"> <i class="fa fa-spinner fa-spin" style="font-size:24px"></i> </div> </div> <!-- /ko --> <!-- ko if : Course_Funding === 'NSFC_F' --> <div class="card-cost-holder row row-cols-1"> <div class="col"> <label> <span>Free</span> </label> </div> </div> <!-- /ko --> <!-- ko if : Course_Funding === 'NSFC_C' --> <div class="card-cost-holder row row-cols-1"> <div class="col"> <label> <span>Subscription Fee:</span> <!-- ko if: $Util.isSfSeriesKeyword(courseTagging, $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.onlineFeePopUp(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> <!-- /ko --> <!-- ko ifnot: $Util.isSfSeriesKeyword(courseTagging, $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.onlineFeePopUp(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> <!-- /ko --> </label> <p><strong data-bind="text: '$'+Tol_Cost_of_Trn_Per_Trainee"></strong></p> </div> </div> <!-- /ko --> <!-- /ko --> <!-- ko ifnot: isOnlineLearningPlatform --> <!-- ko if: !isZeroDollarCourse && (Course_Funding === 'SFC' || Course_Funding === '135') --> <div class="card-cost-holder row row-cols-1"> <div class="col"> <label> <span>Full Course Fee:</span> <!-- ko if: $Util.isSfSeriesKeyword(courseTagging, $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.fullFeePopUpSCTP(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> <!-- /ko --> <!-- ko ifnot: $Util.isSfSeriesKeyword(courseTagging, $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.fullFeePopUp(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> <!-- /ko --> </label> <p><strong data-bind="text: '$'+Tol_Cost_of_Trn_Per_Trainee"></strong></p> </div> <div class="col" name="nettfee" style="display:none"> <label> <span>After SkillsFuture Funding:</span> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" name="eligibleGrants" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.nettFeePopUp(courseTitle, Course_Ref_Nos[0], null, areaOfTrainingsFull) }"></i> </a> </label> <p><strong data-bind="attr : { id : EXT_Course_Ref_Nos[0]}"></strong></p> <!-- <sly data-sly-test='false'> <label> <span>After SkillsFuture Funding</span> <a href="javascript:void(0);"> <i class="bi bi-info-circle" name="eligibleGrants" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.nettFeePopUp(courseTitle, Course_Ref_Nos[0], null, areaOfTrainingsFull) }"></i> </a> </label> <p><strong data-bind="attr : { id : EXT_Course_Ref_Nos[0]}"></strong></p> </sly> <sly data-sly-test='true'> <p class="small"> <a href="javascript:void(0);" data-bind="click: function(){ $UserLoginUtil.showLoginOverlay(true, true, true, false); }"> Log in </a> to see the course fee after SkillsFuture Funding. </p> <p style="display: none;"><strong data-bind="attr : { id : EXT_Course_Ref_Nos[0]}"></strong></p> </sly> --> </div> <div class="col" name="netspin"> <i class="fa fa-spinner fa-spin" style="font-size:24px"></i> </div> </div> <!-- /ko --> <!-- ko if : Course_Funding === 'NSFC_F' --> <div class="card-cost-holder row row-cols-1"> <div class="col"> <label> <span>Free</span> </label> </div> </div> <!-- /ko --> <!-- ko if : Course_Funding === 'NSFC_C' --> <div class="card-cost-holder row row-cols-1"> <div class="col"> <label> <span>Full Course Fee:</span> <!-- ko if: $Util.isSfSeriesKeyword(courseTagging, $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.fullFeePopUpSCTP(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> <!-- /ko --> <!-- ko ifnot: $Util.isSfSeriesKeyword(courseTagging, $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a href="javascript:void(0);" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.fullFeePopUp(Course_Ref_Nos[0], areaOfTrainingsFull, courseTitle) }"></i> </a> <!-- /ko --> </label> <p><strong data-bind="text: '$'+Tol_Cost_of_Trn_Per_Trainee"></strong></p> </div> </div> <!-- /ko --> <!-- /ko --> <!-- /ko --> </div> </div> </div> <!-- ko if: $root.courseMax() >= 5 && $index() == 4 && $root.alternate_search_terms().length > 0 --> <div class="col"> <div class="card-alternate-search-div"> <div class="card-alternate-search-title"> <p>Can't find what you are looking for? Try these instead</p> </div> <div> <!-- ko foreach: $root.alternate_search_terms --> <a class="badge rounded-pill text-bg-white" data-bind="attr: { href: '/content/portal/en/portal-search/portal-search.html?q=' + encodeURIComponent($data) }, text: $data"></a> <!-- /ko --> </div> </div> </div> <!-- /ko --> <!-- ko if: $root.courseMax() < 5 && ($index() == $root.courseMax() - 1) && $root.alternate_search_terms().length > 0 --> <div class="col"> <div class="card-alternate-search-div"> <div class="card-alternate-search-title"> <p>Can't find what you are looking for? Try these instead</p> </div> <div> <!-- ko foreach: $root.alternate_search_terms --> <a class="badge rounded-pill text-bg-white" data-bind="attr: { href: '/content/portal/en/portal-search/portal-search.html?q=' + encodeURIComponent($data) }, text: $data"></a> <!-- /ko --> </div> </div> </div> <!-- /ko --> <!-- /ko --> <!-- /ko --> </div> </div> <br/> <div id="courses-pagination-holder" class="pagination-holder"> <nav> <ul class="pagination justify-content-center"> <li class="page-item" data-bind="attr: { class: $root.paginationModel.hasPrevious() ? 'page-item' : 'page-item disabled', name: 'prev' }"> <a class="page-link" href="#" data-bind="click: $root.paginationModel.loadPrevV3" aria-label="View previous page"> <i class="fa-solid fa-chevron-left"></i> </a> </li> <!-- ko foreach : $root.paginationModel.paginationList --> <li class="page-item" data-bind="visible: isPageNo, attr: { class: ($root.paginationModel.pageNumber() == number) ? 'page-item active' : 'page-item', value: number }"> <a class="page-link" href="#" data-bind="text: number, click: $root.paginationModel.loadPageV3.bind($data, number)"></a> </li> <li class="page-item" data-bind="visible: !isPageNo"><span>…</span></li> <!-- /ko --> <li class="page-item" data-bind="attr: { class: $root.paginationModel.hasNext() ? 'page-item' : 'page-item disabled', name: 'next' }"> <a class="page-link" href="#" data-bind="click: $root.paginationModel.loadMoreV3" aria-label="View next page"> <i class="fa-solid fa-chevron-right"></i> </a> </li> </ul> </nav> </div> </div> </div> </div> </div> <div class="modal fade" id="modalShowComments" tabindex="-1" aria-hidden="true"> <div class="modal-dialog modal-xl modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Trainees' Ratings</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <!-- Course Rating --> <div class="card-ratings-holder"> <!-- ko if: $root.courseTraineeCommentViewModel.qualityNoOfResponder() > 0 --> <div class="stars-holder rating-popup"> <!-- ko foreach: new Array(5) --> <i class="fa-solid fa-star" data-bind="attr: {class: generateStar($root.courseTraineeCommentViewModel.qualityStarRatings() , $index())}"></i> <!-- /ko --> </div> <span data-bind="text: $root.courseTraineeCommentViewModel.qualityNoOfResponder() + ' Ratings'"></span> <!-- /ko --> <!-- ko ifnot: $root.courseTraineeCommentViewModel.qualityNoOfResponder() > 0 --> <span>No Rating Yet</span> <!-- /ko --> </div> <hr class="divider"/> <!-- ko ifnot: $root.courseTraineeCommentViewModel.paginationCommentList().length > 0 --> <h5 class="modal-title"><span class="comment-popup-title">Trainees' Comments</span></h5> <div> <p>There are no trainee comments currently.</p> </div> <!-- /ko --> <!-- ko if: $root.courseTraineeCommentViewModel.paginationCommentList().length > 0 --> <div> <h5 class="modal-title comments-title-div"><span class="comment-popup-title">Trainees' Comments</span></h5> <div style="max-width: 15rem; min-width: 8rem; width: auto; margin-left: auto;" class="comments-title-div comments-display-right"> <select name="sortBy" class="comment-sort form-select" style="width:100%; border-radius: 0;" data-bind="options: courseTraineeCommentViewModel.sortOptions, placeholder: 'Sort By', optionsText: 'description', value: courseTraineeCommentViewModel.sortBy, optionsBind: 'attr: { disabled: !enabled() }'"> </select> </div> </div> <br/> <div class="schedule-cards-holder" data-bind="foreach: { data: courseTraineeCommentViewModel.paginationCommentList, as: 'traineeComment'}"> <div class="card"> <div class="card-body"> <div class="card-ratings-holder"> <div class="stars-holder"> <!-- ko foreach: new Array(5) --> <i class="fa-solid fa-star" data-bind="attr: {class: generateStar(traineeComment.starRating() , $index())}"></i> <!-- /ko --> </div> <span data-bind="text: traineeComment.commentDate()"></span> </div> <div class="card-comments-holder"> <div class="comments-holder"> <span data-bind="text: traineeComment.comment()"></span> </div> </div> </div> </div> </div> <br/> <div id="comment-pagination-holder" class="pagination-holder" data-bind="visible: courseTraineeCommentViewModel.paginationCommentList().length > 0"> <nav> <ul class="pagination justify-content-center"> <li class="page-item" data-bind="attr: { class: $root.courseTraineeCommentViewModel.paginationModel.hasPrevious() ? 'page-item' : 'page-item disabled', name: 'prev' }"> <a class="page-link" href="#" data-bind="click: function() { $root.courseTraineeCommentViewModel.paginationModel.loadPrevV3(); $root.courseTraineeCommentViewModel.loadPrevResult() } "> <i class="fa-solid fa-chevron-left"></i> </a> </li> <!-- ko foreach : $root.courseTraineeCommentViewModel.paginationModel.paginationList --> <li class="page-item" data-bind="visible: isPageNo, attr: { class: ($root.courseTraineeCommentViewModel.paginationModel.pageNumber() == number) ? 'page-item active' : 'page-item', value: number }"> <!-- <a class="page-link" href="#" data-bind="text: number, click: function() { $root.paginationModel.loadPageV3.bind($data, number); $root.loadPageResult(number) }"></a> --> <a class="page-link" href="#" data-bind="text: number, click: function() { $root.courseTraineeCommentViewModel.paginationModel.loadPageV3(number); $root.courseTraineeCommentViewModel.loadPageResult(number) }"></a> </li> <li class="page-item" data-bind="visible: !isPageNo"><span>…</span></li> <!-- /ko --> <li class="page-item" data-bind="attr: { class: $root.courseTraineeCommentViewModel.paginationModel.pageNumber() != $root.courseTraineeCommentViewModel.paginationModel.totalPages() ? 'page-item' : 'page-item disabled', name: 'next' }"> <a class="page-link" href="#" data-bind="click: function() { $root.courseTraineeCommentViewModel.paginationModel.loadMoreV3(); $root.courseTraineeCommentViewModel.loadNextResult() } "> <i class="fa-solid fa-chevron-right"></i> </a> </li> </ul> </nav> </div> <!-- /ko --> </div> </div> </div> </div> <script> $(document).ready(function() { $('.comment-sort').select2({ minimumResultsForSearch: Infinity }); }); </script></script> </div> <div class="tab-pane fade" id="pageContent_Tab_03" role="tabpanel"> <div id="articlesSearchResult" class="container-xxl"> <div class="one-column-layout"> <div class="page-content-header-holder"> <div class="page-content-search-result-header"> <div class="page-content-result-title flex-lg-grow-1"> <h5>149 result(s) found </h5> </div> </div> </div> <br/> <div class="page-content-body-holder"> <div class="article-card-holder"> <div class="row row-cols-1 g-3" data-bind="foreach: articleList"> <div class="col"> <div class="card"> <div class="card-img"> <img data-bind="attr: { src: imagePath }" src="" alt="" class="img-cover" data-object-fit="cover"/> </div> <div class="card-body"> <span data-bind="text: contentBucket" class="badge rounded-pill text-bg-primary"></span> <h5 data-bind="text: title"></h5> <p data-bind="text: description"></p> <div class="card-btn-holder d-grid d-lg-flex gap-2"> <a data-bind="attr: { href: path }" href="#" class="btn btn-primary" rel="nofollow">Read More</a> </div> </div> </div> </div> </div> </div> <br/> <div id="articles-pagination-holder" class="pagination-holder"> <!-- ko if : resultCount() > 0 && isKeywordSearch() --> <nav> <ul class="pagination justify-content-center"> <li class="page-item" data-bind="attr: { class: $root.hasPrevious() ? 'page-item' : 'page-item disabled' }"> <a href="#" class="page-link" data-bind="click : loadPrevV3"> <i class="fa-solid fa-chevron-left"></i> </a> </li> <!-- ko foreach : paginationList --> <li class="page-item" data-bind="visible: isPageNo, attr: { class: ($root.pageNumber() == number) ? 'page-item active' : 'page-item' }"> <a class="page-link" href="#" data-bind=" text: number, click: $root.loadPageV3.bind($data,number)"></a> </li> <li class="page-item" data-bind="visible: !isPageNo"><span>…</span></li> <!-- /ko --> <li class="page-item" data-bind="attr: { class: $root.hasNext() ? 'page-item' : 'page-item disabled' }"> <a href="#" class="page-link" data-bind="click : loadMoreV3"> <i class="fa-solid fa-chevron-right"></i> </a> </li> </ul> </nav> <!-- /ko --> </div> </div> </div> </div> </div> </div> </div> </div> <div class="globalSearchNoResults"> <div id="courseSearchResultEmpty" class="container-xxl"> <div class="one-column-layout"> <div class="page-content-body-holder"> <div class="pt-3"> <!-- <h4 class="mb-3">0 course(s) found for ""</h4> --> <h4 class="mb-3">0 "" course(s)</h4> <ul> <li>You might want to check your spelling</li> <li>You may enter fewer words, e.g. "Computer", "Excel"</li> <li>Include " " for better search results, e.g. "data security"</li> </ul> </div> <!-- Alternative Search Query --> <!-- ko if: alternate_search_terms().length > 0 --> <br/> <hr/> <br/> <div class="col"> <div class="card-alternate-search-div"> <div class="card-alternate-search-title"> <p>Can't find what you are looking for? Try these instead</p> </div> <div> <!-- ko foreach: $root.alternate_search_terms --> <a class="badge rounded-pill text-bg-white" data-bind="attr: { href: '/content/portal/en/portal-search/portal-search.html?q=' + encodeURIComponent($data) }, text: $data"></a> <!-- /ko --> </div> </div> </div> <!-- /ko --> <br/> <hr/> <br/> <div class="py-3"> <h4 class="mb-3">Popular Searches</h4> <dl data-bind="foreach : $PORTAL_SEARCH.popularSearches()"> <dd> <a href="#" class="link-primary" data-bind="text : keyword, click : function() { $PORTAL_SEARCH.searchPortalArticles(keywordText); }"> SkillsFuture Career Transition Programme</a> </dd> </dl> </div> <br/> <div class="py-3"> <h4 class="mb-3">You might want to check our categories below:</h4> <div class="aot-card-holder"> <div class="row row-cols-1 row-cols-md-3 gx-3"> <div class="col"> <a href="/content/portal/en/training-exchange/course-landing.html" class="btn btn-link link-dark"> <div class="card"> <div class="card-body p-3 py-md-5"> <span class="h5 mb-0">Areas of Training</span> </div> </div> </a> </div> <div class="col"> <a href="/content/portal/en/initiatives/initiatives.html" class="btn btn-link link-dark"> <div class="card"> <div class="card-body p-3 py-md-5"> <span class="h5 mb-0">Initiatives</span> </div> </div> </a> </div> <div class="col"> <a href="/content/portal/en/career-resources/career-resources.html" class="btn btn-link link-dark"> <div class="card"> <div class="card-body p-3 py-md-5"> <span class="h5 mb-0">Articles</span> </div> </div> </a> </div> </div> </div> </div> </div> </div> </div> </div> </div> <script> $CD_CURRENT_PAGE_TITLE = 'Global Search Results'; $CD_ROWS_PARAM = 24; $GLOBAL_SEARCH_NEW_SEARCH = true; $COMMENTS_ROWS_PARAM = 10; $CB_RESOURCE_PATH = '/content/portal/en/portal-search/portal-search/jcr:content'; $CB_RESOURCE_NAME = 'jcr:content'; </script> <div class="multiple-tp-overlay_v3"><div class="modal fade" id="multipleTpModal" tabindex="-1" style="display: none;" aria-hidden="true"> <div class="modal-dialog modal-xl modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">Multiple Training Partners</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <!-- ko if : $root.multipleTpModel.renderList && $root.multipleTpModel.renderList().length > 0 --> <span style="text-align: center;"> <div><h6>There are <b data-bind="text : $Util.getTPListUniqueCount($root.multipleTpModel.renderList())"></b> training partners for <span data-bind="text : multipleTpModel.renderList()[0].courseTitle()"></span></h6></div> </br> <div>Choose from Training Partners (Course Code) listed below:</div> <!-- ko if : multipleTpModel.action() === 'bookmark' --> <!-- ko foreach : multipleTpModel.renderList() --> <div> <a href="javascript:void(0);" data-bind="click: $root.multipleTpModel.bookmarkShowLogin, attr: { 'title': $Util.showLoginTooltip()}" class="btn btn-link"> <i class="fa-regular fa-heart"></i> </a> <span data-bind="html : trainingProviderAlias() + ' (' + extCourseRefNo() + ')' "></span> </div> <!-- /ko --> <!-- /ko --> <!-- <sly data-sly-include="templates/multiple-compare.html"/> --> <!-- ko if : multipleTpModel.action() === 'redirect' --> <!-- ko foreach : multipleTpModel.renderList() --> <div> <a href="#" target="_blank" data-bind="html : trainingProviderAlias() + ' (' + extCourseRefNo() + ')' , attr : { href : $INDIVIDUAL_CONSTANT.PAGE_URL.COURSE_DETAIL + '?' + $INDIVIDUAL_CONSTANT.URL_PARAM_KEY.COURSE_REF_NUM + '=' + encodeURIComponent(courseReferenceNumber()) + '&' + $INDIVIDUAL_CONSTANT.URL_PARAM_KEY.COURSE_TITLE + '=' + encodeURIComponent(courseTitle()) + '&' + $INDIVIDUAL_CONSTANT.URL_PARAM_KEY.AREA_OF_TRAINING + '=' + encodeURIComponent(areaOfTraining()) }, click: $root.multipleTpModel.trackRelatedLink"></a> </div> <!-- /ko --> <!-- /ko --> </span> <!-- /ko --> </div> <!-- <div class="modal-footer"> <div class="btn-holder"> <button type="button" class="btn btn-primary">Ok</button> </div> </div> --> </div> </div> </div></div> </div> <!-- <div id="div-course-carousel" class="page-bottom-section-holder page-section vm-container-jcr:content" tabindex="0"> --> <div id="div-course-carousel" class="vm-container-jcr:content course-carousel-holder" tabindex="0"> <div class="container-xxl"> <div class="page-tab-holder tab-holder"> <div class="nav nav-pills"> <li class="nav-item" role="presentation"> <button id="interested" class="nav-link" data-bind="click:$root.getCourses" data-bs-toggle="pill" data-bs-target="#carousel-tab" type="button" role="tab" aria-selected="false" tabindex="-1"> Courses You Might Be Interested In </button> </li> <!-- <sly data-sly-use.model="clientlibs/workforce/Workforce-v3/js/use-api/userNav.js"> <li class="nav-item" role="presentation"> <button id="featured" class="nav-link" data-bind="click:$root.getCourses" data-bs-toggle="pill" data-bs-target="#carousel-tab" type="button" role="tab" aria-selected="false" tabindex="-1"> Featured Courses </button> </li> </sly> <li class="nav-item" role="presentation"> <button id="popular" class="nav-link" data-bind="click:$root.getCourses" data-bs-toggle="pill" data-bs-target="#carousel-tab" type="button" role="tab" aria-selected="false" tabindex="-1"> Most Viewed Courses </button> </li> --> </div> <div id="feature-popular-owl" class="tab-content"> <div id="carousel-tab" class="tab-pane fade active show"> <div class="courses-card-holder" data-bind="showHide:showCarouselButtons()"> <div class="owl-carousel owl-theme"> <!-- ko template: { name: 'coursesTemplate', foreach: $root.courses, as: 'course', afterRender: $root.updateRenderStatus} --> <!-- /ko --> </div> </div> <div class="noCourse padding-20" data-bind="text : $TP_CONSTANT.MESSAGE_KEY.NO_COURSES_AVAILABLE, showHide : !showCarouselButtons()"></div> </div> <div class="d-flex gap-3 justify-content-center"> <button class="btn btn-outline-primary px-4" type="button" data-bind="click: viewAll">View More</button> </div> </div> <div id="course-landing-cdp-course-recommendation" class="tab-content d-none"> </div> <div id="global-search-cdp-course-recommendation" class="tab-content d-none"> </div> <div id="course-directory-cdp-course-recommendation" class="tab-content d-none"> </div> </div> </div> </div> <style> .course-carousel-holder{ min-height: 530px; } </style> <script id="coursesTemplate" type="text/html"> <div class="card"> <div class="card-img"> <div class="checkbox_whistlist" data-bind="attr: { 'title': $Util.showLoginTooltipForPrelogin()}"> <!-- ko if: $root.multipleTpModel.isBookmarked(tpCourseList()) --> <a data-bind="click : $root.multipleTpModel.bookmarkShowLogin" class="btn btn-link is-added"> <i class="fa-solid fa-heart"></i> <i class="fa-regular fa-heart"></i> </a> <!-- /ko --> <!-- ko ifnot: $root.multipleTpModel.isBookmarked(tpCourseList())--> <a data-bind="click : $root.multipleTpModel.bookmarkShowLogin" class="btn btn-link"> <i class="fa-solid fa-heart"></i> <i class="fa-regular fa-heart"></i> </a> <!-- /ko --> </div> <img data-bind="attr: { src: $INDIVIDUAL_CONSTANT.AOT_IMG_URL.THUMBNAILS + displayImageName() + '.jpg'}" alt="" class="img-cover" data-object-fit="cover"/> </div> <div class="card-body"> <h5 class="card-title"> <!-- <a target="_blank" data-bind="text : courseTitle, attr : { href : $INDIVIDUAL_CONSTANT.PAGE_URL.COURSE_DETAIL + '?' + $INDIVIDUAL_CONSTANT.URL_PARAM_KEY.COURSE_REF_NUM + '=' + encodeURIComponent(intCourseRefNo()) + '&' + $INDIVIDUAL_CONSTANT.URL_PARAM_KEY.COURSE_TITLE + '=' + encodeURIComponent(courseTitle()) + '&' + $INDIVIDUAL_CONSTANT.URL_PARAM_KEY.AREA_OF_TRAINING + '=' + encodeURIComponent(areaOfTrainings()[0].description()) }, click: $root.goToCourseDetailPage"></a> --> <!-- ko if : JSON.parse(tpCourseList()).length > 1 --> <a target="_blank" href="#" data-bind="text : $Util.shortenText(courseTitle(), $INDIVIDUAL_CONSTANT.SHORTEN_TEXT_SIZE.COURSE_TITLE), click : function(){ $root.multipleTpModel.redirect; $TEX_ANALYTICS.onclickCourses($CC_ANALYTICS_RELATED_LINK_NAME, extCourseRefNo(), areaOfTrainings()[0].description(), courseTitle(), false); return true; }, attr : { title : courseTitle() }"></a> <!-- /ko --> <!-- ko ifnot : JSON.parse(tpCourseList()).length > 1 --> <a target="_blank" href="#" data-bind="text : $Util.shortenText(courseTitle(), $INDIVIDUAL_CONSTANT.SHORTEN_TEXT_SIZE.COURSE_TITLE), attr : { title : courseTitle(), href : $root.multipleTpModel.getRedirectUrl($data) }, click : function(){ $TEX_ANALYTICS.onclickCourses($CC_ANALYTICS_RELATED_LINK_NAME, extCourseRefNo(), areaOfTrainings()[0].description(), courseTitle(), false); return true; }"></a> <!-- /ko --> </h5> <div class="course-provider"> <a data-bind="text : $Util.shortenText(trainingProviderAlias(), $INDIVIDUAL_CONSTANT.SHORTEN_TEXT_SIZE.TRAINING_PROVIDER), attr : { title : trainingProviderAlias(), href : $INDIVIDUAL_CONSTANT.PAGE_URL.TP_PROFILE_PUBLIC + '?UEN=' + trainingOrganisation.uen() }" target="_blank"></a> </div> <div class="card-ratings-holder"> <!-- ko if : courseQuality.numberOfRespondents() > 0 --> <div class="stars-holder"> <!-- ko foreach: new Array(5) --> <i class="fa-solid fa-star" data-bind="attr: {class: $root.generateStar($parent.courseQuality.starsRatingForOverallQuality() , $index())}"></i> <!-- /ko --> </div> <span data-bind="text: courseQuality.numberOfRespondents() + ' Ratings'"></span> <!-- /ko --> <!-- ko ifnot : courseQuality.numberOfRespondents() > 0 --> <span>No Ratings Yet</span> <!-- /ko --> </div> </div> <!-- ko if: courseRuns().length > 0 --> <ul class="list-group list-group-flush"> <li class="list-group-item"><label><span>Upcoming Course Date:</span></label> <p> <strong data-bind="text: $Util.formatDate(courseRuns()[0].courseStartDate())"></strong> </p></li> </ul> <!-- /ko --> <div class="card-footer"> <div class="card-cost-holder row"> <div class="col"> <!-- ko if: courseTaggings()[0].code() !== '9001' --> <label> <span>Full Fee:</span> <!-- ko if: $Util.isSfSeriesKeyword(getCourseTaggingsCode(), $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a rel="nofollow" href="#" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.fullFeePopUpSCTP(courseReferenceNumber(), areaOfTrainings()[0].description(), courseTitle()); }"></i> </a> <!-- /ko --> <!-- ko ifnot: $Util.isSfSeriesKeyword(getCourseTaggingsCode(), $INDIVIDUAL_CONSTANT.COURSE_TAG_CODE.SCTP_COURSE) --> <a rel="nofollow" href="#" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="click: function(data, event) { $Util.fullFeePopUp(courseReferenceNumber(), areaOfTrainings()[0].description(), courseTitle()); }"></i> </a> <!-- /ko --> </label> <p><strong data-bind="text: $Util.formatFee(totalCostOfTrainingPerTrainee())"></strong></p> <!-- /ko --> <!-- ko if: courseTaggings()[0].code() === '9001' --> <label> <strong><h3>Free</h3></strong> </label> <!-- /ko --> </div> <!-- ko if : $Util.isSfSeriesKeyword(getCourseTaggings(), $INDIVIDUAL_CONSTANT.COURSE_TAG.SFC_COURSE) --> <div class="col" name="nettfee" style="display:none"> <label> <span>Nett Fee:</span> <a rel="nofollow" href="#" aria-label="Click for more info"> <i class="bi bi-info-circle" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Click for more info" data-bind="attr : { id : extCourseRefNo() + '_EG' }"></i> </a> </label> <p><strong data-bind="attr : { id : extCourseRefNo}"></strong></p> </div> <!-- /ko --> </div> </div> </div></script> <script> $CC_RESOURCE_PATH = '/content/portal/en/portal-search/portal-search/jcr:content'; $CC_RESOURCE_NAME = 'jcr:content'; $CC_ANALYTICS_RELATED_LINK_NAME = 'Featured Courses'; //Analytics Tracking $(document).on('click', '#interested', function(){ var tabName = $(this).text() || ''; $CC_ANALYTICS_RELATED_LINK_NAME = 'Courses You Might Be Interested In'; if (tabName) { $TEX_ANALYTICS.trackTabViewed(tabName); } }); $(document).on('click', '#featured', function(){ var tabName = $(this).text() || ''; $CC_ANALYTICS_RELATED_LINK_NAME = 'Featured Courses'; if (tabName) { $TEX_ANALYTICS.trackTabViewed(tabName); } }); $(document).on('click', '#popular', function(){ $CC_ANALYTICS_RELATED_LINK_NAME = 'Most Viewed Courses'; var tabName = $(this).text() || ''; if (tabName) { $TEX_ANALYTICS.trackTabViewed(tabName); } }); $(document).on('click', '#nonSFC', function(){ $CC_ANALYTICS_RELATED_LINK_NAME = 'Free/Special Rate Courses'; var tabName = $(this).text() || ''; if (tabName) { $TEX_ANALYTICS.trackTabViewed(tabName); } }); </script> </div> <style> .main-body-holder{ min-height: 5851px; } </style> </main> <footer class="sgds footer screen-v3 bootstrap-v3 footer-background custom-footer-style"> <section class="footer-top"> <div class="container-fluid"> <div class="footer-header"> <div class="row"> <div class="col-lg-9"> <br/> <div class="title">MySkillsFuture</div> <br/> <div>MySkillsFuture is a one-stop portal to support Singaporeans in their lifelong learning journey. Individuals can discover training opportunities, submit SkillsFuture Credit claims and more.</div> </div> </div> </div> <div class="flex-fill"> <div class="footer-mandatory-links"> <ul> <li><a href="/content/portal/en/about/about-myskillsfuture.html" style="font-weight: 700;">About Us</a></li> <li><a href="/content/portal/en/header/faqs/related-sites.html" style="font-weight: 700;">Related Sites</a></li> </ul> </div> </div> </div> </section> <section class="footer-logo-holder"> <div class="container-fluid"> <div class="footer-logo-row justify-content-start"> <div class="d-lg-flex flex-md-column flex-lg-row"> <label>In association with:</label> <div> <a href="http://www.moe.gov.sg/" x-cq-linkchecker="skip"> <img src="/etc/clientlibs/msf/core-base/V3-ui/images/footer_logo_moe.svg" alt="Logo of Ministry of Education, Singapore." title="Navigate to the https://www.moe.gov.sg/"/> </a> </div> <div> <a href="https://www.skillsfuture.gov.sg/" x-cq-linkchecker="skip" title="Navigate to the https://www.skillsfuture.gov.sg/"> <img src="/etc/clientlibs/msf/core-base/V3-ui/images/footer_logo_skillsfuturesg.svg" alt="Logo for SkillsFuture, Singapoe."/> </a> </div> </div> <span class="vr d-none d-lg-flex"></span> <div class="d-lg-flex skillsfuture-footer-logo-v3"> <label>An initiative of:</label> <div><a href="http://www.skillsfuture.gov.sg/" target="_blank" title="Navigate to the https://www.skillsfuture.gov.sg/"> <img src="/etc/clientlibs/msf/core-base/V3-ui/images/footer_logo_skillsfuture.svg" alt=""/> </a> </div> </div> </div> </div> </section> <section class="footer-bottom"> <div class="container-fluid"> <div class="d-grid d-lg-flex"> <div class="flex-fill"> <div class="footer-copyrights"> <div class="d-inline-flex justify-content-lg-end text-lg-end gap-4 footer-float-right"> <div class="footer-mandatory-links"> <ul> <li><a href="/content/portal/en/header/faqs/for-further-assistance.html">Contact Us</a></li> <li><a href="https://service-portal.skillsfuture.gov.sg/s/feedback">Feedback</a></li> <li><a href="/content/portal/en/header/faqs/portal.html">FAQ</a></li> <li><a href="https://www.reach.gov.sg/">REACH</a></li> </ul> </div> </div> </div> </div> </div> <div class="d-lg-none"><br/></div> <div class="d-grid d-lg-flex"> <div class="flex-fill"> <div class="footer-mandatory-links"> <ul> <li><a href="https://www.tech.gov.sg/report_vulnerability" target="_blank">Report Vulnerability</a></li> <li><a href="/content/portal/en/footer/privacy-policy.html" target="_self">Privacy Policy</a></li> <li><a href="/content/portal/en/footer/terms-of-use.html" target="_self">Terms of Use</a></li> <li><a href="/content/portal/en/header/faqs/supported_browsers0.html" target="_self">Supported Browsers</a></li> </ul> </div> </div> </div> <br/> <div class="flex-fill"> <div class="footer-copyrights"> <div class="d-inline-flex justify-content-lg-end text-lg-end gap-4 copyright-float-right"> <p class="m-0" id="footerLastUpdatedDate">Last Updated </p> <p class="mt-0">© 2024 Government of Singapore</p> </div> </div> </div> <br/> </div> </section> </footer> <script type="text/javascript" charset="utf-8"> $(document).ready(function (){ if(typeof moment !== "undefined"){ var lastUpdatedDate = moment(new Date()).format('DD MMM YYYY'); $('#footerLastUpdatedDate').append(lastUpdatedDate); }else{ var currentDateArr = (new Date).toDateString().split(" "); var lastUpdatedDate = currentDateArr[2]+" "+currentDateArr[1]+" "+currentDateArr[3]; $('#footerLastUpdatedDate').append(lastUpdatedDate); } }); </script> <script type="text/javascript" charset="utf-8"> $(document).ready(function (){ if(CommonUtils.checkUserIsLogin()){ $(document).idleTimeout({ idleTimeLimit: 14*60, idleCheckHeartbeat: 2, // Frequency to check for idle timeouts in seconds dialogDisplayLimit: 1*60, // Time to display the warning dialog before logout (and optional callback) in seconds. dialogTitle: 'Session Expiration Warning', // also displays on browser title bar dialogText: 'Because you have been inactive, your session is about to expire.', dialogTimeRemaining: 'Time remaining', dialogStayLoggedInButton: 'Stay Logged In', dialogLogOutNowButton: 'Log Out Now', logoutUrl:"/content/portal/en/index.html", redirectUrl:"/content/portal/en/index.html", }); setInterval(CommonUtils.extendFnScheduler, 4*60*1000); if (!(window.location.href.indexOf('/uam/') > -1) && (window.location.href.indexOf('/employer/jobs') > -1 || window.location.href.indexOf('/employer/feedback') > -1 || window.location.href.indexOf('/employer/settings') > -1 || window.location.href.indexOf('/employer/profile') > -1 || window.location.href.indexOf('/employer/candidates') > -1 || window.location.href.indexOf('/employer/tripartite-standards') > -1 || window.location.href.indexOf('/employer/overview') > -1 || window.location.href.indexOf('/employer/registration') > -1 || window.location.href.indexOf('/employer/create') > -1 || window.location.href.indexOf('/employer/interview') > -1)) { window.location.href=PortalConstants.URL.MCF_PAGE_URL.CAREERS_FUTURE; } }else{ //ILPPROD-6143,URL Redirection to MCF Employer Portal from MySF Portal if (window.location.href.indexOf('/employer') > -1) { window.location.href=$GLOBAL_CONSTANTS.PAGE_URL.ERROR_PAGE; } else { clearInterval(CommonUtils.extendFnScheduler); var isSessionTime=$.cookie("sessionTimeOut"); var message; if(isSessionTime=='true'){ $.removeCookie("sessionTimeOut"); // remove the cookie that was used to enter "If" sstatement to display popup if(store.get('sessionExpired')){ store.set('sessionExpired',false); message = "Your session has expired. Click 'CLOSE' to close the current window."; /* $("#Common_Bootstrap_Modal_Popup #popup-content").text("") .text("Your session has expired. Click 'CLOSE' to close the current window."); */ }else{ message = "You have been logged out because another login session was detected. Click ‘CLOSE’ to close the current window."; /* $("#Common_Bootstrap_Modal_Popup #popup-content").text("") .text("You have been logged out because another login session was detected. Click ‘CLOSE’ to close the current window."); */ } CommonUtils.showCommonPopup("warning",message,null,null,"CLOSE"); /* $("#Common_Bootstrap_Modal_Popup").modal({ backdrop: 'static', keyboard: false }); */ $.cookie.defaults = { path: '/content'}; $.removeCookie("sessionTimeOut"); // delete cookie from /content $.cookie.defaults = { path: '/'}; $.removeCookie("sessionTimeOut"); clearComparisonCache(); } } } if (!$("#myInfoRedirect").length) { localStorage.removeItem("myInfoRedirect") } if(typeof moment !== "undefined"){ $('#last-updated-date').text(moment(new Date()).format('DD MMM YYYY')); }else{ var currentDateArr = (new Date).toDateString().split(" "); $('#last-updated-date').text(currentDateArr[2]+" "+currentDateArr[1]+" "+currentDateArr[3]); } }); </script> <script> $(document).ready(function() { // Analytics scripts start // if (typeof WorkforceAnalytics != 'undefined') { try{ WorkforceAnalytics.Common.trackLoginUserType(); WorkforceAnalytics.HeaderMenu.trackMenuClickForInternalPages(); }catch(err){ console.log('Analytics Error!'); } } if (typeof digitalData != "undefined" && digitalData.page && digitalData.page.pillar && digitalData.page.audience) { _satellite.pageBottom(); } // Analytics scripts end // //Check duplicate session if(!window.location.href.indexOf("/content/admin") > -1) { $UserLoginUtil.checkDuplicateSession(); } // show preference popup at homepage if user have not edited if(window.location.href.indexOf("/content/portal/en/index") > -1) { if(CommonUtils.checkUserIsLogin() && (PortalConstants.ENCODED_INFO["log-type"] == "SP" || PortalConstants.ENCODED_INFO["isPortalLogin"] == "true")) { CommonUtils.showIndividualPreferenceSetting(); } } var individualLoginType = RequestUtil.getURLParameter("individualLoginType"); if (individualLoginType && (individualLoginType == 'SingPass') && !(CommonUtils.checkUserIsLogin() && $UserLoginUtil.userLoginType == 'SP')) { $(window).bind("load", function () { setTimeout(function () { var getIndividualLoginTypeUrl = window.location.href; var individualLoginTypeRedirectUrl = $Util.removeURLParameter(getIndividualLoginTypeUrl, "individualLoginType"); assignRoute(individualLoginTypeRedirectUrl); $UserLoginUtil.submitILPIndividualLogin('individual-sp-login-form'); }, 1000); }); } }); </script> <link rel="stylesheet" href="/etc/clientlibs/msf/core-modules/pm/pm_main.min.css" type="text/css"> <script src="/etc/clientlibs/msf/core-modules/pm/pm_main.min.js"></script> <!-- Will override in child template --> <!-- ALERT BOX POP UP PANEL --> <!-- **************************** --> <div id="Alert_PopupPanel" style="display:none;" class="modal fade"> <div class="Closebtn_PopupPanel"></div> <div class="contentblock"> <div class="message">Place your text here</div> <div class="ActionPanel"> <button class="btn btn_bigorange confirmButton" type="button">OK</button> <a href="#" class="btn btn_bigorange confirmLink" style="display:none;" type="button">OK</a> <button class="btn btn_bigorange cancelButton" type="button">Cancel</button> </div> </div> </div> <!-- Yes No POP UP PANEL --> <!-- **************************** --> <div id="Common_PopupPanel" style="display:none;" class="modal fade"> <div class="Closebtn_PopupPanel"></div> <div class="contentblock"> <div class="message"></div> <div class="ctabox"> <button class="ctabtn small confirmButton" type="button"></button> <a rel="nofollow" href="#" class="btn btn_bigorange confirmLink" style="display:none;" type="button"></a> <button class="ctabtn small cancelButton" type="button"></button> </div> </div> </div> <!-- Common Modal Popup by Bootstrap --> <div class="modal fade" id="Common_Bootstrap_Modal_Popup" tabindex="-1" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <div class="general-message-holder"> <div> <div class="card"> <div class="card-body"> <div id="popup-icon-holder" class="message-icon mb-4"> </div> <h3 id="popup-content" class="mb-4"></h3> <div class="btn-holder justify-content-center"> <button data-bs-dismiss="modal" id="popup-btn-2" type="button" class="btn btn-outline-dark"></button> <button data-bs-dismiss="modal" id="popup-btn-1" type="button" class="btn btn-primary"></button> <!-- <a data-dismiss="modal" class="btn btn-outline-dark" id="popup-btn-2"></a> <a data-dismiss="modal" class="btn btn-primary" id="popup-btn-1"></a> --> </div> </div> </div> </div> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary d-none" data-bs-dismiss="modal">Close</button> </div> </div> </div> </div> <div id="duplicate_session_popup_modal" data-keyboard="false" data-backdrop="static" aria-hidden="true" class="modal fade duplicateSessionPopupModal" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" style="text-align: center;">Duplicate Sessions</h4> </div> <div class="modal-body"> <div id="duplicate_session_container" style="text-align: center;"> <span>Another login session has been detected. If you continue, the previous session will be removed.</span> <br/><br/> <span>Do you want to continue?</span> </div> <div class="duplicateSessionContainer" style="text-align: center;margin-top: 23px;"> <a rel="nofollow" href="#" id="duplicate_session_popup_modal_yes_buttton" class="ctabtn tiffany">Yes</a> <a rel="nofollow" href="#" id="duplicate_session_popup_modal_logout_buttton" class="ctabtn tiffany">Logout</a> </div> </div> </div> </div> </div> </body> </html>