Help
RSS
API
Feed
Maltego
Contact
Domain > 777bpce76.saagie.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-07-11
108.156.201.61
(
ClassC
)
2024-11-04
18.161.6.42
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: CloudFrontDate: Mon, 04 Nov 2024 08:06:19 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveLocation: https://777bpce76.saagie.com/X-Cache: Redirect from cloudfrontVia: 1.1 4b800f7fa2c3fbb9f4f3c505b0df315e.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P1X-Amz-Cf-Id: Ssm9eoDSZIx8Zy3xvW31J6ndXk4REDj5gXLvzK6xp2-7cYz5Iwy69A html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>CloudFront/center>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveDate: Mon, 04 Nov 2024 08:06:20 GMTX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originX-Statuspage-Version: 640da4f98661dc8c053fceb01a0fd87a6c41c803Strict-Transport-Security: max-age259200X-Statuspage-Skip-Logging: trueAccess-Control-Allow-Origin: *Cache-Control: max-age3, publicLink: https://dka575ofm4ao0.cloudfront.net/assets/vendor/bowser-1643ca34a6d589b2d4d42163a891e4512d5d7657125e09bb5f3d44288114e6bd.js>; relpreload; asscript; nopush,https://dka575ofm4ao0.cloudfront.net/assets/register_subscription_form-589b657fec607087fc5c740c568270907310bc4f6aaa20256e70f01b103025ca.js>; relpreload; asscript; nopush,https://dka575ofm4ao0.cloudfront.net/assets/status_common-c1b99d73ee7ab0fea796bd170723c1daac1381095a7dd7501a38ce6f333d86b3.js>; relpreload; asscript; nopush,https://dka575ofm4ao0.cloudfront.net/packs/0.70a4d7fdc687806594d3.css>; relpreload; asstyle; nopush,https://dka575ofm4ao0.cloudfront.net/assets/status/status_manifest-260e48dd9b8c9b04e8d6c6286f76aecb8ac22f273beea6dba3eee902141bcbfe.css>; relpreload; asstyle; nopush,https://dka575ofm4ao0.cloudfront.net/assets/jquery-3.5.1.min-729e416557a365062a8a20f0562f18aa171da57298005d392312670c706c68de.js>; relpreload; asscript; nopush,https://dka575ofm4ao0.cloudfront.net/assets/status_manifest-6a7ae3a8e2e1b1e1d9466495faa0851c3f5fff938743f6501c900aa2a8792e8c.js>; relpreload; asscript; nopush,https://dka575ofm4ao0.cloudfront.net/packs/common-26088bd668d868f5c673.chunk.js>; relpreload; asscript; nopush,https://dka575ofm4ao0.cloudfront.net/packs/globals-8e6e6442e772d9de9f72.chunk.js>; relpreload; asscript; nopush,https://dka575ofm4ao0.cloudfront.net/packs/runtime-d706ca4615abb29d1ea6.js>; relpreload; asscript; nopushX-Pollinator-Metadata-Service: status-page-web-pagesETag: W/3f70496c26c8a20f90c178b911b4ab81X-Runtime: 0.151445Accept-Ranges: bytesX-Content-Type-Options: nosniffX-Xss-Protection: 1; modeblockAtl-Traceid: 942c15f1bf464dbab19a05e6c0bc5a00Atl-Request-Id: 942c15f1-bf46-4dba-b19a-05e6c0bc5a00Report-To: {endpoints: {url: https://dz8aopenkvv6s.cloudfront.net}, group: endpoint-1, include_subdomains: true, max_age: 600}Nel: {failure_fraction: 0.001, include_subdomains: true, max_age: 600, report_to: endpoint-1}Server-Timing: atl-edge;dur227,atl-edge-internal;dur3,atl-edge-upstream;dur226,atl-edge-pop;descaws-us-east-1Server: AtlassianEdgeVary: Accept,Accept-EncodingX-Cache: Miss from cloudfrontVia: 1.1 304b956e2039e07753fa39109152d594.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P1X-Amz-Cf-Id: KDlr4oo4RSWtBfk8ekbZqmBMyi68rmXMeZg2KWmNiRuTS6QiwCmpCw !DOCTYPE html>html langen> head> meta http-equivX-UA-Compatible contentIEedge> !-- force IE browsers in compatibility mode to use their most aggressive rendering engine --> meta charsetutf-8> title>BPCE Saagie Platform Status/title> meta namedescription contentWelcome to BPCE Saagie Platform's home for real-time and historical data on system performance.> !-- Mobile viewport optimization --> meta nameHandheldFriendly contentTrue> meta nameMobileOptimized content320> meta nameviewport contentwidthdevice-width, initial-scale1.0, minimum-scale1.0, maximum-scale1.0> !-- Time this page was rendered - http://purl.org/dc/terms/issued --> meta nameissued content1730707580> !-- Mobile IE allows us to activate ClearType technology for smoothing fonts for easy reading --> meta http-equivcleartype contenton> !-- Le fonts -->style> @font-face { font-family: proxima-nova; src: url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaLight-f0b2f7c12b6b87c65c02d3c1738047ea67a7607fd767056d8a2964cc6a2393f7.eot?host777bpce76.saagie.com); src: url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaLight-f0b2f7c12b6b87c65c02d3c1738047ea67a7607fd767056d8a2964cc6a2393f7.eot?host777bpce76.saagie.com#iefix) format(embedded-opentype), url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaLight-e642ffe82005c6208632538a557e7f5dccb835c0303b06f17f55ccf567907241.woff?host777bpce76.saagie.com) format(woff), url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaLight-0f094da9b301d03292f97db5544142a16f9f2ddf50af91d44753d9310c194c5f.ttf?host777bpce76.saagie.com) format(truetype); font-weight:300; font-style:normal; } @font-face { font-family: proxima-nova; src: url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaRegular-366d17769d864aa72f27defaddf591e460a1de4984bb24dacea57a9fc1d14878.eot?host777bpce76.saagie.com); src: url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaRegular-366d17769d864aa72f27defaddf591e460a1de4984bb24dacea57a9fc1d14878.eot?host777bpce76.saagie.com#iefix) format(embedded-opentype), url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaRegular-2ee4c449a9ed716f1d88207bd1094e21b69e2818b5cd36b28ad809dc1924ec54.woff?host777bpce76.saagie.com) format(woff), url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaRegular-a40a469edbd27b65b845b8000d47445a17def8ba677f4eb836ad1808f7495173.ttf?host777bpce76.saagie.com) format(truetype); font-weight:400; font-style:normal; } @font-face { font-family: proxima-nova; src: url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaRegularIt-0bf83a850b45e4ccda15bd04691e3c47ae84fec3588363b53618bd275a98cbb7.eot?host777bpce76.saagie.com); src: url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaRegularIt-0bf83a850b45e4ccda15bd04691e3c47ae84fec3588363b53618bd275a98cbb7.eot?host777bpce76.saagie.com#iefix) format(embedded-opentype), url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaRegularIt-0c394ec7a111aa7928ea470ec0a67c44ebdaa0f93d1c3341abb69656cc26cbdd.woff?host777bpce76.saagie.com) format(woff), url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaRegularIt-9e43859f8015a4d47d9eaf7bafe8d1e26e3298795ce1f4cdb0be0479b8a4605e.ttf?host777bpce76.saagie.com) format(truetype); font-weight:400; font-style:italic; } @font-face { font-family: proxima-nova; src: url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaSemibold-09566917307251d22021a3f91fc646f3e45f8d095209bcd2cded8a1979f06e54.eot?host777bpce76.saagie.com); src: url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaSemibold-09566917307251d22021a3f91fc646f3e45f8d095209bcd2cded8a1979f06e54.eot?host777bpce76.saagie.com#iefix) format(embedded-opentype), url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaSemibold-86724fb2152613d735ba47c3f47a9ad2424b898bea4bece213dacee40344f966.woff?host777bpce76.saagie.com) format(woff), url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaSemibold-cf3e4eb7fbdf6fb83e526cc2a0141e55b01097e6e1abfd4cbdc3eda75d183f74.ttf?host777bpce76.saagie.com) format(truetype); font-weight:500; font-style:normal; } @font-face { font-family: proxima-nova; src: url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaBold-622ea489d20e12e691663f83217105e957e2d3d09703707d40155a29c06cc9d9.eot?host777bpce76.saagie.com); src: url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaBold-622ea489d20e12e691663f83217105e957e2d3d09703707d40155a29c06cc9d9.eot?host777bpce76.saagie.com#iefix) format(embedded-opentype), url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaBold-c8dc577ff7f76d2fc199843e38c04bb2e9fd15889421358d966a9f846c2ed1cd.woff?host777bpce76.saagie.com) format(woff), url(https://dka575ofm4ao0.cloudfront.net/assets/ProximaNovaBold-27177fe9242acbe089276ee587feef781446667ffe9b6fdc5b7fe21ad73e12f3.ttf?host777bpce76.saagie.com) format(truetype); font-weight:700; font-style:normal; }/style> link relshortcut icon typeimage/x-icon href//dka575ofm4ao0.cloudfront.net/pages-favicon_logos/original/296133/favicon.png /> link relshortcut icon href//dka575ofm4ao0.cloudfront.net/pages-favicon_logos/original/296133/favicon.png> link relalternate typeapplication/atom+xml hrefhttps://777bpce76.saagie.com/history.atom titleBPCE Saagie Platform Status History - Atom Feed> link relalternate typeapplication/rss+xml hrefhttps://777bpce76.saagie.com/history.rss titleBPCE Saagie Platform Status History - RSS Feed> !-- Canonical Link to ensure that only the custom domain is indexed when present --> link relcanonical hrefhttps://777bpce76.saagie.com> meta name_globalsign-domain-verification contenty_VzfckMy4iePo5oDJNivyYIjh8LffYa4jzUndm_bZ/> meta namerobots contentnoindex,nofollow> link relalternate typeapplication/atom+xml titleATOM hrefhttps://777bpce76.saagie.com/history.atom /> !-- Le styles --> link relstylesheet mediascreen hrefhttps://dka575ofm4ao0.cloudfront.net/packs/0.70a4d7fdc687806594d3.css /> link relstylesheet mediaall hrefhttps://dka575ofm4ao0.cloudfront.net/assets/status/status_manifest-260e48dd9b8c9b04e8d6c6286f76aecb8ac22f273beea6dba3eee902141bcbfe.css /> script srchttps://dka575ofm4ao0.cloudfront.net/assets/jquery-3.5.1.min-729e416557a365062a8a20f0562f18aa171da57298005d392312670c706c68de.js>/script> script> window.pageColorData {blue:#0172F5,border:#D9DBE3,body_background:#FFFFFF,font:#253C5B,graph:#0172F5,green:#23A57A,light_font:#587193,link:#E52728,orange:#FFAA55,red:#DE3345,yellow:#F7C948,no_data:#B3BAC5}; /script> style> /* BODY BACKGROUND */ /* BODY BACKGROUND */ /* BODY BACKGROUND */ /* BODY BACKGROUND */ /* BODY BACKGROUND */ body, .layout-content.status.status-api .section .example-container .example-opener .color-secondary, .grouped-items-selector, .layout-content.status.status-full-history .history-nav a.current, divid^subscribe-modal .modal-footer, divid^subscribe-modal, divid^updates-dropdown .updates-dropdown-section, #uptime-tooltip .tooltip-box { background-color:#FFFFFF; } #uptime-tooltip .pointer-container .pointer-smaller { border-bottom-color:#FFFFFF; } /* PRIMARY FONT COLOR */ /* PRIMARY FONT COLOR */ /* PRIMARY FONT COLOR */ /* PRIMARY FONT COLOR */ body.status, .color-primary, .color-primary:hover, .layout-content.status-index .status-day .update-title.impact-none a, .layout-content.status-index .status-day .update-title.impact-none a:hover, .layout-content.status-index .timeframes-container .timeframe.active, .layout-content.status-full-history .month .incident-container .impact-none, .layout-content.status.status-index .incidents-list .incident-title.impact-none a, .incident-history .impact-none, .layout-content.status .grouped-items-selector.inline .grouped-item.active, .layout-content.status.status-full-history .history-nav a.current, .layout-content.status.status-full-history .history-nav a:not(.current):hover, divid^subscribe-modal .modal-header .close, .grouped-item-label, #uptime-tooltip .tooltip-box .tooltip-content .related-events .related-event a.related-event-link { color:#253C5B; } .layout-content.status.status-index .components-statuses .component-container .name { color:#253C5B; color:rgba(37,60,91,.8); } /* SECONDARY FONT COLOR */ /* SECONDARY FONT COLOR */ /* SECONDARY FONT COLOR */ /* SECONDARY FONT COLOR */ small, .layout-content.status .table-row .date, .color-secondary, .layout-content.status .grouped-items-selector.inline .grouped-item, .layout-content.status.status-full-history .history-footer .pagination a.disabled, .layout-content.status.status-full-history .history-nav a, #uptime-tooltip .tooltip-box .tooltip-content .related-events #related-event-header { color:#587193; } /* BORDER COLOR */ /* BORDER COLOR */ /* BORDER COLOR */ /* BORDER COLOR */ /* BORDER COLOR */ /* BORDER COLOR */ body.status .layout-content.status .border-color, hr, .tooltip-base, .markdown-display table, divid^subscribe-modal, #uptime-tooltip .tooltip-box { border-color:#D9DBE3; } divid^subscribe-modal .modal-footer, .markdown-display table td { border-top-color:#D9DBE3; } .markdown-display table td + td, .markdown-display table th + th { border-left-color:#D9DBE3; } divid^subscribe-modal .modal-header, #uptime-tooltip .pointer-container .pointer-larger { border-bottom-color:#D9DBE3; } #uptime-tooltip .tooltip-box .outage-field { /* Generate the background-color for the outage-field from the css_body_background_color and css_border_color. For the default background (#ffffff) and default css_border_color (#e0e0e0), use the luminosity of the default background with a magic number to arrive at the original outage-field background color (#f4f5f7). I used the formula Target Color Color * alpha + Background * (1 - alpha) to find the magic number of ~0.08. For darker css_body_background_color, luminosity values are lower so alpha trends toward becoming transparent (thus outage-field background becomes same as css_body_background_color). */ background-color: rgba(217,219,227,0.31); /* outage-field border-color alpha is inverse to the luminosity of css_body_background_color. That is to say, with a default white background this border is transparent, but on a black background, its opaque css_border_color. */ border-color: rgba(217,219,227,0.0); } /* CSS REDS */ /* CSS REDS */ /* CSS REDS */ /* CSS REDS */ /* CSS REDS */ /* CSS REDS */ /* CSS REDS */ .layout-content.status.status-index .status-day .update-title.impact-critical a, .layout-content.status.status-index .status-day .update-title.impact-critical a:hover, .layout-content.status.status-index .page-status.status-critical, .layout-content.status.status-index .unresolved-incident.impact-critical .incident-title, .flat-button.background-red { background-color:#DE3345; } .layout-content.status-index .components-statuses .component-container.status-red:after, .layout-content.status-full-history .month .incident-container .impact-critical, .layout-content.status-incident .incident-name.impact-critical, .layout-content.status.status-index .incidents-list .incident-title.impact-critical a, .status-red .icon-indicator, .incident-history .impact-critical, .components-container .component-inner-container.status-red .component-status, .components-container .component-inner-container.status-red .icon-indicator { color:#DE3345; } .layout-content.status.status-index .unresolved-incident.impact-critical .updates { border-color:#DE3345; } /* CSS ORANGES */ /* CSS ORANGES */ /* CSS ORANGES */ /* CSS ORANGES */ /* CSS ORANGES */ /* CSS ORANGES */ .layout-content.status.status-index .status-day .update-title.impact-major a, .layout-content.status.status-index .status-day .update-title.impact-major a:hover, .layout-content.status.status-index .page-status.status-major, .layout-content.status.status-index .unresolved-incident.impact-major .incident-title { background-color:#FFAA55; } .layout-content.status-index .components-statuses .component-container.status-orange:after, .layout-content.status-full-history .month .incident-container .impact-major, .layout-content.status-incident .incident-name.impact-major, .layout-content.status.status-index .incidents-list .incident-title.impact-major a, .status-orange .icon-indicator, .incident-history .impact-major, .components-container .component-inner-container.status-orange .component-status, .components-container .component-inner-container.status-orange .icon-indicator { color:#FFAA55; } .layout-content.status.status-index .unresolved-incident.impact-major .updates { border-color:#FFAA55; } /* CSS YELLOWS */ /* CSS YELLOWS */ /* CSS YELLOWS */ /* CSS YELLOWS */ /* CSS YELLOWS */ /* CSS YELLOWS */ .layout-content.status.status-index .status-day .update-title.impact-minor a, .layout-content.status.status-index .status-day .update-title.impact-minor a:hover, .layout-content.status.status-index .page-status.status-minor, .layout-content.status.status-index .unresolved-incident.impact-minor .incident-title, .layout-content.status.status-index .scheduled-incidents-container .tab { background-color:#F7C948; } .layout-content.status-index .components-statuses .component-container.status-yellow:after, .layout-content.status-full-history .month .incident-container .impact-minor, .layout-content.status-incident .incident-name.impact-minor, .layout-content.status.status-index .incidents-list .incident-title.impact-minor a, .status-yellow .icon-indicator, .incident-history .impact-minor, .components-container .component-inner-container.status-yellow .component-status, .components-container .component-inner-container.status-yellow .icon-indicator, .layout-content.status.manage-subscriptions .confirmation-infobox .fa { color:#F7C948; } .layout-content.status.status-index .unresolved-incident.impact-minor .updates, .layout-content.status.status-index .scheduled-incidents-container { border-color:#F7C948; } /* CSS BLUES */ /* CSS BLUES */ /* CSS BLUES */ /* CSS BLUES */ /* CSS BLUES */ /* CSS BLUES */ .layout-content.status.status-index .status-day .update-title.impact-maintenance a, .layout-content.status.status-index .status-day .update-title.impact-maintenance a:hover, .layout-content.status.status-index .page-status.status-maintenance, .layout-content.status.status-index .unresolved-incident.impact-maintenance .incident-title, .layout-content.status.status-index .scheduled-incidents-container .tab { background-color:#0172F5; } .layout-content.status-index .components-statuses .component-container.status-blue:after, .layout-content.status-full-history .month .incident-container .impact-maintenance, .layout-content.status-incident .incident-name.impact-maintenance, .layout-content.status.status-index .incidents-list .incident-title.impact-maintenance a, .status-blue .icon-indicator, .incident-history .impact-maintenance, .components-container .component-inner-container.status-blue .component-status, .components-container .component-inner-container.status-blue .icon-indicator { color:#0172F5; } .layout-content.status.status-index .unresolved-incident.impact-maintenance .updates, .layout-content.status.status-index .scheduled-incidents-container { border-color:#0172F5; } /* CSS GREENS */ /* CSS GREENS */ /* CSS GREENS */ /* CSS GREENS */ /* CSS GREENS */ /* CSS GREENS */ /* CSS GREENS */ .layout-content.status.status-index .page-status.status-none { background-color:#23A57A; } .layout-content.status-index .components-statuses .component-container.status-green:after, .status-green .icon-indicator, .components-container .component-inner-container.status-green .component-status, .components-container .component-inner-container.status-green .icon-indicator { color:#23A57A; } /* CSS LINK COLOR */ /* CSS LINK COLOR */ /* CSS LINK COLOR */ /* CSS LINK COLOR */ /* CSS LINK COLOR */ /* CSS LINK COLOR */ a, a:hover, .layout-content.status-index .page-footer span a:hover, .layout-content.status-index .timeframes-container .timeframe:not(.active):hover, .layout-content.status-incident .subheader a:hover { color:#E52728; } .flat-button, .masthead .updates-dropdown-container .show-updates-dropdown, .layout-content.status-full-history .show-filter.open { background-color:#E52728; } /* CUSTOM COLOR OVERRIDES FOR UPTIME SHOWCASE */ .components-section .components-uptime-link { color: #587193; } .layout-content.status .shared-partial.uptime-90-days-wrapper .legend .legend-item { color: #587193; opacity: 1; } .layout-content.status .shared-partial.uptime-90-days-wrapper .legend .legend-item.light { color: #587193; opacity: 1; } .layout-content.status .shared-partial.uptime-90-days-wrapper .legend .spacer { background: #587193; opacity: 1; }/style> !-- custom css --> !-- polyfills --> script crossoriginanonymous srchttps://cdnjs.cloudflare.com/polyfill/v3/polyfill.js>/script> !-- Le HTML5 shim --> !--if lt IE 9> script src//html5shim.googlecode.com/svn/trunk/html5.js>/script> !endif--> !-- injection for static --> /head> body classstatus index status-none> div classlayout-content status status-index starter> div classmasthead-container basic> div classmasthead has-logo> div classlogo-container> img altPage logo src//dka575ofm4ao0.cloudfront.net/pages-transactional_logos/retina/296133/saagie-status-logo.png /> /div> div classupdates-dropdown-container data-js-hookupdates-dropdown-container> a href# data-js-hookshow-updates-dropdown idshow-updates-dropdown classshow-updates-dropdown aria-labelSubscribe to updates aria-expandedfalse aria-haspopupdialog rolebutton> /a>!-- Accessibility guidelines for tabs: https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html --> div classupdates-dropdown data-js-hookupdates-dropdown idupdates-dropdown styledisplay:none> div classupdates-dropdown-nav nav-items-3 roletablist aria-labelSubscribe to updates> a href#updates-dropdown-support aria-controlsupdates-dropdown-support aria-labelContact support roletab idupdates-dropdown-support-btn> span classicon-container support> /a> a href#updates-dropdown-atom aria-controlsupdates-dropdown-atom aria-labelSubscribe via RSS roletab idupdates-dropdown-atom-btn> span classicon-container rss> /a> button data-js-hookupdates-dropdown-close aria-labelClose subscribe form idupdates-dropdown-close-btn> x /button> /div> div classupdates-dropdown-sections-container> div classupdates-dropdown-section support idupdates-dropdown-support styledisplay:none roletabpanel aria-labelledbyupdates-dropdown-support-btn> Visit our a target_blank hrefhttps://saagie.zendesk.com/hc/en-us>support site/a>. /div> div classupdates-dropdown-section atom idupdates-dropdown-atom roletabpanel aria-labelledbyupdates-dropdown-atom-btn> Get the a hrefhttps://777bpce76.saagie.com/history.atom target_blank>Atom Feed/a> or a hrefhttps://777bpce76.saagie.com/history.rss target_blank>RSS Feed/a>. /div> /div> /div> /div>script> $(function () { const phoneNumberInput $(#phone-number); const errorDiv $(#sms-atl-error) if(errorDiv.length){ function checkSelectedCountry() { const selectedCountry $(#phone-country).val(); const isOtpEnabled $(#phone-number-country-code).attr(data-otp-enabled) true; const form document.getElementById(subscribe-form-sms); form.action /subscriptions/new-sms; const isOtpFlow document.getElementById(otp_verify_flow); document.getElementById(otp-container).style.display none; if(false && selectedCountry sg) { // Replace SG with the actual value representing Singapore in your select tag phoneNumberInput.prop(disabled, true); errorDiv.html(`Due to new Singapore government regulations, were currently not supporting text subscriptions in Singapore.a hrefhttps://community.atlassian.com/t5/Statuspage-articles/Attention-SMS-notifications-will-be-disabled-on-August-1st-2023/ba-p/2424398 target_blank> Learn more./a> br> Select another method to subscribe.`); } else { phoneNumberInput.prop(readonly, false); errorDiv.html(); if(false){ if(isOtpEnabled){ document.getElementById(subscribe-btn-sms).value Send OTP; } else { isOtpFlow.value false; document.getElementById(subscribe-btn-sms).value Subscribe via Text Message; } } } } $(#phone-country).on(change, checkSelectedCountry); checkSelectedCountry(); } }); document.addEventListener(DOMContentLoaded, function() { const dropdown document.querySelector(#phone-number-country-code .phone-country); if (dropdown){ const wrapperDiv document.getElementById(phone-number-country-code); const selectedOption dropdown.optionsdropdown.selectedIndex; const otpEnabled selectedOption.getAttribute(data-otp-enabled); wrapperDiv.setAttribute(data-otp-enabled, otpEnabled); dropdown.addEventListener(change, function() { const selectedOption dropdown.optionsdropdown.selectedIndex; const otpEnabled selectedOption.getAttribute(data-otp-enabled); wrapperDiv.setAttribute(data-otp-enabled, otpEnabled); }); } }); var countdownTimer; var resendBtn document.getElementById(resend); var timer document.getElementById(timer); var form document.getElementById(subscribe-form-sms); var RESEND_TIMER 30; $(function() { $(#subscribe-form-sms).on(ajax:success, function(e, data, status, xhr){ const form this; const action form.getAttribute(action); if (data.type success && data.otp_flow true) { document.getElementById(subscriber_code).value data.subscriber_code document.getElementById(otp-container).style.display block; $(#phone-number).prop(readonly, true); var display document.getElementById(countdown); disableResend(); startTimer(RESEND_TIMER, display) document.getElementById(subscribe-btn-sms).value Verify OTP and Subscribe; document.getElementById(otp_verify_flow).value true; form.action /subscriptions/verify-otp; } else if (data.type success && action.includes(verify)){ document.getElementById(otp-container).style.display none; $(#phone-number).val().prop(readonly, false); $(#otp).val(); document.getElementById(subscribe-btn-sms).value Send OTP; document.getElementById(otp_verify_flow).value false; form.action /subscriptions/new-sms; SP.currentPage.updatesDropdown.hide(); } }); $(#btn-subcriber-change-number).on(click, () > { document.getElementById(otp-container).style.display none; $(#phone-number).prop(readonly, false); document.getElementById(subscribe-btn-sms).value Send OTP; form.action /subscriptions/new-sms; return false }) $(#resend-otp-btn).on(click, function(e) { e.preventDefault(); let phoneNumber $(#phone-number).val(); let countryCode $(.phone-country).val(); $.ajax({ type: POST, url: /subscriptions/new-sms, data: { phone_number: phoneNumber, phone_country: countryCode, type: resend }, }).done(function(data) { var messageOptions (data.type ! undefined && data.type ! null) ? { cssClass: data.type } : {}; HRB.utils.notify(data.text, messageOptions); var display document.getElementById(countdown); disableResend(); timer.style.display none if (data.type success) { startTimer(RESEND_TIMER, display); } }) }); }) function startTimer(duration, display){ var timer duration, seconds; clearInterval(countdownTimer); countdownTimer setInterval(function () { seconds parseInt(timer % 60, 10); display.textContent seconds; if(--timer 0){ enableResend(); clearInterval(countdownTimer); } }, 1000); disableResend(); } function enableResend(){ resendBtn.style.display block; timer.style.display none } function disableResend(){ resendBtn.style.display none; timer.style.display block } $(function() { $(#subscribe-form-email).on(submit, function() { var tokenField document.getElementById(email-otp-token-field); let page_code 64bd25hpwfcr let key keyForEmailOtpToken($(#email).val(), page_code); tokenField.value localStorage.getItem(key); }); }); var emailOtpCountdownTimer; var emailOtpResendBtn document.getElementById(resend-email-otp); var emailOtpTimer document.getElementById(email-otp-timer); var emailOtpForm document.getElementById(subscribe-form-email); var EMAIL_OTP_RESEND_TIMER 600; $(function() { $(#subscribe-form-email).on(ajax:success, function(e, data, status, xhr){ const form this; const action form.getAttribute(action); if (data.type success && data.email_otp_verify_flow true) { document.getElementById(email-otp-container).style.display block; var display document.getElementById(email-otp-countdown); display.textContent EMAIL_OTP_RESEND_TIMER; disableEmailOtpResend(); startEmailOtpTimer(EMAIL_OTP_RESEND_TIMER, display) document.getElementById(subscribe-btn-email).value Verify OTP and Subscribe; document.getElementById(email_otp_verify_flow).value true; form.action /subscriptions/verify-email-otp; } else if (data.type success && action.includes(verify)){ let email $(#email) let page_code 64bd25hpwfcr let key keyForEmailOtpToken(email.val(), page_code); localStorage.setItem(key, data.email_otp_auth_token); document.getElementById(email-otp-container).style.display none; email.val().prop(readonly, false); $(#email-otp).val(); document.getElementById(subscribe-btn-email).value Send OTP; document.getElementById(email_otp_verify_flow).value false; form.action /subscriptions/new-email; SP.currentPage.updatesDropdown.hide(); } }); $(#resend-email-otp-btn).on(click, function(e) { e.preventDefault(); let email $(#email).val(); $.ajax({ type: POST, url: /subscriptions/new-email, data: { email: email }, }).done(function(data) { var messageOptions (data.type ! undefined && data.type ! null) ? { cssClass: data.type } : {}; HRB.utils.notify(data.text, messageOptions); if (data.type success) { var display document.getElementById(email-otp-countdown); display.textContent EMAIL_OTP_RESEND_TIMER; disableEmailOtpResend(); emailOtpTimer.style.display none startEmailOtpTimer(EMAIL_OTP_RESEND_TIMER, display); } }) }); }) function startEmailOtpTimer(duration, display){ var timer duration, seconds; clearInterval(emailOtpCountdownTimer); emailOtpCountdownTimer setInterval(function () { seconds parseInt(timer, 10); display.textContent seconds; if(--timer 0){ enableEmailOtpResend(); clearInterval(emailOtpCountdownTimer); } }, 1000); disableEmailOtpResend(); } function enableEmailOtpResend(){ emailOtpResendBtn.style.display block; emailOtpTimer.style.display none } function disableEmailOtpResend(){ emailOtpResendBtn.style.display none; emailOtpTimer.style.display block } function keyForEmailOtpToken(email, pageCode) { return email + | + pageCode+ |SUBSCRIBE_VIA_EMAIL; }/script> div classclearfix>/div> /div>/div> !-- this is outside of the .container so that the cover photo can go full width on mobile --> div classcontainer> div classpage-status status-none> span classstatus font-large> All Systems Operational /span> span classlast-updated-stamp font-small>/span> /div> div classtext-section> h4 classfont-largest> a idabout-this-site href#about-this-site classno-link>About This Site/a> /h4> p classcolor-secondary font-regular> This is Saagies status page, where you can get updates on how our systems are doing. If there are service interuptions, we will post a note here.br>br>This page is purely informative and filled in manually by our teams. It is intended to inform customers of possible disruption / maintenance operations experienced by all customers on the cloud area on which their platform is hosted.br>br>Any disruption related only to your own platform will not be listed here.br>As always, if you are experiencing issues with Saagie, please get in touch with us at a target_blank hrefhttps://saagie.zendesk.com/hc>https://saagie.zendesk.com/hc/a> and well get back to you as soon as we can. /p> /div> div classcomponents-section font-regular> i classcomponent-status hidden major_outage>/i> div classcomponents-uptime-link history-footer-link> Uptime over the past var data-varnum data-pluralize90>90/var> days. a href/uptime>View historical uptime./a> /div> div classcomponents-container one-column> div classcomponent-container border-color> div data-component-idtdtmsq16zlxg classcomponent-inner-container status-green showcased data-component-statusoperational data-js-hook> span classname> BPCE Saagie Plug & Play Orchestrator for DataOps /span> span classtooltip-base tool titleSaagie Plug & Play Orchestrator for DataOps for BPCE area>?/span> span classcomponent-status title > Operational /span> span classtool icon-indicator fa fa-check titleOperational>/span> div classshared-partial uptime-90-days-wrapper> svg classavailability-time-line-graphic iduptime-component-tdtmsq16zlxg preserveAspectRationone height34 viewBox0 0 448 34> rect height34 width3 x0 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-0 data-htmltrue tabindex0 aria-describedbyuptime-tooltip /> rect height34 width3 x5 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-1 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x10 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-2 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x15 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-3 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x20 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-4 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x25 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-5 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x30 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-6 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x35 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-7 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x40 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-8 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x45 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-9 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x50 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-10 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x55 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-11 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x60 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-12 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x65 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-13 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x70 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-14 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x75 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-15 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x80 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-16 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x85 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-17 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x90 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-18 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x95 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-19 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x100 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-20 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x105 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-21 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x110 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-22 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x115 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-23 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x120 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-24 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x125 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-25 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x130 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-26 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x135 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-27 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x140 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-28 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x145 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-29 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x150 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-30 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x155 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-31 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x160 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-32 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x165 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-33 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x170 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-34 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x175 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-35 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x180 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-36 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x185 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-37 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x190 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-38 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x195 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-39 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x200 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-40 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x205 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-41 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x210 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-42 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x215 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-43 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x220 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-44 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x225 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-45 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x230 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-46 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x235 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-47 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x240 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-48 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x245 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-49 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x250 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-50 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x255 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-51 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x260 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-52 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x265 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-53 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x270 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-54 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x275 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-55 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x280 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-56 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x285 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-57 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x290 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-58 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x295 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-59 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x300 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-60 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x305 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-61 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x310 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-62 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x315 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-63 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x320 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-64 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x325 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-65 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x330 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-66 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x335 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-67 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x340 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-68 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x345 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-69 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x350 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-70 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x355 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-71 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x360 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-72 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x365 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-73 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x370 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-74 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x375 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-75 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x380 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-76 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x385 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-77 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x390 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-78 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x395 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-79 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x400 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-80 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x405 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-81 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x410 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-82 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x415 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-83 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x420 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-84 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x425 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-85 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x430 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-86 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x435 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-87 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x440 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-88 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip /> rect height34 width3 x445 y0 fill#23a57a roletab classuptime-day component-tdtmsq16zlxg day-89 data-htmltrue tabindex-1 aria-describedbyuptime-tooltip />/svg> div classlegend > div classlegend-item light legend-item-date-range> span classavailability-time-line-legend-day-count>90/span> days ago /div> div classspacer>/div> div classlegend-item legend-item-uptime-value legend-item-tdtmsq16zlxg> span iduptime-percent-tdtmsq16zlxg> var data-varuptime-percent>100.0/var> /span> % uptime /div> div classspacer>/div> div classlegend-item light legend-item-date-range>Today/div>/div>/div>/div> /div> /div> div classcomponent-statuses-legend font-small> div classlegend-item status-green> span classicon-indicator fa fa-check>/span> Operational /div> div classlegend-item status-yellow> span classicon-indicator fa fa-minus-square>/span> Degraded Performance /div> div classlegend-item status-orange> span classicon-indicator fa fa-exclamation-triangle>/span> Partial Outage /div> div classbreaker>/div> div classlegend-item status-red> span classicon-indicator fa fa-times>/span> Major Outage /div> div classlegend-item status-blue> span classicon-indicator fa fa-wrench>/span> Maintenance /div>/div> /div> script typetext/javascript charsetutf-8> function calculateViewbox (dayCount, rectWidth, rectPadding) { var viewBox ; if (dayCount 90) { viewBox.push(0); } else { var offset 90 - dayCount; viewBox.push((offset * rectWidth) + (rectPadding * (offset))); // x origin } viewBox.push(0); // y origin viewBox.push((rectWidth * dayCount) + (rectPadding * (dayCount - 1))); // svg width viewBox.push(34); // svg height return viewBox.join( ); } document.addEventListener(DOMContentLoaded, function () { var MAX_WIDTH_30_DAYS 600, MAX_WIDTH_60_DAYS 1024, svgs document.getElementsByClassName(availability-time-line-graphic), rects svgs0.getElementsByTagName(rect), rectWidth parseInt(rects0.getAttribute(width)), rectPadding parseInt(rects1.getAttribute(x)) - parseInt(rects0.getAttribute(x)) - rectWidth, throttled false, delay 150, timeoutId; function getKeyAndCount(width) { if (width MAX_WIDTH_30_DAYS) { return { dayCount: 30, uptimeKey: thirty} } else if (width MAX_WIDTH_60_DAYS) { return { dayCount: 60, uptimeKey: sixty} } else { return { dayCount: 90, uptimeKey: ninety} } } function setUptimeValue(values, uptimeKey) { var queryID .legend-item- + values.component; var currentUptime document.querySelector(queryID); if (currentUptime) { // Faster than setting innerHTML to then adding nodes var clone currentUptime.cloneNode(false); var uptimeSpan document.createElement(span); uptimeSpan.id uptime-percent- + values.component uptimeSpan.innerText valuesuptimeKey clone.appendChild(uptimeSpan); var appendText document.createTextNode( % uptime); clone.appendChild(appendText); currentUptime.parentNode.replaceChild(clone, currentUptime); } } function setDayCount(el, dayCount) { // Faster than setting innerHTML to then adding nodes var clone el.cloneNode(false); var dateSpan document.createElement(span) dateSpan.className availability-time-line-legend-day-count dateSpan.innerText dayCount; clone.appendChild(dateSpan); var appendText document.createTextNode( days ago); clone.appendChild(appendText); el.parentNode.replaceChild(clone, el); } function resizeSvgViewBoxes () { var width window.innerWidth; var columnInfo getKeyAndCount(width); var dayCount columnInfo.dayCount, uptimeKey columnInfo.uptimeKey; var newViewboxValue calculateViewbox(dayCount, rectWidth, rectPadding); // If a user quickly resizes from 450 to > 900 without stopping, // it will retain the same 30 day info as it wont have changed, but this only // impacts 30 day display as it is the only one with shortened text if (newViewboxValue ! svgs0.getAttribute(viewBox)) { for (var i 0; i svgs.length; i++) { var el svgsi; if (el.getAttribute(viewBox) ! newViewboxValue) { el.setAttribute(viewBox, newViewboxValue); } } var dayCountElements document.querySelectorAll(.legend-item-date-range:first-of-type); for (var i 0; i dayCountElements.length; i++) { setDayCount(dayCountElementsi, dayCount); } uptimeValues {component:tdtmsq16zlxg,ninety:100.0,sixty:100.0,thirty:100.0}; for (var i 0; i uptimeValues.length; i++) { setUptimeValue(uptimeValuesi, uptimeKey) } const uptimeLinkVar document.querySelector(.components-uptime-link > var) if (uptimeLinkVar) { uptimeLinkVar.innerHTML dayCount; } } } window.addEventListener(resize, function () { clearTimeout(timeoutId); timeoutId setTimeout(function () { resizeSvgViewBoxes(); }, delay); }); resizeSvgViewBoxes(); });/script> div iduptime-tooltip> div classpointer-container> div classpointer-larger>/div> div classpointer-smaller>/div> /div> div classtooltip-box> div classtooltip-content> div classtooltip-close> i classfa fa-times>/i> /div> div classdate>/div> div classoutages> div classoutage-field major> span classlabel> i classcomponent-status page-colors text-color major_outage>/i> Major outage /span> span classvalue-hrs>/span> span classvalue-mins>/span> /div> div classoutage-field partial> span classlabel> i classcomponent-status page-colors text-color partial_outage>/i> Partial outage /span> span classvalue-hrs>/span> span classvalue-mins>/span> /div> div classno-outages-msg> No downtime recorded on this day. /div> div classno-data-msg> No data exists for this day. /div> div idmajor-outage-group-count classoutage-count> i classcomponent-status page-colors text-color major_outage>/i> span classcount>/span> had a major outage. /div> div idpartial-outage-group-count classoutage-count> i classcomponent-status page-colors text-color partial_outage>/i> span classcount>/span> had a partial outage. /div> /div> div classrelated-events> h3 idrelated-event-header>Related/h3> ul idrelated-events-list>/ul> /div> div classno-related-msg> p>No incidents or maintenance related to this downtime./p> /div> /div> /div>/div>script srchttps://dka575ofm4ao0.cloudfront.net/assets/vendor/bowser-1643ca34a6d589b2d4d42163a891e4512d5d7657125e09bb5f3d44288114e6bd.js>/script>script typetext/javascript> /** This file contains the code needed to handle display of the uptime tooltips on status. Note: because its in ERB, only ES5 syntax is allowed. */ var uptimeData {tdtmsq16zlxg:{component:{code:tdtmsq16zlxg,name:BPCE Saagie Plug \u0026 Play Orchestrator for DataOps,startDate:2022-03-16},days:{date:2024-08-07,outages:{},related_events:},{date:2024-08-08,outages:{},related_events:},{date:2024-08-09,outages:{},related_events:},{date:2024-08-10,outages:{},related_events:},{date:2024-08-11,outages:{},related_events:},{date:2024-08-12,outages:{},related_events:},{date:2024-08-13,outages:{},related_events:},{date:2024-08-14,outages:{},related_events:},{date:2024-08-15,outages:{},related_events:},{date:2024-08-16,outages:{},related_events:},{date:2024-08-17,outages:{},related_events:},{date:2024-08-18,outages:{},related_events:},{date:2024-08-19,outages:{},related_events:},{date:2024-08-20,outages:{},related_events:},{date:2024-08-21,outages:{},related_events:},{date:2024-08-22,outages:{},related_events:},{date:2024-08-23,outages:{},related_events:},{date:2024-08-24,outages:{},related_events:},{date:2024-08-25,outages:{},related_events:},{date:2024-08-26,outages:{},related_events:},{date:2024-08-27,outages:{},related_events:},{date:2024-08-28,outages:{},related_events:},{date:2024-08-29,outages:{},related_events:},{date:2024-08-30,outages:{},related_events:},{date:2024-08-31,outages:{},related_events:},{date:2024-09-01,outages:{},related_events:},{date:2024-09-02,outages:{},related_events:},{date:2024-09-03,outages:{},related_events:},{date:2024-09-04,outages:{},related_events:},{date:2024-09-05,outages:{},related_events:},{date:2024-09-06,outages:{},related_events:},{date:2024-09-07,outages:{},related_events:},{date:2024-09-08,outages:{},related_events:},{date:2024-09-09,outages:{},related_events:},{date:2024-09-10,outages:{},related_events:},{date:2024-09-11,outages:{},related_events:},{date:2024-09-12,outages:{},related_events:},{date:2024-09-13,outages:{},related_events:},{date:2024-09-14,outages:{},related_events:},{date:2024-09-15,outages:{},related_events:},{date:2024-09-16,outages:{},related_events:},{date:2024-09-17,outages:{},related_events:},{date:2024-09-18,outages:{},related_events:},{date:2024-09-19,outages:{},related_events:},{date:2024-09-20,outages:{},related_events:},{date:2024-09-21,outages:{},related_events:},{date:2024-09-22,outages:{},related_events:},{date:2024-09-23,outages:{},related_events:},{date:2024-09-24,outages:{},related_events:},{date:2024-09-25,outages:{},related_events:},{date:2024-09-26,outages:{},related_events:},{date:2024-09-27,outages:{},related_events:},{date:2024-09-28,outages:{},related_events:},{date:2024-09-29,outages:{},related_events:},{date:2024-09-30,outages:{},related_events:},{date:2024-10-01,outages:{},related_events:},{date:2024-10-02,outages:{},related_events:{name:Saagies Hardware Infrastructure Component Upgrade: Replacement cartridges for Proxmox 5, 9 \u0026 12,code:7xkhc17k0j8p}},{date:2024-10-03,outages:{},related_events:{name:Saagies Hardware Infrastructure Component Upgrade: Replacement cartridges for Proxmox 5, 9 \u0026 12,code:4nlpvybw503b},{name:Saagies Hardware Infrastructure Component Upgrade: Replacement cartridges for Proxmox 5, 9 \u0026 12,code:7xkhc17k0j8p}},{date:2024-10-04,outages:{},related_events:},{date:2024-10-05,outages:{},related_events:},{date:2024-10-06,outages:{},related_events:},{date:2024-10-07,outages:{},related_events:},{date:2024-10-08,outages:{},related_events:},{date:2024-10-09,outages:{},related_events:},{date:2024-10-10,outages:{},related_events:},{date:2024-10-11,outages:{},related_events:},{date:2024-10-12,outages:{},related_events:},{date:2024-10-13,outages:{},related_events:},{date:2024-10-14,outages:{},related_events:},{date:2024-10-15,outages:{},related_events:},{date:2024-10-16,outages:{},related_events:},{date:2024-10-17,outages:{},related_events:},{date:2024-10-18,outages:{},related_events:},{date:2024-10-19,outages:{},related_events:},{date:2024-10-20,outages:{},related_events:},{date:2024-10-21,outages:{},related_events:},{date:2024-10-22,outages:{},related_events:},{date:2024-10-23,outages:{},related_events:},{date:2024-10-24,outages:{},related_events:},{date:2024-10-25,outages:{},related_events:},{date:2024-10-26,outages:{},related_events:},{date:2024-10-27,outages:{},related_events:},{date:2024-10-28,outages:{},related_events:},{date:2024-10-29,outages:{},related_events:},{date:2024-10-30,outages:{},related_events:},{date:2024-10-31,outages:{},related_events:},{date:2024-11-01,outages:{},related_events:},{date:2024-11-02,outages:{},related_events:},{date:2024-11-03,outages:{},related_events:},{date:2024-11-04,outages:{},related_events:}}} var timeoutId; var monthStrings Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec ; var EVENT_MAX_LENGTH 90; // Detect device (desktop vs. touch device) function touchDevice() { var browser bowser.getParser(window.navigator.userAgent); // if type is either mobile or tablet, return true return browser.parse().parsedResult.platform.type ! desktop; } // Class is in format day-number>. Convert to just number function dayNumberFromClass(className) { return parseInt(className.split(-)1); } // Class is in format component-code>. Convert to just code function componentCodeFromClass(className) { return className.split(-)1; } // Convert number to string pixel measurement function intToPixels(number) { return number.toString() + px; } function truncate(str) { return str.substring(0, EVENT_MAX_LENGTH) + (str.length > EVENT_MAX_LENGTH ? ... : ); } // Tooltip Handling class constructor function UptimeTooltipHandler(frameWidth) { this.visible false; this.activeDay { hovered: false }; this.tooltip document.getElementById(uptime-tooltip); this.frameWidth frameWidth undefined ? window.innerWidth : frameWidth; this.scrolling false; window.addEventListener(mousemove, this.tooltipListener.bind(this)); window.addEventListener(orientationchange, this.orientationListener.bind(this)); // on tooltip creation, determine whether to display touch-specific controls var tooltipCloseButton document.querySelector(.tooltip-close); if (touchDevice()) { var componentsContainer document.querySelector(.components-container); componentsContainer.addEventListener(touchstart, this.handleTouch.bind(this)); tooltipCloseButton.addEventListener(touchstart, this.unhoverTooltip.bind(this)); } else { window.addEventListener(resize, this.resizeListener.bind(this)); // classList not supported by IE 9 tooltipCloseButton.className + hidden; } // Handle toggle of group elements var groupComponents document.querySelectorAll(data-js-hookcomponent-group-opener); for (var i 0; i groupComponents.length; i++) { groupComponentsi.addEventListener(click, this.hideTooltip.bind(this)); } var tooltipBox document.querySelector(#uptime-tooltip .tooltip-box); tooltipBox.addEventListener(mouseenter, this.mouseEnteredTooltip.bind(this)); tooltipBox.addEventListener(mouseleave, this.unhoverTooltip.bind(this)); } document.querySelectorAll(.uptime-day).forEach(function (rect) { rect.addEventListener(focus, function (event) { var tooltipHandler new UptimeTooltipHandler(); tooltipHandler.updateHoveredDay(event); tooltipHandler.updateTooltip(event); }); rect.addEventListener(blur, function () { var tooltipHandler new UptimeTooltipHandler(); tooltipHandler.unhoverTooltip(); }); rect.addEventListener(keydown, function (event) { if (event.key Escape || event.keyCode 27) { var tooltipHandler new UptimeTooltipHandler(); tooltipHandler.unhoverTooltip(); } }); }); UptimeTooltipHandler.prototype.tooltipListener function(event) { if (!this.tooltipHovered) { this.updateHoveredDay(event); this.updateTooltip(event); } } // this handler will accommodate for mobile orientation change UptimeTooltipHandler.prototype.orientationListener function(event) { // just close the tooltip this.unhoverTooltip(); } UptimeTooltipHandler.prototype.resizeListener function(event) { this.frameWidth window.innerWidth; } UptimeTooltipHandler.prototype.handleTouch function (event) { if (event.target.classList.contains(uptime-day)) { event.stopPropagation(); this.bladeTouched(event); } } UptimeTooltipHandler.prototype.mouseEnteredTooltip function() { // Necessary to clear the timeout set for closing the tooltip when the mouse // moves off the blade or timeline, so the tooltip isnt closed on hover clearTimeout(timeoutId); // Sets it to null so the timeout can be set later, as clearTimeout only // cancels the timer, and we need to allow it to be reset in the mouse // move handler below timeoutId null; this.tooltipHovered true; } UptimeTooltipHandler.prototype.unhoverTooltip function() { this.tooltipHovered false; this.activeDay.hovered false; this.hideTooltip(); } UptimeTooltipHandler.prototype.bladeTouched function (event) { event.preventDefault(); var classes event.target.getAttribute(class).split( ); var componentCode componentCodeFromClass(classes1) var index dayNumberFromClass(classes2); // If open and tapped on same component and day, close tooltip if (this.visible && this.activeDay.component componentCode && this.activeDay.index index) { this.hideTooltip(); } else { this.updateHoveredDay(event); this.updateTooltip(event); } } UptimeTooltipHandler.prototype.updateHoveredDay function(event) { var classes event.target.getAttribute(class); // classList doesnt work in IE var onDay classes ! null && classes.split( ).indexOf(uptime-day) ! -1; if (onDay) { classes classes.split( ); var componentCode componentCodeFromClass(classes1); this.activeDay { index: dayNumberFromClass(classes2), component: componentCode, bounds: event.target.getBoundingClientRect(), isGroup: uptimeDatacomponentCode.component.isGroup, hovered: true } } else { this.activeDay.hovered false; } } UptimeTooltipHandler.prototype.updateTooltip function(event) { var classes event.target.getAttribute(class); // classList doesnt work in IE var hoveredOnGraphic classes ! null && classes.split( ).indexOf(availability-time-line-graphic) ! -1; if (this.activeDay.hovered) { this.updateTooltipData(); this.positionTooltip(); } else if (this.visible && !this.activeDay.hovered && !hoveredOnGraphic) { // Important: since this is on mouse move it will be called multiple times // which will clear timeoutId and reset it to the new value, meaning // it is a race condition to cancel it if (!timeoutId) { var _this this; timeoutId setTimeout(function() { _this.hideTooltip(); timeoutId null; }, 250); } } } UptimeTooltipHandler.prototype.updateTooltipData function() { // Get the data for the day were hovered on var day uptimeDatathis.activeDay.component.daysthis.activeDay.index; // Update the date for the tooltip var date new Date(day.date); // Get the components start date. Note that it will be undefined here unless it is populated in our database var startDay uptimeDatathis.activeDay.component.component.startDate; var startDate startDay ? new Date(startDay) : null; // Determine whether current date falls before components start date. var beforeStartDate startDate ? date.getTime() startDate.getTime() : false; // UTC necessary since days are passed yyyy-mm-dd, and new Date uses midnight UTC, so local times // are presented as the day before var dateString date.getUTCDate() + + monthStringsdate.getUTCMonth() + + date.getUTCFullYear(); document.querySelector(#uptime-tooltip .date).innerHTML dateString; // Update the outage fields if (this.activeDay.isGroup) { this.updateGroupOutageFields() } else { this.updateOutageFields(day.outages.p, day.outages.m, day.related_events, beforeStartDate); } } UptimeTooltipHandler.prototype.hoursFromSeconds function(s) { return Math.floor(s / 3600); } UptimeTooltipHandler.prototype.minutesFromSeconds function(s) { // If less than a minute, round up to 1 minute to show that some outage existed if (s > 0 && s 60) { return 1; } // Otherwise use floor return Math.floor((s % 3600) / 60); } UptimeTooltipHandler.prototype.updateGroupOutageFields function() { // Hide time info document.querySelector(#uptime-tooltip .outage-field.major).style.display none; document.querySelector(#uptime-tooltip .outage-field.partial).style.display none; document.querySelector(.related-events h3).style.display none; document.querySelector(.no-related-msg).style.display none; var eventList document.getElementById(related-events-list) var cloneList eventList.cloneNode(false); eventList.parentNode.replaceChild(cloneList, eventList); var partialCount 0; var majorCount 0; /** We were originally using the operationalCount as part of the no outage copy for group components, but ultimately decided not to use it. I opted to leave the variable in place in case we ever decide to use it in the future. */ var operationalCount 0; var noDataCount 0; var showcasedComponentsCount 0; var components uptimeDatathis.activeDay.component.component.group for (var i 0; i components.length; i++) { if (!uptimeDatacomponentsi) continue; showcasedComponentsCount++; var outages uptimeDatacomponentsi.daysthis.activeDay.index.outages; var currentDay uptimeDatacomponentsi.daysthis.activeDay.index; var currentDate new Date(currentDay.date); // Get the components start date. Note that it will be undefined here unless it is populated in our database var startDay uptimeDatacomponentsi.component.startDate; var startDate startDay ? new Date(startDay) : null; if (outages.p) { partialCount + 1; } if (outages.m) { majorCount + 1; } // Only increase operational count if component has data for this day if (!outages.p && !outages.m) { if (startDate && currentDate.getTime() startDate.getTime()) { noDataCount +1; } else { operationalCount +1; } } } document.querySelector(#major-outage-group-count).style.display majorCount ? block : none; document.querySelector(#partial-outage-group-count).style.display partialCount ? block : none; document.querySelector(#major-outage-group-count .count).innerText majorCount + (majorCount 1 ? component : components); document.querySelector(#partial-outage-group-count .count).innerText partialCount + (partialCount 1 ? component : components ); // Show no data message only if we do not have data for any showcased components in the group var showNoDataMessage noDataCount showcasedComponentsCount; // Show no outages message if we have data for the components and no outages in that data document.querySelector(#uptime-tooltip .no-outages-msg).style.display (majorCount || partialCount || showNoDataMessage) ? none : block; document.querySelector(#uptime-tooltip .no-data-msg).style.display showNoDataMessage ? block : none; } UptimeTooltipHandler.prototype.updateOutageFields function(partial, major, relatedEvents, beforeStartDate) { // Hide group info document.querySelector(#major-outage-group-count).style.display none; document.querySelector(#partial-outage-group-count).style.display none; // Show the message that no outage present, if none is present if (partial || major || beforeStartDate) { document.querySelector(#uptime-tooltip .no-outages-msg).style.display none; } else { document.querySelector(#uptime-tooltip .no-outages-msg).style.display block; } if (beforeStartDate) { document.querySelector(#uptime-tooltip .no-data-msg).style.display block; } else { document.querySelector(#uptime-tooltip .no-data-msg).style.display none; } // Update partial outage field if an outage exists, otherwise hide it if (partial) { var hrs this.hoursFromSeconds(partial); var mins this.minutesFromSeconds(partial); document.querySelector(#uptime-tooltip .outage-field.partial .value-hrs).innerHTML hrs.toString() + hrs; document.querySelector(#uptime-tooltip .outage-field.partial .value-mins).innerHTML mins.toString() + mins; document.querySelector(#uptime-tooltip .outage-field.partial).style.display flex; } else { document.querySelector(#uptime-tooltip .outage-field.partial).style.display none; } // Update major outage field if an outage exists, otherwise hide it if (major) { var hrs this.hoursFromSeconds(major); var mins this.minutesFromSeconds(major); document.querySelector(#uptime-tooltip .outage-field.major .value-hrs).innerHTML hrs.toString() + hrs; document.querySelector(#uptime-tooltip .outage-field.major .value-mins).innerHTML mins.toString() + mins; document.querySelector(#uptime-tooltip .outage-field.major).style.display flex; } else { document.querySelector(#uptime-tooltip .outage-field.major).style.display none; } var eventList document.getElementById(related-events-list) var cloneList eventList.cloneNode(false); document.querySelector(.related-events h3).style.display (relatedEvents.length ? block : none); for (var i 0; i relatedEvents.length; i++) { var listItem document.createElement(li); listItem.className related-event; var anchor document.createElement(a); anchor.className related-event-link; anchor.target _blank; anchor.href window.Routes.incident_path(relatedEventsi.code); var text document.createTextNode(truncate(relatedEventsi.name)); anchor.appendChild(text); listItem.appendChild(anchor); cloneList.appendChild(listItem); } const displayNoRelatedMsg ((major || partial) && !relatedEvents.length); document.querySelector(.no-related-msg).style.display (displayNoRelatedMsg ? block : none); eventList.parentNode.replaceChild(cloneList, eventList); } UptimeTooltipHandler.prototype.positionTooltip function() { this.calculatePointerCenter(); this.calculateBoxPosition(); // show tooltip this.tooltip.style.display block; // position pointer var pointer this.tooltip.getElementsByClassName(pointer-container)0; pointer.style.left intToPixels(this.pointerCenter.x - 8); pointer.style.top intToPixels(this.pointerCenter.y - 5); // position display box var box this.tooltip.getElementsByClassName(tooltip-box)0; box.style.left intToPixels(this.boxLeft); box.style.top intToPixels(this.pointerCenter.y + 5); this.visible true; } UptimeTooltipHandler.prototype.calculatePointerCenter function() { var bounds this.activeDay.bounds; var rectLeft bounds.left + window.pageXOffset; var rectBottom bounds.bottom + window.pageYOffset; var rectWidth bounds.right - bounds.left; this.pointerCenter { x: rectLeft + Math.floor(rectWidth / 2), y: rectBottom + 5 } } UptimeTooltipHandler.prototype.calculateBoxPosition function() { var sideWidth 162.5; if (this.pointerCenter.x - sideWidth 0) { this.boxLeft 0; } else if (this.pointerCenter.x + sideWidth > this.frameWidth) { this.boxLeft this.frameWidth - sideWidth * 2; } else { this.boxLeft this.pointerCenter.x - sideWidth; } } UptimeTooltipHandler.prototype.hideTooltip function() { this.tooltip.style.display none; this.visible false; } new UptimeTooltipHandler();/script> div classincidents-list format-expanded> a classfont-largest no-link idpast-incidents href#past-incidents>Past Incidents/a> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Nov var data-vardate> 4/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported today./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Nov var data-vardate> 3/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Nov var data-vardate> 2/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Nov var data-vardate> 1/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Oct var data-vardate>31/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Oct var data-vardate>30/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Oct var data-vardate>29/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Oct var data-vardate>28/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Oct var data-vardate>27/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Oct var data-vardate>26/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Oct var data-vardate>25/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Oct var data-vardate>24/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Oct var data-vardate>23/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Oct var data-vardate>22/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> div classstatus-day font-regular no-incidents> div classdate border-color font-large>Oct var data-vardate>21/var>, var data-varyear>2024/var>/div> p classcolor-secondary>No incidents reported./p> /div> /div> div classpage-footer border-color font-small> a href/history classhistory-footer-link>span stylefont-family:arial>←/span> Incident History/a> span classcolor-secondary powered-by>a classcolor-secondary target_blank relnoopener noreferrer nofollow hrefhttps://www.atlassian.com/software/statuspage?utm_campaign777bpce76.saagie.com&utm_contentSP-notifications&utm_mediumpowered-by&utm_sourceinapp>Powered by Atlassian Statuspage/a>/span> /div> /div> /div> script srchttps://dka575ofm4ao0.cloudfront.net/assets/status_manifest-6a7ae3a8e2e1b1e1d9466495faa0851c3f5fff938743f6501c900aa2a8792e8c.js>/script> div idcpt-notification-container>/div> !-- all of the content_for stuff --> script srchttps://dka575ofm4ao0.cloudfront.net/assets/register_subscription_form-589b657fec607087fc5c740c568270907310bc4f6aaa20256e70f01b103025ca.js>/script> script typetext/javascript> /script> script srchttps://dka575ofm4ao0.cloudfront.net/assets/status_common-c1b99d73ee7ab0fea796bd170723c1daac1381095a7dd7501a38ce6f333d86b3.js>/script> script> SP.pollForChanges(/api/v2/status.json); /script> script> $(function() { $(.tool).tooltipster({ animationDuration: 100, contentAsHTML: true, delay: 100, theme: tooltipster-borderless, functionInit: function (instance, helper) { var $origin $(helper.origin), dataOptions $origin.attr(data-tooltip-config); if (dataOptions){ dataOptions JSON.parse(dataOptions); $.each(dataOptions, function(name, option){ instance.option(name, option); }); } } }); // clicks on first tab in subscribe popout since we wont know which is first // upon construction in the ruby code $(.updates-dropdown-nav > a).eq(0).click(); // twitter follow button needs some margin $(.twitter-follow-button).css(margin-right, 6px); }); $(function() { // open/close component groups HRB.utils.djshook(component-group-opener).on(click, function() { var groupParentIndicator $(this).find(.group-parent-indicator); groupParentIndicator.toggleClass(fa-plus-square-o).toggleClass(fa-minus-square-o).end().parent().toggleClass(open); toggleGroup(groupParentIndicator) }); }); $(function() { HRB.utils.djshook(component-group-opener).on(keydown, function(event) { if (event.key ! Enter && event.key ! ) { return; } event.preventDefault() var groupParentIndicator $(this).find(.group-parent-indicator); groupParentIndicator.toggleClass(fa-plus-square-o).toggleClass(fa-minus-square-o).end().parent().toggleClass(open); toggleGroup(groupParentIndicator) }); }); function toggleGroup(groupParentIndicator) { var isOpen groupParentIndicator.attr(aria-expanded) if (isOpen false) { groupParentIndicator.attr(aria-expanded, true); } else { groupParentIndicator.attr(aria-expanded, false); } } $(function() { $(document).on(ajax:complete, .modal.in, function(e) { // Close the active modal. $(.modal.in).modal(hide); }); }); /script> script> /** INITIALIZATION **/ var recaptchaIds {} // Unfortunately theres no unique selectors on the parent divs that recaptcha adds. The first unique selector // is the iframe rendered 2 levels deep. So this waits until the iframes are added to the page, then finds // the parent div and sets the z index so that itll render above our modals & dropdowns from the start. function setZIndex(captchaCount, startTime) { // bail after 10s just in case so we dont do this forever if something whaky happens if (new Date() - startTime > 10000) { return; } var iframes document.querySelectorAll(iframetitlerecaptcha challenge); if (iframes.length ! captchaCount) { setTimeout(function() { setZIndex(captchaCount, startTime); }, 500); } for (var i 0; i iframes.length; i++) { // incident subscribe modal is 1050, so this has to be above that iframesi.parentElement.parentElement.style.zIndex 1100; } } function updateCaptchaIframeTitle(captchaCount, startTime, updates0) { if (new Date() - startTime > 10000 || captchaCount updates) { return; } var iframesWithTitle document.querySelectorAll(iframetitlerecaptcha challenge expires in two minutes); if (iframesWithTitle.length ! captchaCount) { setTimeout(function() { updateCaptchaIframeTitle(captchaCount, startTime, iframesWithTitle.length + updates); }, 500); } for (var i 0; i iframesWithTitle.length; i++) { iframesWithTitlei.title recaptcha; } } function addIncidentCaptcha() { var incidentCaptcha document.createElement(div); incidentCaptcha.setAttribute(id, subscribe-incident-recaptcha); incidentCaptcha.setAttribute(class, g-recaptcha); incidentCaptcha.setAttribute(data-sitekey, 6LcZ-b0UAAAAAENi956aWzynTT2ZJ80dGU3F80Op); incidentCaptcha.setAttribute(data-callback, submitIncidentSubscriberSuccess); incidentCaptcha.setAttribute(data-error-callback, submitIncidentSubscriberError); incidentCaptcha.setAttribute(data-size, invisible); document.body.appendChild(incidentCaptcha); var incidentCode document.createElement(input); incidentCode.setAttribute(type, hidden); incidentCode.setAttribute(id, submit_incident_code); document.body.appendChild(incidentCode); } var onloadCallback function() { // if there is an incident, then add incident captcha element if (document.getElementsByClassName(modal-open-incident-subscribe).length > 0) { addIncidentCaptcha(); } var captchas document.getElementsByClassName(g-recaptcha); for(var i 0; i captchas.length; i++) { var elId captchasi.id; recaptchaIdselId grecaptcha.enterprise.render(elId); } setZIndex(captchas.length, new Date()); updateCaptchaIframeTitle(captchas.length, new Date()); } /** SUBSCRIBE DROPDOWN */ // callbacks for captcha success function submitNewSubscriber(type, error) { if (error) document.querySelector(#subscribe-form- + type + #captcha_error).value true; document.getElementById(subscribe-form- + type).dispatchEvent(new Event(submit, {bubbles: true, cancelable: true})); grecaptcha.enterprise.reset(recaptchaIdssubscribe-btn- + type); } function submitNewEmailSubscriber(token) { submitNewSubscriber(email); } function submitNewSmsSubscriber(token) { submitNewSubscriber(sms); } function submitNewWebhookSubscriber(token) { submitNewSubscriber(webhook); } function submitIncidentSubscriber(token, error) { var incidentCode document.getElementById(submit_incident_code).value; var incidentForm document.getElementById(subscribe-form- + incidentCode); incidentForm.querySelector(inputnamecaptcha_error).value error; incidentForm.querySelector(inputnameg-recaptcha-response).value token; incidentForm.dispatchEvent(new Event(submit, {bubbles: true, cancelable: true})); grecaptcha.enterprise.reset(recaptchaIdssubscribe-incident-recaptcha); } function submitIncidentSubscriberSuccess(token) { submitIncidentSubscriber(token, false); } // callbacks if we get captcha network errors function emailSubscriberCaptchaError(token) { submitNewSubscriber(email, true); } function smsSubscriberCaptchaError(token) { submitNewSubscriber(sms, true); } function webhookSubscriberCaptchaError(token) { submitNewSubscriber(webhook, true); } function submitIncidentSubscriberError(token) { submitIncidentSubscriber(token, true); } // tracking clicks email, sms, webhook.forEach(function(type) { var el document.getElementById(subscribe-btn- + type); el && el.addEventListener(click, function() { $.ajax({ type: POST, url: /subscriptions/track_attempt, data: { type: type } }) }) }) // form submission success callbacks $(#subscribe-form-email).on(ajax:success, function(e, data, status, xhr){ if (data.type success) { SP.currentPage.updatesDropdown.hide(); document.getElementById(email).value ; } }); $(#subscribe-form-sms).on(ajax:success, function(e, data, status, xhr){ if (data.type success && data.otp_flow ! true) { SP.currentPage.updatesDropdown.hide(); document.getElementById(phone-number).value ; } }); $(#subscribe-form-webhook).on(ajax:success, function(e, data, status, xhr){ if (data.type success) { SP.currentPage.updatesDropdown.hide(); document.getElementById(endpoint-webhooks).value ; document.getElementById(email-webhooks).value ; } }); $(a.subscribe).on(click, function() { document.body.style.overflow hidden; document.body.style.height 100vh; }); $(div.modal-open-incident-subscribe).on(hidden, function(){ document.body.style.overflow ; document.body.style.height ; }); function submitCaptchaIncidentSubscribe(event) { var incidentCode event.target.id.split(-)2; event.preventDefault(); $.ajax({ type: POST, url: /subscriptions/track_attempt, data: { type: incident } }) document.getElementById(submit_incident_code).value incidentCode; grecaptcha.enterprise.execute(recaptchaIdssubscribe-incident-recaptcha); }/script>script srchttps://www.recaptcha.net/recaptcha/enterprise.js?onloadonloadCallback&renderexplicit async defer>/script> script srchttps://dka575ofm4ao0.cloudfront.net/packs/common-26088bd668d868f5c673.chunk.js>/script> script srchttps://dka575ofm4ao0.cloudfront.net/packs/globals-8e6e6442e772d9de9f72.chunk.js>/script> script srchttps://dka575ofm4ao0.cloudfront.net/packs/runtime-d706ca4615abb29d1ea6.js>/script> script> window.addEventListener(load, function () { const urlParams new URLSearchParams(window.location.search); const messageToken urlParams.get(slack_message_token); const channelName escape(urlParams.get(channel_name)); if(!!messageToken) { switch(messageToken) { case slack_auth_error: HRB.utils.notify(The Slack authorization attempt was unsuccessful. Try again., {cssClass:error}); break; case subscribers_disabled_error: HRB.utils.notify(Slack subscriptions are not enabled on this page., {cssClass:error}); break; case direct_message_channel_error: HRB.utils.notify(Subscriptions aren’t supported in direct messages. Try subscribing again and choose a channel instead., {cssClass:error}); break case duplicate_error: HRB.utils.notify(Youre already subscribed to get Slack notifications in that channel., {cssClass:error}); break; case duplicate_private_channel_error: HRB.utils.notify(`Youre already subscribed to get Slack notifications in #${channelName}. Invite the @Statuspage app to that channel to start getting status updates.`, {cssClass: error}); break; case default_success: HRB.utils.notify(Youre now subscribed to get Statuspage updates in Slack!, {cssClass:success}); break; case private_channel_success: HRB.utils.notify(`IMPORTANT: Invite the @Statuspage app to your Slack channel #${channelName} to start getting status updates.`, {cssClass:success}); break; } } });/script> !-- FOR FLASH NOTICES -->!-- FOR ERROR --> script> $(function() { var $link $(span classcolor-secondary powered-by>a classcolor-secondary target_blank relnoopener noreferrer nofollow hrefhttps://www.atlassian.com/software/statuspage?utm_campaign777bpce76.saagie.com&utm_contentSP-notifications&utm_mediumpowered-by&utm_sourceinapp>Powered by Atlassian Statuspage/a>/span>); var setPoweredByStyles function() { if (!$(.powered-by).length) { $link.appendTo($(.page-footer)) } $(.powered-by).attr(style, display: inline !important; visibility:visible !important; opacity: 1 !important; position:static !important; text-indent:0px !important; transform:scale(1) !important); } setInterval(setPoweredByStyles, 1000); });/script> /body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]