CINXE.COM
home.title · Custom Portal
<!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, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /> <script type="text/javascript" > </script> <title> home.title · Custom Portal </title> <script src="/_portal/d78574f9-20c3-4dcc-8d8d-85cf5b7ac141/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 href="/css/bootstrap.min.css" rel="stylesheet" /> <link href="https://content.powerapps.com/resource/powerappsportal/dist/font-awesome.bundle-3d8a58a48f.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/font-awesome.bundle-3d8a58a48f.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> <link href="https://content.powerapps.com/resource/powerappsportal/dist/preform.bundle-6ce0674302.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/preform.bundle-6ce0674302.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> <link href="/theme.min.css?1719964877000" rel="stylesheet" /> <link href="/portalbasictheme.css?1727617437000" rel="stylesheet" /> <link href="https://content.powerapps.com/resource/powerappsportal/dist/pwa-style.bundle-2739c60227.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/pwa-style.bundle-2739c60227.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> </head> <body data-sitemap-state="/" data-dateformat="M/d/yyyy" data-timeformat="h:mm tt" data-datetimeformat="M/d/yyyy h:mm tt" data-app-path="/" data-ckeditor-basepath="/js/BaseHtmlContentDesigner/Libs/msdyncrm_/libs/ckeditor/" data-case-deflection-url="/_services/search/d78574f9-20c3-4dcc-8d8d-85cf5b7ac141"> <link href="https://content.powerapps.com/resource/powerappsportal/dist/pcf-style.bundle-2659c6f064.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/pcf-style.bundle-2659c6f064.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> <div id="offlineNotificationBar" style="display: none;"> <img alt="web" id="web" onerror="javascript: var target = event.target; var img = document.createElement('img'); img.src = '/css/images/web.png'; img.alt = 'web'; img.id = 'web' ; target.insertAdjacentElement('afterend',img); target.remove();" src="https://content.powerapps.com/resource/powerappsportal/img/web.png" /> <div id="message">You’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: var target = event.target; var img = document.createElement('img'); img.src = '/css/images/close.png'; img.alt = 'close'; img.id = '' ; target.insertAdjacentElement('afterend',img); 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.9.39', type: 'CDSStarterPortal', id: '1ad3b310-71fc-45ed-99ef-0c592a9269da', geo: 'CAN', tenant: 'a65e50e1-a948-479b-8fed-f4e96b62098d', correlationId: '2e913ec1-5520-4e15-8196-9875946c0264', orgEnvironmentId: 'f995ceff-d4e8-4720-8163-105178177360', portalProductionOrTrialType: 'Production', isTelemetryEnabled: 'True', InstrumentationSettings: { instrumentationKey: '197418c5cb8c4426b201f9db2e87b914-87887378-2790-49b0-9295-51f43b6204b1-7172', collectorEndpoint: 'https://us-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 = '6oZ4qxVYC0XuDwZdU_uZAnPyJfB85Oo4UWrry8EkWEBwy-R5VniHeNMdR2I5btDknp2preflS2G68bXQDy0rCI8MqvltvZ73F8uGjoFFuTP2KtBS_eFj2hu8fj7SEuGLzdpEGvKyAiZV_IpJ7hFegA2'; // CodeQL [SM00430] False Positive: only alphanumeric chars allowed, for non-alphanumeric char it will return INVALID_CHARACTERS_IN_COOKIE </script> <script type="text/javascript"> </script> <!-- add anti-forgery token--> <div id="antiforgerytoken" data-url="/_layout/tokenhtml"></div> <!-- Client Telemetry init if telemetry enabled--> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/client-telemetry.bundle-ecbf4ab0d0.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/client-telemetry.bundle-ecbf4ab0d0.js" type="text/javascript"></script> <!-- Client Telemetry Wrapper init --> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/client-telemetry-wrapper.bundle-633e70f51b.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',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: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/preform.moment_2_29_4.bundle-4fdd3f639b.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/preform.moment_2_29_4.bundle-4fdd3f639b.js" type="text/javascript"></script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf-dependency.bundle-805a1661b7.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf-dependency.bundle-805a1661b7.js" type="text/javascript"></script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf.bundle-9183da3d63.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf.bundle-9183da3d63.js" type="text/javascript"></script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf-extended.bundle-e303d53553.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/pcf-extended.bundle-e303d53553.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="https://irpc-mycase-cdn.azureedge.net/wet/GCWeb/css/theme.min.css"> <link rel="stylesheet" type="text/css" href="https://irpc-mycase-cdn.azureedge.net/wet/font-awesome/css/fontawesome.min.css"> <link rel="stylesheet" type="text/css" href="https://irpc-mycase-cdn.azureedge.net/wet/font-awesome/css/solid.min.css"> <link href="/../theme.min.css" rel="stylesheet" /> <script> document.cookie = 'ContextLanguageCode=en-US;path=/'; </script> <header class="override-header s4-notdlg" role="banner"> <h2 class="wb-inv">Current page: Welcome</h2> <div class="skip-links"> <a href="#pagemain">Skip to main content</a> <a href="#pagemainnav">Skip to main navigation</a> </div> <div id="wb-bnr" class="container"> <div class="row"> <div id="wb-lng" class="col-xs-12 col-sm-12 pull-right text-right"> <ul class="list-inline mrgn-bttm-0"> <li> <h2 class="wb-inv">Language selection</h2> <a lang="fr" hreflang="fr" href="/fr-FR/" class="mrgn-lft-0"> <span class="hidden-xs">Français</span><abbr title="Français" class="visible-xs h3 mrgn-tp-sm mrgn-bttm-0 text-uppercase">fr</abbr> </a> </li> </ul> </div> </div> <div class="row"> <div class="brand col-xs-12 col-sm-7 col-md-7" property="publisher" resource="#wb-publisher" typeof="GovernmentOrganization"> <img src="/IRB_wht_EN.svg" class="img-responsive" alt="Immigration and Refugee Board of Canada" property="logo"> <meta property="name" content="Immigration and Refugee Board of Canada"> <meta property="areaServed" typeof="Country" content="Canada"> <link property="logo" href="/IRB_wht_EN.svg"> </div> <div id="wb-srch" class="col-md-offset-1 col-xs-12 col-sm-5 col-md-4"> <form action="#" method="post" name="cse-search-box" role="search"> <div class="form-group wb-srch-qry mrgn-tp-md"> <label for="wb-srch-q" class="wb-inv">Search Canada.ca</label> <input id="wb-srch-q" list="wb-srch-q-ac" class="wb-srch-q form-control" name="q" type="search" value="" size="34" maxlength="170" placeholder="Search Canada.ca"> <datalist id="wb-srch-q-ac"></datalist> </div> <div class="form-group submit mrng-tp-md"> <button type="submit" id="wb-srch-sub" class="btn btn-primary btn-small" name="wb-srch-sub"><span class="glyphicon-search glyphicon"></span><span class="wb-inv">Search</span></button> </div> </form> </div> </div> </div> <nav class="wb-menu visible-xs visible-sm visible-md visible-lg wb-menu-inited wb-navcurr-inited" id="wb-sm" role="navigation" typeof="SiteNavigationElement" data-trgt="mb-pnl" property="navigation"> <div class="pnl-strt container visible-xs visible-sm visible-md visible-lg nvbar"> <ul class="list-inline menu" role="menubar"> <li> <a class="item" role="menuitem" href="/">Welcome</a> </li> <li class="helpmenu-btn"> <!-- <button type="button" aria-haspopup="true" aria-expanded="false"><span class="wb-inv">Help and Support</span>Help and Support<span class="expicon glyphicon glyphicon-chevron-down"></span></button> --> <a class="item" role="menuitem" aria-haspopup="true" aria-expanded="false" href="##" tabindex="0" aria-posinset="1" aria-setsize="2">Help and Support<span class="fas fa-chevron-down open-chevron"></span><span class="fas fa-chevron-up closed-chevron"></span></a> <ul class="sm list-unstyled" id="Demandesd’asile" role="menu" aria-expanded="false" aria-hidden="true"> <li><a role="menuitem" href="/faq" aria-setsize="4" aria-posinset="1" tabindex="-1">My Case User Guide</a></li> <li><a role="menuitem" href="/login-services-acces" aria-setsize="4" aria-posinset="2" tabindex="-1" >Log-in Services</a></li> <li><a role="menuitem" href="/glossary" aria-setsize="4" aria-posinset="3" tabindex="-1" >Glossary of terms used for case information</a></li> <li><a role="menuitem" href="/terms-and-conditions" aria-setsize="4" aria-posinset="4" tabindex="-1" >Terms and Conditions</a></li> </ul> </li> </ul> <!-- </div> --> </div> </nav> <div> <div id="alert" class="hide"></div> </div> </header> <script type="text/javascript"> function signOut() { if(window.sessionStorage) { sessionStorage.clear(); } sessionStorage.clear(); localStorage.clear(); window.location.replace("/en-US/Account/Login/LogOff?returnUrl=%2Fen-US%2F"); //window.location.replace("/en-US/Account/Login/LogOff?returnUrl=%2Fen-US%2F"); }; function logout(secUrl, redirUrl) { if (bowser.msie) { document.execCommand('ClearAuthenticationCache', 'false'); } else if (bowser.gecko) { $.ajax({ async: false, url: secUrl, type: 'GET', username: 'logout' }); } else if (bowser.webkit) { var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", secUrl, true); xmlhttp.setRequestHeader("Authorization", "Basic logout"); xmlhttp.send(); } else { alert("Logging out automatically is unsupported for " + bowser.name + "\nYou must close the browser to log out."); } setTimeout(function () { window.location.href = redirUrl; }, 200); } </script> <script type="text/javascript"> function setCookie(name, value) { const d = new Date(); d.setTime(d.getTime() + (3650 * 24 * 60 * 60 * 1000)); //10 years let expires = "expires=" + d.toUTCString(); document.cookie = name + "=" + value + ";" + expires + ";path=/"; } function getCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); } return null; } var mycounselid; var mycounselname; console.log("page.adx_name: ","home.en"); console.log("reginfo.portalregistrationstatus.value: ",); console.log("reginfo.portalmobileconfirmed: ",); console.log("settings['dcm/TermsAndConditionsModified']: ",""); console.log("reginfo.portaltermsagreementdate: ",""); console.log("termsAccepted: ","false"); console.log("reginfo.email: ",""); console.log("reginfo.contacttype: ",""); console.log("user.id: ",""); console.log("user.dcm_portalregistrationmobile: ",""); console.log("reginfo.isblocked: ",""); console.log("lang: ","en"); console.log("unauthenticatedpages: ","false"); console.log("LinkLoginEnabled: ", "false"); console.log("GCCF Onboarded: false"); console.log("TCEffectiveDate < userAgreementDate: ","False"); function redirectWithLocaleCheck(pageUrl) { sessionStorage.setItem("existingSession",true); var currentPage = "home.en"; if (!(sessionStorage.getItem('GCCFLocaleRead'))) { sessionStorage.setItem("GCCFLocaleRead", true); document.cookie = 'ContextLanguageCode=en-US;path=/'; window.location.replace("/en-US/" + pageUrl); } else { //avoid infinite loops if (!currentPage.startsWith(pageUrl)) { window.location.replace("/en-US/" + pageUrl); } } } </script> <main property="mainContentOfPage" class="container" typeof="WebPageElement" role="main" id="main" tabindex="0"> <div class="row"> <div class="col-md-12"> <h1 property="name" id="wb-cont"> <span id="pagetitle"> Welcome </span> </h1> </div> </div> <div class="row"> <div id="pagemain" class="col-md-12" style="margin-top:2rem"> <section class="home-welcome"> <div> <p>My Case is a secure, online application that allows you to view case information on any active cases you have before the Immigration and Refugee Board of Canada (IRB).</p> <div class="panel panel-default"> <div class="panel-body"> <h2 class="h3 mrgn-tp-sm">Sign in or sign up to view your active cases before the IRB</h2> <form action="/en-US/Account/Login/ExternalLogin" id="login-frm" method="post"> <div class="form-horizontal"> <fieldset aria-labelledby="external-login-heading"> <button class="btn btn-primary mrgn-bttm-md" id="https://gc.auth.canada.ca/" name="provider" title="Access your My Case account." type="submit" value="https://gc.auth.canada.ca/"> Access My Case </button> </fieldset> </div> </form> <iframe id="signin" src="/signin" style="display:none"></iframe> <div> <ul> <li><span class="bold">If you are not using a Sign-In Partner, sign in</span> with your GCKey username and password.</li> <li><span class="bold">If you don’t have a GCKey, you will need to register</span> for a GCKey username and password.</li> </ul> </div> </div> </div> <h2 class="mrgn-tp-md">Registration process and electronic document submission</h2> <p>Before registering for My Case, please read <a href="https://irb-cisr.gc.ca/en/legal-policy/procedures/Pages/my-case-portal-registration-submission-documents.aspx" target="_blank">My Case portal registration and submission of documents</a>, <br> For more information on electronic document submission, please read the <a href="https://irb-cisr.gc.ca/en/legal-policy/procedures/Pages/electronic-exchange-documents-my-case.aspx" target="_blank">Practice Notice – Electronic Exchange of Documents Using My Case</a>, <br> For additional information on My Case functionality, refer to the <a href="faq" target="_blank">My Case User Guide</a>.</p> <h2 class="mrgn-tp-md">For your protection</h2> <p>Protect your passwords in public, don’t share passwords or PINs online or over the phone, even with family members.<br> Never choose to have your Web browser remember your credentials.<br> Always log off or sign out of accounts and websites when you are finished; don't just close your browser.</p> <ul> <li>Sign out of your account every time you leave the computer.</li> <li>Clear your browser’s cache and close your browser after each session.</li> </ul> <h2 class="mrgn-tp-md">Help and Support</h2> <p>Get help using My Case.</p> <ul> <li><a href="login-services-acces/#" target="_blank">Log-in Services</a></li> <li><a href="faq/#" target="_blank">My Case User Guide</a></li> <li><a href="faq/#technical" target="_blank">Contact us</a></li> </ul> </div> </section> </div> </div> <br /><br /><br /> </main> <div id="bottom-fold-wrapper"> <div class="s4-notdlg"> </div> <div class="container s4-notdlg"> <div class="row pagedetails"> <div role="contentinfo" class="datemod col-xs-12 mrgn-tp-lg"> <dl id="wb-dtmd" class="s4-notdlg"> <dt>Version:</dt> <dd> 2024.13.13930 </dd> <!-- <dt>Date modified:</dt> <dd> 2022-04-13 </dd> --> </dl> </div> </div> </div> </div> <div class="global-footer s4-notdlg noindex"> <!-- New footer --> <footer class="override-footer" role="contentinfo" id="wb-info"> <nav role="navigation" class="container"> <h2>About this site</h2> <section class="col-sm-3"> <h3>About us</h3> <ul class="list-unstyled"> <li><a href="https://irb-cisr.gc.ca/en/board/Pages/index.aspx">About the Board</a></li> <li><a href="https://irb.gc.ca/en/jobs/Pages/index.aspx">Careers at the IRB</a></li> <li><a href="https://irb-cisr.gc.ca/en/members/Pages/index.aspx">Members</a></li> <li><a href="https://irb-cisr.gc.ca/en/transparency/proactive-disclosure/pages/index.aspx">Proactive disclosure</a></li> </ul></section><section class="col-sm-3"> <h3>Publications</h3> <ul class="list-unstyled"> <li><a href="https://irb-cisr.gc.ca/en/transparency/counsel-conduct/pages/index.aspx">Counsel conduct</a></li> <li><a href="https://irb-cisr.gc.ca/en/country-information/Pages/index.aspx">Country of origin information</a></li> <li><a href="https://irb-cisr.gc.ca/en/forms/Pages/index.aspx">Forms</a></li> <li><a href="https://irb-cisr.gc.ca/en/transparency/member-conduct/Pages/index.aspx">Member complaints reports</a></li> <li><a href="https://open.canada.ca/en/search/ati?ati%5B0%5D=ati_organization_en%3AImmigration%20and%20Refugee%20Board%20of%20Canada">Open Government portal</a></li> <li><a href="https://irb-cisr.gc.ca/en/transparency/reviews-audit-evaluations/Pages/index.aspx">Program and policy reviews</a></li> <li><a href="https://irb-cisr.gc.ca/en/reports-publications/Pages/index.aspx">Reports and publications</a></li> </ul> </section> <section class="col-sm-3"> <h3>Resources</h3> <ul class="list-unstyled"> <li><a href="https://irb-cisr.gc.ca/en/legal-policy/act-rules-regulations/Pages/index.aspx">Acts, rules and regulations</a></li> <li><a href="https://irb-cisr.gc.ca/en/legal-policy/policies/Pages/chairperson-guideline.aspx">Chairperson's guidelines</a></li> <li><a href="https://irb-cisr.gc.ca/en/decisions/Pages/index.aspx">Decisions</a></li> <li><a href="https://irb-cisr.gc.ca/en/legal-policy/legal-concepts/Pages/index.aspx">Legal resources</a></li> <li><a href="https://irb-cisr.gc.ca/en/legal-policy/policies/Pages/index.aspx">Policy instruments</a></li> <li><a href="https://irb-cisr.gc.ca/en/legal-policy/procedures/pages/index.aspx">Procedures and practice notices</a></li> <li><a href="https://irb-cisr.gc.ca/en/statistics/Pages/index.aspx">Statistics</a></li> </ul> </section> <section class="col-sm-3"> <h3>Stay connected</h3> <ul class="list-unstyled"> <li><a href="https://irb-cisr.gc.ca/en/contact/Pages/index.aspx">Contact us</a></li> <li><a href="https://irb-cisr.gc.ca/en/faq/Pages/index.aspx">Frequently asked questions</a></li> <li><a href="https://irb-cisr.gc.ca/en/news/Pages/index.aspx">News</a></li> </ul> </section> <section class="col-sm-3"> <h3>Follow us</h3> <ul class="list-unstyled"> <li> <a href="https://twitter.com/IRB_Canada"> <img class="logo-bottom" src="/Twitter.svg"> <span class="wb-inv">Twitter</span> </a> <a href="https://www.facebook.com/IRBCanada"> <img class="logo-bottom" src="/Facebook.svg"> <span class="wb-inv">Facebook</span> </a> <a href="https://ca.linkedin.com/company/irb-cisr"> <img class="logo-bottom" src="/LinkedIn.svg"> <span class="wb-inv">LinkedIn</span> </a> <a href="https://www.youtube.com/channel/UCYoiGrja0ZwLNhzhqjgZIEw" > <img class="logo-bottom" src="/YouTube.svg"> <span class="wb-inv">Youtube</span> </a> </li> </ul> </section> </nav> <div class="brand"> <div class="container"> <div class="row"> <nav class="col-sm-12 col-md-6 ftr-urlt-lnk"> <h2 class="wb-inv noindex">About this site</h2> <ul> <li class="noindex"><a href="https://irb-cisr.gc.ca/en/transparency" target="_blank">Transparency</a></li> <li class="noindex"><a href="https://irb-cisr.gc.ca/en/terms-conditions" target="_blank">Terms and conditions</a></li> </ul> </nav> <div class="col-xs-12 col-sm-6 visible-sm visible-xs tofpg"> <a class="gl-footer" href="#wb-cont"> <span>Top of Page</span> <span class="glyphicon glyphicon-chevron-up"></span></a> </div> <div class="col-xs-12 col-sm-6 text-right footerbrand"> <img src="https://irpc-mycase-cdn.azureedge.net/wet/GCWeb/assets/wmms-blk.svg" alt="Symbol of the Government of Canada"> </div> </div> </div> </div> </footer> </div> <!-- <link rel="stylesheet" type="text/css" href="https://irpc-mycase-cdn.azureedge.net/wet/GCWeb/css/theme.min.css"> <link rel="stylesheet" type="text/css" href="https://irpc-mycase-cdn.azureedge.net/wet/font-awesome/css/fontawesome.min.css"> <link rel="stylesheet" type="text/css" href="https://irpc-mycase-cdn.azureedge.net/wet/font-awesome/css/solid.min.css"> <link href="/../theme.min.css" rel="stylesheet" /> --> <script src="https://irpc-mycase-cdn.azureedge.net/wet/wet-boew/js/jquery/2.2.4/jquery.js"></script> <script src="https://irpc-mycase-cdn.azureedge.net/wet/wet-boew/js/wet-boew.min.js"></script> <script src="https://irpc-mycase-cdn.azureedge.net/wet/wet-boew/js/deps/jquery.print.min.js"></script> <script src="https://irpc-mycase-cdn.azureedge.net/wet/wet-boew/js/moment/moment.min.js"></script> <script src="https://irpc-mycase-cdn.azureedge.net/wet/wet-boew/js/moment/moment-timezone.min.js"></script> <script src="https://irpc-mycase-cdn.azureedge.net/wet/wet-boew/js/deps/html2pdf.bundle.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/js/bootstrap-multiselect.min.js" integrity="sha512-p/rWSzeAUmYFvtMy6D5VfINfnHEWSz1h87a7fyGMaQQGmniI54CGQyecfvy5MTtGzZ80CyL/JG39SfVJjqiUJw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/5.0.7/jquery.inputmask.min.js" integrity="sha512-jTgBq4+dMYh73dquskmUFEgMY5mptcbqSw2rmhOZZSJjZbD2wMt0H5nhqWtleVkyBEjmzid5nyERPSNBafG4GQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdn.jsdelivr.net/npm/web-streams-polyfill@2.0.2/dist/ponyfill.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/streamsaver@2.0.3/StreamSaver.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-balloon-js/1.1.2/jquery.balloon.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js" integrity="sha512-aUhL2xOCrpLEuGD5f6tgHbLYEXRpYZ8G5yD+WlFrXrPy2IrWBlu6bih5C9H6qGsgqnU6mgx6KtU8TreHpASprw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script type="text/javascript" src="https://cdn.datatables.net/1.10.25/js/jquery.dataTables.min.js"></script> <script type="text/javascript" src="https://cdn.datatables.net/1.10.25/js/dataTables.bootstrap.min.js"></script> <script type="text/javascript" src="https://cdn.datatables.net/select/1.3.3/js/dataTables.select.min.js"></script> <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.7.1/js/dataTables.buttons.min.js"></script> <script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.10/index.global.min.js'></script> <script src='https://cdn.jsdelivr.net/npm/@fullcalendar/core@6.1.10/locales/fr.global.min.js'></script> <script src='https://cdn.jsdelivr.net/npm/@fullcalendar/moment-timezone@6.1.10/index.global.min.js'></script> <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.25/css/dataTables.bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/sl-1.3.3/datatables.min.css"> <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/select/1.3.3/css/select.dataTables.min.css"> <script type="text/javascript"> /* * bootstrap-session-timeout * www.orangehilldev.com * * Copyright (c) 2014 Vedran Opacic * Licensed under the MIT license. */ (function($) { /*jshint multistr: true */ 'use strict'; $.sessionTimeout = function(options) { var defaults = { title: 'Session timeout warning', message: 'Session timeout warning', logoutButton: 'End session now', keepAliveButton: 'Continue session', keepAliveUrl: '/keep-alive', ajaxType: 'POST', ajaxData: '', redirUrl: '/timed-out', logoutUrl: '/log-out', warnAfter: 480000, // 8 minutes redirAfter: 600000, // 10 minutes keepAliveInterval: 5000, keepAlive: true, ignoreUserActivity: false, onStart: false, onWarn: false, onRedir: false, countdownMessage: false, countdownMessage2: false, countdownBar: false, countdownSmart: false }; var opt = defaults, timer, countdown = {}; // Extend user-set options over defaults if (options) { opt = $.extend(defaults, options); } // Some error handling if options are miss-configured if (opt.warnAfter >= opt.redirAfter) { console.error('Bootstrap-session-timeout plugin is miss-configured. Option "redirAfter" must be equal or greater than "warnAfter".'); return false; } // Unless user set his own callback function, prepare bootstrap modal elements and events if (typeof opt.onWarn !== 'function') { // If opt.countdownMessage is defined add a coundown timer message to the modal dialog var countdownMessage = opt.countdownMessage ? '<p>' + opt.countdownMessage.replace(/{timer}/g, '<span class="countdown-holder"></span>') + '</p>' : ''; countdownMessage = countdownMessage + '<p>' + opt.countdownMessage2 + '</p>'; var coundownBarHtml = opt.countdownBar ? '<div class="progress"> \ <div class="progress-bar progress-bar-striped countdown-bar active" role="progressbar" style="min-width: 1.5rem; width: 100%;"> \ <span class="countdown-holder"></span> \ </div> \ </div>' : ''; // Create timeout warning dialog $('body').append('<div class="modal fade" id="session-timeout-dialog"> \ <div class="modal-dialog"> \ <div class="modal-content"> \ <div class="modal-header bg-primary" style="border-radius: 6px 6px 0 0"> \ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> \ <h2 class="modal-title bg-primary">' + opt.title + '</h2> \ </div> \ <div class="modal-body bgColorWhite"> \ <p></p> \ ' + countdownMessage + ' \ ' + coundownBarHtml + ' \ </div> \ <div class="modal-footer bg-info" style="border-radius: 0 0 6px 6px"> \ <button id="session-timeout-dialog-logout" type="button" class="btn btn-default">' + opt.logoutButton + '</button> \ <button id="session-timeout-dialog-keepalive" type="button" class="btn btn-primary" data-dismiss="modal">' + opt.keepAliveButton + '</button> \ </div> \ </div> \ </div> \ </div>'); // "Logout" button click $('#session-timeout-dialog-logout').on('click', function() { signOut(); //window.location = opt.logoutUrl; }); // "Stay Connected" button click $('#session-timeout-dialog').on('hide.bs.modal', function() { // Restart session timer startSessionTimer(); }); } // Reset timer on any of these events if (!opt.ignoreUserActivity) { var mousePosition = [-1, -1]; $(document).on('keyup mouseup mousemove touchend touchmove', function(e) { if (e.type === 'mousemove') { // Solves mousemove even when mouse not moving issue on Chrome: // https://code.google.com/p/chromium/issues/detail?id=241476 if (e.clientX === mousePosition[0] && e.clientY === mousePosition[1]) { return; } mousePosition[0] = e.clientX; mousePosition[1] = e.clientY; } if(e.type === 'mousemove' && $('div.modal-backdrop').length > 0) { return; } startSessionTimer(); // If they moved the mouse not only reset the counter // but remove the modal too! if ($('#session-timeout-dialog').length > 0 && $('#session-timeout-dialog').data('bs.modal') && $('#session-timeout-dialog').data('bs.modal').isShown) { // http://stackoverflow.com/questions/11519660/twitter-bootstrap-modal-backdrop-doesnt-disappear $('#session-timeout-dialog').modal('hide'); $('body').removeClass('modal-open'); $('div.modal-backdrop').remove(); } }); } // Keeps the server side connection live, by pingin url set in keepAliveUrl option. // KeepAlivePinged is a helper var to ensure the functionality of the keepAliveInterval option var keepAlivePinged = false; function keepAlive() { if (!keepAlivePinged) { // Ping keepalive URL using (if provided) data and type from options $.ajax({ type: opt.ajaxType, url: opt.keepAliveUrl, data: opt.ajaxData }); keepAlivePinged = true; setTimeout(function() { keepAlivePinged = false; }, opt.keepAliveInterval); } } function startSessionTimer() { // Clear session timer clearTimeout(timer); if (opt.countdownMessage || opt.countdownBar) { startCountdownTimer('session', true); } if (typeof opt.onStart === 'function') { opt.onStart(opt); } // If keepAlive option is set to "true", ping the "keepAliveUrl" url if (opt.keepAlive) { keepAlive(); } // Set session timer timer = setTimeout(function() { // Check for onWarn callback function and if there is none, launch dialog if (typeof opt.onWarn !== 'function') { $('#session-timeout-dialog').modal('show'); } else { opt.onWarn(opt); } // Start dialog timer startDialogTimer(); }, opt.warnAfter); } function startDialogTimer() { // Clear session timer clearTimeout(timer); if (!$('#session-timeout-dialog').hasClass('in') && (opt.countdownMessage || opt.countdownBar)) { // If warning dialog is not already open and either opt.countdownMessage // or opt.countdownBar are set start countdown startCountdownTimer('dialog', true); } // Set dialog timer timer = setTimeout(function() { signOut(); // Check for onRedir callback function and if there is none, launch redirect //if (typeof opt.onRedir !== 'function') { // window.location = opt.redirUrl; //} else { // opt.onRedir(opt); //} }, (opt.redirAfter - opt.warnAfter)); } function startCountdownTimer(type, reset) { // Clear countdown timer clearTimeout(countdown.timer); if (type === 'dialog' && reset) { // If triggered by startDialogTimer start warning countdown countdown.timeLeft = Math.floor((opt.redirAfter - opt.warnAfter) / 1000); } else if (type === 'session' && reset) { // If triggered by startSessionTimer start full countdown // (this is needed if user doesn't close the warning dialog) countdown.timeLeft = Math.floor(opt.redirAfter / 1000); } // If opt.countdownBar is true, calculate remaining time percentage if (opt.countdownBar && type === 'dialog') { countdown.percentLeft = Math.floor(countdown.timeLeft / ((opt.redirAfter - opt.warnAfter) / 1000) * 100); } else if (opt.countdownBar && type === 'session') { countdown.percentLeft = Math.floor(countdown.timeLeft / (opt.redirAfter / 1000) * 100); } // Set countdown message time value var countdownEl = $('.countdown-holder'); var secondsLeft = countdown.timeLeft >= 0 ? countdown.timeLeft : 0; if (opt.countdownSmart) { var minLeft = Math.floor(secondsLeft / 60); var secRemain = secondsLeft % 60; var countTxt = minLeft > 0 ? minLeft + ' min' : ''; if (countTxt.length > 0) { countTxt += ' '; } countTxt += secRemain + ' sec'; countdownEl.text(countTxt); } else { countdownEl.text(secondsLeft + ' sec'); } // Set countdown message time value if (opt.countdownBar) { $('.countdown-bar').css('width', countdown.percentLeft + '%'); } // Countdown by one second countdown.timeLeft = countdown.timeLeft - 1; countdown.timer = setTimeout(function() { // Call self after one second startCountdownTimer(type); }, 1000); } // Start session timer startSessionTimer(); function signOut() { if(window.sessionStorage) { sessionStorage.clear(); } window.location.replace("/en-US/Account/Login/LogOff?returnUrl=%2Fen-US%2F"); } }; })(jQuery); $(document).ready(function() { $('head').append('<link rel="icon" href="https://irpc-mycase-cdn.azureedge.net/wet/GCWeb/assets/favicon.ico" type="image/x-icon"> '); if(window.sessionStorage) { if(sessionStorage.getItem("mycounselid")) { mycounselid = sessionStorage.getItem("mycounselid"); mycounselname = sessionStorage.getItem("mycounselname"); } } setCurrentCounsel(); convertUtcDatesToEST(); console.log("document.title: ", document.title); setTimeout(SetTitle, 500); console.log("document.title: ", document.title); }); $(document).on("wb-ready.wb", function (event) { let balloonSetting = { html: true, position: "right", tipSize: 40, minLifetime: 1750, maxLifetime: 2750, css: { border: 'solid 4px black', padding: '10px', fontSize: '100%', fontWeight: 'bold', lineHeight: '3', backgroundColor: '#d9edf7', color: 'black' } }; balloonSetting.contents = "Your feedback helps us improve! Please take the time to complete a short survey."; setTimeout(function(){$('#survey').showBalloon(balloonSetting);}, 500); }); function SetTitle() { document.title = "Welcome"; } function MyCasesRedirect(url){ helpers.redirectWithCounselCheck(url) } function setCurrentCounsel(){ if(mycounselid){ $("a.counsel-link").each(function() { var $this = $(this); var _href = $this.attr("href"); $this.attr("href", _href + '?counselid=' + mycounselid); }); } } function convertUtcDatesToEST() { $(".date-est").each(( index, element ) => { var utcDate = $(element).text(); $(element).text(helpers.dateToESTFormattedCompact(utcDate)); }); } </script> <!--<![endif]--> <!--[if lt IE 9]> <script src="https://irpc-mycase-cdn.azureedge.net/wet/ie8-wet-boew2.min.js"></script> <![endif]--> <script src="https://irpc-mycase-cdn.azureedge.net/wet/js/pdf-lib.min.js"></script> <script type="text/javascript"> const { PDFDocument, StandardFonts, rgb } = PDFLib </script> <script type="text/javascript" name="js.webApi"> (function (webApi, $) { function safeAjax(ajaxOptions) { var deferredAjax = $.Deferred(); shell.getTokenDeferred().done(function (token) { if (!ajaxOptions.headers) { $.extend(ajaxOptions, { headers: { "__RequestVerificationToken": token } }); } else { ajaxOptions.headers["__RequestVerificationToken"] = token; } $.ajax(ajaxOptions) .done(function (data, textStatus, jqXHR) { validateLoginSession(data, textStatus, jqXHR, deferredAjax.resolve); }).fail(deferredAjax.reject); }).fail(function () { deferredAjax.rejectWith(this, arguments); }); return deferredAjax.promise(); } webApi.safeAjax = safeAjax; function getPromise(options) { return webApi.safeAjax({ type: "GET", url: options.url, contentType: "application/json", success: function (res, status, xhr) { return options.onSuccess(res, status, xhr); }, fail: function (res, status, xhr) { return options.onFail(res, status, xhr); } }); } webApi.getPromise = getPromise; function get(options) { webApi.safeAjax({ type: "GET", url: options.url, contentType: "application/json", success: function (res, status, xhr) { options.onSuccess(res, status, xhr); }, fail: function (res, status, xhr) { options.onFail(res, status, xhr); } }); } webApi.get = get; function post(options, OmitRootURL) { if (typeof OmitRootURL === 'undefined'){ return webApi.safeAjax({ type: "POST", url: "/_api/" + options.entity, contentType: "application/json", data: options.data, success: function (res, status, xhr) { options.onSuccess(res, status, xhr); }, fail: function (res, status, xhr) { options.onFail(res, status, xhr); } }); } else{ return webApi.safeAjax({ type: "POST", url: options.entity, contentType: "application/json", data: options.data, success: function (res, status, xhr) { options.onSuccess(res, status, xhr); }, fail: function (res, status, xhr) { options.onFail(res, status, xhr); } }); } } webApi.post = post; function patch(options) { return webApi.safeAjax({ type: "PATCH", url: "/_api/" + options.entity + "(" + options.id + ")", contentType: "application/json", data: options.data, success: function (res, status, xhr) { options.onSuccess(res, status, xhr); }, fail: function (res, status, xhr) { options.onFail(res, status, xhr); } }); } webApi.patch = patch; function parseFormData(fields) { var formData = {}; $.each(fields, function (i, fieldName) { var f = $('#' + fieldName); if (f.length == 1) { var v = f.val(); if (v && v.length > 0 && v != 'on') { formData[fieldName] = v; } } }); return formData; } webApi.parseFormData = parseFormData; function parseFiles(files, options) { var fileResolvers = []; files.forEach((file, index) => { fileResolvers.push(webApi.fileToBase64(file).then(base64String => { if (options && options.onFileRead) { return processFile(base64String).then(processedFile => { if(processedFile){ processedFile.name = file.name; processedFile.mimetype = file.type; processedFile.size = file.size; options.onFileRead(processedFile); } }); } })); }); return Promise.all(fileResolvers).then(() => { if (options && options.onCompleted) { options.onCompleted(); } }); } webApi.parseFiles = parseFiles; function applyTimestamp(pdfDoc) { try { return pdfDoc.embedFont(StandardFonts.TimesRoman).then((font) => { const pages = pdfDoc.getPages() const firstPage = pages[0] const { width, height } = firstPage.getSize() var receivedText = `Received at IRB ${helpers.getCurrentDateEST()} Reçu à CISR`; firstPage.drawText(receivedText, { x: 20, y: height - 20, size: 11, font: font }); return pdfDoc.saveAsBase64(); }); } catch (error){ console.log(error); } } async function processFile(base64String) { try { var pdfDoc = await PDFDocument.load(base64String, { ignoreEncryption: true }); if (pdfDoc.isEncrypted) { //don't add this property unless it is encrypted because it won't count as a valid annotation if its there return Promise.resolve({"encrypted" : true}); } else { return applyTimestamp(pdfDoc).then((base64String) => { return { "documentbody" : base64String};}); } } catch (error){ console.log(error); } } function fileToBase64(file) { return new Promise(resolve => { var reader = new FileReader(); reader.onload = function (event) { var content = event.target.result.replace("data:", ""); resolve(content.replace(/^.+,/, "")); }; reader.readAsDataURL(file); }); }; webApi.fileToBase64 = fileToBase64; /* * Batch request functions */ function batchRequest(options, batchId){ return webApi.safeAjax({ type: "POST", url: "/api/data/v9.2/$batch", contentType: "multipart/mixed; boundary=batch_ "+ batchId, contentType: "application/json", data: options.data, success: function (res, status, xhr) { options.onSuccess(res, status, xhr); }, fail: function (res, status, xhr) { options.onFail(res, status, xhr); } }); } webApi.batchRequest = batchRequest; createBatch = () => { var batch = { webApiUrl: "/api/data/v9.2", id: GetRandomId(), changesets: [] }; batch.addChangeset = () => { var cs = { id: GetRandomId(), actions: [] }; cs.addAction = (httpMethod, url, body) => cs.actions.push({ httpMethod, url, body }); batch.changesets.push(cs); return cs; } batch.execute = executeBatch; batch.executeAsync = executeBatchAsync; return batch; }; function initBatchRequest(batch, asynchronous) { var req = new XMLHttpRequest(); req.open("POST", `${batch.webApiUrl}/$batch`, asynchronous); req.setRequestHeader('Access-Control-Allow-Origin', '*'); req.setRequestHeader("Accept", "application/json"); req.setRequestHeader("Content-Type", "multipart/mixed;boundary=batch_" + batch.id); req.setRequestHeader("OData-MaxVersion", "4.0"); req.setRequestHeader("OData-Version", "4.0"); return req; } function createBatchRequestBody(batch) { var requestBody = ""; batch.changesets.forEach(cs => { requestBody += `--batch_${batch.id}\r\n`; requestBody += `Content-Type: multipart/mixed;boundary=changeset_${cs.id}\r\n`; requestBody += "\r\n"; var contentId = 0; cs.actions.forEach(action => { contentId++; requestBody += `--changeset_${cs.id}\r\n`; requestBody += "Content-Type: application/http\r\n"; requestBody += "Content-Transfer-Encoding:binary\r\n"; requestBody += `Content-ID: ${contentId}\r\n`; requestBody += "\r\n"; requestBody += `/api/data/v9.2/${action.url} HTTP/1.1\r\n`; requestBody += "Content-Type: application/json;type=entry\r\n"; if (action.body) { requestBody += "\r\n"; requestBody += `${JSON.stringify(action.body)}\r\n`; requestBody += "\r\n"; } }); requestBody += `--changeset_${cs.id}--\r\n`; requestBody += "\r\n"; }); requestBody += `--batch_${batch.id}--`; return requestBody; } function executeBatch() { var batch = this; return new Promise(function (resolve, reject) { var req = initBatchRequest(batch, true); var body = createBatchRequestBody(batch); req.onreadystatechange = function () { if (this.readyState == 4 /* complete */) { req.onreadystatechange = null; if (this.status == 200) { var responses = parseResponseBody(this.response); resolve(responses); } else { reject({ status: this.status, statusText: xhr.statusText }); } } }; req.onerror = function () { reject({ status: this.status, statusText: req.statusText }); }; req.send(body); }); } function executeBatchAsync(successCallback, errorCallback) { var req = initBatchRequest(this, true); var body = createBatchRequestBody(this); req.onreadystatechange = function () { if (this.readyState == 4 /* complete */) { req.onreadystatechange = null; if (this.status == 200) { if (successCallback) { var responses = parseResponseBody(this.response); successCallback(responses); } } else { if (errorCallback) { errorCallback(this.response); } } } }; req.send(body); } function GetRandomId() { var returnValue = ""; var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < 10; i++) returnValue += characters.charAt(Math.floor(Math.random() * characters.length)); return returnValue; } })(window.webApi = window.webApi || {}, jQuery) </script> <script type="text/javascript" name="js.helpers"> (function (helpers, $) { console.log("helpers.js"); function getUrlParameter(sParam) { var sPageURL = window.location.search.substring(1), sURLVariables = sPageURL.split('&'), sParameterName, i; for (i = 0; i < sURLVariables.length; i++) { sParameterName = sURLVariables[i].split('='); if (sParameterName[0] === sParam) { return typeof sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]); } } return false; }; helpers.getUrlParameter = getUrlParameter; function showDialog(id) { $(document).trigger("open.wb-lbx", [ [ { src: `#${id}`, type: "inline" } ], true ]); }; helpers.showDialog = showDialog; function hideDialog(id) { $(document).trigger("close.wb-lbx", [ [ { src: `#${id}`, type: "inline" } ] ]); }; helpers.hideDialog = hideDialog; function dateToEST(date) { if (date == "") return ""; return createESTDate(date).format("yyyy-MM-DD HH:mm"); }; helpers.dateToEST = dateToEST; function dateToESTFormatted(date) { if (date == "") return ""; var ESTDate = createESTDate(date); var timeSeparator = ", at "; var baseReturn = ESTDate.format("yyyy-MM-DD[" + timeSeparator + "] HH:mm z"); return baseReturn; }; helpers.dateToESTFormatted = dateToESTFormatted; function dateToESTFormattedCompact(date) { if (date == "") return ""; var ESTDate = createESTDate(date); var baseReturn = ESTDate.format("yyyy-MM-DD HH:mm z"); return baseReturn; }; helpers.dateToESTFormattedCompact = dateToESTFormattedCompact; function createESTDate(date) { var dateFormat = "MM/DD/YYYY hh:mm:ss a"; return moment.utc(date, dateFormat).tz("America/New_York"); }; helpers.getCurrentDateEST = () => { //return moment.utc(new Date()).format("yyyy-MM-DD"); return createESTDate(new Date()).format("yyyy-MM-DD"); }; helpers.getCurrentDateESTFormatted = () => { return dateToESTFormatted(new Date()); }; helpers.getSOSCurrentDateESTFormatted = (proceedingLang) => { var ESTDate = createESTDate(new Date()); var timeSeparator = ", at "; if (proceedingLang == 2) { timeSeparator = " à "; } var baseReturn = ESTDate.format("yyyy-MM-DD, H:mm z"); baseReturn = baseReturn.replace(" EDT", " EDT/HAE").replace(" EST", " EST/HNE"); return baseReturn; }; helpers.getSOSCurrentDateESTBilingualFormatted = () => { var ESTDate = createESTDate(new Date()); var baseReturn = ESTDate.format("yyyy-MM-DD, H:mm z"); baseReturn = baseReturn.replace(" EDT", " EDT/HAE").replace(" EST", " EST/HNE"); return baseReturn; }; function submit(formId) { $(`#${formId}`).trigger('submit'); }; helpers.submit = submit; function base64ToArrayBuffer(base64) { var binaryString = window.atob(base64); var binaryLen = binaryString.length; var bytes = new Uint8Array(binaryLen); for (var i = 0; i < binaryLen; i++) { var ascii = binaryString.charCodeAt(i); bytes[i] = ascii; } return bytes; } function saveByteArray(reportName, documentBody) { var byte = base64ToArrayBuffer(documentBody); var blob = new Blob([byte]); var link = document.createElement('a'); link.href = window.URL.createObjectURL(blob); var fileName = reportName; link.download = fileName; link.click(); } helpers.saveByteArray = saveByteArray; function audioSubmitStarted(formId) { $(`#submit-btn-${formId}`).prop('disabled', true); $("#ConfirmCloseButton").prop('disabled', true) window.onbeforeunload = function () { return true; }; $(`#submit-btn-ico-${formId}`).hide(); $(`#submit-progress-lbl-${formId}`).hide(); $(`#submit-progress-ico-${formId}`).show(); $(`#submit-progress-msg-${formId}`).show(); }; helpers.audioSubmitStarted = audioSubmitStarted; function submitStarted(formId) { $(`#submit-btn-${formId}`).prop('disabled', true); $(`#submit-btn-ico-${formId}`).hide(); $(`#submit-progress-lbl-${formId}`).hide(); $(`#submit-progress-ico-${formId}`).show(); $(`#submit-progress-msg-${formId}`).show(); }; helpers.submitStarted = submitStarted; function submitCompleted(formId) { $(`#submit-btn-${formId}`).prop('disabled', false); $(`#submit-progress-lbl-${formId}`).show(); $(`#submit-progress-ico-${formId}`).hide(); $(`#submit-progress-msg-${formId}`).hide(); }; helpers.submitCompleted = submitCompleted; function showAlert(idtag, title, message, type, showx, timeout) { var classSearch = $(idtag).hasClass("hide"); console.log("Showing Alert: ", $(idtag).val()); $(idtag).empty(); $(idtag).addClass("alert-dismissable useralert alert alert-" + type); $(idtag).append("<br>"); if (showx == 1) { $(idtag).append("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>"); } if (title != "") { $(idtag).append("<strong style='color:inherit'>" + title + "</strong> "); } if (message != "") { $(idtag).append("<span style='color:inherit'>" + message + "</span>"); } $(idtag).append("<br> "); if (classSearch == true) { $(idtag).removeClass("hide"); $(idtag).addClass("show"); } if (classSearch == false) { $(idtag).removeAttr('style'); $(idtag).addClass("show"); } if (timeout != "") { $(idtag).delay(timeout).fadeOut('slow').removeClass("show"); } } helpers.showAlert = showAlert; helpers.redirectWithCounselCheck = (path) => { if (mycounselid) { if (path.includes("?")) { window.location.replace(`${path}&counselid=${mycounselid}`); } else { window.location.replace(`${path}?counselid=${mycounselid}`); } } else { window.location.replace(path); } } helpers.openWithCounselCheck = (path) => { if (mycounselid) { if (path.includes("?")) { window.open(`${path}&counselid=${mycounselid}`, '_blank').focus(); } else { window.open(`${path}?counselid=${mycounselid}`, '_blank').focus(); } } else { window.open(path, '_blank').focus(); } } helpers.getLastUrlSegment = () => { let parts = $(location).attr('href').split("/"); if ($(location).attr('href').endsWith("/")) { return parts[parts.length - 2]; } else { return parts[parts.length - 1]; } } let getIPAddress = new Promise(function (resolve, reject) { try { getIP('https://api64.ipify.org/?format=json').then(data => { console.log("data :", data); const result = JSON.parse(data); var ip = result.ip; console.log("getIPAddress :", ip); resolve(ip); }); } catch (error) { resolve("Unknown"); } }); helpers.getIPAddress = getIPAddress; async function getIP(url) { try { const response = await fetch(url, { method: 'GET', headers: { accept: 'application/json' } }); if (!response.ok) { throw new Error(`Error! status: ${response.status}`); } const result = await response.json(); return JSON.stringify(result); } catch { return JSON.stringify({ 'ip': 'Unknown' }); } } function LogContactEvent(eventType, PAI = "") { console.log("Logging ontact Event..."); var formData = {}; formData["dcm_eventtype"] = eventType; formData["dcm_url"] = window.location.href; formData["dcm_contact@odata.bind"] = "/contacts()"; formData["dcm_eventdate"] = moment.utc(new Date()).format("YYYY-MM-DD HH:mm:ss"); formData["dcm_pai"] = PAI; var myIP = helpers.getIPAddress.then(result => { formData["dcm_ipaddress"] = result; webApi.post({ entity: "dcm_contactevents", data: JSON.stringify(formData), onSuccess: function (res, status, xhr) { console.log("Contact Event Logged: ", result); }, onFail: function (res, status, xhr) { console.log(res); } }); }); } helpers.LogContactEvent = LogContactEvent; helpers.CallAzureFunction = (url, onSuccess, onFail) => { webApi.post({ entity: "/_services/auth/token?client_id=5e7ae0d3-8c13-470a-a3c6-7e96f27027c4", onSuccess: function (jwt, status, xhr) { fetch(url, { method: 'GET', mode: 'cors', headers: { "x-functions-key": 'O3Zm19B0g6hZxreH-HPgpEes-5lgET__K_DuRUOTk-21AzFuVI_q0g==', "Authorization": "Bearer " + jwt, 'Content-Type': 'application/octet-stream' } }) .then(response => onSuccess(response)); }, onFail: function (result, status, xhr) { onFail(result, status); } }, true); } helpers.DownloadFile = (docRefId, filename, doneCallback, correspondenceId) => { var filenamearr = filename.split('.'); var fileExt = filenamearr.pop(); if (fileExt == ("doc") || fileExt == "docx") { filenamearr.push("pdf"); } else { filenamearr.push(fileExt); } var processedFileName = filenamearr.join("."); var url = `https://irpc-css-mc-fnapp-external.azurewebsites.net/api/GetCaseFile/${docRefId}`; helpers.CallAzureFunction(url, (response) => { response.blob().then(blobby => { if (blobby.size > 0) { let objectUrl = window.URL.createObjectURL(blobby); let anchor = document.createElement("a"); document.body.appendChild(anchor); anchor.href = objectUrl; anchor.download = processedFileName; anchor.click(); window.URL.revokeObjectURL(objectUrl); doneCallback(correspondenceId); } else { //TODO - What is the purpose of this code? doneCallback(-1); } }); }, (res, status, xhr) => { console.log(res); }); } function validateEmail(email) { return email.match( /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ ); } helpers.validateEmail = validateEmail; }) (window.helpers = window.helpers || {}, jQuery) </script> <script type="text/javascript"> $('#signin').on('load', function () { var token = $('#signin').contents().find("[name='__RequestVerificationToken']"); $('#login-frm').append(token); }); </script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf-loader.bundle-f4a0e619b8.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',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.27","pcf_controls":"3.2.6","mf_shared":"0.2.7","host":"0.2.0","data_grid":"1.1.26","controls_fluent_v9":"0.0.30"} }</script> <script defer="defer" src="https://content.powerapps.com/resource/powerappsportal/controls/host/main.04a618205e.chunk.js"></script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/bootstrap.bundle-105a4995b8.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/bootstrap.bundle-105a4995b8.js" type="text/javascript"></script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/postpreform.bundle-184c77da50.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/postpreform.bundle-184c77da50.js" type="text/javascript"></script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/app.bundle-0d23a48b21.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://content.powerapps.com/resource/powerappsportal/dist/app.bundle-0d23a48b21.js" type="text/javascript"></script> <script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/default-1033.moment_2_29_4.bundle-eda4e638fd.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',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() + " · Custom Portal"); } }); 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/27/2024 8:18:02 AM --> <!-- Page OK -->