diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/assets/html_templates/view_fence_popup.html b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/assets/html_templates/view_fence_popup.html new file mode 100644 index 000000000..4284bb5e6 --- /dev/null +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/assets/html_templates/view_fence_popup.html @@ -0,0 +1,69 @@ + + + + + + + + +
+
+
+ +
+ + +
+
+
+
+
+ Export +
+
+ Hide +
+
+
+
+
+
+
+
+ +
+ + +
+ + +
+
+
+
+
+ Export +
+
+ Hide +
+
+
+
+
+ + \ No newline at end of file diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/conf/cep_info.json b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/conf/cep_info.json deleted file mode 100644 index 534bc8fb2..000000000 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/conf/cep_info.json +++ /dev/null @@ -1 +0,0 @@ -{"username" : "admin", "password" : "admin"} \ No newline at end of file diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/conf/database.json b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/conf/database.json deleted file mode 100644 index b017a2a54..000000000 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/conf/database.json +++ /dev/null @@ -1 +0,0 @@ -{"username" : "wso2carbon", "password" : "wso2carbon"} \ No newline at end of file diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/constants.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/constants.jag new file mode 100644 index 000000000..15b67063d --- /dev/null +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/constants.jag @@ -0,0 +1,37 @@ +<% +/* + ~ 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 DATA_SOURCE_NAME = "WSO2_GEO_DB"; +var EXECUTION_PLAN_TYPE_SPEED = "Speed"; +var EXECUTION_PLAN_TYPE_WITHIN = "Within"; +var EXECUTION_PLAN_TYPE_PROXIMITY = "Proximity"; +var EXECUTION_PLAN_TYPE_STATIONARY = "Stationery"; +var EXECUTION_PLAN_TYPE_TRAFFIC = "Traffic"; +var REGISTRY_PATH_FOR_ALERTS = "/_system/governance/geo/alerts/"; +var GET_METHOD = "get"; +var QUERY_NAME = "queryName"; +var AREA_NAME = "areaName"; +var CREATED_TIME = "createdTime"; +var GEO_JSON = "geoJson"; +var PROXIMITY_DISTANCE = "proximityDistance"; +var PROXIMITY_TIME = "proximityTime"; +var STATIONARY_NAME = "stationeryName"; +var STATIONARY_TIME = "stationeryTime"; +var FLUCTUATION_RADIUS = "fluctuationRadius"; +%> \ No newline at end of file diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/gadget-controller.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/gadget-controller.jag index ea1f3c294..25d50b9c0 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/gadget-controller.jag +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/gadget-controller.jag @@ -25,14 +25,12 @@ var type = request.getParameter("type"); var timeFrom = request.getParameter("timeFrom"); var timeTo = request.getParameter("timeTo"); - var log = new Log(); var providerAPI = require('js/batch-provider-api.js'); if (action === 'getSchema') { print(providerAPI.getSchema()); return; } else if(action === 'getData'){ - log.info('FromTime : '+timeFrom+', toTime: '+ timeTo); print(providerAPI.getData(id, type, timeFrom, timeTo)); return; } diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/get_alerts.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/get_alerts.jag index 1df5d7949..1434b0b23 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/get_alerts.jag +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/get_alerts.jag @@ -17,104 +17,138 @@ ~ under the License. */ var log = new Log(); -var dataStore = require('../include/commons.jag').dataStore; -var verb = request.getMethod(); +var method = request.getMethod(); var resourceName = request.getParameter('name'); var webService = request.getParameter('service'); - if(webService) { response.contentType = 'application/json'; response.characterEncoding = 'UTF-8'; response.content = { resource : get(resourceName) }; } -function get(name){ - if(name == 'within'){ - try{ - var res = dataStore.get("geo/alerts/within/"); - } - catch(e){ - log.info(e.message); +function getRegistry () { + var carbon = require("carbon"); + var server = new carbon.server.Server(); + return new carbon.registry.Registry(server, { + system: true + }); +} + +if (method === "GET") { + var constants = require("constants.jag"); + var executionPlanType = request.getParameter("executionPlanType"); + var deviceId = request.getParameter("deviceId"); + response.content = get(executionPlanType, deviceId); + response.contentType = "application/json"; +} + +function get(executionPlanType, deviceId){ + var resource = null; + var fence = {}; + var registry = getRegistry(); + if(executionPlanType == constants.EXECUTION_PLAN_TYPE_WITHIN){ + try { + resource = registry.get(constants.REGISTRY_PATH_FOR_ALERTS + constants.EXECUTION_PLAN_TYPE_WITHIN + + "/" + deviceId + "/"); + } catch(e){ + log.error(e.message); return false; } var allFences = []; - for each (var resource in res.getChildren()) { - var fence = {}; - try{ - fence['geoJson'] = JSON.parse(dataStore.get(resource).content.replace(/'/g, '"')); - fence['queryName'] = dataStore.get(resource).getProperty('queryName'); - fence['areaName'] = dataStore.get(resource).getProperty('areaName'); - fence['createdTime'] = dataStore.get(resource).createdTime.toString(); - allFences.push(fence); - } - catch(e){ - log.info("Error: "+e+'\n'); + if (resource) { + for each(var res in resource.content) { + var childResource = registry.get(res); + var properties = registry.properties(res); + fence = {}; + try { + fence[constants.GEO_JSON] = JSON.parse(childResource.content); + fence[constants.QUERY_NAME] = properties[constants.QUERY_NAME][0]; + fence[constants.AREA_NAME] = properties[constants.AREA_NAME][0]; + fence[constants.CREATED_TIME] = childResource.created.time.toString(); + allFences.push(fence); + } + catch (e) { + log.error("Error: " + e + '\n'); + } } } return allFences; - } else if(name == 'speed'){ - var resource; + } else if(executionPlanType == constants.EXECUTION_PLAN_TYPE_SPEED){ try{ - resource = dataStore.get(name+'.json'); - }catch(e){ + resource = registry.get(constants.REGISTRY_PATH_FOR_ALERTS + constants + .EXECUTION_PLAN_TYPE_SPEED + "/" + deviceId ); + } catch(e){ resource = {'content': false}; } - log.info("DEBUG:***** name = "+name); - log.info("DEBUG:***** resource.content = "+resource.content); + if (log.isDebugEnabled()) { + log.info("DEBUG:***** name = " + executionPlanType); + log.info("DEBUG:***** resource.content = " + resource.content); + } return JSON.parse(resource.content); - } else if(name == 'proximity'){ + } else if(executionPlanType == constants.EXECUTION_PLAN_TYPE_PROXIMITY){ var result; try{ - var resource = dataStore.get("/geo/alerts/proximity/proximity.json"); - result={proximityDistance: resource.getProperty("proximityDistance"), proximityTime: resource.getProperty("proximityTime")}; + resource = registry.properties(constants.REGISTRY_PATH_FOR_ALERTS + constants.EXECUTION_PLAN_TYPE_PROXIMITY + + "/" + deviceId); + result = { + proximityDistance: resource[constants.PROXIMITY_DISTANCE], + proximityTime: resource[constants.PROXIMITY_TIME] + }; }catch(e){ result = {'content': false}; } return result; - } else if(name == 'stationery'){ - var res; + } else if(executionPlanType == constants.EXECUTION_PLAN_TYPE_STATIONARY){ try{ - res = dataStore.get("geo/alerts/stationery/"); + resource = registry.get(constants.REGISTRY_PATH_FOR_ALERTS + constants.EXECUTION_PLAN_TYPE_STATIONARY + + "/" + deviceId); } catch(e){ log.info(e.message); return false; } var allFences = []; - for each (var resource in res.getChildren()) { - var fence = {}; - try{ - fence['geoJson'] = JSON.parse(dataStore.get(resource).content.replace(/'/g, '"')); - fence['queryName'] = dataStore.get(resource).getProperty('queryName'); - fence['areaName'] = dataStore.get(resource).getProperty('stationeryName'); - fence['stationeryTime'] = dataStore.get(resource).getProperty('stationeryTime'); - fence['fluctuationRadius'] = dataStore.get(resource).getProperty('fluctuationRadius'); - fence['createdTime'] = dataStore.get(resource).createdTime.toString(); - allFences.push(fence); - } - catch(e){ - log.info("Error: "+e+'\n'); + + if (resource) { + for each(var res in resource.content) { + var fence = {}; + var childResource = registry.get(res); + var properties = registry.properties(res); + try { + fence[constants.GEO_JSON] = JSON.parse(childResource.content); + fence[constants.QUERY_NAME] = properties[constants.QUERY_NAME][0]; + fence[constants.AREA_NAME] = properties[constants.STATIONARY_NAME][0]; + fence[constants.STATIONARY_TIME] = properties[constants.STATIONARY_TIME][0]; + fence[constants.FLUCTUATION_RADIUS] = properties[constants.FLUCTUATION_RADIUS][0]; + fence[constants.CREATED_TIME] = childResource.created.time.toString(); + allFences.push(fence); + } catch (e) { + log.error("Error: " + e + '\n'); + } } } return allFences; - } else if( name == 'traffic'){ + } else if( executionPlanType == constants.EXECUTION_PLAN_TYPE_TRAFFIC){ try{ - var res = dataStore.get("geo/alerts/traffic/"); + resource = registry.get(constants.REGISTRY_PATH_FOR_ALERTS + constants.EXECUTION_PLAN_TYPE_TRAFFIC + + "/" + deviceId + "/"); } catch(e){ log.info(e.message); return false; } var allFences = []; - for each (var resource in res.getChildren()) { + for each (var res in resource.content) { var fence = {}; + var childResource = registry.get(res); + var properties = registry.properties(res); try{ - fence['geoJson'] = JSON.parse(dataStore.get(resource).content.replace(/'/g, '"')); - fence['queryName'] = dataStore.get(resource).getProperty('queryName'); - fence['areaName'] = dataStore.get(resource).getProperty('areaName'); - fence['createdTime'] = dataStore.get(resource).createdTime.toString(); + fence[constants.GEO_JSON] = JSON.parse(childResource.content); + fence[constants.QUERY_NAME] = properties[constants.QUERY_NAME][0]; + fence[constants.AREA_NAME] = properties[constants.AREA_NAME][0]; + fence[constants.CREATED.TIME] = childResource.created.time.toString(); allFences.push(fence); } catch(e){ @@ -123,7 +157,6 @@ function get(name){ } return allFences; } - } %> diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/get_alerts_history.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/get_alerts_history.jag index c62800f7f..a6fa01526 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/get_alerts_history.jag +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/get_alerts_history.jag @@ -17,14 +17,11 @@ ~ under the License. */ -var db = require("../include/database.jag"); -var configuration = require('../conf/database.json'); +var constants = require("constants.jag"); +var db = new Database(constants.DATA_SOURCE_NAME); var log = new Log(); - -var db = new Database("jdbc:h2:repository/database/WSO2_GEO",configuration.username,configuration.password); var objectId = request.getParameter("objectId"); - -var getHistory = "SELECT * FROM alerts_history WHERE id = \'"+objectId+"\' ORDER BY timeStamp DESC LIMIT 50"; +var getHistory = "SELECT * FROM alerts_history WHERE id = \'" + objectId + "\' ORDER BY timeStamp DESC LIMIT 50"; try{ var history = db.query(getHistory); @@ -38,5 +35,4 @@ catch(e){ finally{ db.close(); } - %> diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/modals/proximity_alert.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/modals/proximity_alert.jag index 119140456..1270b8d71 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/modals/proximity_alert.jag +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/modals/proximity_alert.jag @@ -48,9 +48,6 @@ } -<% -var get = require('../get_alerts.jag').get; -%> + \ No newline at end of file diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/modals/stationery_alert.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/modals/stationery_alert.jag index a7e290f19..0d9ab1e63 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/modals/stationery_alert.jag +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/modals/stationery_alert.jag @@ -24,18 +24,10 @@ -<% -var get = require('../get_alerts.jag').get; -%> + \ No newline at end of file diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/modals/traffic_point.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/modals/traffic_point.jag index 0f70cdd63..af1a9421c 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/modals/traffic_point.jag +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/modals/traffic_point.jag @@ -33,9 +33,6 @@ -<% -var get = require('../get_alerts.jag').get; -%> + \ No newline at end of file diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/remove_alerts.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/remove_alerts.jag index a07296bbd..ebb762b45 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/remove_alerts.jag +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/remove_alerts.jag @@ -31,8 +31,6 @@ var eventProcessorOption = eventsProcessorServiceClient.getOptions(); eventProcessorOption.setManageSession(true); eventProcessorOption.setProperty(HTTPConstants.COOKIE_STRING, session.get('authToken')); - -var cepInfo = require('../include/commons.jag').cepInfo; var removeAlert = require('../include/store_alerts.jag').remove; var ws = require('ws'); var process = require("process"), host = process.getProperty('server.host'), diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/set_alerts.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/set_alerts.jag index 99e8a0996..b360147c1 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/set_alerts.jag +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/set_alerts.jag @@ -32,8 +32,6 @@ var eventsProcessorServiceClient = eventprocessorStub._getServiceClient(); var eventProcessorOption = eventsProcessorServiceClient.getOptions(); eventProcessorOption.setManageSession(true); eventProcessorOption.setProperty(HTTPConstants.COOKIE_STRING, session.get('authToken')); - -var escapeSiddhiql = require('../include/commons.jag').escapeSiddhiql; var storeAlerts = require('../include/store_alerts.jag').store; // TODO: change to js var ws = require('ws'); var process = require("process"), host = process.getProperty('server.host'), @@ -90,7 +88,7 @@ if (verb == "POST") { } else if (executionPlan == 'Traffic') { var resourceContents = parseDataJson.geoFenceGeoJSON; } - storeAlerts(parseKey, resourceContents, executionPlan, optionalArgs, deviceId); + storeAlerts(resourceContents, executionPlan, optionalArgs, deviceId); var payload; if (cepAction == "edit") { diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/tile_servers.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/tile_servers.jag index a5c6ffc96..08ac830e2 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/tile_servers.jag +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/tile_servers.jag @@ -21,11 +21,11 @@ * Get all available tile servers from RDB via HTTP GET, Insert new tile servers information via HTTP POST request */ -var configuration = require('../conf/database.json'); +var constants = require("constants.jag"); +var db = new Database(constants.DATA_SOURCE_NAME); var log = new Log(); //Sample create table query create table tileServers (serverId int NOT NULL AUTO_INCREMENT, url varchar(255) NOT NULL, name varchar(255), PRIMARY KEY (serverID)); var tableName = "tileservers"; -var db = new Database("jdbc:h2:repository/database/WSO2_GEO",configuration.username,configuration.password); if(request.getMethod() == "GET"){ @@ -46,7 +46,9 @@ if(request.getMethod() == "GET"){ var getAllTileServers = "select * from tileServers"; try{ var allTileServers = db.query(getAllTileServers); - log.info(allTileServers); + if (log.isDebugEnabled) { + log.debug(allTileServers); + } response.contentType = "application/json"; response.characterEncoding = "UTF-8"; response.content = allTileServers; @@ -73,8 +75,9 @@ else if(request.getMethod() == "POST"){ var insertTileServer ="INSERT INTO tileServers (url, name, subdomains, attribution, maxzoom) VALUES('"+ url +"', '"+ name +"', '"+ subdomains +"', '"+ attribution +"', '"+ maxzoom +"' );"; try{ db.query(insertTileServer); - log.info(name + ' tile server added successfully!'); - print(name + ' tile server added successfully!'); + if (log.isDebugEnabled()) { + log.debug(name + ' tile server added successfully!'); + } } catch(e){ log.error(e.toString()); diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/wms_endpoints.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/wms_endpoints.jag index 453535513..69d8e7c8e 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/wms_endpoints.jag +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/controllers/wms_endpoints.jag @@ -21,11 +21,10 @@ * Get all available tile servers from RDB via HTTP GET, Insert new tile servers information via HTTP POST request */ -var configuration = require('../conf/database.json'); +var constants = require("constants.jag"); +var db = new Database(constants.DATA_SOURCE_NAME); var log = new Log(); - var tableName = "webMapService"; -var db = new Database("jdbc:h2:repository/database/WSO2_GEO",configuration.username,configuration.password); if(request.getMethod() == "GET"){ @@ -47,7 +46,9 @@ if(request.getMethod() == "GET"){ var getAllWmsEndPoints = "select * from webMapService"; try{ var allWmsEndPoints = db.query(getAllWmsEndPoints); - log.info(allWmsEndPoints); + if (log.isDebugEnabled()) { + log.debug(allWmsEndPoints); + } response.contentType = "application/json"; response.characterEncoding = "UTF-8"; response.content = allWmsEndPoints; @@ -74,8 +75,9 @@ else if(request.getMethod() == "POST"){ var insertWmsEndPoint ="INSERT INTO webMapService (serviceUrl, name, layers, version, format) VALUES('"+ serviceEndPoint +"', '"+ serviceName +"', '"+ layers +"', '"+ wmsVersion +"', '"+ outputFormat +"' );"; try{ db.query(insertWmsEndPoint); - log.info(serviceName + ' wms service added successfully!'); - print(serviceName + 'added successfully!'); + if (log.isDebugEnabled()) { + log.info(serviceName + ' wms service added successfully!'); + } } catch(e){ log.error(e.toString()); @@ -102,7 +104,6 @@ function logToFile(message){ message = file.write(message); file.close(); - } %> \ No newline at end of file diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/include/commons.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/include/commons.jag index c0c40ab42..6c64ed85c 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/include/commons.jag +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/include/commons.jag @@ -28,12 +28,4 @@ var escapeSiddhiql = function (s) { return XML_CHAR_MAP[ch]; }); }; - -var cepInfo = function () { - var configuration = require("../conf/cep_info.json"); - return configuration; -}; - -// TODO: move to new datastore api -var dataStore = new MetadataStore("admin", "admin"); %> \ No newline at end of file diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/include/database.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/include/database.jag deleted file mode 100644 index 7e5325cc1..000000000 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/include/database.jag +++ /dev/null @@ -1,20 +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. - */ - var configuration = require('../conf/database.json'); -%> diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/include/store_alerts.jag b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/include/store_alerts.jag index 5b1b3b825..a42d43e5a 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/include/store_alerts.jag +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/include/store_alerts.jag @@ -18,133 +18,148 @@ */ // TODO: change the name of this jaggery file even thoe it says 'store_alerts' it is actually removing the alerts from the data store as well o.O wired - -var dataStore = require('../include/commons.jag').dataStore; var log = new Log(); -var deviceIdSeperator = "---"; - -function store(parameterKeyName, resourceContents, executionPlan, optional, deviceId) { - log.info("DEBUG:*** resourceContents:" + resourceContents); - if (executionPlan == "Speed") { - var currentLimit; - var speedFile = "speed" + deviceIdSeperator + ".json"; - try { - currentLimit = dataStore.get(speedFile); - } - catch (e) { - log.info("DEBUG:*** Catch error:" + e.message); - currentLimit = dataStore.newResource(); - currentLimit.mediaType = 'application/json'; - currentLimit.description = "User define speed limit for display alerts."; +var constants = require("../controllers/constants.jag"); + +var getRegistry = function() { + var carbon = require("carbon"); + var server = new carbon.server.Server(); + return new carbon.registry.Registry(server, { + system: true + }); +}; + +/** + * Get the registry path to save the alert + * @param {String} alert_type Type of the alert + * @param {String} id Id of the device + * @param {String} optional /optional identity + * @return {String} Registry Path to save teh alert + * */ +var registryPath = function (alert_type, id, optional) { + if (alert_type && id ) { + if (alert_type === constants.EXECUTION_PLAN_TYPE_SPEED || alert_type === constants + .EXECUTION_PLAN_TYPE_PROXIMITY) { + return constants.REGISTRY_PATH_FOR_ALERTS + alert_type + "/" + id; + } else { + return constants.REGISTRY_PATH_FOR_ALERTS + alert_type + "/" + id + "/" + optional; } - currentLimit.content = String('{"speedLimit": ' + resourceContents + '}'); - dataStore.put(speedFile, currentLimit); - log.info("DEBUG:*** Current speed limit set to:" + currentLimit.content); + } else { + throw "Alert type and ID are mandatory field to generate the relevant registry path"; } - else if (executionPlan == "Within") { - try { - var res = dataStore.get("geo/alerts/within"); - } - catch (e) { - var geo = dataStore.newCollection(); - var alerts = dataStore.newCollection(); - var within = dataStore.newCollection(); - - dataStore.put("geo", geo); - dataStore.put("alerts", alerts); - dataStore.put("within", within); +}; - } - log.info("DEBUG:****** resourceContents = " + String('{"geoJson": ' + resourceContents + '}')); - var resource = dataStore.newResource(); - resource.addProperty("queryName", optional.queryName); - resource.addProperty("areaName", optional.customName); - resource.mediaType = 'application/json'; - resource.content = String(resourceContents); - dataStore.put(String("geo/alerts/within/" + optional.queryName + deviceIdSeperator + deviceId + ".json"), resource); - } else if (executionPlan == "Proximity") { - try { - var res = dataStore.get("geo/alerts/proximity"); - } - catch (e) { - var geo = dataStore.newCollection(); - var alerts = dataStore.newCollection(); - var proximity = dataStore.newCollection(); - - dataStore.put("geo", geo); - dataStore.put("alerts", alerts); - dataStore.put("proximity", proximity); +/** + * To store the alerts for visualizing purposes + * @param resourceContents Value that need to saved + * @param executionPlan Type of the execution plan + * @param optional Optional parameters that are only specific to particular device types + * @param deviceId Id of the device + */ +function store(resourceContents, executionPlan, optional, deviceId) { + var registry = getRegistry(); + var pathToAddAlert = ""; + if (log.isDebugEnabled()) { + log.debug("DEBUG:*** resourceContents:" + resourceContents); + } + if (executionPlan === constants.EXECUTION_PLAN_TYPE_SPEED) { + pathToAddAlert = registryPath(constants.EXECUTION_PLAN_TYPE_SPEED, deviceId); + registry.put(pathToAddAlert, { + content: '{"speedLimit": ' + resourceContents + '}', + mediaType: 'application/json' + }); + if (log.isDebugEnabled()) { + log.debug("DEBUG:*** Current speed limit set to:" + currentLimit.content); } - log.info("DEBUG:****** resourceContents = " + resourceContents); - var resource = dataStore.newResource(); - resource.addProperty("proximityDistance", resourceContents.proximityDistance); - resource.addProperty("proximityTime", resourceContents.proximityTime); - dataStore.put(String("geo/alerts/proximity/" + optional.executionPlan + deviceIdSeperator + deviceId + ".json"), resource); - - } else if (executionPlan == "Stationery") { - - try { - var res = dataStore.get("geo/alerts/stationery"); + } + else if (executionPlan === constants.EXECUTION_PLAN_TYPE_WITHIN) { + pathToAddAlert = registryPath(constants.EXECUTION_PLAN_TYPE_WITHIN, deviceId, optional.queryName); + if (log.isDebugEnabled()) { + log.debug("DEBUG:****** resourceContents = " + String('{"geoJson": ' + resourceContents + '}')); } - catch (e) { - var geo = dataStore.newCollection(); - var alerts = dataStore.newCollection(); - var stationery = dataStore.newCollection(); - - dataStore.put("geo", geo); - dataStore.put("alerts", alerts); - dataStore.put("stationery", stationery); + registry.put(pathToAddAlert, { + content: JSON.stringify(resourceContents), + mediaType: 'application/json', + properties : { + "queryName" : optional.queryName, + "areaName" : optional.customName + } + }); + } else if (executionPlan === constants.EXECUTION_PLAN_TYPE_PROXIMITY) { + pathToAddAlert = registryPath(constants.EXECUTION_PLAN_TYPE_PROXIMITY, deviceId); + if (log.isDebugEnabled()) { + log.debug("DEBUG:****** resourceContents = " + resourceContents); } - log.info("DEBUG:****** resourceContents = " + resourceContents.geoFenceGeoJSON); - var resource = dataStore.newResource(); - resource.addProperty("queryName", optional.queryName); - resource.addProperty("stationeryName", optional.customName); - resource.addProperty("stationeryTime", resourceContents.stationeryTime); - resource.addProperty("fluctuationRadius", resourceContents.fluctuationRadius); - resource.content = String(resourceContents.geoFenceGeoJSON); - dataStore.put(String("geo/alerts/stationery/" + optional.queryName + deviceIdSeperator + deviceId + ".json"), resource); - - } else if (executionPlan == "Traffic") { - - try { - var res = dataStore.get("geo/alerts/traffic"); + registry.put(pathToAddAlert, { + content: "", + mediaType: 'application/json' + }); + registry.addProperty(pathToAddAlert, "proximityDistance", resourceContents.proximityDistance); + registry.addProperty(pathToAddAlert, "proximityTime", resourceContents.proximityTime); + } else if (executionPlan === constants.EXECUTION_PLAN_TYPE_STATIONARY) { + pathToAddAlert = registryPath(constants.EXECUTION_PLAN_TYPE_STATIONARY, deviceId, optional.queryName); + if (log.isDebugEnabled()) { + log.debug("DEBUG:****** resourceContents = " + resourceContents); } - catch (e) { - var geo = dataStore.newCollection(); - var alerts = dataStore.newCollection(); - var traffic = dataStore.newCollection(); - - dataStore.put("geo", geo); - dataStore.put("alerts", alerts); - dataStore.put("traffic", traffic); + var registryResource = { + content: JSON.stringify(resourceContents.geoFenceGeoJSON), + mediaType: 'application/json', + properties: { + "queryName" : optional.queryName, + "stationeryName" : optional.customName, + "stationeryTime" : resourceContents.stationeryTime, + "fluctuationRadius" : resourceContents.fluctuationRadius + } + }; + registry.put(pathToAddAlert, registryResource); + } else if (executionPlan === constants.EXECUTION_PLAN_TYPE_TRAFFIC) { + pathToAddAlert = registryPath(constants.EXECUTION_PLAN_TYPE_TRAFFIC, deviceId, optional.queryName); + if (log.isDebugEnabled()) { + log.debug("DEBUG:****** resourceContents = " + resourceContents.geoFenceGeoJSON); } - log.info("DEBUG:****** resourceContents = " + resourceContents.geoFenceGeoJSON); - var resource = dataStore.newResource(); - resource.addProperty("queryName", optional.queryName); - resource.addProperty("areaName", optional.customName); - resource.content = String(resourceContents); - dataStore.put(String("geo/alerts/traffic/" + optional.queryName + deviceIdSeperator + deviceId + ".json"), resource); - + var registryResource = { + content: JSON.stringify(resourceContents), + mediaType: 'application/json', + properties: { + "queryName" : optional.queryName, + "stationeryName" : optional.customName, + "stationeryTime" : resourceContents.stationeryTime, + "fluctuationRadius" : resourceContents.fluctuationRadius + } + }; + registry.put(pathToAddAlert, { + content: JSON.stringify(resourceContents), + mediaType: 'application/json', + properties: { + "queryName" : optional.queryName, + "areaName" : optional.customName + } + }); } - } -function remove(queryName, id, deviceId) { +/** + * To remove the registry resource + * @param queryName Name of the query that need to be removed + * @param executionPlanType type of the execution plan that need to be removed + * @param deviceId Id of the device + */ +function remove(queryName, executionPlanType, deviceId) { var path = ""; try { - if (id == "WithIn") { - path = "geo/alerts/within/" + queryName + deviceIdSeperator + deviceId + ".json"; - } else if (id == "Stationery") { - path = "geo/alerts/stationery/" + queryName + deviceIdSeperator + deviceId + ".json"; - } else if (id == "Traffic") { - path = "geo/alerts/traffic/" + queryName + deviceIdSeperator + deviceId + ".json"; + if (executionPlanType === constants.EXECUTION_PLAN_TYPE_SPEED || executionPlanType === constants.EXECUTION_PLAN_TYPE_PROXIMITY) { + path = registryPath(executionPlanType, deviceId); + } else { + path = registryPath(executionPlanType, deviceId, queryName); + } + getRegistry().remove(path); + if (log.isDebugEnabled()) { + log.debug("Resource is removed from the path" + path); } - log.info("DEBUG: path = " + path); - dataStore.remove(path); } catch (e) { - log.info("The requested resource " + path + " was not found on this server. That’s all we know."); // Inspired by google 404 message + log.error("The requested resource " + path + " was not found on this server."); } } %> \ No newline at end of file diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/app.js b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/app.js index 7a3ca3f09..9ea1b8d4e 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/app.js +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/app.js @@ -82,7 +82,7 @@ function initializeMap() { map = L.map("map", { zoom: 14, - center: [51.548525, 0.111749], + center: [6.927078, 79.861243], layers: [defaultOSM, defaultTFL], zoomControl: false, attributionControl: false, @@ -120,8 +120,6 @@ function initializeMap() { } }); - - } /* Attribution control */ diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_fencing.js b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_fencing.js index 2a7846b65..1cb91328c 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_fencing.js +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_fencing.js @@ -349,7 +349,7 @@ function updateDrawing(updatedGeoJson) { } function viewFence(geoFenceElement,id) { - var geoJson = JSON.parse($(geoFenceElement).attr('data-geoJson')); + var geoJson = JSON.parse($(geoFenceElement).attr('data-geoJson').replace(/'/g, '"')); var queryName = $(geoFenceElement).attr('data-queryName'); var areaName = $(geoFenceElement).attr('data-areaName'); var geometryShape; @@ -382,7 +382,7 @@ function viewFence(geoFenceElement,id) { var stationeryTime=$(geoFenceElement).attr('data-stationeryTime'); - $('#templateLoader').load("assets/html_templates/view_fence_popup.html #viewStationeryAlert", function () { + $('#templateLoader').load("/portal/store/carbon.super/fs/gadget/geo-dashboard/assets/html_templates/view_fence_popup.html #viewStationeryAlert", function () { var popupTemplate = $('#templateLoader').find('#viewStationeryAlert'); popupTemplate.find('#exportGeoJson').attr('leaflet_id', geometryShape._leaflet_id); popupTemplate.find('#hideViewFence').attr('leaflet_id', geometryShape._leaflet_id); @@ -397,7 +397,7 @@ function viewFence(geoFenceElement,id) { }); } else if(id=="WithIn"){ - $('#templateLoader').load("assets/html_templates/view_fence_popup.html #viewWithinAlert", function () { + $('#templateLoader').load("/portal/store/carbon.super/fs/gadget/geo-dashboard/assets/html_templates/view_fence_popup.html #viewWithinAlert", function () { var popupTemplate = $('#templateLoader').find('#viewWithinAlert'); popupTemplate.find('#exportGeoJson').attr('leaflet_id', geometryShape._leaflet_id); popupTemplate.find('#hideViewFence').attr('leaflet_id', geometryShape._leaflet_id); diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_proximity.js b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_proximity.js index 06b793250..f00c3a09a 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_proximity.js +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_proximity.js @@ -28,6 +28,12 @@ var proximityMap = L.map("proximityMap", { var proximityDistance = $("#proximityDistance"); +var serverUrl = "/portal/store/carbon.super/fs/gadget/geo-dashboard/controllers/get_alerts.jag?executionPlanType=Proximity&deviceId=" + deviceId; +$.get(serverUrl, null, function (response) { + proximityDistance.val(response.proximityDistance); + $("#proximityTime").val(response.proximityTime); +}); + L.grid({ redraw: 'move' }).addTo(proximityMap); diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_remote.js b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_remote.js index b3b3ced6f..10ad7582f 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_remote.js +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_remote.js @@ -595,7 +595,7 @@ function createExecutionPlanName(queryName, id, deviceId) { return 'Geo-ExecutionPlan-Within' + (queryName ? '_' + queryName : '') + "---" + (deviceId ? '_' + deviceId : '') + '_alert'; // TODO: value of the `queryName` can't be empty, because it will cause name conflicts in CEP, have to do validation(check not empty String) } else if (id == "Stationery") { - return 'Geo-ExecutionPlan-Stationery' + (queryName ? '_' + queryName : '') + '_alert'; // TODO: value of the `queryName` can't be empty, because it will cause name conflicts in CEP, have to do validation(check not empty String) + return 'Geo-ExecutionPlan-Stationery' + (queryName ? '_' + queryName : '') + "---" + (deviceId ? '_' + deviceId : '') + '_alert'; // TODO: value of the `queryName` can't be empty, because it will cause name conflicts in CEP, have to do validation(check not empty String) } else if (id == "Traffic") { return 'Geo-ExecutionPlan-Traffic' + (queryName ? '_' + queryName : '') + '_alert'; // TODO: value of the `queryName` can't be empty, because it will cause name conflicts in CEP, have to do validation(check not empty String) diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_speed.js b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_speed.js new file mode 100644 index 000000000..a0dc7fe2a --- /dev/null +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_speed.js @@ -0,0 +1,27 @@ +/* + * 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 setSpeed() { + var serverUrl = "/portal/store/carbon.super/fs/gadget/geo-dashboard/controllers/get_alerts.jag?executionPlanType=Speed&deviceId=" + deviceId; + $.get(serverUrl, null, function (response) { + if (response) { + $("#speedAlertValue").val(response.speedLimit); + } + }); +} +setSpeed(); diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_stationary.js b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_stationary.js new file mode 100644 index 000000000..4e6a10dc3 --- /dev/null +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_stationary.js @@ -0,0 +1,44 @@ +/* + * 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 initStationaryAlert() { + var serverUrl = "/portal/store/carbon.super/fs/gadget/geo-dashboard/controllers/get_alerts.jag?executionPlanType=Stationery&deviceId=" + deviceId; + $(".removeGeoFence").tooltip(); + $.get(serverUrl, null, function (response) { + if (response) { + $(".fence-not-exist").hide(); + for (var index in response) { + var alert = response[index]; + $("#stationary-alert-table > tbody").append( + "" + + "" + alert.areaName + "" + alert.stationeryTime + "" + alert.fluctuationRadius + + "" + alert.queryName + "" + alert.createdTime + "") + } + } else{ + $(".fence-not-exist").show(); + } + $('.viewGeoFenceRow td:not(:last-child)').click(function () { + viewFence(this.parentElement,'Stationery'); + }); + }); +} +initStationaryAlert(); \ No newline at end of file diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_within.js b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_within.js new file mode 100644 index 000000000..6739f5897 --- /dev/null +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/geo_within.js @@ -0,0 +1,43 @@ +/* + * 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 initializeWithin() { + $(".removeGeoFence").tooltip(); + var serverUrl = "/portal/store/carbon.super/fs/gadget/geo-dashboard/controllers/get_alerts.jag?executionPlanType=Within&deviceId=" + deviceId; + $.get(serverUrl, null, function (response) { + if (response) { + $(".fence-not-exist").hide(); + for (var index in response) { + var alert = response[index]; + $("#within-alert > tbody").append( + "" + alert.areaName + "" + + "" + alert.queryName + "" + alert.createdTime + "" + + ""); + } + } else{ + $(".fence-not-exist").show(); + } + $('.viewGeoFenceRow td:not(:last-child)').click(function () { + viewFence(this.parentElement,'WithIn'); + }); + + }); +} +initializeWithin(); \ No newline at end of file diff --git a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/websocket.js b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/websocket.js index 86600955b..30fcb20d4 100644 --- a/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/websocket.js +++ b/components/analytics/iot-analytics/org.wso2.carbon.iot.geo.dashboard/src/main/resources/carbonapps/GadgetGeoDashboard_1.0.0/geo-dashboard/js/websocket.js @@ -73,8 +73,8 @@ function SpatialObject(json) { return this; } -function popupDateRange(){ - $('#dateRangePopup').attr('title', 'Device ID - '+ deviceId +" Device Type - "+ deviceType).dialog(); +function popupDateRange() { + $('#dateRangePopup').attr('title', 'Device ID - ' + deviceId + " Device Type - " + deviceType).dialog(); } SpatialObject.prototype.update = function (geoJSON) { @@ -166,13 +166,16 @@ function angleToHeading(angle) { SpatialObject.prototype.removeFromMap = function () { this.removePath(); this.marker.closePopup(); + map.removeLayer(this.marker); }; function clearMap() { - for (var i=0; i< currentSpatialObjects.length; i++ ){ - console.log("removed - " + currentSpatialObjects[i]); - currentSpatialObjects[i].removeFromMap(); + for (var spacialObject in currentSpatialObjects) { + console.log(spacialObject); + currentSpatialObjects[spacialObject].removePath(); + currentSpatialObjects[spacialObject].removeFromMap(); } + currentSpatialObjects = {}; } SpatialObject.prototype.createLineStringFeature = function (state, information, coordinates) { @@ -608,7 +611,7 @@ var webSocketOnOpen = function () { }; var webSocketOnMessage = function (message) { - if(!isBatchModeOn) { + if (!isBatchModeOn) { var json = $.parseJSON(message.data); if (json.messageType == "Point") { processPointMessage(json); @@ -683,7 +686,7 @@ function initializeOnAlertWebSocket() { function intializeWebsocketUrls() { var username; - wso2.gadgets.state.getGlobalState(function(state) { + wso2.gadgets.state.getGlobalState(function (state) { deviceId = state.device.id; deviceType = state.device.type; if (deviceId && deviceType) { @@ -702,7 +705,7 @@ function intializeWebsocketUrls() { ApplicationOptions.constance.PATH_SEPARATOR + ApplicationOptions.constance .CEP_ON_ALERT_WEB_SOCKET_OUTPUT_ADAPTOR_NAME + ApplicationOptions.constance.PATH_SEPARATOR + ApplicationOptions.constance.VERSION + "?deviceId=" + deviceId + "&deviceType=" + deviceType; - document.cookie = "websocket-token=f98d6142-e988-3c7f-a8c9-7e6d74da7113; path=/"; + document.cookie = "websocket-token=619e6170-10e8-31f0-904b-b7770d53e545; path=/"; $("#proximity_alert").hide(); initializeWebSocket(); initializeOnAlertWebSocket(); @@ -720,7 +723,6 @@ function intializeWebsocketUrls() { } - intializeWebsocketUrls(); diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/event/streams/data/NetworkData.java b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/event/streams/data/NetworkData.java index c8fcfac4a..52695a5e1 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/event/streams/data/NetworkData.java +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/event/streams/data/NetworkData.java @@ -18,8 +18,6 @@ package org.wso2.carbon.iot.android.sense.event.streams.data; -import java.util.Date; - public class NetworkData { //Mobile or Wifi diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/event/streams/sms/SmsDataReceiver.java b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/event/streams/sms/SmsDataReceiver.java index 2ada981fb..d107ab0a9 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/event/streams/sms/SmsDataReceiver.java +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/event/streams/sms/SmsDataReceiver.java @@ -33,7 +33,6 @@ public class SmsDataReceiver extends BroadcastReceiver { final Bundle bundle = intent.getExtras(); if (bundle != null) { - final Object[] pdusObj = (Object[]) bundle.get("pdus"); for (int i = 0; i < pdusObj.length; i++) { diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/util/SenseDataReceiverManager.java b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/util/SenseDataReceiverManager.java index 3442facb4..9b6c2f15b 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/util/SenseDataReceiverManager.java +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.agent/app/src/main/java/org/wso2/carbon/iot/android/sense/util/SenseDataReceiverManager.java @@ -148,6 +148,7 @@ public class SenseDataReceiverManager { smsDataReceiver = new SmsDataReceiver(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(Telephony.Sms.Intents.SMS_RECEIVED_ACTION); + intentFilter.addAction(Telephony.Sms.Intents.SMS_DELIVER_ACTION); context.registerReceiver(smsDataReceiver, intentFilter); } } diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_andriod_audio_filter_executionplan/Andriod-Audio-Filter-ExecutionPlan.siddhiql b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_android_audio_filter_executionplan/Android-Audio-Filter-ExecutionPlan.siddhiql similarity index 85% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_andriod_audio_filter_executionplan/Andriod-Audio-Filter-ExecutionPlan.siddhiql rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_android_audio_filter_executionplan/Android-Audio-Filter-ExecutionPlan.siddhiql index 6527008cd..ff579676b 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_andriod_audio_filter_executionplan/Andriod-Audio-Filter-ExecutionPlan.siddhiql +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_android_audio_filter_executionplan/Android-Audio-Filter-ExecutionPlan.siddhiql @@ -1,5 +1,5 @@ /* Enter a unique ExecutionPlan */ -@Plan:name('Andriod-Audio-Filter-ExecutionPlan') +@Plan:name('Android-Audio-Filter-ExecutionPlan') /* Enter a unique description for ExecutionPlan */ @Plan:description('This converts the true/false params of the orgininal stream into ON/OFF') @@ -9,7 +9,7 @@ @Import('org.wso2.iot.android.audio:1.0.0') define stream AudioStream (meta_owner string, meta_deviceId string, meta_timestamp long, audio_playing bool, headset_on bool, music_volume int); -@Export('org.wso2.iot.andriod.filtered.audio:1.0.0') +@Export('org.wso2.iot.android.filtered.audio:1.0.0') define stream FilteredAudioStream (meta_owner string, meta_deviceId string, meta_timestamp long, audio string, headset string, music_volume int); from AudioStream select meta_owner, meta_deviceId, meta_timestamp, ifThenElse(audio_playing, 'ON', 'OFF') as audio, diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_andriod_audio_filter_executionplan/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_android_audio_filter_executionplan/artifact.xml similarity index 78% rename from components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_andriod_audio_filter_executionplan/artifact.xml rename to components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_android_audio_filter_executionplan/artifact.xml index b72e4ae2d..d4567ced5 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_andriod_audio_filter_executionplan/artifact.xml +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_android_audio_filter_executionplan/artifact.xml @@ -17,7 +17,8 @@ ~ under the License. --> - - Andriod-Audio-Filter-ExecutionPlan.siddhiql + + Android-Audio-Filter-ExecutionPlan.siddhiql diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_battery_script/AndroidBatteryScript.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_battery_script/AndroidBatteryScript.xml index 8eadaa5fc..73b354fd6 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_battery_script/AndroidBatteryScript.xml +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_battery_script/AndroidBatteryScript.xml @@ -1,7 +1,7 @@ true - AndriodCallScript + AndroidBatteryScript + INCREMENTAL_TABLE_COMMIT ORG_WSO2_IOT_ANDROID_SMS_STATS; + + 0 0/5 * * * ? diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_script/artifact.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_script/artifact.xml index 826732274..7eb3150ac 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_script/artifact.xml +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/android_sms_script/artifact.xml @@ -18,6 +18,6 @@ --> - AndriodSmsScript.xml + AndroidSmsScript.xml diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/artifacts.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/artifacts.xml index 576f0737a..1a63a5b03 100644 --- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/artifacts.xml +++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.analytics/src/main/resources/carbonapps/androidsense/artifacts.xml @@ -32,7 +32,7 @@ serverRole="DataAnalyticsServer"/> - @@ -58,7 +58,7 @@ serverRole="DataAnalyticsServer"/> - + - + diff --git a/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/client/OAuthRequestInterceptor.java b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/client/OAuthRequestInterceptor.java index 1458c85ab..76466b09d 100755 --- a/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/client/OAuthRequestInterceptor.java +++ b/components/extensions/cdmf-transport-adapters/output/org.wso2.carbon.device.mgt.output.adapter.websocket/src/main/java/org/wso2/carbon/device/mgt/output/adapter/websocket/authorization/client/OAuthRequestInterceptor.java @@ -96,7 +96,7 @@ public class OAuthRequestInterceptor implements RequestInterceptor { tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password); tokenInfo.setExpires_in(System.currentTimeMillis() + tokenInfo.getExpires_in()); } - synchronized(tokenInfo) { + synchronized(this) { if (System.currentTimeMillis() + refreshTimeOffset > tokenInfo.getExpires_in()) { tokenInfo = tokenIssuerService.getToken(REFRESH_GRANT_TYPE, tokenInfo.getRefresh_token()); tokenInfo.setExpires_in(System.currentTimeMillis() + tokenInfo.getExpires_in()); diff --git a/components/extensions/mb-extensions/org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization/src/main/java/org/wso2/carbon/andes/extensions/device/mgt/mqtt/authorization/client/OAuthRequestInterceptor.java b/components/extensions/mb-extensions/org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization/src/main/java/org/wso2/carbon/andes/extensions/device/mgt/mqtt/authorization/client/OAuthRequestInterceptor.java index 9c8832f00..886daa912 100755 --- a/components/extensions/mb-extensions/org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization/src/main/java/org/wso2/carbon/andes/extensions/device/mgt/mqtt/authorization/client/OAuthRequestInterceptor.java +++ b/components/extensions/mb-extensions/org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization/src/main/java/org/wso2/carbon/andes/extensions/device/mgt/mqtt/authorization/client/OAuthRequestInterceptor.java @@ -79,9 +79,11 @@ public class OAuthRequestInterceptor implements RequestInterceptor { tokenInfo = tokenIssuerService.getToken(PASSWORD_GRANT_TYPE, username, password); tokenInfo.setExpires_in(System.currentTimeMillis() + tokenInfo.getExpires_in()); } - if (System.currentTimeMillis() + refreshTimeOffset > tokenInfo.getExpires_in()) { - tokenInfo = tokenIssuerService.getToken(REFRESH_GRANT_TYPE, tokenInfo.getRefresh_token()); - tokenInfo.setExpires_in(System.currentTimeMillis() + tokenInfo.getExpires_in()); + synchronized (this) { + if (System.currentTimeMillis() + refreshTimeOffset > tokenInfo.getExpires_in()) { + tokenInfo = tokenIssuerService.getToken(REFRESH_GRANT_TYPE, tokenInfo.getRefresh_token()); + tokenInfo.setExpires_in(System.currentTimeMillis() + tokenInfo.getExpires_in()); + } } String headerValue = "Bearer " + tokenInfo.getAccess_token(); template.header("Authorization", headerValue);