CINXE.COM

My Imperial My Imperial

<!DOCTYPE html> <html lang="en-US" data-lang="en-US" crm-lang="en-US" dir="ltr" crm-lcid="1033" same-site-mode="None"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width,&#32;initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /> <script type="text/javascript" > </script> <title> My Imperial My Imperial </title> <script src="/_portal/0fab8bf1-1f22-ed11-9db1-000d3ad67a91/Resources/ResourceManager?lang=en-US"></script> <script type="text/javascript"> // Refresh all powerBI Iframes on Login in one Iframe window.addEventListener('message', function (event) { if (event && event.data && event.data == 'refreshPowerBI') { $("iframe.powerbi").each(function () { this.src = this.src; }); } }); // Fix for incorrect viewport width setting in IE 10 on Windows Phone 8. if (navigator.userAgent.match(/IEMobile\/10\.0/)) { var msViewportStyle = document.createElement("style"); msViewportStyle.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")); document.getElementsByTagName("head")[0].appendChild(msViewportStyle); } </script> <!-- link to fonts should go here but are being overriden by glyphicons stylesheet if we do that, so they have been placed in Head/Bottom content snippet --> <!-- Head/Bootstrap --> <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> <link href="https://content.powerapps.com/resource/powerappsportal/dist/font-awesome.bundle-3d8a58a48f.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/font-awesome.bundle-3d8a58a48f.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" /> <link href="https://content.powerapps.com/resource/powerappsportal/dist/preform.bundle-07636d9605.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/preform.bundle-07636d9605.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" /> <link rel="stylesheet" href="/Areas/Account/css/account.css"> <link href="/font-awesome.6.2.1.all.min.css?1731495489000" rel="stylesheet" /> <link href="/my-imperial.css?1731495496000" rel="stylesheet" /> <!--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" integrity="sha512-MV7K8+y+gLIBoVD59lQIYicR65iaqukzvf/nwasF0nqhPay5w/9lJmVM2hMDcnK1OnMGCdVK+iQrJ7lzPJQd1w==" crossorigin="anonymous" referrerpolicy="no-referrer" /> --> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="pragma" content="no-cache"> <meta name="robots" content="none"> <link rel="stylesheet" href="/bootstrap.min.css?100720241419"> <link rel="stylesheet" href="/font-awesome.6.2.1.all.min.css?1676890769000" /> <link rel="stylesheet" href="/my-imperial.css?1676890770000" /> <!-- OneTrust Cookies Consent Notice start for myimperial.powerappsportals.com --> <script type="text/javascript" src="https://cdn-ukwest.onetrust.com/consent/7b45de2d-9f4d-460a-8cbf-53d0b8898be4/OtAutoBlock.js"></script> <script src="https://cdn-ukwest.onetrust.com/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="7b45de2d-9f4d-460a-8cbf-53d0b8898be4"></script> <script type="text/javascript"> function OptanonWrapper() { } </script> <!-- OneTrust Cookies Consent Notice end for myimperial.powerappsportals.com --> <link href="https://content.powerapps.com/resource/powerappsportal/dist/pwa-style.bundle-2739c60227.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/pwa-style.bundle-2739c60227.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" /> </head> <body data-sitemap-state="/" data-dateformat="dd-MMM-yyyy" data-timeformat="h:mm tt" data-datetimeformat="dd-MMM-yyyy h:mm tt" data-app-path="/" data-ckeditor-basepath="/js/BaseHtmlContentDesigner/Libs/msdyncrm_/libs/ckeditor/" data-case-deflection-url="/_services/search/0fab8bf1-1f22-ed11-9db1-000d3ad67a91"> <link href="https://content.powerapps.com/resource/powerappsportal/dist/pcf-style.bundle-2659c6f064.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/pcf-style.bundle-2659c6f064.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" /> <div id="offlineNotificationBar" style="display: none;"> <img alt="web" id="web" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;img&#32;=&#32;document.createElement(&#39;img&#39;);&#32;img.src&#32;=&#32;&#39;/css/images/web.png&#39;;&#32;img.alt&#32;=&#32;&#39;web&#39;;&#32;img.id&#32;=&#32;&#39;web&#39;&#32;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,img);&#32;target.remove();" src="https://content.powerapps.com/resource/powerappsportal/img/web.png" /> <div id="message">You&#8217;re offline. This is a read only version of the page.</div> <div id="close" onclick="this.parentElement.style.display='none';"><img alt="close" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;img&#32;=&#32;document.createElement(&#39;img&#39;);&#32;img.src&#32;=&#32;&#39;/css/images/close.png&#39;;&#32;img.alt&#32;=&#32;&#39;close&#39;;&#32;img.id&#32;=&#32;&#39;&#39;&#32;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,img);&#32;target.remove();" src="https://content.powerapps.com/resource/powerappsportal/img/close.png" /></div> </div> <script type="text/javascript"> window.DisableCkEditor = window.DisableCkEditor || {}; DisableCkEditor.Value = 'False'; </script> <script type="text/javascript"> var enableOmniChannelWidgetWithSiteCopilot = 'False'; if (enableOmniChannelWidgetWithSiteCopilot === "True" || enableOmniChannelWidgetWithSiteCopilot === "true") { const authUrl = window.location.origin + "/_services/auth/portalusertoken"; const fetchWithRetries = async (url, options, retries) => { try { const authResponse = await fetch(url, options); const token = await authResponse.text(); sessionStorage['c2Token'] = token; } catch (err) { if (retries === 1) throw err; return await fetchWithRetries(url, options, retries - 1); } }; fetchWithRetries(authUrl, { method: "POST" }, 4); } </script> <script type="text/javascript"> var isPvaBotAuthenticated = sessionStorage['isPvaBotAuthenticated']; var isPortalUserLoggedIn = 'False'; if ((isPvaBotAuthenticated != null || isPvaBotAuthenticated != undefined) && isPvaBotAuthenticated != isPortalUserLoggedIn) { sessionStorage['triggerPvaBotSignOut'] = true; sessionStorage.removeItem('c2Token'); sessionStorage.removeItem('directLinetoken'); sessionStorage.removeItem('conversation_Id'); } sessionStorage['isPvaBotAuthenticated'] = isPortalUserLoggedIn; </script> <script type="text/javascript"> window["Microsoft"] = window["Microsoft"] || {}; window["Microsoft"].Dynamic365 = { Portal: { User: { userName: '', contactId: '' }, version: '9.6.10.11', type: 'CDSStarterPortal', id: '8c140c30-4a34-47c2-bf22-ec61534e03de', geo: 'GBR', tenant: '2b897507-ee8c-4575-830b-4f8267c3d307', correlationId: 'ede329c3-92ce-40a3-834c-8a30082d40d2', orgEnvironmentId: '68ce8ab9-540a-e888-ba28-1ddce608f3ad', orgId: 'f152573f-fb95-49d8-a928-b8d8e57cc426', portalProductionOrTrialType: 'Production', isTelemetryEnabled: 'True', InstrumentationSettings: { instrumentationKey: '197418c5cb8c4426b201f9db2e87b914-87887378-2790-49b0-9295-51f43b6204b1-7172', collectorEndpoint: 'https://eu-mobile.events.data.microsoft.com/OneCollector/1.0/' }, timerProfileForBatching: 'NEAR_REAL_TIME' } } // Mark request not cacheable if Dynamics365PortalAnalytics cookie is being refreshed by the server or if the cookie in request header is invalid // For client side telemetry intializing Dynamics365PortalAnalytics cookie object window["Microsoft"].Dynamic365.Portal.dynamics365PortalAnalytics = 'itdrp3OSN12vwk2dXeawyDdnDgwaYOK4joRpxVHoUDF-9IIlch_rigQTstyFahuMaujzucd2aXqLz3Lw_HwA_EWWnhz3CqzOhY67YRtODak49guPYv9iK4mR2Akd2iO5XAs3Jo7dQb2eWbeAfg-9jA2'; // CodeQL [SM00430] False Positive: only alphanumeric chars allowed, for non-alphanumeric char it will return INVALID_CHARACTERS_IN_COOKIE localStorage.setItem("Dynamics365PortalAnalytics", window["Microsoft"].Dynamic365.Portal.dynamics365PortalAnalytics); </script> <script type="text/javascript"> const intercept = () => { let send = XMLHttpRequest.prototype.send; XMLHttpRequest.prototype.send = function () { this.addEventListener('readystatechange', function () { if (this.readyState === 4 && this.getAllResponseHeaders().indexOf("x-ms-user-trace") >= 0 && this.getResponseHeader('x-ms-user-trace')) { try { var userTrace = JSON.parse(atob(this.getResponseHeader('x-ms-user-trace'))); document.dispatchEvent(new CustomEvent('updateDevToolRuntime', { detail: userTrace } )); } catch (err) { console.log("In intercept for ajax call, Exception while parsing UserTrace header" + err); } } }, false); send.apply(this, arguments); }; }; intercept(); document.addEventListener("pagesRuntimeMessageProcessedInDevtool", function () { ClientLogWrapper.getLogger().traceInfo("pagesRuntimeMessageProcessedInDevtool", "Devtool"); }); </script> <!-- Google Tag Manager --> <script>(function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-58L6G5BX');</script> <!-- End Google Tag Manager --> <!-- the rest of Google tag manager code is found in content snippit (Head/Bottom)--> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-58L6G5BX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- modal show fade bg-primary bg-opacity-50 d-block style="--bs-modal-border-radius: 1rem; background: rgba(15, 128, 143, 0.45);"--> <!-- include loading modal for reference everywhere --> <div aria-labelledby="loadingSpinnerLabel" aria-hidden="true" class="modal show fade bg-primary bg-opacity-50" id="loadingSpinner" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"> <div class="modal-dialog modal-dialog-centered d-flex justify-content-center align-items-center"> <!-- Add the bootstrap spinner --> <div class="spinner-border text-white" role="status" style="width: 10rem; height: 10rem;"> <span class="visually-hidden" id="loadingSpinnerLabel">Loading...</span> </div> </div> </div> <!--Header--> <header> <!--Title for my imperial and menu--> <nav class="navbar navbar-expand bg-imperialnavy py-3" aria-label="Main navigation"> <div class="container-fluid px-md-5"> <a class="fixed-top sr-only-focusable bg-secondary text-white col-2 p-2" href="#content">Skip to main content</a> <div class="d-flex"> <!-- My Imperial Heading text --> <div class=""> <a class=" navbar-brand " href="/" title="My Imperial Home"> <span class="sr-only">My Imperial</span> <svg xmlns="http://www.w3.org/2000/svg" width="200" viewBox="0 0 274 30.09" class="col-7 col-md-10 col-xl-12" role="img"> <title>Imperial College London</title> <g fill="#fff"> <polygon points="113.63 0 113.63 30.09 133.19 30.09 133.19 24.83 119.35 24.83 119.35 17.3 131.99 17.3 131.99 12.19 119.35 12.19 119.35 5.27 133.19 5.27 133.19 0 113.63 0"> </polygon> <path d="M89.86,4.81H85.65V15h4.21c3.3,0,5.72-1.59,5.72-5.07s-2.42-5.07-5.72-5.07m.3,15H85.65V30.05H79.93V0H90.16c6.42,0,11.44,2.91,11.44,9.93s-5.06,9.93-11.44,9.93" transform="translate(0 0.05)"></path> <polygon points="182.84 0 182.84 5.27 189.91 5.27 189.91 24.83 182.84 24.83 182.84 30.09 202.71 30.09 202.71 24.83 195.63 24.83 195.63 5.27 202.71 5.27 202.71 0 182.84 0"> </polygon> <path d="M163.66,9.28c0,3.63-2.1,4.77-5.72,4.77h-4.81V4.81h4.81c3.92,0,5.72,1.46,5.72,4.47m6,0c0-7-4.81-9.33-11.13-9.33H147.41v30.1h5.72V18.91h5.6l5.83,11.15h6.33l-6.46-12.34c3.14-1.4,5.25-4.09,5.25-8.43" transform="translate(0 0.05)"></path> <path d="M227.79,5.29l4.11,13.28h-8.22ZM224,0l-9.93,30.1h6l2-6.62h11.24l2.05,6.62h6L231.55,0Z" transform="translate(0 0.05)"></path> <polygon points="254.39 0 254.39 30.09 274 30.09 274 24.83 260.11 24.83 260.11 0 254.39 0"></polygon> <polygon points="57.26 0 50.04 17.69 42.81 0 34.69 0 34.69 30.09 40.11 30.09 40.11 7.59 47.03 23.47 47.33 23.47 52.74 23.47 53.05 23.47 59.97 7.59 59.97 30.09 65.38 30.09 65.38 0 57.26 0"> </polygon> <polygon points="0 0 0 5.27 7.07 5.27 7.07 24.83 0 24.83 0 30.09 19.86 30.09 19.86 24.83 12.79 24.83 12.79 5.27 19.86 5.27 19.86 0 0 0"> </polygon> </g> </svg> </a> </div> </div> </nav> </div> <!-- Side menu navigation using offcanvas --> <div class="offcanvas offcanvas-start bg-imperialnavy text-light" id="offcanvas" data-bs-keyboard="true" data-bs-scroll="false" data-bs-backdrop="true"> <!-- Menu heading section --> <div class="offcanvas-header"> <div class="container"> <!-- Close button --> <div class="row height d-flex float-end"> <div class="col-12 mx-2 my-2 align-content-center"> <a href="#" class="fa fa-chevron-left btn btn-imperialnavy" data-bs-dismiss="offcanvas" aria-label="Close menu" tabindex="0"></a> </div> </div> <!-- Row for displaying user name, picture and settings --> <div class="row px-5 height d-flex float-start"> <!-- User image column --> <div class="col-2 px-1"> </div> <!-- User name container --> <div class="col-10"> <div class=""> <!-- Logic to display user name or sign in functionality if not signed in --> <h2 class="offcanvas-title fs-4"><span class="text-white"> <a class="text-decoration-none text-white" href="/SignIn?returnUrl=%2F">Sign in</a> </span> </h2> </div> <!--Settings cog <div class="col-2 align-self-end py-2"> <span><i class="fa-solid fa-gear text-white"></i></span> </div> --> </div> <!-- Final div for spacing --> <div class="col-2"> </div> </div> </div> </div> <!-- Dynamic menu list items based on the users role --> <div class="offcanvas-body px-0"> <div class="container-fluid"> <!-- Search bar for menu --> <!--<div class="row height d-flex justify-content-center align-items-left"> <div class="col-10 mx-2 my-2 ">--> <!-- Defined an extra class in the scss for search-box-input to style and add icon --> <!--<input type="search" class="form-control rounded-pill shadow search-box-input bg-white" placeholder="Search" id="MenuSearchBox" aria-label="Search Bar Menu"> </div> </div>--> <!-- Row for menu items --> <div class="row height d-flex justify-content-center align-items-end flex-column"> <div class="col-10 p-1"> <ul class="nav nav-pills flex-column mb-sm-auto mb-0 align-items-start" id="menu"> <!-- Static menu item for all tiles that toggles the all tiles tab pane --> <li class="nav-item py-1"> <a href="/?&tilegrouping=home" class="nav-link text-truncate text-white fs-5"> <span class="ms-1 d-sm-inline">Home</span><i class="fa-solid fa-caret-right px-2"></i> </a> </li> <!-- Dynamic Menu items based on the tile groupings fetchxml --> </ul> </div> <div class="mt-5"> <!--Footer for logout functionality and info message, only displays if user is logged in--> </div> </div> </div> </div> </div> </header> <!-- end header element --> <!--Class to make rounded corners hidden until sm screen size--> <div class="bg-imperialnavy p-0 m-0"> <div class="container-fluid px-md-5 mb-4"> <div class="row"> <!-- Button to toggle side menu --> <div class="mt-md-3 mt-2 col-1 text-left"> </div> <div class="mt-2 mt-md-3 col-10"> <h1 class="text-white text-center fw-bold text-wrap">My Imperial</h1> </div> <div class="col-1"></div> </div> </div> <!-- Rounded corner header--> <div class="py-2 mt-0 rounded-header-top bg-white d-block"> </div> <!-- end rounded corner header--> </div> <!-- end primary --> <div class="min-vh-100"> <!--- start in header and closing div will be found in footer --> <div class="container-fluid px-md-5"> <!--- start in header and closing div will be found in footer --> <!-- add anti-forgery token--> <div id="antiforgerytoken" data-url="/_layout/tokenhtml"></div> <!-- Client Telemetry init if telemetry enabled--> <script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/client-telemetry.bundle-c71b2e2d47.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/client-telemetry.bundle-c71b2e2d47.js" type="text/javascript"></script> <!-- Client Telemetry Wrapper init --> <script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/client-telemetry-wrapper.bundle-633e70f51b.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/client-telemetry-wrapper.bundle-633e70f51b.js" type="text/javascript"></script> <script> window.clientLogWrapper = new ClientLogWrapper(); </script> <script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/preform.moment_2_29_4.bundle-4fdd3f639b.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/preform.moment_2_29_4.bundle-4fdd3f639b.js" type="text/javascript"></script> <script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf-dependency.bundle-805a1661b7.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf-dependency.bundle-805a1661b7.js" type="text/javascript"></script> <script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf.bundle-9183da3d63.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf.bundle-9183da3d63.js" type="text/javascript"></script> <script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf-extended.bundle-e303d53553.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf-extended.bundle-e303d53553.js" type="text/javascript"></script> <div id="content-container" class="container wrapper-body" role="main"> <div id="content"> <ul class="nav nav-tabs nav-account" role="tablist" onkeydown="navigation(event)"> <li role="none" class="active"><a role="tab" aria-selected="True" href="javascript:void(0)" aria-label="Sign in" title="Sign in"><span class="fa fa-sign-in" aria-hidden="true"></span> Sign in</a></li> <li role="none" class=""> <a role="tab" aria-selected="False" href="/Account/Login/Register?returnUrl=%2F" aria-label="Register" title="Register">Register</a> </li> </ul> <script type="text/javascript"> const keyCodes = { END: 35, HOME: 36, LEFT: 37, RIGHT: 39, SPACE: 32 }; $(document).ready(function () { //make the tabindex='0' for active tab and -1 for others $(".nav.nav-tabs.nav-account > li > a").attr("tabindex", "-1"); $(".nav.nav-tabs.nav-account > li > a").attr("aria-selected", "false"); $(".nav.nav-tabs.nav-account > li.active > a").attr("tabindex", "0"); $(".nav.nav-tabs.nav-account > li.active > a").trigger("focus"); $(".nav.nav-tabs.nav-account > li.active > a").attr("aria-selected", "true"); }); function navigation(e) { //change tabindex dynamically for all the tabs on key press of left-right navigation keys or home/end keys var tabs = $(".nav.nav-tabs.nav-account > li > a"); if (e.keyCode === keyCodes.END || e.keyCode === keyCodes.HOME || e.keyCode === keyCodes.LEFT || e.keyCode === keyCodes.RIGHT) { var currentTab = $(document.activeElement); for (index = 0; index < tabs.length; index++) { if ($(tabs[index]).text() === currentTab.text()) { e.keyCode === keyCodes.LEFT || e.keyCode === keyCodes.END ? (index == 0 || e.keyCode === keyCodes.END ? $(tabs[tabs.length - 1]).trigger("focus") : $(tabs[index - 1]).trigger("focus")) : (index == (tabs.length - 1) || e.keyCode === keyCodes.HOME ? $(tabs[0]).focus() : $(tabs[index + 1]).trigger("focus")); } } } //open tab on click of SPACE key if (e.keyCode == keyCodes.SPACE) { e.preventDefault(); $(document.activeElement)[0].click(); tabs.attr("tabindex", "-1").attr("aria-selected", "false"); } } </script> <div class="page-content" id="mainContent"> <div class="xrm-editable-html&#32;xrm-attribute&#32;page-copy" data-languageContext="English"><div class="xrm-attribute-value"><script> //Show loading spinner let loadingSpinner = document.getElementById('loadingSpinner'); if (loadingSpinner){ loadingSpinner.style.display="block"; } document.addEventListener("DOMContentLoaded", () => { //Select parts of sign in page to hide const navAccountTabs = document.querySelector(".nav-account"); const loginHeading = document.querySelector(".login-heading-section"); //Text to update the buttons with let updatedButtonTexts = [ "Personal email sign in or register", "Imperial College London sign in" ]; //Create an array containing both buttons let signInButtons = document.querySelectorAll(".btn.btn-primary.btn-line"); //Hide unneccessary text if (loginHeading) { loginHeading.style.display = "none"; } if (navAccountTabs) { navAccountTabs.style.display = "none"; } //Loop over buttons to assign new text //signInButtons.forEach(function (button, index) { // if (updatedButtonTexts[index]) { // button.textContent = updatedButtonTexts[index]; // } //}); // Get the column the default sign in form is in const signInFormColumn = document.querySelector("#mainContent > div.row "); // Create a new div const personaDiv = document.createElement("div"); // Get the sign in form const signInForm = document.querySelector("#mainContent > div.row > div.col-md-6 > form"); // Remove the sign in form from the DOM signInForm.remove(); // Clone the form for students and staff and add class let studentStaffForm = signInForm.cloneNode(true); studentStaffForm.classList.add("mt-3"); // Add classes to the student staff form let studentStaffFormTag = studentStaffForm.querySelector(".form-horizontal"); const personalEmailButton = studentStaffForm.querySelector('[value="B2C_1_signupsigninflow"]'); studentStaffFormTag.classList.add("d-grid","gap-2","col-12","col-sm-6","col-md-6", "col-lg-3","mx-auto"); // Remove the second button (Imperial College button) from the cloned form if (personalEmailButton != null) { personalEmailButton.remove(); } // Clone the form for applicants and add class let ApplicantForm = signInForm.cloneNode(true); ApplicantForm.classList.add("mt-3"); // Add classes to the applicant form let ApplicantFormTag = ApplicantForm.querySelector(".form-horizontal"); ApplicantFormTag.classList.add("d-grid","gap-2","col-12","col-sm-6","col-md-6", "col-lg-3","mx-auto"); //Add the div to the form column signInFormColumn.appendChild(personaDiv); // Create the html elements for the navigation tabs personaDiv.innerHTML = ` <ul class="nav nav-tabs justify-content-center" id="signInTabs" role="tablist"> <li class="nav-item" role="presentation"> <button class="nav-link fw-bold" id="studentTab" data-bs-toggle="tab" data-bs-target="#student-tab-pane" type="button" role="tab" aria-controls="student-tab-pane" aria-selected="false">Student</button> </li> <li class="nav-item" role="presentation"> <button class="nav-link fw-bold active" id="applicantTab" data-bs-toggle="tab" data-bs-target="#applicant-tab-pane" type="button" role="tab" aria-controls="applicant-tab-pane" aria-selected="true">Applicant</button> </li> <li class="nav-item" role="presentation"> <button class="nav-link fw-bold" id="otherTab" data-bs-toggle="tab" data-bs-target="#other-tab-pane" type="button" role="tab" aria-controls="other-tab-pane" aria-selected="false">Other</button> </li> </ul> <div class="tab-content " id="signInTabContent"> <div class="tab-pane fade" id="student-tab-pane" role="tabpanel" aria-labelledby="studentTab" tabindex="0"> <div class="text-center m-3"> <h2 class="fs-4 fw-bolder">Welcome to My Imperial</h2> </div> <p class="fs-5">If you are an Imperial College London student, you can sign in with your Imperial account.</p> <p class="fs-5"> We're in the process of updating My Imperial, so if you are a student, you might not see everything you need here. To access other My Imperial services such as My student record, My passport, visa and CAS, please follow this <a href="https://my.imperial.ac.uk" target="_blank">My Imperial</a> link.</p> <button class="btn btn-outline-primary" type="button" data-toggle="modal" data-target="#studentHelp">Need help? </button> <div aria-labelledby="studentHelpLabel" class="modal show fade bg-primary bg-opacity-50" id="studentHelp" tabindex="-1"> <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable"> <div class="modal-content"> <div class="modal-header"> <div class="modal-title h4 fw-bolder" id="studentHelpLabel"> Help! <br> I don't have a college account </div> <!-- Close button to dismiss the popup --> <button type="button" class="btn-close rounded-circle" data-dismiss="modal" aria-label="Close"> </button> </div> <div class="modal-body"> <div class="row"> <div class="col py-2"> <p> If you are a new student you will need to activate your College account before being able to log in to My Imperial. </p> <p> You will be emailed at the appropriate time during your admissions application to activate your student IT account. </p> </div> </div> </div> </div> </div> </div> </div> <div class="tab-pane fade show active" id="applicant-tab-pane" role="tabpanel" aria-labelledby="applicantTab" tabindex="0"> <div class="text-center m-3"> <h2 class="fs-4 fw-bolder">Welcome to My Imperial</h2> </div> <p class="fs-5">Sign in to apply for our taught and research postgraduate courses, short courses and visiting placements. </p> <p class="fs-5">If you are a new or first time applicant you should register using your personal email.</p> <p class="fs-5"> If you are an existing Imperial College London student or staff, you can sign in with your Imperial account to start your application.</p> <button class="btn btn-outline-primary" type="button" data-toggle="modal" data-target="#applicantHelp">Need help? </button> <div aria-labelledby="applicantHelpLabel" class="modal show fade bg-primary bg-opacity-50" id="applicantHelp" tabindex="-1"> <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable"> <div class="modal-content"> <div class="modal-header"> <div class="modal-title h4 fw-bolder" id="applicantHelpLabel"> Help! <br> I'm having issues signing in or registering. </div> <!-- Close button to dismiss the popup --> <button type="button" class="btn-close rounded-circle" data-dismiss="modal" aria-label="Close"> </button> </div> <div class="modal-body"> <div class="row"> <div class="col py-2"> <p> Please contact our <a href="https://www.imperial.ac.uk/admin-services/ict/contact-ict-service-desk/" target="_blank">ICT Service Desk</a> if you're experiencing any issues with registering, resetting your password or logging in. </p> </div> </div> </div> </div> </div> </div> </div> <div class="tab-pane fade" id="other-tab-pane" role="tabpanel" aria-labelledby="otherTab" tabindex="0"> <div class="text-center m-3"> <h2 class="fs-4 fw-bolder">Welcome to My Imperial</h2> </div> <p class="fs-5">If you have an Imperial College London account, please use it to sign in. </p> <p class="fs-5"> If you do not have an Imperial account, please sign in or register using your personal email address. </p> <button class="btn btn-outline-primary" type="button" data-toggle="modal" data-target="#otherHelp">Need help? </button> <div aria-labelledby="otherHelpLabel" class="modal show fade bg-primary bg-opacity-50" id="otherHelp" tabindex="-1"> <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable"> <div class="modal-content"> <div class="modal-header"> <div class="modal-title h4 fw-bolder" id="otherHelpLabel"> Help! <br> I'm having issues signing in. </div> <!-- Close button to dismiss the popup --> <button type="button" class="btn-close rounded-circle" data-dismiss="modal" aria-label="Close"> </button> </div> <div class="modal-body"> <div class="row"> <div class="col py-2"> <p> Please contact our <a href="https://www.imperial.ac.uk/admin-services/ict/contact-ict-service-desk/" target="_blank">ICT Service Desk</a> if you're experiencing any issues with registering, resetting your password or signing in. </p> </div> </div> </div> </div> </div> </div> </div> </div> `; // Get references to the tab content panes const studentTabPane = document.querySelector("#student-tab-pane"); const applicantTabPane = document.querySelector("#applicant-tab-pane"); const otherTabPane = document.querySelector("#other-tab-pane"); // Append the modified form to each tab content pane studentTabPane.appendChild(studentStaffForm.cloneNode(true)); applicantTabPane.appendChild(ApplicantForm.cloneNode(true)); otherTabPane.appendChild(ApplicantForm.cloneNode(true)); // Hide loading spinner loadingSpinner.style.display="none"; }); </script></div></div> <div class="row"> <div class="col-md-6"> <form action="/Account/Login/ExternalLogin?ReturnUrl=%2F" method="post"><input name="__RequestVerificationToken" type="hidden" value="8jHc3mQUR15X0AUlm6XdTh4pw88bPUDQdxOuquYTU4N3TDgEylXkvRU8cUghfB17FT5PuxV1dRHlwNDOMavtd4oG4X4RdWIw-RB0-HqWjAs1" /> <div class="form-horizontal"> <h2 class="login-heading-section" id="external-login-heading"> <span class="xrm-editable-text&#32;xrm-attribute" data-languageContext="English"><span class="xrm-attribute-value-encoded&#32;xrm-attribute-value">External SignIn</span></span> </h2> <div aria-describedby="loginValidationSummary" aria-label="Sign&#32;in&#32;failed." class="validation-summary-valid&#32;listStyleTypeNone&#32;alert&#32;alert-block&#32;alert-danger" data-valmsg-summary="true" id="loginValidationSummary" tabindex="0"><ul><li style="display:none"></li> </ul></div> <div id="6_ctl00_AzureADRebrandDisclaimer"> </div> <button name="provider" type="submit" class="btn btn-primary btn-line" id="B2C_1_signupsigninflow" title="Sign in with your Personal email sign in or register account." value="B2C_1_signupsigninflow">Personal email sign in or register </button> <button name="provider" type="submit" class="btn btn-primary btn-line" id="https://login.windows.net/2b897507-ee8c-4575-830b-4f8267c3d307/" title="Sign in with your Imperial College London sign in account." value="https://login.windows.net/2b897507-ee8c-4575-830b-4f8267c3d307/">Imperial College London sign in </button> </div> </form> </div> </div> <script type="text/javascript"> $(document).ready(function () { document.querySelector('title').innerHTML = ($('.nav-tabs > li.active').text() + "My Imperial"); shell.refreshToken(); }); </script> </div> </div> </div> <script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf-loader.bundle-f4a0e619b8.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf-loader.bundle-f4a0e619b8.js" type="text/javascript"></script> <div id="pp-native-controls-react-root"></div> <script>window._nativeControlConfig = { "publicPath":"https://content.powerapps.com/resource/powerappsportal/controls", "versions": {"pcf_loader":"0.0.29","pcf_controls":"3.3.1","mf_shared":"0.2.9","host":"0.4.0","data_grid":"1.1.30","controls_fluent_v9":"0.0.32"} }</script> <script defer="defer" src="https://content.powerapps.com/resource/powerappsportal/controls/host/main.e9930a0a5c.chunk.js"></script> </div> <!---closing div for container-fluid px-md-5 which start in header --> </div> <!--- closing div for min-vh-100 which start in header --> <!-- start of footer element --> <footer role="contentinfo" class="footer mt-4 pt-3 bg-light"> <div class="hidden-print"> <div class="container-fluid px-5"> <div class="row text-dark px-4"> <div class="col-6 text-left"> <ul class="list-inline"> <li class="list-inline-item"> <a class="text-dark" target="_blank" href="https://servicemgt.imperial.ac.uk/ask">Support</a> </li> <li class="list-inline-item"> <a class="text-dark" target="_blank" href="https://www.imperial.ac.uk/admin-services/secretariat/information-governance/data-protection/processing-personal-data/privacy-notices/">Privacy notices</a> </li> <li class="list-inline-item"> <a class="text-dark" href="/Accessibility/">Accessibility</a> </li> </ul> </div> <div class="col-6"> <div class="xrm-editable-html&#32;xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><p class="mb-0 text-end">漏 2024 - <a href="https://www.imperial.ac.uk" class="text-dark" target="_blank">Imperial College London</a></p></div></div> </div> </div> </div> </div> <!-- accessibility statement pop up --> <div class="modal show fade" tabindex="-1" aria-labelledby="AccessibilityStatmentPopup" aria-hidden="true" id="AccessibilityStatmentPopup" data-bs-backdrop="static" data-bs-keyboard="false"> <div class="modal-dialog modal-dialog-centered d-flex justify-content-center align-items-center"> <div class="modal-content"> <div class="modal-header"> <div class="modal-title h4 fw-bolder"> <p>Accessibility statement</p> </div> <!-- Close button to dismiss the popup --> <button type="button" class="btn-close rounded-circle" data-dismiss="modal" aria-label="Close accessibility statement"></button> </div> <div class="modal-body"> <div class="row"> <div class="col py-2"> We are working on our accessibility statement, in the meantime please reach out to our team at <a href="mailto:SLCRMteam@imperial.ac.uk">SLCRMteam@imperial.ac.uk</a> should you need any support. </div> </div> </div> </div> </div> </div> <!-- End accessibility statement pop up --> </footer> <script src="/bootstrap.min.js"></script> <script> $(document).ready(function () { let elements = document.querySelectorAll('select'); if (elements && elements[0]) { // check if the first element exists for (let i = 0; i < elements.length; i++) { elements[i].classList.add('form-select'); } } }); let elements = document.querySelectorAll('input[type=checkbox]'); if (elements && elements[0]) { // check if the first element exists for (let i = 0; i < elements.length; i++) { elements[i].classList.add('form-check-input'); } }; </script> <script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/bootstrap.bundle-105a4995b8.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/bootstrap.bundle-105a4995b8.js" type="text/javascript"></script> <script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/postpreform.bundle-184c77da50.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/postpreform.bundle-184c77da50.js" type="text/javascript"></script> <script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/app.bundle-dad47d7e41.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/app.bundle-dad47d7e41.js" type="text/javascript"></script> <script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/default-1033.moment_2_29_4.bundle-eda4e638fd.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://content.powerapps.com/resource/powerappsportal/dist/default-1033.moment_2_29_4.bundle-eda4e638fd.js" type="text/javascript"></script> <script> //this event will update the title of the page based on active breadcrumb $('.breadcrumb').ready(function () { if ($('.breadcrumb').is(':visible')) { document.querySelector('title').innerHTML = ($('.breadcrumb > li.active').text() + "My Imperial"); } }); function GoToNewEditor() { var editCmsUrlSegment = "EditInCms"; var currentUrl = window.location.href; if (currentUrl.indexOf('?') > -1) { var urlSegments = currentUrl.split("?"); window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname + '?' + urlSegments[1]; } else { window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname; } } </script> <script> if ('serviceWorker' in navigator) { navigator.serviceWorker.getRegistrations().then(function(registrations) { for(let registration of registrations) { registration.unregister(); }}).catch(function(err) { console.log('Service Worker unregister action failed: ', err); }); } </script> <!--Start Show Session Expire Warning Popup here --> </body> </html> <!-- Generated at 11/24/2024 1:43:30 AM --> <!-- Page OK -->

Pages: 1 2 3 4 5 6 7 8 9 10