http://git-wip-us.apache.org/repos/asf/stratos/blob/53c98dd9/extensions/das/metering-service/capps/stratos-metering-service/Gadget_Member_Status/Member_Status/js/main.js ---------------------------------------------------------------------- diff --git a/extensions/das/metering-service/capps/stratos-metering-service/Gadget_Member_Status/Member_Status/js/main.js b/extensions/das/metering-service/capps/stratos-metering-service/Gadget_Member_Status/Member_Status/js/main.js deleted file mode 100644 index a103dd6..0000000 --- a/extensions/das/metering-service/capps/stratos-metering-service/Gadget_Member_Status/Member_Status/js/main.js +++ /dev/null @@ -1,170 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - * - */ -var datasource, type, columns, filter, maxUpdateValue; - -var REFRESH_INTERVAL = 5000; -var dataLoaded = true; - -var timeInterval = '30 Min'; -var applicationId = ''; -var clusterId = ''; - -//this needs to be loaded from an autogenerated -datasource = gadgetConfig.datasource; -filter = gadgetConfig.filter; -type = gadgetConfig.type; -var counter = 0; -maxUpdateValue = gadgetConfig.maxUpdateValue; - -gadgets.HubSettings.onConnect = function () { - gadgets.Hub.subscribe('member-status-filter', function (topic, data) { - clusterId = data['clusterId']; - applicationId = data['applicationId']; - timeInterval = data['timeInterval']; - console.log("Member Filter Value: " + JSON.stringify(data)); - }); -}; - -getColumns(datasource); - -//load data immediately -fetchData(drawChart); - -// then start periodic polling -setInterval(function () { - fetchData(drawChart); -}, REFRESH_INTERVAL); - - -function getColumns() { - columns = gadgetConfig.columns; -} - -function fetchData(callback) { - //if previous operation is not completed, DO NOT fetch data - if (!dataLoaded) { - console.log("Waiting for data..."); - return; - } - - var application = applicationId; - var cluster = clusterId; - var time = timeInterval; - - if (application != "") { - var request = { - tableName: datasource, - applicationId: application, - clusterId: cluster, - time: time - }; - $.ajax({ - url: "/portal/apis/member-status", - method: "GET", - data: request, - contentType: "application/json", - success: function (data) { - if (callback != null) { - callback(makeRows(JSON.parse(data))); - } - } - }); - dataLoaded = false; //setting the latch to locked position so that we block data fetching until we receive the response from backend - } -} - -function makeDataTable(data) { - var dataTable = new igviz.DataTable(); - if (columns.length > 0) { - columns.forEach(function (column) { - var type = "N"; - if (column.DATA_TYPE == "varchar" || column.DATA_TYPE == "VARCHAR") { - type = "C"; - } else if (column.DATA_TYPE == "TIME" || column.DATA_TYPE == "time") { - type = "T"; - } - dataTable.addColumn(column.LABEL_NAME, type); - }); - } - data.forEach(function (row, index) { - for (var i = 0; i < row.length; i++) { - if (dataTable.metadata.types[i] == "N") { - data[index][i] = parseInt(data[index][i]); - } - } - }); - dataTable.addRows(data); - return dataTable; -} - -function makeRows(data) { - var rows = []; - for (var i = 0; i < data.length; i++) { - var record = data[i]; - var row = columns.map(function (column) { - return record[column.COLUMN_NAME]; - }); - rows.push(row); - } - return rows; -} - -function drawChart(data) { - var dataTable = makeDataTable(data); - - if (dataTable.data.length != 0) { - - gadgetConfig.chartConfig.width = $("#placeholder").width(); - gadgetConfig.chartConfig.height = $("#placeholder").height() - 65; - var chartType = gadgetConfig.chartConfig.chartType; - var xAxis = gadgetConfig.chartConfig.xAxis; - var chart; - jQuery("#noChart").html(""); - if (chartType === "bar" && dataTable.metadata.types[xAxis] === "N") { - dataTable.metadata.types[xAxis] = "C"; - } - - if (gadgetConfig.chartConfig.chartType === "tabular" || gadgetConfig.chartConfig.chartType === "singleNumber") { - gadgetConfig.chartConfig.height = $("#placeholder").height(); - chart = igviz.draw("#placeholder", gadgetConfig.chartConfig, dataTable); - chart.plot(dataTable.data); - - } else { - chart = igviz.setUp("#placeholder", gadgetConfig.chartConfig, dataTable); - chart.setXAxis({ - "labelAngle": -35, - "labelAlign": "right", - "labelDy": 0, - "labelDx": 0, - "titleDy": 25 - }) - .setYAxis({ - "titleDy": -30 - }); - chart.plot(dataTable.data); - } - } else { - jQuery("#placeholder").html(""); - jQuery("#placeholder").append('<div id="noChart"><table><tr><td style="padding:30px 20px 0px 20px"><img src="../../portal/images/noEvents.png" align="left" style="width:24;height:24"/></td><td><br/><b><p><br/>Data is not available for selected application, cluster and time interval</p></b></td></tr></table></div>'); - } - //releasing the latch so that we can request data again from the backend. - dataLoaded = true; -} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/53c98dd9/extensions/das/metering-service/capps/stratos-metering-service/Gadget_Member_Status/Member_Status/js/outputAdapterUiLibrary.js ---------------------------------------------------------------------- diff --git a/extensions/das/metering-service/capps/stratos-metering-service/Gadget_Member_Status/Member_Status/js/outputAdapterUiLibrary.js b/extensions/das/metering-service/capps/stratos-metering-service/Gadget_Member_Status/Member_Status/js/outputAdapterUiLibrary.js deleted file mode 100644 index f2d2d64..0000000 --- a/extensions/das/metering-service/capps/stratos-metering-service/Gadget_Member_Status/Member_Status/js/outputAdapterUiLibrary.js +++ /dev/null @@ -1,276 +0,0 @@ -/* - * - * - * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you 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. - * - * - */ - -var CONSTANTS = { - webAppName: 'outputui', - urlSeperator: '/', - urlGetParameter: '?lastUpdatedTime=', - tenantUrlAttribute: 't', - urlUnsecureTransportHttp: 'http://', - urlUnsecureTransportWebsocket: 'ws://', - urlSecureTransportWebsocket: 'wss://', - urlSecureTransportHttp: 'https://', - colon: ':', - defaultIntervalTime: 10 * 1000, - defaultUserDomain: 'carbon.super', - defaultHostName: 'localhost', - defaultNonsecurePortNumber: '9763', - defaultSecurePortNumber: '9443', - defaultMode: 'AUTO', - processModeHTTP: 'HTTP', - processModeWebSocket: 'WEBSOCKET', - processModeAuto: 'AUTO', - domain: 'carbon.super', - numThousand: 1000, - websocketTimeAppender: 400, - secureMode: 'SECURED' -}; - - -var websocket = null; -var webSocketUrl; -var httpUrl; -var cepHostName; -var cepPortNumber; -var isErrorOccured = false; -var lastUpdatedtime = -1; -var polingInterval; -var stream; -var streamVersion; -var firstPollingAttempt; -var processMode; -var onSuccessFunction; -var onErrorFunction; -var userDomainUrl = ""; -var terminateWebsocketInstance = false; -var pollingContinue = true; -var transportToBeUsedHttp; -var transportToBeUsedWebsocket; - -function subscribe(streamName, version, intervalTime, domain, - listeningFuncSuccessData, listeningFuncErrorData, cepHost, cepPort, mode, secureMode) { - - stopPollingProcesses(); - stream = streamName; - streamVersion = version; - onSuccessFunction = listeningFuncSuccessData; - onErrorFunction = listeningFuncErrorData; - - if (secureMode == CONSTANTS.secureMode) { - transportToBeUsedHttp = CONSTANTS.urlSecureTransportHttp; - transportToBeUsedWebsocket = CONSTANTS.urlSecureTransportWebsocket; - } else { - transportToBeUsedHttp = CONSTANTS.urlUnsecureTransportHttp; - transportToBeUsedWebsocket = CONSTANTS.urlUnsecureTransportWebsocket; - } - - if (intervalTime == null || intervalTime == "") { - polingInterval = CONSTANTS.defaultIntervalTime; - } else { - polingInterval = intervalTime * CONSTANTS.numThousand; - } - - if (domain == null || domain == "") { - domain = CONSTANTS.defaultUserDomain; - } - - if (cepHost == null || cepHost == "") { - cepHostName = CONSTANTS.defaultHostName; - } else { - cepHostName = cepHost; - } - - if (cepPort == null || cepPort == "") { - if (secureMode == CONSTANTS.secureMode) { - cepPortNumber = CONSTANTS.defaultSecurePortNumber; - } else { - cepPortNumber = CONSTANTS.defaultNonsecurePortNumber; - } - } else { - cepPortNumber = cepPort; - } - - if (mode == null || mode == "") { - processMode = CONSTANTS.defaultMode; - } else { - processMode = mode; - } - - if (domain != CONSTANTS.domain) { - userDomainUrl = CONSTANTS.tenantUrlAttribute + CONSTANTS.urlSeperator + domain + CONSTANTS.urlSeperator; - - } - webSocketUrl = transportToBeUsedWebsocket + cepHostName + CONSTANTS.colon + cepPortNumber + - CONSTANTS.urlSeperator + CONSTANTS.webAppName + CONSTANTS.urlSeperator + userDomainUrl + stream + - CONSTANTS.urlSeperator + streamVersion; - - if (processMode == CONSTANTS.processModeHTTP) { - firstPollingAttempt = true; - pollingContinue = true; - startPoll(); - } else { - initializeWebSocket(webSocketUrl); - } -} - - -/** - * Initializing Web Socket - */ -function initializeWebSocket(webSocketUrl) { - websocket = new WebSocket(webSocketUrl); - websocket.onopen = webSocketOnOpen; - websocket.onmessage = webSocketOnMessage; - websocket.onclose = webSocketOnClose; - websocket.onerror = webSocketOnError; -} - -/** - * Web socket On Open - */ - -var webSocketOnOpen = function () { - // alert("Successfully connected to "+webSocketUrl); - //onErrorFunction("Successfully connected to URL:" + webSocketUrl + "\n"); -}; - - -/** - * On server sends a message - */ -var webSocketOnMessage = function (evt) { - var event = evt.data; - var array = JSON.parse(event); - constructPayload(array); -}; - -/** - * On server close - */ -var webSocketOnClose = function (e) { - - if (isErrorOccured) { - if (processMode != CONSTANTS.processModeWebSocket) { - firstPollingAttempt = true; - pollingContinue = true; - startPoll(); - } - } else { - if (!terminateWebsocketInstance) { - waitForSocketConnection(websocket); - } else { - terminateWebsocketInstance = false; - } - - } -}; - -/** - * On server Error - */ -var webSocketOnError = function (err) { - var error = "Error: Cannot connect to Websocket URL:" + webSocketUrl + " .Hence closing the connection!"; - - onErrorFunction(error); - isErrorOccured = true; - -}; - -/** - * Gracefully increments the connection retry - */ -var waitTime = CONSTANTS.numThousand; -function waitForSocketConnection(socket, callback) { - setTimeout( - function () { - if (socket.readyState === 1) { - initializeWebSocket(webSocketUrl); - console.log("Connection is made"); - if (callback != null) { - callback(); - } - return; - } else { - websocket = new WebSocket(webSocketUrl); - waitTime += CONSTANTS.websocketTimeAppender; - waitForSocketConnection(websocket, callback); - } - }, waitTime); -} - -/** - * Polling to retrieve events from http request periodically - */ -function startPoll() { - - (function poll() { - setTimeout(function () { - httpUrl = transportToBeUsedHttp + cepHostName + CONSTANTS.colon + cepPortNumber + CONSTANTS.urlSeperator - + CONSTANTS.webAppName + CONSTANTS.urlSeperator + userDomainUrl + stream + CONSTANTS.urlSeperator + - streamVersion + CONSTANTS.urlGetParameter + lastUpdatedtime; - - $.getJSON(httpUrl, function (responseText) { - if (firstPollingAttempt) { - /*var data = $("textarea#idConsole").val(); - $("textarea#idConsole").val(data + "Successfully connected to HTTP.");*/ - firstPollingAttempt = false; - } - - var eventList = $.parseJSON(responseText.events); - if (eventList.length != 0) { - lastUpdatedtime = responseText.lastEventTime; - for (var i = 0; i < eventList.length; i++) { - var arr = eventList[i]; - constructPayload(arr); - } - } - if (pollingContinue) { - startPoll(); - } - }) - .fail(function (errorData) { - var errorData = JSON.parse(errorData.responseText); - onErrorFunction(errorData.error); - }); - }, polingInterval); - })() -} - -function stopPollingProcesses() { - - //stopping the Websocket - if (websocket != null) { - terminateWebsocketInstance = true; - websocket.onclose; - } - //stopping the HTTPS Request - pollingContinue = false; - -} - -function constructPayload(eventsArray) { - - var streamId = stream + CONSTANTS.colon + streamVersion; - var twoDimentionalArray = [eventsArray]; - onSuccessFunction(streamId, twoDimentionalArray); - -} \ No newline at end of file
