forked from community/device-mgt-plugins
parent
9f967b4e17
commit
4afc699278
@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"chart-conf": {
|
|
||||||
"chart-name": "line-chart",
|
|
||||||
"color": "None",
|
|
||||||
"gadget-name": "Android Active Time Chart",
|
|
||||||
"maxLength": "15",
|
|
||||||
"x": "timestamp",
|
|
||||||
"xType": "time",
|
|
||||||
"y": "duration",
|
|
||||||
"yType": "default"
|
|
||||||
},
|
|
||||||
"provider-conf": {
|
|
||||||
"limit": "15",
|
|
||||||
"provider-name": "batch",
|
|
||||||
"query": "",
|
|
||||||
"tableName": "ANDROID_ACTIVE_STAT_PER_DAY"
|
|
||||||
}
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}());
|
|
||||||
|
|
||||||
|
|
||||||
%>
|
|
@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "Android_Active_Time_Chart",
|
|
||||||
"title": "Android Active Time Chart",
|
|
||||||
"type": "gadget",
|
|
||||||
"thumbnail": "gadget/Android_Active_Time_Chart/thumbnail.png",
|
|
||||||
"data": {
|
|
||||||
"url": "gadget/Android_Active_Time_Chart/gadget.xml"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,56 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
|
||||||
<Module>
|
|
||||||
<ModulePrefs title="Android Active Time Chart" description="This is a template gadget">
|
|
||||||
<Require feature="dynamic-height"/>
|
|
||||||
<Require feature="wso2-gadgets-identity"/>
|
|
||||||
</ModulePrefs>
|
|
||||||
|
|
||||||
<UserPref name="refreshInterval"
|
|
||||||
display_name="Refresh Interval"
|
|
||||||
default_value="1000000"/>
|
|
||||||
|
|
||||||
<Content type="html">
|
|
||||||
<![CDATA[
|
|
||||||
<head>
|
|
||||||
<!-- shared css -->
|
|
||||||
|
|
||||||
<link href="/portal/libs/analytics-wso2-2.0.0/common.css" rel="stylesheet" type="text/css" >
|
|
||||||
|
|
||||||
<!-- chart vendor css -->
|
|
||||||
|
|
||||||
<!-- chart specific css -->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- jQuery -->
|
|
||||||
<script src="/portal/libs/jquery_1.11.0/jquery-1.11.3.min.js"></script>
|
|
||||||
<!-- provider libs -->
|
|
||||||
|
|
||||||
<!-- shared libs -->
|
|
||||||
|
|
||||||
<script src="/portal/libs/analytics-wso2-2.0.0/d3.min.js"></script>
|
|
||||||
|
|
||||||
<script src="/portal/libs/analytics-wso2-2.0.0/vega.js"></script>
|
|
||||||
|
|
||||||
<script src="/portal/libs/analytics-wso2-2.0.0/VizGrammar_2.js"></script>
|
|
||||||
|
|
||||||
<script src="/portal/libs/analytics-wso2-2.0.0/wso2gadgets.js"></script>
|
|
||||||
|
|
||||||
<script src="/portal/libs/analytics-wso2-2.0.0/chart-utils.js"></script>
|
|
||||||
|
|
||||||
<!-- chart specific vendor libs -->
|
|
||||||
|
|
||||||
<!-- chart specific js -->
|
|
||||||
|
|
||||||
<!--scripts copied by framework -->
|
|
||||||
|
|
||||||
<script src="js/core/gadget-util.js"></script>
|
|
||||||
<script src="js/core/line-chart-api.js"></script>
|
|
||||||
<script src="js/core/gadget-core.js"></script>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="canvas"></div>
|
|
||||||
</body>
|
|
||||||
]]>
|
|
||||||
</Content>
|
|
||||||
</Module>
|
|
@ -1,190 +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";
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
console.log(data);
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
}());
|
|
@ -1,88 +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) {
|
|
||||||
data.forEach(function(entry) {
|
|
||||||
entry.duration = entry.duration / 3600000; // Convert to hours
|
|
||||||
});
|
|
||||||
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();
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
@ -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_Time_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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,132 +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 + '/line-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) {
|
|
||||||
_schema = updateUserPrefXYTypes(_schema, chartConfig);
|
|
||||||
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) {
|
|
||||||
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.xType = _chartConfig.xType;
|
|
||||||
conf.yType = _chartConfig.yType;
|
|
||||||
conf.maxLength = _chartConfig.maxLength;
|
|
||||||
conf.charts = [];
|
|
||||||
conf.charts[0] = {
|
|
||||||
type : "line",
|
|
||||||
y: _chartConfig.y
|
|
||||||
};
|
|
||||||
|
|
||||||
if (_chartConfig.color != "None") {
|
|
||||||
conf.charts[0].color = _chartConfig.color;
|
|
||||||
}
|
|
||||||
|
|
||||||
return conf;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
}());
|
|
Before Width: | Height: | Size: 18 KiB |
@ -1,23 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!--
|
|
||||||
~ 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<artifact name= "android_active_time_chart_gadget" version="1.0.0" type="dashboards/gadget" serverRole="DataAnalyticsServer">
|
|
||||||
<file>Android_Active_Time_Chart</file>
|
|
||||||
</artifact>
|
|
||||||
|
|
Loading…
Reference in new issue