
{{ requestStatus.details }}
Impact:
');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t// Add Customer Action Button\r\n\t\t\t\teditor.addButton('addCustomerAction', {\r\n\t\t\t\t\ttext: 'Customer Action',\r\n\t\t\t\t\ticon: 'plus',\r\n\t\t\t\t\tonclick: function() {\r\n\t\t\t\t\t\teditor.insertContent('Customer Action:
');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Action\r\n\t\t$scope.toggleForm = toggleForm;\r\n\t\t$scope.updateTimeRange = updateTimeRange;\r\n\t\t$scope.removeAffected = removeAffected;\r\n\t\t$scope.addAffected = addAffected;\r\n\t\t$scope.addMultiple = addMultiple;\r\n\t\t$scope.postNotification = postNotification;\r\n\t\t$scope.postUpdate = postUpdate;\r\n\t\t$scope.editNotification = editNotification;\r\n\t\t$scope.clearNotificationForm = clearNotificationForm;\r\n\t\t$scope.editUpdate = editUpdate;\r\n\t\t$scope.deleteUpdate = deleteUpdate;\r\n\r\n\r\n\t\t/*****************************************************************************\r\n\t\tSet Mailchimp URL\r\n\t\t*****************************************************************************/\r\n\t\tvar mailChimpURL = '';\r\n\r\n\t\tstatusData.getSystemEnv().then(function(response) {\r\n\t\t\t$scope.systemEnv = response.data.environment;\r\n\r\n\t\t\tif ($scope.systemEnv === 'Staging') {\r\n\t\t\t\tmailChimpURL = 'https://9w5iws0pb8.execute-api.us-east-1.amazonaws.com/staging';\r\n\t\t\t}\r\n\t\t\telse if ($scope.systemEnv === 'Production') {\r\n\t\t\t\tmailChimpURL = 'https://9w5iws0pb8.execute-api.us-east-1.amazonaws.com/production';\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\t/*****************************************************************************\r\n\t\tUpdate Environment\r\n\t\t*****************************************************************************/\r\n\r\n\t\tif ($stateParams.environment) {\r\n\t\t\t$scope.environment = $stateParams.environment;\r\n\r\n\t\t\tstatusData.updateEnv($stateParams.environment);\r\n\t\t}\r\n\r\n\r\n\t\t/*****************************************************************************\r\n\t\tGet Token\r\n\t\t*****************************************************************************/\r\n\r\n\t\tfunction getToken() {\r\n\t\t\treturn adminData.getToken()\r\n\t\t\t\t.then(function(token) {\r\n\t\t\t\t\treturn token;\r\n\t\t\t\t})\r\n\t\t\t\t.catch(function(response) {\r\n\t\t\t\t\t$scope.requestStatus = {\r\n\t\t\t\t\t\tdisplay : true,\r\n\t\t\t\t\t\ttype : 'error',\r\n\t\t\t\t\t\tdetails : 'You are not authorized.'\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn response;\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\t/*****************************************************************************\r\n\t\tGet list of services first, if not present\r\n\t\t*****************************************************************************/\r\n\r\n\t\tfunction getLists() {\r\n\t\t\treturn statusData.getLists($scope.environment)\r\n\t\t\t\t.then(function(response) {\r\n\t\t\t\t\t// Clear lists\r\n\t\t\t\t\t$scope.servicesList = [];\r\n\t\t\t\t\t$scope.componentsList = [];\r\n\r\n\t\t\t\t\t// Apply new data\r\n\t\t\t\t\t$scope.servicesList = response.services;\r\n\t\t\t\t\t$scope.componentsList = response.components;\r\n\r\n\t\t\t\t\treturn response;\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\t// Get components & services list on load\r\n\t\tgetLists();\r\n\r\n\r\n\t\t/*****************************************************************************\r\n\t\tGet list of services first, if not present\r\n\t\t*****************************************************************************/\r\n\r\n\t\tfunction getNotifications(user) {\r\n\t\t\tvar params = {\r\n\t\t\t\tenv: $scope.environment,\r\n\t\t\t\tstart_ts: $scope.timeStart,\r\n\t\t\t\tend_ts: $scope.timeEnd,\r\n\t\t\t\toperator: user.name\r\n\t\t\t};\r\n\r\n\t\t\t// Clear prev data\r\n\t\t\t$scope.notifications = [];\r\n\r\n\t\t\treturn adminData.getNotifications(user.token, params)\r\n\t\t\t\t.then(function(response) {\r\n\t\t\t\t\t$scope.notifications = (response.notifications) ? response.notifications : [];\r\n\r\n\t\t\t\t\t// Update request state\r\n\t\t\t\t\t$scope.requestStatus = {\r\n\t\t\t\t\t\tdisplay : false,\r\n\t\t\t\t\t\ttype : 'success'\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn response;\r\n\t\t\t\t})\r\n\t\t\t\t.catch(function(response) {\r\n\t\t\t\t\t$scope.requestStatus = {\r\n\t\t\t\t\t\tdisplay : true,\r\n\t\t\t\t\t\ttype : 'error',\r\n\t\t\t\t\t\tdetails : 'We are unable to retrieve the data. Please try refreshing the page.'\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn response;\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\t/*****************************************************************************\r\n\t\tHTML Email Functions\r\n\t\tNote: Used when sending New Notifications and Update Notifications\r\n\t\t*****************************************************************************/\r\n\r\n\t\tfunction formatType(type) {\r\n\t\t\tswitch(type) {\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\ttype = 'General';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\ttype = 'Disruption';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\ttype = 'Maintenance';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 4:\r\n\t\t\t\t\ttype = 'Provider';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 5:\r\n\t\t\t\t\ttype = 'Outage';\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\treturn type;\r\n\t\t}\r\n\t\tfunction getColor(type) {\r\n\t\t\tvar color = '#000';\r\n\r\n\t\t\tswitch(type) {\r\n\t\t\t\t// General\r\n\t\t\t\tcase 1:\r\n\t\t\t\t// Maintenance\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\tcolor = '#31708f';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// Disruption\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\tcolor = '#ec971f';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// Provider\r\n\t\t\t\tcase 4:\r\n\t\t\t\t// Outage\r\n\t\t\t\tcase 5:\r\n\t\t\t\t\tcolor = '#a94442';\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\treturn color;\r\n\t\t}\r\n\t\tfunction getIcon(type) {\r\n\t\t\tvar iconUrl = '#000';\r\n\r\n\t\t\tswitch(type) {\r\n\t\t\t\t// General\r\n\t\t\t\tcase 1:\r\n\t\t\t\t// Maintenance\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\ticonUrl = 'https://gallery.mailchimp.com/28c68b7375223b0bd44b45cda/images/85a24727-6de3-4754-be62-30bbf6a6e896.png';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// Disruption\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\ticonUrl = 'https://gallery.mailchimp.com/28c68b7375223b0bd44b45cda/images/0330cefd-7bd9-4cba-bcbc-3e16d2d85063.png';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// Provider\r\n\t\t\t\tcase 4:\r\n\t\t\t\t\ticonUrl = 'https://gallery.mailchimp.com/28c68b7375223b0bd44b45cda/images/587326aa-ae13-459f-84d8-6dacf67bc687.png';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// Outage\r\n\t\t\t\tcase 5:\r\n\t\t\t\t\ticonUrl = 'https://gallery.mailchimp.com/28c68b7375223b0bd44b45cda/images/62f8f473-1f3d-4bd8-8c32-4df8d65a49cc.png';\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\treturn iconUrl;\r\n\t\t}\r\n\t\tfunction getComponentNames(components) {\r\n\t\t\tvar componentHtml = '';\r\n\r\n\t\t\tangular.forEach(components, function(component) {\r\n\t\t\t\tvar prettyComponentName = $filter('prettyComponent')(component.name, $scope.componentsList);\r\n\t\t\t\tvar prettyMetricName = $filter('prettyService')(component.metric, $scope.servicesList);\r\n\t\t\t\tvar html = ''+prettyMetricName+' : '+prettyComponentName+'';\r\n\r\n\t\t\t\tif (prettyMetricName) {\r\n\t\t\t\t\tcomponentHtml = componentHtml + html;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn componentHtml;\r\n\t\t}\r\n\t\tfunction getFullThread(messages) {\r\n\t\t\tvar messageHtml = '';\r\n\r\n\t\t\tangular.forEach(messages, function(message, i) {\r\n\t\t\t\tif (i===0) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar ts = moment.utc(parseInt(message.ts, 10)*1000).format('MM/DD/YY h:mma z');\r\n\t\t\t\tvar html =\r\n\t\t\t\t''+\r\n\t\t\t\t\t\tmessage.message +\r\n\t\t\t\t\t'
'+\r\n\t\t\t\t\t(message.customer_action ? 'Customer action: ' + message.customer_action +'
' : '') +\r\n\t\t\t\t''+\r\n\t\t\t\t\t\t\t\t\t\t\t\t' | |||||||||
'+\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'
| '+\r\n\t\t\t\t\t\t\t\t\t\t\t\t'
'+\r\n\t\t\t\t\t\t\t\t\t\t\t\t' | |||||||||
'+\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'
| '+\r\n\t\t\t\t\t\t\t\t\t\t\t\t'
{{ requestStatus.details }}
Check this page for the real-time status of TT services. We continuously monitor all services and if there are any interruptions, we will report details here. You can also find information about current, upcoming and past maintenance as well as past incidents here.
{{ status.details }} If you need immediate help, please contact TT Support.
{{ requestStatus.details }}
This page provides historical availability metrics for TT services. The “7-Days” and “30-Days” views display availability on a per-day basis, while the “1-Day” view displays per-hour availability and the “1-Hour” view displays per-minute availability in local times.
{{ requestStatus.details }} If you need immediate help, please contact TT Support.
{{ requestStatus.details }}