CINXE.COM
ApLM Portal
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="keywords"/> <meta name="description"/> <meta name="last-cached" content="5/12/2024 @ 3:25:20"/></meta> <!-- Schema.org markup for Google+ --> <meta itemprop="name" content="ApLM Portal | Myskillsfuture.gov.sg"/> <meta itemprop="description"/> <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="ApLM Portal | Myskillsfuture.gov.sg"/> <meta name="twitter:description"/> <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="ApLM Portal | Myskillsfuture.gov.sg"/> <meta property="og:description"/> <meta property="og:url" content="https://www.myskillsfuture.gov.sg/content/student/en/aplm.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"/> <link rel="icon" href="/favicon.ico"/> <!--CR-04/2021 VICA--> <link href="https://webchat.vica.gov.sg/static/css/chat.css" rel="stylesheet"/> <title>ApLM Portal</title> <script src="/etc/designs/msf/aplm/aplm-core/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/designs/msf/aplm/aplm-core/aplm-base.min.css" type="text/css"> <script src="/etc/designs/msf/aplm/aplm-core/aplm-base.min.js"></script> <link rel="stylesheet" href="/etc/designs/msf/aplm/aplm-core/aplm-common.min.css" type="text/css"> <script type="text/javascript"> digitalData = { page: { pillar: 'ApLM', audience: "ApLM", type: 'Course Listing' }, user: { id: '294de3557d9d00b3d2d8a1e6aab028cf' // from the backend user database } }; </script> <script></script> <script src="https://assets.wogaa.sg/scripts/wogaa.js"></script> <!-- Will override in child template --> <link rel="stylesheet" href="/etc/designs/msf/aplm/course-listing.min.css" type="text/css"> <script src="/etc/designs/msf/aplm/course-listing.min.js"></script> <script type="text/javascript" src="/etc.clientlibs/clientlibs/granite/utils.js"></script> <div> <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> </div> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> <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> <meta http-equiv="Content-Security-Policy" content="default-src https: 'unsafe-eval' 'unsafe-inline'; object-src 'none'; img-src 'self' data:"/> </head> <body ontouchstart class="page course-listing"> <div id="maintenanceMessage"><script> var MAINTENANCE={ KEY:"MAIN-2019-0003", STUDENT:"<b>Myskillsfuture.gov.sg</b> will be undergoing scheduled maintenance from 28 November 2019 10:00 pm to 29 November 2019 12:00 am. During this period, the portal will be unavailable. We apologise for any inconvenience caused. Thank you", WORKFORCE:"<b>Myskillsfuture.gov.sg</b> will be undergoing scheduled maintenance from 28 November 2019 10:00 pm to 29 November 2019 12:00 am. During this period, the portal will be unavailable. We apologise for any inconvenience caused. Thank you", TRAINING_PROVIDER: "<b>Training Partners Gateway</b> will be undergoing scheduled maintenance from 28 November 2019 10:00 pm to 29 November 2019 12:00 am. During this period, the portal will be unavailable. We apologise for any inconvenience caused. Thank you", UAM:"<b>Myskillsfuture.gov.sg</b> will be undergoing scheduled maintenance from 28 November 2019 10:00 pm to 29 November 2019 12:00 am. During this period, the portal will be unavailable. We apologise for any inconvenience caused. Thank you", SHOW_MAINTENACE:false, START_TIME: "2017-11-29T00:06:00.000Z", END_TIME: "2019-11-29T14:15:00.000Z" } </script> <style> .close-maintenance{ position: relative; margin-left: 99%; z-index: 11; cursor: pointer; color: #ffffff; top: 2px; font-size: 20px; font-family: 'FontAwesome'; } #mainDiv fa-close::before { font-family: 'FontAwesome'; font-weight:normal; font-size: 20px; line-height: 24px; padding-top: 1px; content: '\f00d'; color: #fff; float: right; } .leftBox{ width:100%; } .maintenance_message_text { font-family:'Source Sans Pro', regular; font-size: 17px; color: #fff; width:96%; } #mysf-header .maintenance_message_text maintenance_message_close { font-size: 16px; color: #FFFFFF; } .maintenance_message_close{ width:0%; /* padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto; */ } #maintenanceMessageBox{ position: relative; z-index: 10; min-width: 260px; border: none; padding: 10px; padding-right: 20px; text-transform: none; background: #3e3e3e; text-align: left; } .exclamation{ position: relative; z-index: 11; color: #e68717; top: 2px; 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; } #mysf-header .fa-exclamation-triangle{ color: #65B8FE; font-size: 30px; } .leftContent{ } @media(max-width:1215px){ .exclamation{ width:8%; } .maintenance_message_text{ width:92%; } } @media(max-width:662px){ .exclamation{ width:15%; } .maintenance_message_text{ width:85%; } .maintenance_message_text{ font-size:15px; } } </style> <div id="mainDiv" style="display:none"> <div id="maintenanceMessageBox" class='clear'> <div class="container"> <div style="float:left" class='leftBox'> <div class="leftContent"> <div class="exclamation " style="float:left"> <span class="fa-exclamation-triangle "></span> </div> <div class="maintenance_message_text" style="float:right" id="displayMessage"></div> </div> </div> <div style="float:right" class="maintenance_message_close "> <span class="close-maintenance fa-close" onclick="closeMessage()"></span> </div> </div> </div> </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 $('#maintenanceMessageBox').hide(); //if(window.location.href.indexOf("/content/portal/en/training-provider") >= 0){ $('#spaceMaintenance').css('padding-top','0px'); //} }; 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() { if(sessionStorage.getItem("curMessageKey") !=MAINTENANCE.KEY){ var returnStatus = checkMessageShowstatus(); if(!returnStatus){ MAINTENANCE.SHOW_MAINTENACE=false; $('#displayMessage').html(""); $('#mainDiv').hide(); }else{ $('#displayMessage').html(getMessage()); $('#mainDiv').show(); if($('#maintenanceMessageBox')){ if(window.location.href.indexOf("/content/portal/en/training-provider") >= 0){ var maintenanceMessageHeight = ($('#maintenanceMessageBox').height()+20); var marginHeight = parseInt($('body').css('margin-top')); var lionBannerHeight = $('#lion-banner-container').height() + 10; var headerHeight = $('#site-header-container').height() + lionBannerHeight; var maintenanceOffset = marginHeight - maintenanceMessageHeight; var spaceMaintenanceHeight = (headerHeight - maintenanceOffset); $('#spaceMaintenance').css('padding-top',''+spaceMaintenanceHeight+'px'); } else{ if($('#maintenanceMessageBox').height() > 0) { $('#spaceMaintenance').css('padding-top',''+($('#maintenanceMessageBox').height()+20)+'px'); }else{ setTimeout(function(){ $('#spaceMaintenance').css('padding-top',''+($('#maintenanceMessageBox').height()+20)+'px'); }, 450); } } } } 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'); } } } }); 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="sgds-masthead" aria-label="Official SG Government Agency Website"> <div class="sgds-container "> <div class="row is-mobile"> <div class="col"> <a href="https://www.gov.sg" target="_blank"> <span class="sgds-icon sgds-icon-sg-crest"></span> <span class="is-text">A Singapore Government Agency Website</span> </a> </div> </div> </div> </div> --> <!-- End - Inclusion of SGDS script for Masthead banner --> <div id="cookieMessage"><!-- 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'; } #cookieDiv .leftBox{ width:100%; } .cookie_message_text{ font-family:'Source Sans Pro', regular; font-size: 17px; color: #fff; width:96%; } .cookie_message_close{ width:0%; /* 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; } @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 style="float:right" 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> </div> <div id="blackoutbox"> </div> <!-- MAIN NAVIGATION Student--> <nav id="main-nav" class="navbar"> <div class="container"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle" id="sidr-toggle"> <i class="fa fa-bars fa-fw"></i> <i class="fa fa-close fa-fw"></i> </button> <a class="navbar-brand no-padding-left" href="/content/student/en/aplm.html"><!-- SPU-2006 --> <img class="myskillsfuture-logo" alt="My Skills Future Logo" src="/etc/designs/msf/student/student-common/images/logo_myskillsfuture.png"/> </a> </div> <!-- Collect the nav links, forms, and other content for toggling --> <div class="navbar-collapse collapse" id="myskillsfuture-main-menu"> <div class="navbar-right"> <ul class="nav navbar-nav navbar-primary"> <li> <a href="/content/student/en/aplm/about.html">About</a> </li> <li> <a href="/content/student/en/aplm/course.html">Courses</a> </li> <li> <a href="/content/student/en/aplm/help.html">Help</a> </li> </ul> <ul class="nav navbar-nav navbar-tertiary"> <li class="userNavPhoto hidden"> <div id="nav-profile-image" class="portal-nav-popover portal-nav-userInfo" data-placement="bottom" data-toggle="popover"> <img id="user-profile-image" class="btn btn-link btn-circle img-responsive" src="/etc/designs/msf/student/student-common/images/default-avatar.v9899025.gif" alt=""/> </div> <div class="popover-content hide"> <div class="user-dropdown-profile"> <div id="profileName"></div> <hr/> <a class="dropdown-item" href="/content/student/en/aplm/change-password.html">Change Password</a> </div> </div> </li> <li> <a href="javascript:void(0)" class="btn btn-link btn-round btn-gray-light studentHeaderbtn loginbtn hidden"> Login <i class="fa fa-fw fa-lock"></i> </a> <a href="javascript:void(0)" class="btn btn-link btn-round btn-gray-light studentHeaderbtn logoutbtn hidden"> Logout <i class="fa fa-fw fa-unlock"></i> </a> </li> </ul> </div><!-- /.navbar-right --> </div><!-- /.navbar-collapse --> </div><!-- /.container-fluid --> <div id="mobile-view-search-bar" class="hidden-lg"> <div class="input-group container"> <span class="input-group-addon"><span class="fa fa-search"></span></span> <input type="text" class="mobileportalSearch form-control" placeholder="Search by Keyword" autocomplete="off"/> <div class="input-group-btn"> <span class="hidden mobileSearchSelectedValue"></span> <button type="button" onclick="mobileViewGotoSearchResultPage()" class="btn btn-secondary">Search</button> </div> </div> </div> <!-- message of network disconnection CR-34 2020-11-07 --> <div id="networkDisconnectionMessage"> <style> #networkDisconnectionMessage .close-maintenance{ position: relative; margin-left: 99%; z-index: 11; cursor: pointer; color: #ffffff; top: 2px; font-size: 20px; font-family: 'FontAwesome'; } #networkDisconnectionMessageDiv fa-close::before { font-family: 'FontAwesome'; font-weight:normal; font-size: 20px; line-height: 24px; padding-top: 1px; content: '\f00d'; color: #fff; float: right; } #networkDisconnectionMessage .leftBox{ width:100%; } #networkDisconnectionMessage .maintenance_message_text { font-family:'Source Sans Pro', regular; font-size: 17px; color: #fff; width:96%; } #networkDisconnectionMessage .maintenance_message_text maintenance_message_close { font-size: 16px; color: #FFFFFF; } #networkDisconnectionMessage .maintenance_message_close{ width:0%; } #networkDisconnectionMessageBox { position: relative; z-index: 10; min-width: 260px; border: none; padding: 10px; padding-right: 20px; text-transform: none; background: #3e3e3e; text-align: left; height:50px; } #networkDisconnectionMessage .exclamation{ position: relative; z-index: 11; color: #e68717; top: -10px; font-size: 36px; font-family: 'FontAwesome'; width:4%; } #networkDisconnectionMessage fa-exclamation-triangle::before { font-family: 'FontAwesome'; font-weight:normal; line-height: 24px; padding-top: 1px; content: '\f00d'; color: #e68717; } #networkDisconnectionMessage .fa-exclamation-triangle{ color: #65B8FE; font-size: 30px; } #networkDisconnectionMessage .leftContent{ } @media(max-width:1215px){ .exclamation{ width:8%; } #networkDisconnectionMessage .maintenance_message_text{ width:92%; } } @media(max-width:662px){ #networkDisconnectionMessage .exclamation{ width:15%; } #networkDisconnectionMessage .maintenance_message_text{ width:85%; } #networkDisconnectionMessage .maintenance_message_text{ font-size:15px; } } </style> <div id="networkDisconnectionMessageDiv"> <div id="networkDisconnectionMessageBox" class='clear' style="display:none"> <div class="container"> <div style="float:left" class='leftBox'> <div class="leftContent"> <div class="exclamation " style="float:left"> <span class="fa-exclamation-triangle "></span> </div> <div class="maintenance_message_text" style="float:right" id="displayMessage">No network connection. Reconnect to keep the browsing going. </div> </div> </div> <div style="float:right" class="maintenance_message_close "> <span class="close-maintenance fa-close" onclick="closeNetworkMessageBox()"></span> </div> </div> </div> </div> <script> function openNetworkMessageBox() { $('#networkDisconnectionMessageBox').show(); } function closeNetworkMessageBox() { $('#networkDisconnectionMessageBox').hide(); }; function initializeDetection() { console.log('initializeDetection....'); window.addEventListener("offline", function(event) { console.log('status: network is disconnected at ', new Date()); openNetworkMessageBox(); }) window.addEventListener("online", function(event) { console.log('status: network is connected at ', new Date()); closeNetworkMessageBox(); }) if (navigator.onLine) closeNetworkMessageBox(); else openNetworkMessageBox(); } $(document).ready(function(){ initializeDetection(); }) </script> </div> </nav> <div id="sub-nav-placeholder"></div> <style> #sidr .fa-fw{font-size:20px;text-align:center} #sidr.sidr.right{ padding-top:0px; } /* SPU-676 */ #sidr { z-index: 999; } /* SPU-676 */ /*3034*/ #main-nav .student_navBar_secondary > li:first-child > a { border-left:none ; } #main-nav .student_navBar_primary > li:last-child > a { border-left:1px solid #cccccc; } #main-nav .student_navBar_primary{ margin-right:0px !important; } .student_navBar_primary>li>a{ padding-left:10px !important; } /*3034*/ /* for CR34: mobile view search bar change*/ #mobile-view-search-bar{ display: none; padding: 20px 0; margin-top: -2px; background-color: #ececec; } #mobile-view-search-bar .input-group{ border-radius: 0; border: none; background-color: #ececec; } #mobile-view-search-bar .input-group-addon{ background-color: #f7f7f7; border: none; } #mobile-view-search-bar input{ border: none; background-color: #ffffff; } #mobile-view-search-bar button{ border-radius: 0; width: auto; height: 53px; background-color: #dd8709; padding: 8px 20px; font-size: 16px; border-bottom-right-radius: 5px; border-top-right-radius: 5px; } /* for CR34 */ </style> <script> function addVICA_ChatbotJS() { var vica_script = document.createElement('script'); vica_script.setAttribute('src','https://webchat.vica.gov.sg/static/js/chat.js'); vica_script.setAttribute('id','vica_chatbot'); document.body.appendChild(vica_script); } function updateVICA_Environment() { var vica =document.getElementById('webchat'); if (vica) { var non_prd = window.location.hostname.toLowerCase() != 'www.myskillsfuture.gov.sg'; if (non_prd) vica.setAttribute('app-environment-override', 'draft'); } } $(document).ready(function () { $("#nav-portal-search").on("show.bs.popover", function(){ $(this).addClass("red-highlighted"); }); $("#nav-portal-search").on("hide.bs.popover", function(){ $(this).removeClass("red-highlighted"); }); $("#nav-profile-image").on("show.bs.popover", function(){ $(this).find("img").addClass("red-highlighted"); }); $("#nav-profile-image").on("hide.bs.popover", function(){ $(this).find("img").removeClass("red-highlighted"); }); $("#mobile-nav-portal-search").on("click", function(){ if($("#mobile-view-search-bar").css("display") == "none"){ $("#mobile-view-search-bar").show(); }else{ $("#mobile-view-search-bar").hide(); } }); $("#mobile-view-search-bar").find(".mobileportalSearch").focus().autocomplete({ highlight: true, minLength: 3, source: function(request, response) { $.ajax({ url: "/services/portalService/getPortalSearch", dataType: "json", type:"POST", data: { parameter: request.term, portalName:CommonUtils.getPortalNameInJs(), }, cache: false, success: function( data) { var items = data; response(items); }, error: function(jqXHR, textStatus){ console.log( textStatus); } }); }, select: function(event, ui) { $(this).val(ui.item.value); $("#mobile-view-search-bar").find(".mobileSearchSelectedValue").text("").text("type="+ui.item.type+"&q="+ui.item.parameter); } }).keypress(function(event){ var keycode = (event.keyCode ? event.keyCode : event.which); if(keycode == '13'){ $("#mobile-view-search-bar").find("button").trigger("click"); } }); // <!-- added for CR-04/2021 start--> console.log('CommonUtils.getPortalNameInJs():' + CommonUtils.getPortalNameInJs()); if (CommonUtils.getPortalNameInJs() == 'primary') { updateVICA_Environment(); addVICA_ChatbotJS(); } // <!-- added for CR-04/2021 start--> }); function mobileViewGotoSearchResultPage() { var value= $("#mobile-view-search-bar").find(".mobileSearchSelectedValue").text(); if(value==""){ var temp= $("#mobile-view-search-bar").find(".mobileportalSearch").val().trim(); value="fq=Course_Tagging%3A2&type=job&q="+encodeURIComponent(temp); }else{ value=value.substring(0,value.indexOf("&q=")+3)+encodeURIComponent(value.substring(value.indexOf("&q=")+3,value.length)); } var href="/content/student/en/"+CommonUtils.getPortalNameInJs()+"/header/search.html?"+value; window.location.href=href; } </script> <!-- added for CR-04/2021 start--> <!-- added for CR-04/2021 End--> <main class="aplm"> <div class="page__par"> <div class="sub_nav_aplm parbase"><script> (function($, window, document) { $(function() { $.ajax({ url: '\/content\/student\/en\/aplm\/jcr:content\/par\/sub_nav' + '.load', type: "GET", async: true, cache: false, data: { }, success: function(rawData, status, xhr) { $('#sub-nav-placeholder').html(rawData); topNavFunctions.portalNavPopover(); topNavFunctions.getUserDetails(); callSidr(); } }); }); }(window.jQuery, window, document)); function callSidr(){ $(function() { // Sidr Off Canvas Menu $('#sidr-toggle').sidr({ name: 'sidr', source: '#mobile-nav', side: 'right', renaming: false, onOpen: function(name) { $('#sidr-toggle').addClass('open'); },onOpenEnd:function () { topNavFunctions.initAutoCompleteForPortalSearch(); },onClose: function(name) { $('#sidr-toggle').removeClass('open'); }, }); // Slidebars Submenus $('.category-toggle-submenu').off('click').on('click', function() { $submenu = $(this).parent().children('.navbar-category-submenu'); $(this).add($submenu).toggleClass('category-submenu-active'); // Toggle active class. if ($submenu.hasClass('category-submenu-active')) { $submenu.slideDown(200); } else { $submenu.slideUp(200); } }); }); // Close Sidr when browser resize $(window).resize(function () { if ($(window).width() > 1199) { $.sidr('close', 'sidr'); } }); }; </script> </div> <div class="course-listing parbase"><div id="courseListing"></div> <template id="content"> <!-- search --> <div id="search-banner" class="container-fluid courses-hero-banner"> <div class="container"> <h1>Explore ApLM Courses</h1> <div id="searchkeywordbox"> <div class="input-group"> <div> <el-input v-model="courseListingModel.keywords" @keyup.enter.native="doSearchCourseListing()" placeholder="Search by Keyword" class="form-control"/> </div> <div class="input-group-btn"> <el-button class="btn btn-secondary search" @click="doSearchCourseListing()" aria-label="ApLM Course Search"><span class="glyphicon glyphicon-search"></span></el-button> </div> </div> </div> </div> </div> <!-- Add Course button --> <div id="course-view" class="container" style="margin-top:20px; margin-bottom:20px;"> <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 add-course"> <a class="ctabtn small" href="/content/student/en/aplm/course/add-edit-course.html" v-show="isShowAddCourse">Add Course</a> </div> </div> <!-- view --> <div class="row"> <div class="col-lg-3 filter-Options"> <!-- sort --> <div class="panel-group" id="SortBy-body"> <div class="panel-heading panel-group-header"> <h4 class="panel-title"> Sort By </h4> </div> <div class="panel"> <div class="panel-body"> <!-- select --> <div class="item-set"> <el-select-v2 v-model="courseListingModel.sort" @change="getCourseList" placeholder="Please select..." :options="sortOptions"/> </div> </div> </div> </div> <!-- Filter By --> <div class="panel-group filterBy-body-top-margin" id="FilterBy-body"> <div class="panel-heading panel-group-header"> <h4 class="panel-title"> Filter By </h4> </div> <div class="panel"> <div class="panel-body"> <!-- courseCategory --> <div class="item-set"> <div class="collapsed filter-heading" data-toggle="collapse" href='#courseCategory'> <span>Course Category</span> </div> <div class="checkbox-tertiary panel-collapse collapse" id='courseCategory'> <div v-for="filteroption in courseCategory.arr" :key="filteroption.code" class="checkbox-table"> <el-checkbox :label="filteroption.name" @change="filterOnSelect(filteroption.code, courseListingModel.courseCategoryFilterBy, null, null)" size="large"/> </div> </div> </div> <!-- pseiSchools --> <div class="item-set"> <div class="collapsed filter-heading" data-toggle="collapse" href='#pseiSchools'> <span>PSEI/School</span> </div> <div class="checkbox-tertiary panel-collapse collapse" id='pseiSchools'> <div class="filter-search"> <el-input v-model="filterSearchPseiValue"></el-input> <i @click="filterSearch(filterSearchPseiValue, pseiSchoolsArr, pseiSchools)" class="fa fa-search icon_search"></i> </div> <el-scrollbar max-height="200px"> <div v-for="filteroption in pseiSchoolsChecked.arr" :key="filteroption.code" class="filter-clecked"> <span>{{filteroption.name}}</span> </div> <div v-if="pseiSchoolsChecked.arr.length" class="filter-line"></div> <div v-for="filteroption in pseiSchoolsArr.arr" :key="filteroption.code" class="checkbox-table"> <el-checkbox-group v-model="courseListingModel.pseiSchoolsFilterByLabel" class="checkbox-table"> <el-checkbox :label="filteroption.name" @change="filterOnSelect(filteroption.code, courseListingModel.pseiSchoolsFilterBy, pseiSchoolsChecked, pseiSchools, 'name')" size="large"/> </el-checkbox-group> </div> </el-scrollbar> </div> </div> <!-- learningCluster --> <div class="item-set"> <div class="collapsed filter-heading" data-toggle="collapse" href='#learningCluster'> <span>Learning Cluster</span> </div> <div class="checkbox-tertiary panel-collapse collapse" id='learningCluster'> <div class="filter-search"> <el-input v-model="filterSearchlearningClusterValue"></el-input> <i @click="filterSearch(filterSearchlearningClusterValue, learningClusterArr, learningCluster)" class="fa fa-search icon_search"></i> </div> <el-scrollbar max-height="200px"> <div v-for="filteroption in learningClusterChecked.arr" :key="filteroption.id" class="filter-clecked"> <span>{{filteroption.name}}</span> </div> <div v-if="learningClusterChecked.arr.length" class="filter-line"></div> <div v-for="filteroption in learningClusterArr.arr" :key="filteroption.id"> <el-checkbox-group v-model="courseListingModel.learningClusterFilterByLabel" class="checkbox-table"> <el-checkbox :label="filteroption.name" :key="filteroption.id" @change="filterOnSelect(filteroption.id, courseListingModel.learningClusterFilterBy, learningClusterChecked, learningCluster, 'name')" size="large"/> </el-checkbox-group> </div> </el-scrollbar> </div> </div> <!-- courseStatus --> <div class="item-set"> <div class="collapsed filter-heading" data-toggle="collapse" href='#courseStatus'> <span>Course Status</span> </div> <div class="checkbox-tertiary panel-collapse collapse" id='courseStatus'> <div v-for="filteroption in courseStatus.arr" :key="filteroption.status" class="checkbox-table"> <el-checkbox :label="filteroption.name" @change="filterOnSelect(filteroption.status, courseListingModel.courseStatusFilterBy, null, null)" size="large"/> </div> </div> </div> <!-- Industry --> <div class="item-set"> <div class="collapsed filter-heading" data-toggle="collapse" href='#Industry'> <span>Industry</span> </div> <div class="checkbox-tertiary panel-collapse collapse" id='Industry'> <div class="filter-search"> <el-input v-model="filterSearchIndustry"></el-input> <i @click="filterSearch(filterSearchIndustry, industryArr, industry)" class="fa fa-search icon_search"></i> </div> <el-scrollbar max-height="200px"> <div v-for="filteroption in industryChecked.arr" :key="filteroption.id" class="filter-clecked"> <span>{{filteroption.name}}</span> </div> <div v-if="industryChecked.arr.length" class="filter-line"></div> <div v-for="filteroption in industryArr.arr" :key="filteroption.id"> <el-checkbox-group v-model="courseListingModel.industryFilterByLabel" class="checkbox-table"> <el-checkbox :label="filteroption.name" :key="filteroption.id" @change="filterOnSelect(filteroption.id, courseListingModel.industryFilterBy, industryChecked, industry, 'name')" size="large"/> </el-checkbox-group> </div> </el-scrollbar> </div> </div> <!-- Course Run --> <div class="item-set"> <div class="collapsed filter-heading" data-toggle="collapse" href='#courseRun'> <span>Course Run</span> </div> <div class="checkbox-tertiary panel-collapse collapse" id='courseRun'> <div v-for="filteroption in courseRun.arr" :key="filteroption.code" class="checkbox-table"> <el-checkbox :label="filteroption.name" @change="filterOnSelect(filteroption.code, courseListingModel.courseRunFilterBy, null, null)" size="large"/> </div> </div> </div> <!-- Course Run Start Date --> <div class="item-set"> <div class="date-heading"> <span>Course Run Start Date</span> </div> <div class="checkbox-tertiary data-picker"> <el-date-picker v-model="runDate" type="daterange" start-placeholder="Start date" end-placeholder="End date" @change="dataChange" unlink-panels size="default" format="DD MMM YYYY" value-format="YYYYMMDD" :disabled-date="disabledDate" :editable="false"></el-date-picker> </div> </div> </div> </div> </div> </div> <div class="col-lg-9 searchresults-container"> <!-- total & pagination --> <div class="row"> <!-- total --> <div class="col-lg-4"> <p class="heading"> <span class="super">{{totalCount}}</span> Course(s) found </p> </div> <!-- pagination--> <div class="col-lg-8 pagination"> <div> <el-pagination class="course-pagination" v-model:current-page="courseListingModel.currentPage" :page-size="10" layout="prev, pager, next" :total="totalCount" @current-change="currentChange"/> </div> </div> </div> <!-- table --> <div v-for="course in coursesArr.arr" :key="course"> <div class="row course_panel"> <div class="col-xs-12 info-top"> <div class="col-sm-12 col-md-9 card-left"> <div class="row pd-l-15"> <div class="row"> <div class="col-md-4"><span class="table-title">Course Title:</span></div> <div class="col-md-8 pd-b-15"><span>{{course.title}}</span></div> </div> <div class="row"> <div class="col-md-4"><span class="table-title">Course Category:</span></div> <div class="col-md-8 pd-b-15"><span>{{course.category.name}}</span></div> </div> <div class="row"> <div class="col-md-4"><span class="table-title">Course Code:</span></div> <div class="col-md-8 pd-b-15"><span>{{course.code}}</span></div> </div> <div class="row"> <div class="col-md-4"><span class="table-title">Learning Cluster:</span></div> <div class="col-md-8 pd-b-15"><span>{{course.learningCluster.name}}</span></div> </div> <div class="row" v-if="course.relatedIndustry?.length > 0"> <div class="col-md-4"><span class="table-title">Industry:</span></div> <div class="col-md-8 pd-b-15"> <div v-for="industry in course.relatedIndustry"> <div><span>{{industry.name}}</span></div> </div> </div> </div> <div class="row"> <div class="col-md-4"><span class="table-title">Course Status:</span></div> <div class="col-md-8"> <span v-if="course.isActive"> Active </span> <span v-else> Inactive </span> </div> </div> </div> </div> <div class="col-sm-12 col-md-3 card-right"> <div class="table-title pd-b-15 course-fee-title">Course Fee</div> <div class="table-title pd-b-15 course-fee">$ {{sgToFixed(course.costPerStudent)}}</div> <div v-if="course.allowedActionsOnPage.viewCourse"><a class="ctabtn" :href="'/content/student/en/aplm/course/view-course.html?apLMInternalCourseId='+course.apLMInternalCourseId">View Course</a></div> <div v-if="course.allowedActionsOnPage.editCourse"><a class="ctabtn" :href="'/content/student/en/aplm/course/add-edit-course.html?type=edit&apLMInternalCourseId='+course.apLMInternalCourseId">Edit Course</a></div> <div v-if="course.allowedActionsOnPage.deleteCourse"><a class="ctabtn" href="#" @click.prevent="deleteCourse(course.apLMInternalCourseId)">Delete Course</a></div> </div> </div> <div class="col-xs-12 info-bottom"> <div class="col-sm-12 col-md-9 card-left"> <div v-if="course.run.apLMRunId == 0 "> <span class="upcoming">No upcoming run</span> </div> <div v-else> <div class="row"> <div class="col-md-6 pd-b-15"><span class="table-title run-title">Course Run ID:</span><span v-if="course.run.apLMRunId !=0 ">{{course.run.apLMRunId}}</span></div> <div class="col-md-6"><span class="table-title run-title">Academic Year:</span><span v-if="course.run.academicYear !=0 ">{{course.run.academicYear}}</span></div> </div> <div class="row"> <div class="col-md-6 pd-b-15"> <span class="table-title run-title">Run Date:</span><span v-show="course.run.date">{{moment(String(course.run.date?.start)).format("DD MMM YYYY")}} - {{moment(String(course.run.date?.end)).format("DD MMM YYYY")}}</span> </div> <div class="col-md-6" v-if="course.category.name=='ApLM@Poly'||course.category.name=='ApLM@ITE'"> <span class="table-title run-title">Class Size:</span><span v-show="course.run.classSize">{{course.run.classSize?.min}}-{{course.run.classSize?.max}}</span> </div> </div> <div class="row pd-l-15"><span class="table-title run-title">Run Status:</span><span>{{course.run.status?.description}}</span></div> </div> </div> <div class="col-sm-12 col-md-3 card-right"> <div><a class="ctabtn" v-show="course.run.allowedActionsOnRecord.maintainRuns" :href="'/content/student/en/aplm/course/runs.html?apLMInternalCourseId='+course.apLMInternalCourseId">Maintain Runs</a></div> <div><a class="ctabtn" v-show="course.run.allowedActionsOnRecord.viewAllRuns" :href="'/content/student/en/aplm/course/runs.html?apLMInternalCourseId='+course.apLMInternalCourseId">View All Runs</a></div> </div> </div> </div> </div> <!-- pagination--> <div class="col-lg-12 pagination"> <div> <el-pagination class="course-pagination" v-model:current-page="courseListingModel.currentPage" :page-size="10" layout="prev, pager, next" :total="totalCount" @current-change="currentChange"/> </div> </div> </div> </div> </div> </template> <script type="text/javascript"> window.onload = function () { var resourcePath = '/content/student/en/aplm/jcr:content/par/course-listing'; init(resourcePath); document.querySelector('.el-pagination').setAttribute("role", "navigation") document.querySelectorAll('.el-date-editor').forEach(div => div.setAttribute('aria-label', 'Date Range')) document.querySelectorAll('.el-select-v2__combobox-input').forEach(input => input.setAttribute('aria-label', 'Sort by in the ApLM course listing page')) document.querySelectorAll('.btn-prev').forEach(button => button.setAttribute('aria-label', 'Previous Page')) document.querySelectorAll('.btn-next').forEach(button => button.setAttribute('aria-label', 'Next Page')) } </script> </div> </div> </main> <!-- <div class="container"> <div class="row"> <div class="" id="btn_scrolltotop_container"> <div id="btn_scrolltotop" onClick="scrollToTop()"> <span class="hidden-sm hidden-md hidden-lg"> <span class="glyphicon glyphicon-chevron-up"></span><br> <span class="text_top">Top</span> </span> <span class="hidden-xs"> <span class="text_top">Back to Top</span> <span class="glyphicon glyphicon-chevron-up"></span> </span> </div> </div> </div> </div> --> <style> .portals{ width: 279px; } .features{ width: 287px; } footer .last-updated-date-box{ color: #ffffff; text-align: right; margin-top: -20px; } @media (max-width: 991px){ footer .last-updated-date-box{ text-align: left; padding-left: 35px; } } @media (max-width: 768px){ footer .last-updated-date-box{ padding-left: 30px; margin-top: 0px; } } </style> <footer> <div class="container-fluid sitemap"> <div class="container"> <div class="row"> <div class="col-xs-12 col-sm-4 col-md-2 col-lg-3 portals"> <a href="/content/student/en/primary.html">Primary</a><br/> <a href="/content/student/en/secondary.html">Secondary </a><br/> <a href="/content/student/en/preu.html">Pre-University</a><br/> <a href="/content/student/en/aplm.html">Applied Learning Modules</a><br/> <a href="/content/portal/en/index.html">Adults and Tertiary Students</a><br/> </div> <!-- <sly data-sly-use.portalName="clientlibs/aplm/sightlyjstool/SEOTitleUtil.js"> <div class="col-xs-12 col-sm-5 col-md-3 col-lg-3 features"> <a href="/content/student/en/secondary/assessment.html">Know Yourself</a><br> <a href="/content/student/en/secondary/world-of-work/industry-landscape.html">Singapore Industry Landscape</a><br> <a href="/content/student/en/secondary/world-of-work/occupation.html">Learn About Job Roles</a><br> <a href="/content/student/en/secondary/education-guide/education-landscape.html">Singapore Education Landscape</a><br> <a href="/content/student/en/secondary/education-guide/explore-school.html">Explore Educational Institutions</a><br> <a href="/content/student/en/secondary/education-guide/courses.html">Explore Courses</a><br> <a href="/content/student/en/secondary/education-guide/events.html">Calendar of Events</a><br> </div> <div class="col-xs-12 col-sm-3 col-md-1 col-lg-2"> <a href="/content/student/en/secondary/about/myskillsfuture-for-students.html">Who we are</a><br> <a href="/content/student/en/secondary/help/Navigating-the-Portal.html">FAQ</a><br> <a href="/content/student/en/secondary/help/For-Further-Assistance.html">Contact</a><br> <a href="/content/student/en/secondary/header/feedback.html">Feedback</a><br> </div> </sly> --> <div class="col-xs-12 col-sm-12 col-md-6 col-lg-4 right"> <a href="http://www.moe.gov.sg/" target="_blank" x-cq-linkchecker="skip">Ministry of Education</a><br/> <a href="https://www.skillsfuture.gov.sg/" target="_blank" x-cq-linkchecker="skip">SkillsFuture Singapore</a><br/> <a href="https://www.wsg.gov.sg/" target="_blank" x-cq-linkchecker="skip">Workforce Singapore</a><br/> </div> </div> </div> </div> <div class="container custom"> <div class="row"> <div class="col-xs-12 col-sm-12 col-md-3 col-lg-2 col-md-push-9 col-lg-push-10 logo"> <div class="verticalmiddle custom"> <a href="http://www.skillsfuture.gov.sg/" target="_blank"> <img src="/etc/designs/msf/student/student-common/images/logo_myskillsfuture_footer.png" alt="Visit SkillsFuture Singapore website"/> </a> </div> </div> <div class="col-xs-12 col-sm-12 col-md-5 col-lg-6 col-md-pull-3 col-lg-pull-2 termsofuse"> <div class="verticalmiddle custom"> Copyright © 2024 | <a href="https://tech.gov.sg/report_vulnerability" target="_blank">Report Vulnerability</a> | <a href="/content/student/en/secondary/footer/privacy-policy.html">Privacy Policy</a> | <a href="/content/student/en/secondary/footer/terms-of-use.html">Terms of Use</a> <br/>Best Viewed using the latest versions of Chrome, Microsoft Edge ,Firefox, Safari, and Opera </div> </div> </div> <div class="row"> <div class="col-xs-12 last-updated-date-box">Last Updated on <span id="last-updated-date"></span></div> </div> </div> </footer> <script type="text/javascript" charset="utf-8"> function extendFnScheduler() { $.ajax({ type: "GET", url: "/services/userService/extendLocalSession", }); } $(document).ready(function (){ $(window).on("resize", function(){ if($('#colorbox').length && $('#colorbox').css('display') != 'none') { if (414<$(window).width()<568){ $.colorbox.resize({width:300}); }else if($(window.width()<414)){ $.colorbox.resize({width:$(window).width() * 0.8}); } } }); if(CommonUtils.getStudentIdInJs() != ""){ $(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/student/en/"+CommonUtils.getPortalNameInJs()+"/usersatisfaction.html", redirectUrl:"/content/student/en/"+CommonUtils.getPortalNameInJs()+".html", }); } var loginStatus = CommonUtils.getURLQueryStringByName("loginStatus"); if (loginStatus && (loginStatus == 22 || loginStatus == 26)) { CommonUtils.showCommonPopup(Granite.I18n.get("tp-api-forbidden-access"), "OK", function() { window.location.href = CommonUtils.removeURLParameter(window.location.href, "loginStatus");}); } clearInterval(extendFnScheduler); extendFnScheduler(); setInterval(extendFnScheduler, 4*60*1000); 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 src="/etc/designs/msf/aplm/aplm-core/aplm-common.min.js"></script> <script type="text/javascript">_satellite.pageBottom();</script> <!-- Will override in child template --> <!-- SCROLL TO TOP script --> <script> function scrollToTop(callback) { if ($('html').scrollTop()) { $('html').animate({ scrollTop: 0 }, callback); return; } $('body').animate({ scrollTop: 0 }, callback); } </script> <!-- 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"> <a href="javascript:void(0)" class="ctabtn small confirmButton" type="button"></a> <a href="#" class="btn btn_bigorange confirmLink" style="display:none;" type="button"></a> <a href="javascript:void(0)" class="ctabtn small cancelButton" type="button"></a> </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 href="javascript:void(0)" id="duplicate_session_popup_modal_yes_buttton" class="ctabtn tiffany">Yes</a> <a href="javascript:void(0)" id="duplicate_session_popup_modal_logout_buttton" class="ctabtn tiffany">Logout</a> </div> </div> </div> </div> </div> <div id="declaredConsentModel" class="modal fade" tabindex="-1" data-keyboard="false" data-backdrop="static" aria-hidden="true" style="top:25%" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-body"> <div style="top: -28px;position: absolute;left: 100%;margin-left: 28px;"> <button type="button" id="cboxClose" onclick="TermsOfLogout()" tabindex="0"></button> </div> <div> <div class="checkbox" style="float: left;margin-top: 0px;margin-right: 10px;"> <input type="checkbox" name="agree_term_checkbox" id="termsAgreementCheckbox" style="display:block;"/> <label for="termsAgreementCheckbox">I understand that by proceeding, I agree to the use of my personal data for the purposes of creation and continued maintenance of my account in <a href="#">Myskillsfuture.gov.sg</a></label> </div> <br/> <div style="width: 100%;text-align: center"> <button type="button" disabled class="agreeTermsBtn myAEMBtn ctabtn tiffany smaller"> Proceed </button> <button type="button" class="cancelTermsBtn myAEMBtn ctabtn tiffany smaller" onclick="TermsOfLogout();"> Cancel </button> </div> </div> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> <style> .modal-header-for-login { background-color: #e65e49; padding: 15px; border-bottom: 1px solid #e5e5e5; border-top-left-radius: 6px; border-top-right-radius: 6px; text-align: left; margin: 0; font-weight: bold; } .bootbox .modal-body { padding-top: 10px; } .bootbox .modal-body .title { font-family: "PT Sans"; font-weight: bold; color: #e65e49; font-size: 20px; } .bootbox .modal-body .col-form-label { font-family: "PT Sans"; font-size: 18px; } .bootbox .modal-body .form-control { font-family: "PT Sans"; font-size: 16px; } .modal-title { font-size: 30px; margin-right: 20px; font-family: "PT Sans"; text-align: left; font-weight: bold; color: white; } .bootbox-close-button::after { font-family: "Glyphicons Halflings" !important; /*content: "\e014" !important;*/ font-size: 25px !important; line-height: 30px !important; font-weight: normal !important; color: #FFFFFF !important; opacity: 1 !important; } #loginModal .modal-header-for-login button.close{ opacity: 1; } </style> <div class="modal fade" id="loginModal" tabindex="-1" style="z-index:9999999" role="dialog" data-type="0"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content bootbox aplm"> <div class="modal-header-for-login"> <button type="button" class="bootbox-close-button close" data-dismiss="modal" aria-hidden="true"></button> <h4 class="modal-title">Login</h4> <input class="hidden" id="portalValue" value="aplm"/> </div> <div class="modal-body"> <div class="loginModal-normal-login"> <div class="title">Students and Teachers</div> <div class="ecg_partners_description row form-group"> This portal is for students and teachers in Primary Schools, Secondary Schools and Junior Colleges/Centralised Institutes.<br/> If you are a student from the Tertiary Institutions, please click <a target="_blank" href="/content/portal/en/index.html">here</a> to access MySkillsFuture. </div> <form id="pmLogin"> <h2 class="form-signin-heading"></h2> <div class="form-group row"> <div class="col-sm-12"> <div id="ERROR-loginError" 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-6 login_form_user_id_field"> <label for="inputUser" class="col-form-label">User ID</label> <div class=""> <input class="form-control" type="text" name="userId" id="inputUser" placeholder="User ID" autocomplete="off" autofocus/> </div> </div> <div class="col-sm-6 login_form_password_field"> <label for="inputPassword" class="col-form-label">Password</label> <div class=""> <input type="password" class="form-control" id="inputPassword" name="userPwd" placeholder="Password" autocomplete="off"/> </div> <a class="student_login_form_forget_pwd" href="/content/student/en/preu/reset-password.html">Forgot your password?</a> </div> </div> <div class="row form-group" style="text-align: center;"> <div class="student_login_modal_corp_pass col-sm-6"> <div class="form-group aligncenter theme1"> <a href="javascript:void(0)" id="portalLoginButton" class="ctabtn">Sign in</a> </div> </div> <div class="student_login_modal_sing_pass col-sm-6"> <div class="form-group aligncenter theme1"> <a href="javascript:void(0)" class="ctabtn" data-dismiss="modal" onclick="clearInput()">Cancel</a> </div> </div> </div> </form> </div> <div class="loginModal-normal-login"> <div class="title">Login using MIMS ID</div><BR/> <div class="row form-group" style="text-align: center;"> <div class="title student_login_modal_corp_pass col-sm-4"> </div> <div class="student_login_modal_sing_pass col-sm-4"> <div class="form-group aligncenter theme1" style="margin-bottom:0px"> <a href="javascript:void(0)" onclick="MIMSLoginButtonLogin()" id="MIMSLoginButton" class="ctabtn">Sign in</a> </div> </div> <div class="col-sm-12"> <div id="ERROR-loginError-mims" class="help-block with-errors hidden" style="text-align: left;"> </div> </div> </div> </div> <style> #loginModal .loginModal-normal-login { border-bottom: none; margin-bottom: 20px; } </style> </div> </div> </div> </div> <script> function clearInput() { document.getElementById("pmLogin").reset(); } $(function () { $("#loginModal").on('shown.bs.modal', function (e) { $("#inputUser").focus(); }).on('hidden.bs.modal', function (e) { $('#ERROR-loginError').addClass('hidden'); }) $("#loginModal").keypress(function(e) { if(e.which == 13) { $("#portalLoginButton").trigger("click"); } }); }) </script> <input id="portalContextPath" type="hidden"/> </body> </html>