diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/conf.json new file mode 100644 index 000000000..3862cd4c4 --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/conf.json @@ -0,0 +1 @@ +{"provider-conf" : {"streamName" : "org.wso2.iot.android.accelerometer:1.0.0", "provider-name" : "realtime"}, "chart-conf" : {"x" : "TIMESTAMP", "xType" : "time", "y" : "value", "yType" : "number", "color" : "axis", "maxLength" : "30", "gadget-name" : "ANDROID_ACCELETOMETER_GADGET", "chart-name" : "line-chart"}} \ 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_accelerometer_x_gadget/Accelerometer_X/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/gadget-controller.jag similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/gadget-controller.jag rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/gadget-controller.jag diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/gadget.json new file mode 100644 index 000000000..171958013 --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/gadget.json @@ -0,0 +1,9 @@ +{ + "id": "ANDROID_ACCELETOMETER_GADGET", + "title": "ANDROID_ACCELETOMETER_GADGET", + "type": "gadget", + "thumbnail": "gadget/ANDROID_ACCELETOMETER_GADGET/thumbnail.png", + "data": { + "url": "gadget/ANDROID_ACCELETOMETER_GADGET/gadget.xml" + } +} diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/gadget.xml similarity index 88% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/gadget.xml rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/gadget.xml index 450b1bb05..2d138faeb 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/gadget.xml +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/gadget.xml @@ -1,6 +1,6 @@ - + @@ -20,8 +20,6 @@ - - @@ -50,7 +48,7 @@ - + diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/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_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/core/gadget-core.js similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/js/core/gadget-core.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/core/gadget-core.js diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/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_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/core/gadget-util.js new file mode 100644 index 000000000..c16d3af15 --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/core/gadget-util.js @@ -0,0 +1,35 @@ +/* + * 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_ACCELEROMETER_GADGET"; + 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_accelerometer_z_gadget/ACCELEROMETER_Z/js/core/number-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/core/line-chart-api.js similarity index 76% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/js/core/number-chart-api.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/core/line-chart-api.js index ef2c5da98..18f363a32 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/js/core/number-chart-api.js +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/core/line-chart-api.js @@ -24,16 +24,30 @@ var getConfig, validate, isProviderRequired, draw, update; * @param schema */ getConfig = function(schema) { - var chartConf = require(CHART_LOCATION + '/number-chart/config.json').config; + var chartConf = require(CHART_LOCATION + '/line-chart/config.json').config; /* dynamic logic goes here */ - return chartConf; + 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 configurationx + * validate the user inout for the chart configuration * @param chartConfig */ validate = function(chartConfig) { @@ -55,7 +69,9 @@ var getConfig, validate, isProviderRequired, draw, update; * @param data */ draw = function(placeholder, chartConfig, _schema, data) { + _schema = updateUserPrefXYTypes(_schema, chartConfig); var schema = toVizGrammarSchema(_schema); + var view = { id: "chart-0", schema: schema, @@ -93,19 +109,26 @@ var getConfig, validate, isProviderRequired, draw, update; */ 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 : "number", - title : _chartConfig.title + type : "line", + y: _chartConfig.y }; + + if (_chartConfig.color != "None") { + conf.charts[0].color = _chartConfig.color; + } + return conf; }; - -}()); + +}()); \ 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_accelerometer_x_gadget/Accelerometer_X/js/core/provider-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/core/provider-client.js similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/js/core/provider-client.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/core/provider-client.js diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/js/core/realtime-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/core/realtime-provider-api.js similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/js/core/realtime-provider-api.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/core/realtime-provider-api.js diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/js/provider-libs/ws-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/provider-libs/ws-client.js similarity index 99% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/js/provider-libs/ws-client.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/provider-libs/ws-client.js index fc49d8a35..760ecf951 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/js/provider-libs/ws-client.js +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/js/provider-libs/ws-client.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * 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 diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/thumbnail.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/thumbnail.png similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/thumbnail.png rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/ANDROID_ACCELEROMETER_GADGET/thumbnail.png diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/artifact.xml new file mode 100644 index 000000000..576b3ce0d --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_gadget/artifact.xml @@ -0,0 +1,23 @@ + + + + + ANDROID_ACCELEROMETER_GADGET + + diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/conf.json new file mode 100644 index 000000000..1433ef60f --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/conf.json @@ -0,0 +1 @@ +{"provider-conf" : {"streamName" : "org.wso2.iot.android.gyroscope:1.0.0", "provider-name" : "realtime"}, "chart-conf" : {"x" : "TIMESTAMP", "xType" : "time", "y" : "value", "yType" : "number", "color" : "axis", "maxLength" : "30", "gadget-name" : "ANDROID_GYROSCOPE_GADGET", "chart-name" : "line-chart"}} \ 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_accelerometer_y_gadget/ACCELEROMETER_Y/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/gadget-controller.jag similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/gadget-controller.jag rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/gadget-controller.jag diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/gadget.json new file mode 100644 index 000000000..dd6ccb149 --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/gadget.json @@ -0,0 +1,9 @@ +{ + "id": "ANDROID_GYROSCOPE_GADGET", + "title": "ANDROID_GYROSCOPE_GADGET", + "type": "gadget", + "thumbnail": "gadget/ANDROID_GYROSCOPE_GADGET/thumbnail.png", + "data": { + "url": "gadget/ANDROID_GYROSCOPE_GADGET/gadget.xml" + } +} diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/gadget.xml similarity index 88% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/gadget.xml rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/gadget.xml index 8d098fb3e..f2dc17a74 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/gadget.xml +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/gadget.xml @@ -1,6 +1,6 @@ - + @@ -20,8 +20,6 @@ - - @@ -50,7 +48,7 @@ - + diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/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_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/core/gadget-core.js similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/js/core/gadget-core.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/core/gadget-core.js diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/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_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/core/gadget-util.js similarity index 98% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/js/core/gadget-util.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/core/gadget-util.js index ffdc7ddc1..77f1a1ffe 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/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_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/core/gadget-util.js @@ -14,7 +14,7 @@ * limitations under the License. */ var getGadgetLocation = function (callback) { - var gadgetLocation = "/portal/store/carbon.super/fs/gadget/ACCELEROMETER_Z"; + var gadgetLocation = "/portal/store/carbon.super/fs/gadget/ANDROID_GYROSCOPE_GADGET"; var PATH_SEPERATOR = "/"; if (gadgetLocation.search("store") != -1) { wso2.gadgets.identity.getTenantDomain(function (tenantDomain) { diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/js/core/number-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/core/line-chart-api.js similarity index 76% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/js/core/number-chart-api.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/core/line-chart-api.js index ef2c5da98..18f363a32 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/js/core/number-chart-api.js +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/core/line-chart-api.js @@ -24,16 +24,30 @@ var getConfig, validate, isProviderRequired, draw, update; * @param schema */ getConfig = function(schema) { - var chartConf = require(CHART_LOCATION + '/number-chart/config.json').config; + var chartConf = require(CHART_LOCATION + '/line-chart/config.json').config; /* dynamic logic goes here */ - return chartConf; + 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 configurationx + * validate the user inout for the chart configuration * @param chartConfig */ validate = function(chartConfig) { @@ -55,7 +69,9 @@ var getConfig, validate, isProviderRequired, draw, update; * @param data */ draw = function(placeholder, chartConfig, _schema, data) { + _schema = updateUserPrefXYTypes(_schema, chartConfig); var schema = toVizGrammarSchema(_schema); + var view = { id: "chart-0", schema: schema, @@ -93,19 +109,26 @@ var getConfig, validate, isProviderRequired, draw, update; */ 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 : "number", - title : _chartConfig.title + type : "line", + y: _chartConfig.y }; + + if (_chartConfig.color != "None") { + conf.charts[0].color = _chartConfig.color; + } + return conf; }; - -}()); + +}()); \ 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_accelerometer_y_gadget/ACCELEROMETER_Y/js/core/provider-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/core/provider-client.js similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/js/core/provider-client.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/core/provider-client.js diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/js/core/realtime-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/core/realtime-provider-api.js similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/js/core/realtime-provider-api.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/core/realtime-provider-api.js diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/js/provider-libs/ws-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/provider-libs/ws-client.js similarity index 99% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/js/provider-libs/ws-client.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/provider-libs/ws-client.js index fc49d8a35..760ecf951 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/js/provider-libs/ws-client.js +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/js/provider-libs/ws-client.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * 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 diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/thumbnail.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/thumbnail.png similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/thumbnail.png rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/ANDROID_GYROSCOPE_GADGET/thumbnail.png diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/artifact.xml similarity index 82% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/artifact.xml rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/artifact.xml index 91526382f..17c0b1a75 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/artifact.xml +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_gyroscope_gadget/artifact.xml @@ -17,7 +17,7 @@ ~ under the License. --> - - ACCELEROMETER_Z + + ANDROID_GYROSCOPE_GADGET diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/conf.json new file mode 100644 index 000000000..8bb652b7c --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/conf.json @@ -0,0 +1,16 @@ +{ + "provider-conf": { + "streamName": "org.wso2.iot.android.magnetic:1.0.0", + "provider-name": "realtime" + }, + "chart-conf": { + "x": "TIMESTAMP", + "xType": "time", + "y": "value", + "yType": "number", + "color": "axis", + "maxLength": "30", + "gadget-name": "ANDROID_MAGNETIC_GADGET", + "chart-name": "line-chart" + } +} \ 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_accelerometer_z_gadget/ACCELEROMETER_Z/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/gadget-controller.jag similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/gadget-controller.jag rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/gadget-controller.jag diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/gadget.json new file mode 100644 index 000000000..93efa3813 --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/gadget.json @@ -0,0 +1,9 @@ +{ + "id": "ANDROID_MAGNETIC_GADGET", + "title": "ANDROID_MAGNETIC_GADGET", + "type": "gadget", + "thumbnail": "gadget/ANDROID_MAGNETIC_GADGET/thumbnail.png", + "data": { + "url": "gadget/ANDROID_MAGNETIC_GADGET/gadget.xml" + } +} diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/gadget.xml similarity index 88% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/gadget.xml rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/gadget.xml index 77802fd2d..e3a632324 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/gadget.xml +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/gadget.xml @@ -1,6 +1,6 @@ - + @@ -20,8 +20,6 @@ - - @@ -50,7 +48,7 @@ - + diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/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_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/core/gadget-core.js similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/js/core/gadget-core.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/core/gadget-core.js diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/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_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/core/gadget-util.js similarity index 98% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/js/core/gadget-util.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/core/gadget-util.js index 2ddc218d2..426dae39b 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/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_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/core/gadget-util.js @@ -14,7 +14,7 @@ * limitations under the License. */ var getGadgetLocation = function (callback) { - var gadgetLocation = "/portal/store/carbon.super/fs/gadget/ACCELEROMETER_Y"; + var gadgetLocation = "/portal/store/carbon.super/fs/gadget/ANDROID_MAGNETIC_GADGET"; var PATH_SEPERATOR = "/"; if (gadgetLocation.search("store") != -1) { wso2.gadgets.identity.getTenantDomain(function (tenantDomain) { diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/js/core/number-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/core/line-chart-api.js similarity index 76% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/js/core/number-chart-api.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/core/line-chart-api.js index ef2c5da98..18f363a32 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_y_gadget/ACCELEROMETER_Y/js/core/number-chart-api.js +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/core/line-chart-api.js @@ -24,16 +24,30 @@ var getConfig, validate, isProviderRequired, draw, update; * @param schema */ getConfig = function(schema) { - var chartConf = require(CHART_LOCATION + '/number-chart/config.json').config; + var chartConf = require(CHART_LOCATION + '/line-chart/config.json').config; /* dynamic logic goes here */ - return chartConf; + 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 configurationx + * validate the user inout for the chart configuration * @param chartConfig */ validate = function(chartConfig) { @@ -55,7 +69,9 @@ var getConfig, validate, isProviderRequired, draw, update; * @param data */ draw = function(placeholder, chartConfig, _schema, data) { + _schema = updateUserPrefXYTypes(_schema, chartConfig); var schema = toVizGrammarSchema(_schema); + var view = { id: "chart-0", schema: schema, @@ -93,19 +109,26 @@ var getConfig, validate, isProviderRequired, draw, update; */ 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 : "number", - title : _chartConfig.title + type : "line", + y: _chartConfig.y }; + + if (_chartConfig.color != "None") { + conf.charts[0].color = _chartConfig.color; + } + return conf; }; - -}()); + +}()); \ 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_accelerometer_z_gadget/ACCELEROMETER_Z/js/core/provider-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/core/provider-client.js similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/js/core/provider-client.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/core/provider-client.js diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/js/core/realtime-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/core/realtime-provider-api.js similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/js/core/realtime-provider-api.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/core/realtime-provider-api.js diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/js/provider-libs/ws-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/provider-libs/ws-client.js similarity index 99% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/js/provider-libs/ws-client.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/provider-libs/ws-client.js index fc49d8a35..760ecf951 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/js/provider-libs/ws-client.js +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/js/provider-libs/ws-client.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * 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 diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/thumbnail.png b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/thumbnail.png similarity index 100% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_z_gadget/ACCELEROMETER_Z/thumbnail.png rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/ANDROID_MAGNETIC_GADGET/thumbnail.png diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/artifact.xml similarity index 82% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/artifact.xml rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/artifact.xml index ca8d49f23..2d203339c 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/artifact.xml +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_magnetic_gadget/artifact.xml @@ -17,7 +17,7 @@ ~ under the License. --> - - Accelerometer_X + + ANDROID_MAGNETIC_GADGET diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/conf.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/conf.json new file mode 100644 index 000000000..c4d09c437 --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/conf.json @@ -0,0 +1,16 @@ +{ + "provider-conf": { + "streamName": "org.wso2.iot.android.rotation:1.0.0", + "provider-name": "realtime" + }, + "chart-conf": { + "x": "TIMESTAMP", + "xType": "time", + "y": "value", + "yType": "number", + "color": "axis", + "maxLength": "30", + "gadget-name": "ANDROID_ROTATION_GADGET", + "chart-name": "line-chart" + } +} \ 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_rotation_gadget/ANDROID_ROTATION_GADGET/gadget-controller.jag b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget-controller.jag new file mode 100644 index 000000000..f84538a40 --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget-controller.jag @@ -0,0 +1,42 @@ +<% +/** + * 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_rotation_gadget/ANDROID_ROTATION_GADGET/gadget.json b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget.json new file mode 100644 index 000000000..1fbb053b4 --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget.json @@ -0,0 +1,9 @@ +{ + "id": "ANDROID_ROTATION_GADGET", + "title": "ANDROID_ROTATION_GADGET", + "type": "gadget", + "thumbnail": "gadget/ANDROID_ROTATION_GADGET/thumbnail.png", + "data": { + "url": "gadget/ANDROID_ROTATION_GADGET/gadget.xml" + } +} diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget.xml new file mode 100644 index 000000000..3f050f24c --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/gadget.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + ]]> +
+
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/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_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/gadget-core.js new file mode 100644 index 000000000..8bfc5f742 --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/gadget-core.js @@ -0,0 +1,64 @@ +/* +* 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 CHART_CONF = 'chart-conf'; + var PROVIDER_CONF = 'provider-conf'; + +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; + } + }); + + } + }); +}; + + +var drawGadget = function (){ + + draw('#canvas', conf[CHART_CONF], schema, null); + registerCallBackforPush(conf[PROVIDER_CONF], schema, function(providerData) { + update(providerData); + }); + +}; + +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_accelerometer_x_gadget/Accelerometer_X/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_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/gadget-util.js similarity index 98% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/js/core/gadget-util.js rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/gadget-util.js index ccfb70698..8277d6ace 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_accelerometer_x_gadget/Accelerometer_X/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_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/gadget-util.js @@ -14,7 +14,7 @@ * limitations under the License. */ var getGadgetLocation = function (callback) { - var gadgetLocation = "/portal/store/carbon.super/fs/gadget/Accelerometer_X"; + var gadgetLocation = "/portal/store/carbon.super/fs/gadget/ANDROID_ROTATION_GADGET"; var PATH_SEPERATOR = "/"; if (gadgetLocation.search("store") != -1) { wso2.gadgets.identity.getTenantDomain(function (tenantDomain) { diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/line-chart-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/line-chart-api.js new file mode 100644 index 000000000..18f363a32 --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/line-chart-api.js @@ -0,0 +1,134 @@ +/* + * 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 = []; + console.log(data); + data.forEach(function(item) { + var row = []; + schema[0].metadata.names.forEach(function(name) { + row.push(item[name]); + }); + result.push(row); + }); + console.log(result); + 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; + }; + + +}()); \ 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_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/provider-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/provider-client.js new file mode 100644 index 000000000..6196677f6 --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/provider-client.js @@ -0,0 +1,51 @@ +/* + * 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 registerCallBackforPush; + +(function() { + + var callback; + + /** + * TODO Need to read hostname,port, and tenantId from providerConfig + * @param providerConfig + * @param schema + */ + registerCallBackforPush = function(providerConfig, schema, _callback) { + var streamId = providerConfig['streamName']; + var hostname = window.parent.location.hostname; + var port = window.parent.location.port; + + subscribe(streamId.split(":")[0], streamId.split(":")[1], + '10', + onData, onError, + hostname, + port, + 'WEBSOCKET' + ); + callback = _callback; + }; + + function onData(streamId, data) { + callback(data); + }; + + function onError(error) { + console.error(error); + }; + +}()); + diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/realtime-provider-api.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/realtime-provider-api.js new file mode 100644 index 000000000..7cf59af77 --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/core/realtime-provider-api.js @@ -0,0 +1,154 @@ +/* + * 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 = 'realtime'; + + var log = new Log(); + var utils = require('/modules/utils.js'); + var carbon = require("carbon"); + var EventPublisherConstants = Packages.org.wso2.carbon.event.publisher.core.config.EventPublisherConstants; + var eventPublisherService = carbon.server.osgiService('org.wso2.carbon.event.publisher.core.EventPublisherService'); + var eventStreamService = carbon.server.osgiService('org.wso2.carbon.event.stream.core.EventStreamService'); + + var typeMap = { + "bool": "string", + "boolean": "string", + "string": "string", + "int": "number", + "integer": "number", + "long": "number", + "double": "number", + "float": "number", + "time": "time" + }; + + getConfig = function() { + var formConfig = require(PROVIDERS_LOCATION + '/' + PROVIDER_NAME + '/config.json'); + var datasources = []; + try { + var eventPublisherConfigurationList = eventPublisherService.getAllActiveEventPublisherConfigurations(); + for (var i = 0; i < eventPublisherConfigurationList.size(); i++) { + var eventPublisherConfiguration = eventPublisherService.getActiveEventPublisherConfiguration( + eventPublisherConfigurationList.get(i).getEventPublisherName());; + + var mappingTypeIsWso2 = eventPublisherConfiguration.getOutputMapping() + .getMappingType().equals(EventPublisherConstants.EF_WSO2EVENT_MAPPING_TYPE); + + var adapterType = null; + if (eventPublisherConfiguration.getToAdapterConfiguration() != null) { + adapterType = eventPublisherConfiguration.getToAdapterConfiguration().getType(); + } + if (mappingTypeIsWso2 && adapterType.trim() == "ui") { + var streamName = eventPublisherConfiguration.getFromStreamName(); + var streamVersion = eventPublisherConfiguration.getFromStreamVersion(); + var streamId = streamName + ":" + streamVersion; + datasources.push(streamId); + } + } + var datasourceCfg = { + "fieldLabel": "Event Stream", + "fieldName": "streamName", + "fieldType": "dropDown" + }; + datasourceCfg['valueSet'] = datasources; + } catch (e) { + log.error(e); + } + formConfig.config.push(datasourceCfg); + 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 'push'; + }; + + /** + * returns an array of column names & types + * @param providerConfig + */ + getSchema = function(providerConfig) { + var streamId = providerConfig["streamName"]; + var output = []; + + output.push({ + fieldName: "TIMESTAMP", + fieldType: "time" + }); + + if (eventStreamService != null) { + var eventStreamConfiguration = eventStreamService.getEventStreamConfiguration(streamId); + if (eventStreamConfiguration != null) { + var metaData = eventStreamConfiguration.getStreamDefinition().getMetaData(); + var correlationData = eventStreamConfiguration.getStreamDefinition().getCorrelationData(); + var payloadData = eventStreamConfiguration.getStreamDefinition().getPayloadData(); + if (metaData != null) { + for (var i = 0; i < metaData.size(); i++) { + var type = metaData.get(i).getType().toString().toLowerCase(); + output.push({ + fieldName: metaData.get(i).getName(), + fieldType: typeMap[type.toLowerCase()] + }); + } + } + if (correlationData != null) { + for (var i = 0; i < correlationData.size(); i++) { + var type = correlationData.get(i).getType().toString().toLowerCase(); + output.push({ + fieldName: correlationData.get(i).getName(), + fieldType: typeMap[type.toLowerCase()] + }); + } + } + if (payloadData != null) { + for (var i = 0; i < payloadData.size(); i++) { + var type = payloadData.get(i).getType().toString().toLowerCase(); + output.push({ + fieldName: payloadData.get(i).getName(), + fieldType: typeMap[type.toLowerCase()] + }); + } + } + } + } + return output; + }; + + getData = function(providerConfig,limit) { + var 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_rotation_gadget/ANDROID_ROTATION_GADGET/js/provider-libs/ws-client.js b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/provider-libs/ws-client.js new file mode 100644 index 000000000..e498158c6 --- /dev/null +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_rotation_gadget/ANDROID_ROTATION_GADGET/js/provider-libs/ws-client.js @@ -0,0 +1,287 @@ +/* + * 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. + */ + +var CONSTANTS = { + urlSeperator: '/', + queryParamStreamName : '?streamname=', + queryParamStreamVersion : '&version=', + queryParamLastUpdatedTime : '&lastUpdatedTime=', + urlSecureTransportWebsocket : 'wss://', + urlSecureTransportHttp : 'https://', + colon : ':', + defaultIntervalTime : 10 * 1000, + defaultHostName : 'localhost', + defaultSecurePortNumber : '9443', + defaultMode : 'AUTO', + processModeHTTP : 'HTTP', + processModeWebSocket : 'WEBSOCKET', + processModeAuto : 'AUTO', + numThousand : 1000, + websocketTimeAppender : 400, + websocketSubscriptionEndpoint : 'portal/uipublisher/websocketSubscriptionEndpoint.jag', + httpEventRetrievalEndpoint : 'portal/uipublisher/httpEventRetrievalEndpoint.jag' +}; + + +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 terminateWebsocketInstance = false; +var pollingContinue = true; + +function subscribe(streamName,version,intervalTime, + listeningFuncSuccessData,listeningFuncErrorData,cepHost,cepPort,mode){ + stopPollingProcesses(); + stream = streamName; + streamVersion = version; + onSuccessFunction = listeningFuncSuccessData; + onErrorFunction = listeningFuncErrorData; + + if(intervalTime == null || intervalTime == ""){ + polingInterval = CONSTANTS.defaultIntervalTime; + } else{ + polingInterval = intervalTime * CONSTANTS.numThousand; + } + + if(cepHost == null || cepHost == ""){ + cepHostName = CONSTANTS.defaultHostName; + } else{ + cepHostName = cepHost; + } + + if(cepPort == null || cepPort == ""){ + cepPortNumber = CONSTANTS.defaultSecurePortNumber; + } else{ + cepPortNumber = cepPort; + } + + if(mode == null || mode == ""){ + processMode = CONSTANTS.defaultMode; + } else{ + processMode = mode; + } + + webSocketUrl = CONSTANTS.urlSecureTransportWebsocket + cepHostName + CONSTANTS.colon + cepPortNumber + + CONSTANTS.urlSeperator + CONSTANTS.websocketSubscriptionEndpoint; + + 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; +} + +function getWebsocketSubscriptionMessage(streamName, streamVersion, streamProperties, streamValues) { + if (streamProperties.length === streamValues.length) { + var message = {}; + message.streamName = streamName; + message.streamVersion = streamVersion; + var i; + for (i = 0; i < streamProperties.length; i++) { + message.filterProps = []; + message.filterProps.push({ + 'name': streamProperties[i], + 'value': streamValues[i] + }); + } + return JSON.stringify(message); + } else { + console.log('stream properties and values are not in equal size'); + } +} + +/** + * Get the parameters as query parameters. + * This method parses those parameters and returns. + * */ +function getAllQueryParamsFromURL() { + var queryParamList = {}, qParam; + var urlQueryString = decodeURIComponent(window.top.location.search.substring(1)); + + if (urlQueryString) { + var queryStringPairs = urlQueryString.split('&'); + for (var i = 0; i < queryStringPairs.length; i++) { + qParam = queryStringPairs[i].split('='); + queryParamList[qParam[0]] = qParam[1]; + } + return queryParamList; + + } else { + return null; + } +} + +/** + * Web socket On Open + */ +var webSocketOnOpen = function () { + var params = getAllQueryParamsFromURL(); + var deviceId; + var owner; + if (params) { + owner = params["owner"]; + deviceId = params["deviceId"]; + } + var filterPropNames = ["meta_owner", "meta_deviceId"]; + var filterPropVals = [owner, deviceId]; + var data = getWebsocketSubscriptionMessage(stream, streamVersion, filterPropNames, filterPropVals); + websocket.send(data); +}; + +/** + * 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 = CONSTANTS.urlSecureTransportHttp + cepHostName + CONSTANTS.colon + cepPortNumber + + CONSTANTS.urlSeperator + CONSTANTS.httpEventRetrievalEndpoint + CONSTANTS.queryParamStreamName + stream + + CONSTANTS.queryParamStreamVersion + streamVersion + CONSTANTS.queryParamLastUpdatedTime + 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 - - ACCELEROMETER_Y + + ANDROID_ROTATION_GADGET -