diff options
Diffstat (limited to 'gui-pdp-monitoring/src/webapp/js/MonitoringMain.js')
-rw-r--r-- | gui-pdp-monitoring/src/webapp/js/MonitoringMain.js | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/gui-pdp-monitoring/src/webapp/js/MonitoringMain.js b/gui-pdp-monitoring/src/webapp/js/MonitoringMain.js new file mode 100644 index 0000000..456f3a9 --- /dev/null +++ b/gui-pdp-monitoring/src/webapp/js/MonitoringMain.js @@ -0,0 +1,109 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2020 Nordix Foundation. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +import $ from "jquery"; +import { initTooltip } from "./MonitoringChart"; +import { getEngineURL, clearEngineURL, setUpPage, + removeChildrenElementsByClass, ajax_get_statistics +} from "./MonitoringUtils"; +import { setEngineServiceData } from "./PdpInformation"; +import { config } from "./MonitoringConfig"; +import { setEngineSummaryData } from "./PdpStatisticsSummary"; +import { highlightSelected } from "./PdpListView"; +import { setEngineStatusData } from "./PdpEngineWorkerStatus"; + +function servicesCallback(data){ + var engineURL = localStorage.getItem("pap-monitor-services"); + if (engineURL) { + engineURL = JSON.parse(engineURL); + if (engineURL.hostname === data.server && engineURL.port === data.port) { + setEngineServiceData(data.engineId, window.groupName, window.subGroupName, data.healthStatus, data.pdpState, data.server, data.port); + setEngineSummaryData(data.status, data.timeStamp, data.policyDeployCount, data.policyDeploySuccessCount, data.policyDeployFailCount, data.policyExecutedCount, data.policyExecutedSuccessCount, data.policyExecutedFailCount); + + if (window.engine_id === data.engineId){ + setEngineStatusData(data.status, false); + }else{ + removeChildrenElementsByClass(config.engineStatus.parent); + setEngineStatusData(data.status, true); + } + + window.engine_id = data.engineId; + + // Make content visible after data has been returned for the first time + if (!$(".content").is(':visible')) { + $(".content").fadeIn(); + } + + // Repeat the same request + setTimeout(function() { + window.servicesCall = ajax_get_statistics(window.restRootURL + "statistics/", servicesCallback, + window.services.useHttps, window.services.hostname, window.services.port, + window.services.username, window.services.password, window.id); + }, config.refresh); + } + } +} + +/* + * Called after the DOM is ready + */ +$(document).ready( + function() { + window.restRootURL = location.protocol + + "//" + + window.location.hostname + + ':' + config.restPort + + (location.pathname.endsWith("/monitoring/") ? location.pathname.substring(0, location.pathname.indexOf("monitoring/")) : location.pathname) + + "papservices/monitoring/"; + // Initialize tooltip for the charts + initTooltip(); + + // Set up the structure of the page + setUpPage(true); + + // Check cookies for engine URL + getEngineURL(); + + // Add click event to config icon for clearing engine URL + $(".ebSystemBar-config").click( + function() { + // Clear the engine URL + clearEngineURL(true); + + // Request the engine URL + getEngineURL(); + } + ); + + ['hashchange', 'load'].forEach(event => window.addEventListener(event, function() { + // Get ID from url + window.id = window.location.hash.replace('#', ''); + if (window.id !== ''){ + var arr = window.id.split("/"); + window.groupName = arr[0]; + window.subGroupName = arr[1]; + highlightSelected(window.id); + ajax_get_statistics(restRootURL + "statistics/", servicesCallback, + window.services.useHttps, window.services.hostname, window.services.port, + window.services.username, window.services.password, window.id); + } + })); + } +);
\ No newline at end of file |