From 9f967b4e1720c7ecab3f2d3c8faeeb71374f8217 Mon Sep 17 00:00:00 2001 From: lasantha Date: Tue, 20 Jun 2017 16:18:38 +0530 Subject: [PATCH] removed android active stack chart gadget --- .../Android_Active_Stack_Chart/conf.json | 17 -- .../gadget-controller.jag | 42 ---- .../Android_Active_Stack_Chart/gadget.json | 14 -- .../Android_Active_Stack_Chart/gadget.xml | 56 ----- .../js/core/bar-chart-api.js | 147 ------------- .../js/core/batch-provider-api.js | 195 ------------------ .../js/core/gadget-core.js | 85 -------- .../js/core/gadget-util.js | 35 ---- .../Android_Active_Stack_Chart/thumbnail.png | Bin 10026 -> 0 bytes .../artifact.xml | 23 --- 10 files changed, 614 deletions(-) delete mode 100644 components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/conf.json delete mode 100644 components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/gadget-controller.jag delete mode 100644 components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/gadget.json delete mode 100644 components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/gadget.xml delete mode 100644 components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/bar-chart-api.js delete mode 100644 components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/batch-provider-api.js delete mode 100644 components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/gadget-core.js delete mode 100644 components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/gadget-util.js delete mode 100644 components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/thumbnail.png delete mode 100644 components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/artifact.xml diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/conf.json deleted file mode 100644 index 3c8d3bd0f..000000000 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/conf.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "chart-conf": { - "chart-name": "bar-chart", - "color": "action", - "gadget-name": "Android Active Stack Chart", - "maxLength": "45", - "mode": "stack", - "x": "timestamp", - "y": "duration" - }, - "provider-conf": { - "limit": "45", - "provider-name": "batch", - "query": "", - "tableName": "ANDROID_ACTIVE_STAT_PER_DAY" - } -} \ No newline at end of file diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/gadget-controller.jag deleted file mode 100644 index f84538a40..000000000 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/gadget-controller.jag +++ /dev/null @@ -1,42 +0,0 @@ -<% -/** - * Copyright (c) 2016, 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. - * - */ -(function () { - - response.contentType = 'application/json'; - var PROVIDER_CONF = 'provider-conf'; - var PROVIDER_NAME = 'provider-name'; - - var action = request.getParameter("action"); - var data = request.getContent(); - var providerConf = data[PROVIDER_CONF]; - var providerAPI = require('js/core/' + providerConf[PROVIDER_NAME] + '-provider-api.js'); - - if (action === 'getSchema') { - print(providerAPI.getSchema(providerConf)); - return; - } else if(action === 'getData'){ - print(providerAPI.getData(providerConf)); - return; - } - -}()); - - -%> diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/gadget.json deleted file mode 100644 index 7435ba90f..000000000 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/gadget.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "Android_Active_Stack_Chart", - "title": "Android Active Stack Chart", - "type": "gadget", - "thumbnail": "gadget/Android_Active_Stack_Chart/thumbnail.png", - "data": { - "url": "gadget/Android_Active_Stack_Chart/gadget.xml" - }, - "toolbarButtons":{ - "default":{ - "maximize": false - } - } -} diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/gadget.xml deleted file mode 100644 index b1bec1194..000000000 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/gadget.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - ]]> -
-
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/bar-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/bar-chart-api.js deleted file mode 100644 index 2901cd5fe..000000000 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/bar-chart-api.js +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * 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. - */ -var getConfig, validate, isProviderRequired, draw, update; - -(function() { - - var CHART_LOCATION = '/extensions/chart-templates/'; - - /** - * return the config to be populated in the chart configuration UI - * @param schema - */ - getConfig = function(schema) { - var chartConf = require(CHART_LOCATION + '/bar-chart/config.json').config; - /* - dynamic logic goes here - */ - - var columns = []; - - columns.push("None"); - for(var i=0; i < schema.length; i++) { - columns.push(schema[i]["fieldName"]); - } - - for(var i=0; i < chartConf.length; i++) { - if (chartConf[i]["fieldName"] == "color") { - chartConf[i]["valueSet"] = columns; - break; - } - } - - return chartConf; - }; - - /** - * validate the user inout for the chart configuration - * @param chartConfig - */ - validate = function(chartConfig) { - return true; - }; - - /** - * TO be used when provider configuration steps need to be skipped - */ - isProviderRequired = function() { - - } - - - /** - * return the gadget content - * @param chartConfig - * @param schema - * @param data - */ - draw = function(placeholder, chartConfig, _schema, data) { - var schema = toVizGrammarSchema(_schema); - var view = { - id: "chart-0", - schema: schema, - chartConfig: buildChartConfig(chartConfig), - data: function() { - if(data) { - var result = []; - data.forEach(function(item) { - var row = []; - schema[0].metadata.names.forEach(function(name) { - if(name === chartConfig.x){ - var date = new Date(item[name]); - var month = date.getMonth() + 1; - month = ("0" + month).slice(-2); - row.push(date.getDate()+'/'+month+'/'+ date.getFullYear()); -// row.push(item[name]); - } else{ - if(name === chartConfig.y){ - row.push(item[name] / (1000*60*60)); - } else{ - row.push(item[name]); - } - } - }); - result.push(row); - }); - wso2gadgets.onDataReady(result); - } - } - - }; - - try { - wso2gadgets.init(placeholder, view); - var view = wso2gadgets.load("chart-0"); - } catch (e) { - console.error(e); - } - - }; - - /** - * - * @param data - */ - update = function(data) { - wso2gadgets.onDataReady(data,"append"); - } - - buildChartConfig = function (_chartConfig) { - var conf = {}; - conf.x = _chartConfig.x; - conf.charts = []; - conf.maxLength = _chartConfig.maxLength; - conf.charts[0] = { - type : "bar", - y: _chartConfig.y - }; - - if (_chartConfig.color != "None") { - conf.charts[0].color = _chartConfig.color; - conf.charts[0].mode = _chartConfig.mode; - } - conf.legendOffset = -30; - conf.padding = {"top": 10, "left": 100, "bottom": 70, "right": 0}; - conf.xTitle = "Date"; - conf.yTitle = "Duration (Hours)"; - conf.xAxisAngle = "true"; - console.log('chart config : '); - console.log(conf); - return conf; - }; - - -}()); diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/batch-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/batch-provider-api.js deleted file mode 100644 index 9e0f2d443..000000000 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/batch-provider-api.js +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * 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. - */ -var getConfig, validate, getMode, getSchema, getData, registerCallBackforPush; - -(function() { - - var PROVIDERS_LOCATION = '/extensions/providers/'; - - var PROVIDER_NAME = 'batch'; - var TYPE = "type"; - var TABLE_NAME = "tableName"; - var HTTPS_TRANSPORT = "https"; - var CONTENT_TYPE_JSON = "application/json"; - var AUTHORIZATION_HEADER = "Authorization"; - var USER_TOKEN = "user"; - var TENANT_DOMAIN = "domain"; - var CONST_AT = "@"; - var USERNAME = "username"; - var HTTP_USER_NOT_AUTHENTICATED = 403; - var JS_MAX_VALUE = "9007199254740992"; - var JS_MIN_VALUE = "-9007199254740992"; - - var typeMap = { - "bool" : "string", - "boolean" : "string", - "string" : "string", - "int" : "number", - "integer" : "number", - "long" : "number", - "double" : "number", - "float" : "number", - "time": "time" - }; - - var log = new Log(); - var carbon = require('carbon'); - var configs = require('/configs/designer.json'); - var utils = require('/modules/utils.js'); - var JSUtils = Packages.org.wso2.carbon.analytics.jsservice.Utils; - var AnalyticsCachedJSServiceConnector = Packages.org.wso2.carbon.analytics.jsservice.AnalyticsCachedJSServiceConnector; - var AnalyticsCache = Packages.org.wso2.carbon.analytics.jsservice.AnalyticsCachedJSServiceConnector.AnalyticsCache; - var cacheTimeoutSeconds = 5; - var loggedInUser = null; - - if (configs.cacheTimeoutSeconds) { - cacheTimeoutSeconds = parseInt(configs.cacheTimeoutSeconds); - } - var cacheSizeBytes = 1024 * 1024 * 1024; // 1GB - if (configs.cacheSizeBytes) { - cacheSizeBytes = parseInt(configs.cacheSizeBytes); - } - response.contentType = CONTENT_TYPE_JSON; - - var authParam = request.getHeader(AUTHORIZATION_HEADER); - if (authParam != null) { - credentials = JSUtils.authenticate(authParam); - loggedInUser = credentials[0]; - } else { - var token = session.get(USER_TOKEN); - if (token != null) { - loggedInUser = token[USERNAME] + CONST_AT + token[TENANT_DOMAIN]; - } else { - log.error("user is not authenticated!"); - response.status = HTTP_USER_NOT_AUTHENTICATED; - print('{ "status": "Failed", "message": "User is not authenticated." }'); - return; - } - } - - var cache = application.get("AnalyticsWebServiceCache"); - if (cache == null) { - cache = new AnalyticsCache(cacheTimeoutSeconds, cacheSizeBytes); - application.put("AnalyticsWebServiceCache", cache); - } - var connector = new AnalyticsCachedJSServiceConnector(cache); - - /** - * require the existing config.json and push any dynamic fields that needs to be populated in the UI - */ - getConfig = function() { - var formConfig = require(PROVIDERS_LOCATION + '/' + PROVIDER_NAME + '/config.json'); - var tables; - try { - tables = JSON.parse(connector.getTableList(loggedInUser).getMessage()); - } catch (e) { - log.error(e); - } - var configs = formConfig.config; - configs.forEach(function(config) { - if (config.fieldName === TABLE_NAME) { - config.valueSet = tables; - } - }); - return formConfig; - } - - /** - * validate the user input of provider configuration - * @param providerConfig - */ - validate = function(providerConfig) { - /* - validate the form and return - - */ - return true; - } - - /** - * returns the data mode either push or pull - */ - getMode = function() { - return "PULL"; - } - - /** - * returns an array of column names & types - * @param providerConfig - */ - getSchema = function(providerConfig) { - var schema = []; - var tableName = providerConfig["tableName"]; - var result = connector.getTableSchema(loggedInUser, tableName).getMessage(); - result = JSON.parse(result); - - var columns = result.columns; - Object.getOwnPropertyNames(columns).forEach(function(name, idx, array) { - var type = "ordinal"; - // log.info(columns[name]); - if(name === 'timestamp'){ - type = 'string'; - } - else if(columns[name]['type']) { - type = columns[name]['type']; - } - schema.push({ - fieldName: name, - fieldType: typeMap[type.toLowerCase()] - }); - }); - //log.info(schema); - return schema; - }; - - /** - * returns the actual data - * @param providerConfig - * @param limit - */ - getData = function(providerConfig, limit) { - var tableName = providerConfig.tableName; - var query = providerConfig.query; - var limit = 100; - if (providerConfig.limit) { - limit = providerConfig.limit; - } - var result; - //if there's a filter present, we should perform a Lucene search instead of reading the table - if (query) { - var filter = { - "query": query, - "start": 0, - "count": limit - }; - result = connector.search(loggedInUser, tableName, stringify(filter)).getMessage(); - } else { - var from = JS_MIN_VALUE; - var to = JS_MAX_VALUE; - result = connector.getRecordsByRange(loggedInUser, tableName, from, to, 0, limit, null).getMessage(); - - } - result = JSON.parse(result); - var data = []; - for (var i = 0; i < result.length; i++) { - var values = result[i].values; - data.push(values); - } - //log.info(data); - return data; - }; - -}()); diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/gadget-core.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/gadget-core.js deleted file mode 100644 index 9dfe8683b..000000000 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/gadget-core.js +++ /dev/null @@ -1,85 +0,0 @@ -/* -* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. -* -* 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. -*/ -$(function () { - var gadgetLocation; - var conf; - var schema; - var pref = new gadgets.Prefs(); - - var refreshInterval; - var providerData; - - var CHART_CONF = 'chart-conf'; - var PROVIDER_CONF = 'provider-conf'; - - var REFRESH_INTERVAL = 'refreshInterval'; - -var init = function () { - $.ajax({ - url: gadgetLocation + '/conf.json', - method: "GET", - contentType: "application/json", - async: false, - success: function (data) { - conf = JSON.parse(data); - $.ajax({ - url: gadgetLocation + '/gadget-controller.jag?action=getSchema', - method: "POST", - data: JSON.stringify(conf), - contentType: "application/json", - async: false, - success: function (data) { - schema = data; - } - }); - - getProviderData(); - - } - }); -}; - -var getProviderData = function (){ - $.ajax({ - url: gadgetLocation + '/gadget-controller.jag?action=getData', - method: "POST", - data: JSON.stringify(conf), - contentType: "application/json", - async: false, - success: function (data) { - providerData = data; - } - }); - return providerData; -}; - - -var drawGadget = function (){ - - draw('#canvas', conf[CHART_CONF], schema, providerData); - setInterval(function() { - draw('#canvas', conf[CHART_CONF], schema, getProviderData()); - },pref.getInt(REFRESH_INTERVAL)); - -}; - -getGadgetLocation(function (gadget_Location) { - gadgetLocation = gadget_Location; - init(); - drawGadget(); - -}); -}); diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/gadget-util.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/gadget-util.js deleted file mode 100644 index 91c5f16f4..000000000 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/js/core/gadget-util.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * 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. - */ -var getGadgetLocation = function (callback) { - var gadgetLocation = "/portal/store/carbon.super/fs/gadget/Android_Active_Stack_Chart"; - var PATH_SEPERATOR = "/"; - if (gadgetLocation.search("store") != -1) { - wso2.gadgets.identity.getTenantDomain(function (tenantDomain) { - var gadgetPath = gadgetLocation.split(PATH_SEPERATOR); - var modifiedPath = ''; - for (var i = 1; i < gadgetPath.length; i++) { - if (i === 3) { - modifiedPath = modifiedPath.concat(PATH_SEPERATOR, tenantDomain); - } else { - modifiedPath = modifiedPath.concat(PATH_SEPERATOR, gadgetPath[i]) - } - } - callback(modifiedPath); - }); - } else { - callback(gadgetLocation); - } -} \ No newline at end of file diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/thumbnail.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/Android_Active_Stack_Chart/thumbnail.png deleted file mode 100644 index 5d985d6e469e913933d14c5b37c8bd4d1c5058e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10026 zcmZvCWl&sAu=cXJyDjb>7R};7=fsH-5HK%L3PxnYopQ)MWiPKb9!o>n%0RRA86=iwt7di4@!9aU?*BdlIUj&M+jG7Dp z(436@V1fElr?*trRs#V1Spk61NC4pOMHTuF0Pq3>0Q=?ufM^Z?K<--bMN9m}fcD{y zl04w~zo)3LGW|t^>8fn#0RZ4B|5uP4U2vaYl<1x+Y6|F^m}Ho!Ecu$S&j0|+rHZ`F zJKvR~&weS?`k!~Dcw3YD%k;(_s=dsztc-;vo2+w(3=SeJaiDxQiOWa}$fh}8oxnqQ z+yn&RLp%>BR|pzK0`f${ln@0IQv&a;q}4$abFHyMEA-H)c07Q#7ro#ZP1pknekRp!n`RGx>&%#GH_4dAVhZ=l0uBaAFcpJ!d$df3- zKq>+YZdWrxdikr9cC@tE(CA-_eCE7O=u7B_=y!y_%M#4TzGIYOKvx*T=YY1rU1V~k z{IE=zc-dbJB0h7Jf2gKtP$Z~Qq(CUf_#D3i7&scng@x+LAT+4A$piC)xfcz&P;pt2 zKyZ37#DU^TbC62FM>sz*69KtC3E5AdE|e}J!f%RY)mFD3Ei>IxY?f)|+3}IYQu`Au z;fxdZVZM19@uBfyj-el6tYyd&**O4jDVizFtVF1ON5Ca8T=*HXsZvlqx?N!@>dN1jB-pcx+|M@56<8(Le*KZ z=t`GnkT1R~u`7~x1cj z!o))L?Y2a+Du`n%zd^7O;L~8MhLXLpeF0FeNS{Bn3UY$DDKyCd<5HO0L;8JuFL{u3yTTmJyIZ;X7=ev@5OAlWDAGeW2X6poG9RjOJYw|2rkGL(!!Uz!BBkHE z$)|!-2W0<>;CLj z!|)lay>Ox-r%api(gTHzXA1PtNd)JnG3+XM`2z+w2!VP^4r4g2yfF2tyo|NvISmPw zIvv83lPe0l4}DIW$e%M|_VRk03=wAhji$fY-WIL6Bf~slhd-y!>_x1c1$jap<^BN9 z81vrTo-<^=f<_w0aF_9IfiuR1;XVuV7bQZCGU7ttRjo{5?N{7I#d}@khUjzH?Tsq? zx)GOvkYvIbi|hCC2yG3CS9&^OUF}M2{8Mg05?EF_#P5?4?{{SL1%@WBjd>(PO483SsQX31@Xo}?%W&vaBCF)?-a;S)P}CQnH73M zI{)5>*KsvGhgT|7)%0NlKF7+8aC7CBwh8og1lbCyLk=WkjRUx4&#C8y)NQa#{enjmsa{ z?qstHH%e%`ovAE9sWEk2pD`yx~*hl50|V z-Ttcn62%%D-g>lL$(O%K5k7?l*B9fgRv06S-32Z(u0kns5@9{AoRE!cOW^PJ=rQ6Khl#0dHkeew;@Vy@acF14ERyniV`SX5_gJ+3J>Fn2K*p>4kh#5M1~X+g&aWhrD33%G^-Cwzu zZmKUma!KWKX>Q zQEzU+(BId!BooyITyE_ZnFh&rKn|jZn;aP0lx$AAI-(?fL_FmcJWZ)_O+NnnF+M@y zb=nomI4<*Lb>uq~1yH+;La>if;m)7LQv zVqAH-rmE7@U2-pJW|XtC4WDVS+RFD6P`}~MFYhm!Y>(8N?gMX9!WIl_dEt^5YET32 z#6IUYsZ&TtT9=u&LwC-%b&Ay93gmZ3`C2!980g9R*BKh7$uX(DNEg%moW7 z^`xn{dbS+@q!Ru2z^x#{X{cYO(VSwtWJr_WYrk{OKaL;zQu()Z_f^YjOnOFqBg@C8 z;8j9P40WWtB}TiYohR~UbI5PRtiklD;r%*QpM$_@HNUPeAI3ht^0ei0a3aFP|GKGs zb?m6Y#%&zx9A6aut@wll=SS{sz6U{J2>m@BCGZSxViG||Nfd7(^I@u#`S{5}k&fAY zVMl(_-|=Zm1kb@0Rl>_b&-&{KS=I#2{W1;L4+50Y{piv{rC>^XL2pIC| zZq1ak*DiR4u<+U1J5a9yWQ8fS7Ny6r)f1w$RZcUjA&lPj`%M%ou*nuMd7R2tzF3?Q zKFYiwC7JU!i=6e^7V^vG9X5G*mO{734efN9hKuu-p>S0 zVF<_NDZt-X+9B%lHY1?VGyR83s%RJS?!Ve9zcush=H)Eyf34Z-@k8+o(;&sd&iBr$ zEb>m5eq2^LM!OWfkW%En>KKuqlPj@^V8#C?;=f%jsyuQ{VdQ zR@4@Pfrb1<BGaR6UNdB@HtjOgwIp@crYz@hIP+v&L{rNfXc6{mIpu;6mX|rn z{5p%_pErc)$3oG`srvzh-_*058%yKy#VQN1KI@O><-JRtV%72BphW1&BkP!HcSs8p zZ2r~NJ=K$0FWQVFjBT^|H>JGB*fc!3j$(iXpVFxVG)@dkOob*r zlh}4Afu&)6kinW`Gx34u_g^#Zmy2a76&tR=s|Uhr1x|*YBB&pYdeZ1E|D;QCk~$13 zLK^ieYBgNdaZpTz0BQa0bbys=n6<`021_GnF`J_Ku=qcxaVf)&24lF+v6T^{;yx@L zg6?f&Wj$&U)oUcGS*Q9JrrUPi^#z zR7f>+O%{{Pr(ws8*Ija`%aKS3!N?{mvm$Yk5po}{|yXsG0_@Reiy zP2(}F?5MXuj>FyVj(4WqAxXn{mW@3mn#?DwNHh!_tFAbTTmLe??JvhdDHIDOjrszp zoz_F`iplv=-C3J{xg21Xd^PINJuN?JToa<^(fHBJB&NFZke;cuQ`4b7w{=xD`}nV! zLDSy>1{hDvy`3yCGxY~Z1RFKvz8wvOH>cW5L=9FY3HjrGt(Oxqh>a6Y@+DjNB?~@0;r+^H$%KP1Nju`k_7YeoVQpr6NWf z!gfDxiC@Iz2B}qYh)SivNg7gq|M#srjpBDjfyUoQF@Ul(NTWpb0*LfujGdT&U=_1K zoq}W0N2JN$*$kxF;nttczDKJZEhD9uR=IMCW~N}y{H;Kq8T1ZKv88H{f9R-V{)uJKEcbjh|K^RsH2|JCaTV)DB>S+7?LUe`tF*Tp(#y*EbqGz#sL-z9fd z3(|uiF;HtfSHhMcV@{I@ZWQ7BkGfjiu@aAT33SWZsrj8(EjP37hNSr>My1}gk+a17 z>1)fJpBI_rs&@T$_(I$#vSwaM1+OJUZ8$CmG46m=SN`aiSrmCCBxOX9#{ihh zmtscmr>9sN*(f7r8hM@ae@RzNDoN{WXR3tK6?5b}FJ zRO;Q5j!?N0`u1f#Ie$-{Pl*rA_t84u+GzLqj09?MSgXL9r+=o6SWCE52Ynep?1Hj0 zV_DH=w<8Wh{eq2kv5E=W+N$>SNo0p*m$?);2)~V#MV6Os)Mi|s{}T8VnarJsp6b3` zn}Org>0M&<7b%O%BU=9O%ZHg}Li>J}F&t|R7Ohm_I_v!ANmre+ayhr3Dx7(h_)_?< zmT#3^Kbj8S@A{N1PAJ{9$q7b+J{6;pP#<1I zu4QY1%cqIuh|-9uqEIi)hZrxn@IWdvm~a=D$3Pt)l6ax+Hz=CLp6 zW~FfAuwqiTiJQzN?>_IA>dRLO*Gz+QaK4^=^xfYXo2(b|w*zGHMmkQ)@jB;29lQno zXNl$-&BB=Eet^5X2z{_RNaLjV=8)^Pc(1>1+8yt7N0gpFtCrgGU{9KTGNnwtCDp)s zN26B6Yw*v;y!!N^-r{nh{U21Ao(soz8E9zylgvK)?*dxUysZC0>&lxi$7ST#Z-o>< z|5i0swQ(Q!tuaqxdzduNn5iMJPVkfTu2B}GmEMI@c?6jz>GA*bpM)N>ZDr&k3iR;DW?4F5*NMy9^| zCGIw4zJkR(q%&faquMyLyx$->aq*nO!oZg}1uPPaWVa66SjdPh#dPV58(Douw|l*$ z5s^n%h6T>v-Z^D0XNH_!rRSdf=s2R)Q1vff5NDi;#gJfNv0j!)O<_3Igr>?Vz3B!O zqQbTaT9Q4jymxDeL36#s2IG_0t7*CH3i~Aot_$yTL{uud>(~>rVdK9jaK`|f%E@(d4K%WSgI_hN`y9ss^7pu-zq{>S85v)n@ z3eeQZ{`G_&WE!+w0>Xf{Yb=mmQzn5k+MdkxNZXS$GOdl%Jh0PMPe4YmJIU2KA>pUaE_K?T&(z*r<~IONsJvN|sx~19Dx0F#)Qyl%9z7~I zCPS$~Vi+!Q@>53YF5TEj{QT3k#!v4b^-)r_LjHTK1-Qner+DS&P8j#YX0m|=X#RR6 z70-hE*}UUlNLSOqxt_64PVrSjy~45k5-hvud-?D;YWZ_uZk!o*8czU;!vnL!ANZv) z9@xJZp(F(15>D^E)4L^_6^gSiPCEL&a)IIC-fMr!Ad}#n^Y)99>5mo;7Nmkbr>psd zDm*-F&|CU*a9ba-lacL{34sqsZD(%z+D-V|;_37c)`hBBhD>=HB&Hw@`c|87r>tKW zVix|f*p_5FPf!h+5Mpbhem<6LjZ3#`5Ci=#`f$$8 zMvjYWhdaaWLGM91o+c=>u2t@-mtCMhFv}yaMDMiFUuU=ZGq@N<{7K?yx1Son6UYE=-#p~UF{9Jq+8)H`nf@{N} zz3FiEDO$Fb;_WX}vro{e+yAUNH8LQy)wl=&k;iB>E+NBPOx)-PxSTX<&zrlLmoub* zWi$6IFW+1=CN{3)z1_k{M zXWVA7(8Abj^Ts|naZy$CqTsg$*63(iWMqa-`W9=)Q_B`=jL$dTB`5d(HsN8M&Rh22 zF6OY8;P|=NnEleB)lQ>&-K)qb8G$0cx|xe9R6XM?c$ZP3mdZ+fYcBDsCAojaWwlfU z$=!%$G{}j( zz0dixqhx}SulsXHzP+CRn>RL=j$t(A>?-Z(c_5y4@__AmvrifDD*E^i>skkiBoTg7S;NzI>QX`zE6r_i0O2?{EiEv|DA#4&^jY2^b@N24isVe6mi6i9^VPe@GP#pJTtP>Yp@3>TOFqEjKP{cT!hj_G;r{AK=+b`%7~ zG5Z2a6Zz8LPK9!U7TCFHdMV~|`@MES=I-x;py7$Og39~c^*dp6cI>r2tTlcYMOG3a z@qa6(xSr6B{O~@QJcdeNhiw*HEtRU;$2?{OpXmSwM^L=Bt1()1Zwx!@p zw#eYesUOoyRYCy(w!RWqI)YNIg(!+o#Li)MN?Fp}7z&Rab%e1Dc{wW<&Qjp5PTgpS z5|7>@%zW8)bCel)hV)&S=|DX{1yGi^B#tAj0EP3{-5h?#t~L1G=WI7i61fYPS)7eJ zZI}QI{UsEA607Hv7^caCqz0RzWxa5-L3GVIPD)-#{^XM3zMnY>y9FDlaN4|Hyztc6 z<$9G!?t=f59a4_-hp@{PWQbS3LTe?Z5aNf$FGB7Sk`cgZ_{IXMf*51kJNG-%B@s+H zvZ5e3bB_&W(|Zny z7G0fiE(kl5(F;Mk)p#<-uI;<02nO;^Ky_l#azgS2cUtv9M=YBbY#q4uggbs=AM;Ul zqHCJaXJ91DP%k2V85tIuguJu!Rd%`7Q;4Am$X&vp4*2b{<0U->wqs9h!7M4B`Pjan zLSMJyM1z{p&w?7s+!yGPVcrAvJh2N<@*IG;9O+V$t?z5KXzBMmcANUJoDH&F=3n9a zkfDox_eD=C98!U3MDO(iZHfr~){eb7xog};mhGn9Ao+$gqDI4}&O_6L>%X7I(xGf% zFxo8&KgKV)X_OKfFP?0;8=Blz7y8*P<;1@T-UU&yuP#|>LTvK!}um^L-j%9 zAz{WO`Rza@%}T?a&Pu~W*Tw=RD7h_J<8O^bkt;6n6nskUTD`$SNaBy6xXZ8=RF7yd z0#OZ7Z;QacUubj3?opiTFbiqYV=PY-X+g;&>$D@(&f(=5G_~5hn_1x;{_k>6c0~rp z&TdO8HT{BJFsR|3$)uv}F1TB9r+rii7ua%ew%v6nGisb~#SjN}THM3u=Xb!gbi+Ll zZD+>rx~a0X<7VjY%g&&!a-Q~9njhL-p-?^HQI;l<+|1ovU$l0XYah~b5m272_J`e4 zvZp=EgN;p~u~1d;=Ssm^tV?>MAF6`Y2^PxcIE?(^m6m!NtNWT6@#7HhXyJbst=(aB z7dO@w7xJaMUZqn8BHLtDaFm*m!oaVF&$IE1#jB#Zsqg)*2)q~t2op@(Kx=N_CM>_J zmn02H&gLG0zt|#+ieU;CCDF+yQlq1O@!YQnn!k5BM$}`xJM}QJ7e=Yl ze6`j7ucLw5T0BYA&F-%RerHj3K^&g-M~ot&eT2;15(lVA@zxARUfd*&buA;_K0*Vd zL#};%rMpu$>x}pJ$!F3gPZ9S}E;DCa50_S+M$F)6GoXy9YCYSdCyh<25hVIa)T{0C z!U27LpwqJl{W?348xTjaKOL`dga>Y9k~Gnz*6dA({$;s|EUXUDYUzAGe)W9lu;xau z;OD_w&A+QZ7Kc>JY+6UM$|dRoI8?X1?a=#;2d|9Ren;=jQxZnUIPSJMUr%9FO4g8) zdl9I?Qs10aC~#G&O?LgQvxrg4-h(PUE_&{3`_~vz7g7_wH?K(;{Ev3`ZAyw|+lJsblJe&_Qln#vrXJ3fFu1ue3nsG? zPfK-!g0?f+aGH__@&=kPBAwFXwe=jWW*{wdz69(hl`MD-Jfk1YnIaq5SvMSNt+GTj zvyT*v*W3M9;U_4|Dg5>O{E%7o`nZAsp_z*YZx^|=IHh3u^V5dhAcA@=9-21OGs44H z%Wmq)g*FerPkt917j_#rcsETMC>*Rlp^#?sQ0sih12=CAdol{QR=86S9&}E(>_k^T zvs_E4JMHq?(AFZA+jal(e=)o@aoK7XQ>G2{xAALNR4}sd+bUf;)@)DG06$F+Y~s+2 z+V{+NXLQs`Cb=(;mnG3z1>WCS9kbl$`)Gf-FP|;;iR()y4A__YlYF?{Ua_+!#n}71 zrMmOKY=t{&WG&pxf=qkyla6cj6ARVt=gl0Bkan(QeqJJPAiY9y=+Rc;(0&ZaIefHv zvZU5b?cfNrV;lXGF2!~|@hIREvtaJ!P29JMUxBg(SB#Z-2ukZ~oT$^F!6@{@+Vkb-^Ns;Y!!%4z#lhcHPk2CBv9*DB?~xGBBsE> zQ;Qy}4PQ;$Y>eoQh(n&9`JVDuZC0Q$%F6SeK4ARq*r_a<^mkd(;unlJz#FDdbsSkN z#Vmd^0-fgAF(jOW6WzG=S{6||ejhkcQ=8I)tZn8nKw@?L>m3->Y8f4z5CIB~3I)FkZllo)Obk6S^dQeI81`jow{B8N$ zq(v55vyrU8Yf{nvKP@$T&54JWUi}`s5G4k)LN{NA)yGo&v-uhKVWb_OpMBy;55!)_ zP5P*rw=s&DLPVOYG7*6qhx-LRUpmm=V2UU+NZ!epvsIPhZ_!*oO1hTcV@YCpI%PBm z3?N-(j|4Om&S{3Mvw80$7!;2Yz)0hr9G##lUv7l z^k*yS@DKz?*^p)N9hA$L*YaikE&Z05O~tu~Vys}?55*>DiPz#kQsZjYSptvYhW%D-Eu%6@CV1*Km~;rToh2q(@fW7B2@ zI+^QFXZw#k=<|1Kl%TL5b@_+vs~cYc<7ITi}?Lk{Z7&KYipf5*L!@^TCXH_bt2V zQ`_x$i^-3+K7tNh9=*NqF&`C1E)vnJu9aWccgXE*g)YD35V<;ooE<(QNWX%8q1s0* zJ&W@rY&gJ)0~yVlrqKEgp9g69TJ#*Sm0rCZ%M_$xlW3g&g2+wRn1Pu_rjHEuOD6lV z;zHkSiu;LO4uGnZ@`{}g(bw@03+f?7Uw}wmsEB}~KBy0KYJu}jWxl43Ql!Wz#py20 z$HH5!R#4ZCDVaeE7%csHsM0E2)s%}1pNB0E{I&K{qtob@NWdqKD({DLW$zJ8@ z+1Hpx_~P_pBaFkpB!(ALQpg1!zN+en6bY-=be6}=gYsK#1T=Z@4qsERYyUJ z6oFwJsc(TBFq6LqwT_g3srPm^Hj1Q8*Bmr2as{VG7JLA$x!uK}UzopCGnMMxwHhfS zf~|nN>!K!8)4ji5z*-ajtVJHOp?Z}Cq-UJ>I*kXQyiaCGAy|ivUO!SR);%Wg!!(F4 zO+0aBti-m&?hpKCzF@*j5fZTPVdw{jnsRa%^jiV}MZ!bfw^fd~X)I~U3`Z&gU#v%B z6a)WQBIxm|LWswWVaPDHP&0G+4>@s)f!oBfjdLc{n-?JRDT34gkZnwt7i60#^Il;e zoMDWyp-0!>R1X@RI}lQYNq_sfh8^07q`y5R9bVi3 z837;Lrhd!~+Dq7F(gcR#q;jK5q6bDAv5g8Nh9PN7N3}35j4TL!C{Se^tDJOM{L%wv z^b+=6CUPt|80RgD8ihTO>!mkwz;%oVT%sXew-zxudSymFT{9rmhRj~(K&A*4NU7GK zpd5R__G<$-@w?k5U1~Z0cLraz8YducieQ7LER0k+=J;dIN|}~2a6kdg^o6}3L#~(? zO{fggXa9e!hthBN=@d3WnAClSWYNp z(}CEX)aDo}l^2jxf+k{nS)rhfl6MKx?wh$fd$NlC9Y7bPN#rc1)|F0hYJxsmY6;SxHtnMoQt%#gVYe^^n2lAEHSP3PXT2djl+dbS%X*V?)6bml=ULLw zFK5Zja6)BN-@gWAj0~?12!1=sI}{8nw>lv)))CAPEP~JG9dU{6~1B{I3Na7aLC> o3wLXPkB`qQduK-vOAA-)S1#_h`N!g*myZA{3hMF=vgYCc1HH=5TL1t6 diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/artifact.xml deleted file mode 100644 index a9b477ca5..000000000 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_active_stack_chart_gadget/artifact.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Android_Active_Stack_Chart - -