/*- * ~~~~~~licensing~~~~~~ * entaxy-management-plugin * ========== * Copyright (C) 2020 - 2023 EmDev LLC * ========== * You may not use this file except in accordance with the License Terms of the Copyright * Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property * rights to the Software and any copies are the property of the Copyright Holder. Unless * it is explicitly allowed the Copyright Holder, the User is prohibited from using the * Software for commercial purposes to provide services to third parties. * * The Copyright Holder hereby declares that the Software is provided on an "AS IS". * Under no circumstances does the Copyright Holder guarantee or promise that the * Software provided by him will be suitable or not suitable for the specific purposes * of the User, that the Software will meet all commercial and personal subjective * expectations of the User, that the Software will work properly, without technical * errors, quickly and uninterruptedly. * * Under no circumstances shall the Copyright Holder or its Affiliates is not liable * to the User for any direct or indirect losses of the User, his expenses or actual * damage, including, downtime; loss of bussines; lost profit; lost earnings; loss * or damage to data, property, etc. * ~~~~~~/licensing~~~~~~ */ var Entaxy; (function (Entaxy) { Entaxy._module .run(AddHeaderTools); function AddHeaderTools(HawtioExtension, $location, $http, $interval) { 'ngInject'; let baseLocation = getBaseLocation(); let path = '/system/health'; let format = '?format=json'; HawtioExtension.add('context-selector', $scope => { let div = document.createElement('div'); div.className = 'health-checks-status'; div.appendChild(document.createTextNode('Health checks status:')); return div; }); HawtioExtension.add('context-selector', $scope => { let ref = document.createElement('a'); ref.setAttribute('href', baseLocation + path); ref.setAttribute('target', '_blank'); let span = document.createElement('span'); changeSpanClassname(); ref.appendChild(span); let updateStatus; $scope.startUpdate = function() { if (angular.isDefined(updateStatus)) return; updateStatus = $interval(changeSpanClassname, 15000); } $scope.startUpdate(); $scope.stopUpdate = function() { if (angular.isDefined(updateStatus)) { $interval.cancel(updateStatus); updateStatus = undefined; } } $scope.$on('$destroy', function() { $scope.stopUpdate(); }); function changeSpanClassname() { $http.get(baseLocation + path + format).then( (response) => { let status = response.data.overallResult; if (status === 'OK') { span.className = 'health-checks pficon pficon-ok'; } else if (status === 'WARN') { span.className = 'health-checks pficon pficon-warning-triangle-o'; } else { span.className = 'health-checks pficon pficon-error-circle-o'; } }, (error) => { Entaxy.log.error('Unable to get health checks status'); } ); } return ref; }); function getBaseLocation() { let port = $location.port(); return $location.protocol() + '://' + $location.host() + (port ? (':' + port) : ''); } } AddHeaderTools.$inject = ['HawtioExtension', '$location', '$http', '$interval']; })(Entaxy || (Entaxy = {}));