Merge pull request #481 from Megala21/database

Removing hard coded values and adding missing file
revert-dabc3590
sinthuja 8 years ago committed by GitHub
commit 8d800feaca

@ -0,0 +1,69 @@
<!--~ 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.-->
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="viewWithinAlert" >
<form role="form" style="width: auto">
<div class="form-group">
<label class="text-info">Query name</label>
<div id="viewQueryName" class="well well-sm"></div>
<label class="text-info">Area name</label>
<div id="viewAreaName" class="well well-sm"></div>
</div>
<div>
<div class="btn-group btn-group-sm btn-group-justified">
<div class="btn-group">
<a id="exportGeoJson" download="geoJson.json" href="#" onclick="exportToGeoJSON(this,JSON.stringify(map._layers[$(this).attr('leaflet_id')].toGeoJSON(),null, '\t'))" class="btn btn-default btn-xs" data-toggle="tooltip" data-placement="left" title="Export selected area as a geoJson file">Export</a>
</div>
<div class="btn-group">
<a id="hideViewFence" class="btn btn-default btn-xs" data-toggle="tooltip" data-placement="left" title="Hide this fence" onclick="map.removeLayer(map._layers[$(this).attr('leaflet_id')])" >Hide</a>
</div>
</div>
</div>
</form>
</div>
<div id="viewStationeryAlert" >
<form role="form" style="width: auto">
<div class="form-group">
<label class="text-info">Query name</label>
<div id="viewQueryName" class="well well-sm"></div>
<label class="text-info">Stationery name</label>
<div id="viewAreaName" class="well well-sm"></div>
<label class="text-info">Stationery time(Seconds)</label>
<div id="viewAreaTime" class="well well-sm"></div>
</div>
<div>
<div class="btn-group btn-group-sm btn-group-justified">
<div class="btn-group">
<a id="exportGeoJson" download="geoJson.json" href="#" onclick="exportToGeoJSON(this,JSON.stringify(map._layers[$(this).attr('leaflet_id')].toGeoJSON(),null, '\t'))" class="btn btn-default btn-xs" data-toggle="tooltip" data-placement="left" title="Export selected area as a geoJson file">Export</a>
</div>
<div class="btn-group">
<a id="hideViewFence" class="btn btn-default btn-xs" data-toggle="tooltip" data-placement="left" title="Hide this fence" onclick="map.removeLayer(map._layers[$(this).attr('leaflet_id')])" >Hide</a>
</div>
</div>
</div>
</form>
</div>
</body>
</html>

@ -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";
%>

@ -17,104 +17,138 @@
~ under the License. ~ under the License.
*/ */
var log = new Log(); var log = new Log();
var dataStore = require('../include/commons.jag').dataStore; var method = request.getMethod();
var verb = request.getMethod();
var resourceName = request.getParameter('name'); var resourceName = request.getParameter('name');
var webService = request.getParameter('service'); var webService = request.getParameter('service');
if(webService) { if(webService) {
response.contentType = 'application/json'; response.contentType = 'application/json';
response.characterEncoding = 'UTF-8'; response.characterEncoding = 'UTF-8';
response.content = { resource : get(resourceName) }; response.content = { resource : get(resourceName) };
} }
function get(name){ function getRegistry () {
if(name == 'within'){ var carbon = require("carbon");
try{ var server = new carbon.server.Server();
var res = dataStore.get("geo/alerts/within/"); return new carbon.registry.Registry(server, {
} system: true
catch(e){ });
log.info(e.message); }
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; return false;
} }
var allFences = []; var allFences = [];
for each (var resource in res.getChildren()) { if (resource) {
var fence = {}; for each(var res in resource.content) {
try{ var childResource = registry.get(res);
fence['geoJson'] = JSON.parse(dataStore.get(resource).content.replace(/'/g, '"')); var properties = registry.properties(res);
fence['queryName'] = dataStore.get(resource).getProperty('queryName'); fence = {};
fence['areaName'] = dataStore.get(resource).getProperty('areaName'); try {
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); allFences.push(fence);
} }
catch(e){ catch (e) {
log.info("Error: "+e+'\n'); log.error("Error: " + e + '\n');
}
} }
} }
return allFences; return allFences;
} else if(name == 'speed'){ } else if(executionPlanType == constants.EXECUTION_PLAN_TYPE_SPEED){
var resource;
try{ try{
resource = dataStore.get(name+'.json'); resource = registry.get(constants.REGISTRY_PATH_FOR_ALERTS + constants
}catch(e){ .EXECUTION_PLAN_TYPE_SPEED + "/" + deviceId );
} catch(e){
resource = {'content': false}; resource = {'content': false};
} }
log.info("DEBUG:***** name = "+name); if (log.isDebugEnabled()) {
log.info("DEBUG:***** resource.content = "+resource.content); log.info("DEBUG:***** name = " + executionPlanType);
log.info("DEBUG:***** resource.content = " + resource.content);
}
return JSON.parse(resource.content); return JSON.parse(resource.content);
} else if(name == 'proximity'){ } else if(executionPlanType == constants.EXECUTION_PLAN_TYPE_PROXIMITY){
var result; var result;
try{ try{
var resource = dataStore.get("/geo/alerts/proximity/proximity.json"); resource = registry.properties(constants.REGISTRY_PATH_FOR_ALERTS + constants.EXECUTION_PLAN_TYPE_PROXIMITY +
result={proximityDistance: resource.getProperty("proximityDistance"), proximityTime: resource.getProperty("proximityTime")}; "/" + deviceId);
result = {
proximityDistance: resource[constants.PROXIMITY_DISTANCE],
proximityTime: resource[constants.PROXIMITY_TIME]
};
}catch(e){ }catch(e){
result = {'content': false}; result = {'content': false};
} }
return result; return result;
} else if(name == 'stationery'){ } else if(executionPlanType == constants.EXECUTION_PLAN_TYPE_STATIONARY){
var res;
try{ try{
res = dataStore.get("geo/alerts/stationery/"); resource = registry.get(constants.REGISTRY_PATH_FOR_ALERTS + constants.EXECUTION_PLAN_TYPE_STATIONARY +
"/" + deviceId);
} }
catch(e){ catch(e){
log.info(e.message); log.info(e.message);
return false; return false;
} }
var allFences = []; var allFences = [];
for each (var resource in res.getChildren()) {
if (resource) {
for each(var res in resource.content) {
var fence = {}; var fence = {};
try{ var childResource = registry.get(res);
fence['geoJson'] = JSON.parse(dataStore.get(resource).content.replace(/'/g, '"')); var properties = registry.properties(res);
fence['queryName'] = dataStore.get(resource).getProperty('queryName'); try {
fence['areaName'] = dataStore.get(resource).getProperty('stationeryName'); fence[constants.GEO_JSON] = JSON.parse(childResource.content);
fence['stationeryTime'] = dataStore.get(resource).getProperty('stationeryTime'); fence[constants.QUERY_NAME] = properties[constants.QUERY_NAME][0];
fence['fluctuationRadius'] = dataStore.get(resource).getProperty('fluctuationRadius'); fence[constants.AREA_NAME] = properties[constants.STATIONARY_NAME][0];
fence['createdTime'] = dataStore.get(resource).createdTime.toString(); 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); allFences.push(fence);
} catch (e) {
log.error("Error: " + e + '\n');
} }
catch(e){
log.info("Error: "+e+'\n');
} }
} }
return allFences; return allFences;
} else if( name == 'traffic'){ } else if( executionPlanType == constants.EXECUTION_PLAN_TYPE_TRAFFIC){
try{ try{
var res = dataStore.get("geo/alerts/traffic/"); resource = registry.get(constants.REGISTRY_PATH_FOR_ALERTS + constants.EXECUTION_PLAN_TYPE_TRAFFIC +
"/" + deviceId + "/");
} }
catch(e){ catch(e){
log.info(e.message); log.info(e.message);
return false; return false;
} }
var allFences = []; var allFences = [];
for each (var resource in res.getChildren()) { for each (var res in resource.content) {
var fence = {}; var fence = {};
var childResource = registry.get(res);
var properties = registry.properties(res);
try{ try{
fence['geoJson'] = JSON.parse(dataStore.get(resource).content.replace(/'/g, '"')); fence[constants.GEO_JSON] = JSON.parse(childResource.content);
fence['queryName'] = dataStore.get(resource).getProperty('queryName'); fence[constants.QUERY_NAME] = properties[constants.QUERY_NAME][0];
fence['areaName'] = dataStore.get(resource).getProperty('areaName'); fence[constants.AREA_NAME] = properties[constants.AREA_NAME][0];
fence['createdTime'] = dataStore.get(resource).createdTime.toString(); fence[constants.CREATED.TIME] = childResource.created.time.toString();
allFences.push(fence); allFences.push(fence);
} }
catch(e){ catch(e){
@ -123,7 +157,6 @@ function get(name){
} }
return allFences; return allFences;
} }
} }
%> %>

@ -17,14 +17,11 @@
~ under the License. ~ under the License.
*/ */
var db = require("../include/database.jag"); var constants = require("constants.jag");
var configuration = require('../conf/database.json'); var db = new Database(constants.DATA_SOURCE_NAME);
var log = new Log(); var log = new Log();
var db = new Database("jdbc:h2:repository/database/WSO2_GEO",configuration.username,configuration.password);
var objectId = request.getParameter("objectId"); 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{ try{
var history = db.query(getHistory); var history = db.query(getHistory);
@ -38,5 +35,4 @@ catch(e){
finally{ finally{
db.close(); db.close();
} }
%> %>

@ -48,9 +48,6 @@
} }
</style> </style>
</head> </head>
<%
var get = require('../get_alerts.jag').get;
%>
<body> <body>
<div class="modal-header" <div class="modal-header"
style="cursor: move;background: #f9f9f9;-webkit-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);-moz-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);"> style="cursor: move;background: #f9f9f9;-webkit-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);-moz-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);">
@ -67,12 +64,12 @@ var get = require('../get_alerts.jag').get;
<div class="col-md-10 col-md-offset-1"> <div class="col-md-10 col-md-offset-1">
<form class="form-inline" role="form"> <form class="form-inline" role="form">
<div class="input-group input-group-sm"> <div class="input-group input-group-sm">
<input type="text" id="proximityDistance" class="form-control" placeholder="Distance" value="<%= get('proximity').proximityDistance %>"> <input type="text" id="proximityDistance" class="form-control" placeholder="Distance" >
<span class="input-group-addon">m</span> <span class="input-group-addon">m</span>
</div> </div>
<div class="input-group input-group-sm"> <div class="input-group input-group-sm">
<input autofocus="enable" id="proximityTime" type="number" class="form-control" <input autofocus="enable" id="proximityTime" type="number" class="form-control"
placeholder="Close time in S" value="<%= get('proximity').proximityTime %>"> placeholder="Close time in S" >
<span class="input-group-addon">Seconds</span> <span class="input-group-addon">Seconds</span>
</div> </div>
</form> </form>

@ -21,11 +21,6 @@
<title></title> <title></title>
</head> </head>
<body> <body>
<%
var log = new Log();
var get = require('../get_alerts.jag').get;
%>
<div class="modal-header" style="cursor: move;background: #f9f9f9;-webkit-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);-moz-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);"> <div class="modal-header" style="cursor: move;background: #f9f9f9;-webkit-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);-moz-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);">
<button class="close" type="button" data-dismiss="modal" aria-hidden="true">&times;</button> <button class="close" type="button" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title"> <h4 class="modal-title">
@ -38,7 +33,7 @@ var get = require('../get_alerts.jag').get;
<div class="col-md-6 col-md-offset-3"> <div class="col-md-6 col-md-offset-3">
<div class="input-group input-group-sm"> <div class="input-group input-group-sm">
<input autofocus="enable" id="speedAlertValue" type="number" class="form-control" <input autofocus="enable" id="speedAlertValue" type="number" class="form-control"
placeholder="Speed alert value " value="<%= get('speed').speedLimit %>"> placeholder="Speed alert value " >
<span class="input-group-addon">km/h</span> <span class="input-group-addon">km/h</span>
</div> </div>
</div> </div>
@ -48,5 +43,6 @@ var get = require('../get_alerts.jag').get;
</div> </div>
</div> </div>
</div> </div>
<script src="/portal/store/carbon.super/fs/gadget/geo-dashboard/js/geo_speed.js"></script>
</body> </body>
</html> </html>

@ -24,18 +24,10 @@
</style> </style>
<script> <script>
$(".removeGeoFence").tooltip();
$('.viewGeoFenceRow td:not(:last-child)').click(function () {
viewFence(this.parentElement,'Stationery');
});
</script> </script>
</head> </head>
<body> <body>
<%
var get = require('../get_alerts.jag').get;
%>
<div class="modal-header" style="cursor: move;background: #f9f9f9;-webkit-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);-moz-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);"> <div class="modal-header" style="cursor: move;background: #f9f9f9;-webkit-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);-moz-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);">
<button class="close" type="button" data-dismiss="modal" aria-hidden="true">&times;</button> <button class="close" type="button" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title"> <h4 class="modal-title">
@ -47,7 +39,7 @@ var get = require('../get_alerts.jag').get;
<div class="row"> <div class="row">
<p class="text-info text-center">View current fences</p> <p class="text-info text-center">View current fences</p>
<div class=""> <div class="">
<table class="table table-hover"> <table class="table table-hover" id = "stationary-alert-table">
<thead> <thead>
<tr > <tr >
<th>Stationery Name</th> <th>Stationery Name</th>
@ -59,32 +51,9 @@ var get = require('../get_alerts.jag').get;
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<% <div class="alert alert-danger fence-not-exist" role="alert">
var alerts = get('stationery');
if(alerts){
for each(var alert in alerts){
%>
<tr class="viewGeoFenceRow" style="cursor: pointer" data-stationeryTime='<%= alert
.stationeryTime %>' data-fluctuationRadius='<%= alert.fluctuationRadius %>' data-areaName='<%= alert.areaName %>' data-queryName='<%= alert.queryName %>' data-geoJson='<%= alert.geoJson %>'>
<td><%= alert.areaName %></td>
<td><%= alert.stationeryTime %></td>
<td><%= alert.fluctuationRadius %>
<td><%= alert.queryName %></td>
<td><%= alert.createdTime %></td>
<td onClick="removeGeoFence(this.parentElement,'Stationery')" class="removeGeoFence" data-toggle="tooltip" title="Remove fence" ><i class="fa fa-trash-o"></i></td>
</tr>
<%
}
} else{
%>
<div class="alert alert-danger" role="alert">
<strong>Oh snap!</strong> Can't find any geo-fence areas,please draw a new area or try again. <strong>Oh snap!</strong> Can't find any geo-fence areas,please draw a new area or try again.
</div> </div>
<%
}
%>
</tbody> </tbody>
</table> </table>
</div> </div>
@ -101,5 +70,6 @@ var get = require('../get_alerts.jag').get;
</div> </div>
</div> </div>
</div> </div>
<script src="/portal/store/carbon.super/fs/gadget/geo-dashboard/js/geo_stationary.js"></script>
</body> </body>
</html> </html>

@ -33,9 +33,6 @@
</script> </script>
</head> </head>
<body> <body>
<%
var get = require('../get_alerts.jag').get;
%>
<div class="modal-header" style="cursor: move;background: #f9f9f9;-webkit-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);-moz-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);"> <div class="modal-header" style="cursor: move;background: #f9f9f9;-webkit-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);-moz-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);">
<button class="close" type="button" data-dismiss="modal" aria-hidden="true">&times;</button> <button class="close" type="button" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title"> <h4 class="modal-title">

@ -22,20 +22,8 @@
<style> <style>
.fa-trash-o:hover{color:red;} .fa-trash-o:hover{color:red;}
</style> </style>
<script>
$(".removeGeoFence").tooltip();
$('.viewGeoFenceRow td:not(:last-child)').click(function () {
viewFence(this.parentElement,'WithIn');
});
</script>
</head> </head>
<body> <body>
<%
var get = require('../get_alerts.jag').get;
%>
<div class="modal-header" style="cursor: move;background: #f9f9f9;-webkit-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);-moz-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);"> <div class="modal-header" style="cursor: move;background: #f9f9f9;-webkit-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);-moz-box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);box-shadow: inset 0px 0px 14px 1px rgba(0,0,0,0.2);">
<button class="close" type="button" data-dismiss="modal" aria-hidden="true">&times;</button> <button class="close" type="button" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title"> <h4 class="modal-title">
@ -45,9 +33,9 @@ var get = require('../get_alerts.jag').get;
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="row"> <div class="row">
<p class="text-info text-center">View current fences</p> <p class="text-info text-center fence-not-exist">View current fences</p>
<div class=""> <div class="">
<table class="table table-hover"> <table class="table table-hover" id ="within-alert">
<thead> <thead>
<tr > <tr >
<th>Fence Name</th> <th>Fence Name</th>
@ -57,29 +45,10 @@ var get = require('../get_alerts.jag').get;
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<div class="alert alert-danger fence-not-exist" role="alert">
<%
var alerts = get('within');
if(alerts){
for each(var alert in alerts){
%>
<tr class="viewGeoFenceRow" style="cursor: pointer" data-areaName='<%= alert.areaName %>' data-queryName='<%= alert.queryName %>' data-geoJson='<%= alert.geoJson %>'>
<td><%= alert.areaName %></td>
<td><%= alert.queryName %></td>
<td><%= alert.createdTime %></td>
<td onClick="removeGeoFence(this.parentElement,'WithIn')" class="removeGeoFence" data-toggle="tooltip" title="Remove fence" ><i class="fa fa-trash-o"></i></td>
</tr>
<%
}
}
else{
%>
<div class="alert alert-danger" role="alert">
<strong>Oh snap!</strong> Can't find any geo-fence areas,please draw a new area or try again. <strong>Oh snap!</strong> Can't find any geo-fence areas,please draw a new area or try again.
</div> </div>
<%
}
%>
</tbody> </tbody>
</table> </table>
</div> </div>
@ -96,5 +65,6 @@ var get = require('../get_alerts.jag').get;
</div> </div>
</div> </div>
</div> </div>
<script src="/portal/store/carbon.super/fs/gadget/geo-dashboard/js/geo_within.js"></script>
</body> </body>
</html> </html>

@ -31,8 +31,6 @@ var eventProcessorOption = eventsProcessorServiceClient.getOptions();
eventProcessorOption.setManageSession(true); eventProcessorOption.setManageSession(true);
eventProcessorOption.setProperty(HTTPConstants.COOKIE_STRING, session.get('authToken')); eventProcessorOption.setProperty(HTTPConstants.COOKIE_STRING, session.get('authToken'));
var cepInfo = require('../include/commons.jag').cepInfo;
var removeAlert = require('../include/store_alerts.jag').remove; var removeAlert = require('../include/store_alerts.jag').remove;
var ws = require('ws'); var ws = require('ws');
var process = require("process"), host = process.getProperty('server.host'), var process = require("process"), host = process.getProperty('server.host'),

@ -32,8 +32,6 @@ var eventsProcessorServiceClient = eventprocessorStub._getServiceClient();
var eventProcessorOption = eventsProcessorServiceClient.getOptions(); var eventProcessorOption = eventsProcessorServiceClient.getOptions();
eventProcessorOption.setManageSession(true); eventProcessorOption.setManageSession(true);
eventProcessorOption.setProperty(HTTPConstants.COOKIE_STRING, session.get('authToken')); 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 storeAlerts = require('../include/store_alerts.jag').store; // TODO: change to js
var ws = require('ws'); var ws = require('ws');
var process = require("process"), host = process.getProperty('server.host'), var process = require("process"), host = process.getProperty('server.host'),
@ -90,7 +88,7 @@ if (verb == "POST") {
} else if (executionPlan == 'Traffic') { } else if (executionPlan == 'Traffic') {
var resourceContents = parseDataJson.geoFenceGeoJSON; var resourceContents = parseDataJson.geoFenceGeoJSON;
} }
storeAlerts(parseKey, resourceContents, executionPlan, optionalArgs, deviceId); storeAlerts(resourceContents, executionPlan, optionalArgs, deviceId);
var payload; var payload;
if (cepAction == "edit") { if (cepAction == "edit") {

@ -21,11 +21,11 @@
* Get all available tile servers from RDB via HTTP GET, Insert new tile servers information via HTTP POST request * 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 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)); //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 tableName = "tileservers";
var db = new Database("jdbc:h2:repository/database/WSO2_GEO",configuration.username,configuration.password);
if(request.getMethod() == "GET"){ if(request.getMethod() == "GET"){
@ -46,7 +46,9 @@ if(request.getMethod() == "GET"){
var getAllTileServers = "select * from tileServers"; var getAllTileServers = "select * from tileServers";
try{ try{
var allTileServers = db.query(getAllTileServers); var allTileServers = db.query(getAllTileServers);
log.info(allTileServers); if (log.isDebugEnabled) {
log.debug(allTileServers);
}
response.contentType = "application/json"; response.contentType = "application/json";
response.characterEncoding = "UTF-8"; response.characterEncoding = "UTF-8";
response.content = allTileServers; 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 +"' );"; var insertTileServer ="INSERT INTO tileServers (url, name, subdomains, attribution, maxzoom) VALUES('"+ url +"', '"+ name +"', '"+ subdomains +"', '"+ attribution +"', '"+ maxzoom +"' );";
try{ try{
db.query(insertTileServer); db.query(insertTileServer);
log.info(name + ' tile server added successfully!'); if (log.isDebugEnabled()) {
print(name + ' tile server added successfully!'); log.debug(name + ' tile server added successfully!');
}
} }
catch(e){ catch(e){
log.error(e.toString()); log.error(e.toString());

@ -21,11 +21,10 @@
* Get all available tile servers from RDB via HTTP GET, Insert new tile servers information via HTTP POST request * 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 log = new Log();
var tableName = "webMapService"; var tableName = "webMapService";
var db = new Database("jdbc:h2:repository/database/WSO2_GEO",configuration.username,configuration.password);
if(request.getMethod() == "GET"){ if(request.getMethod() == "GET"){
@ -47,7 +46,9 @@ if(request.getMethod() == "GET"){
var getAllWmsEndPoints = "select * from webMapService"; var getAllWmsEndPoints = "select * from webMapService";
try{ try{
var allWmsEndPoints = db.query(getAllWmsEndPoints); var allWmsEndPoints = db.query(getAllWmsEndPoints);
log.info(allWmsEndPoints); if (log.isDebugEnabled()) {
log.debug(allWmsEndPoints);
}
response.contentType = "application/json"; response.contentType = "application/json";
response.characterEncoding = "UTF-8"; response.characterEncoding = "UTF-8";
response.content = allWmsEndPoints; 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 +"' );"; var insertWmsEndPoint ="INSERT INTO webMapService (serviceUrl, name, layers, version, format) VALUES('"+ serviceEndPoint +"', '"+ serviceName +"', '"+ layers +"', '"+ wmsVersion +"', '"+ outputFormat +"' );";
try{ try{
db.query(insertWmsEndPoint); db.query(insertWmsEndPoint);
if (log.isDebugEnabled()) {
log.info(serviceName + ' wms service added successfully!'); log.info(serviceName + ' wms service added successfully!');
print(serviceName + 'added successfully!'); }
} }
catch(e){ catch(e){
log.error(e.toString()); log.error(e.toString());
@ -102,7 +104,6 @@ function logToFile(message){
message = file.write(message); message = file.write(message);
file.close(); file.close();
} }
%> %>

@ -28,12 +28,4 @@ var escapeSiddhiql = function (s) {
return XML_CHAR_MAP[ch]; 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");
%> %>

@ -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');
%>

@ -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 // 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 log = new Log();
var deviceIdSeperator = "---"; 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;
}
} else {
throw "Alert type and ID are mandatory field to generate the relevant registry path";
}
};
function store(parameterKeyName, resourceContents, executionPlan, optional, deviceId) {
log.info("DEBUG:*** resourceContents:" + resourceContents); /**
if (executionPlan == "Speed") { * To store the alerts for visualizing purposes
var currentLimit; * @param resourceContents Value that need to saved
var speedFile = "speed" + deviceIdSeperator + ".json"; * @param executionPlan Type of the execution plan
try { * @param optional Optional parameters that are only specific to particular device types
currentLimit = dataStore.get(speedFile); * @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);
} }
catch (e) { if (executionPlan === constants.EXECUTION_PLAN_TYPE_SPEED) {
log.info("DEBUG:*** Catch error:" + e.message); pathToAddAlert = registryPath(constants.EXECUTION_PLAN_TYPE_SPEED, deviceId);
currentLimit = dataStore.newResource(); registry.put(pathToAddAlert, {
currentLimit.mediaType = 'application/json'; content: '{"speedLimit": ' + resourceContents + '}',
currentLimit.description = "User define speed limit for display alerts."; mediaType: 'application/json'
});
if (log.isDebugEnabled()) {
log.debug("DEBUG:*** Current speed limit set to:" + currentLimit.content);
} }
currentLimit.content = String('{"speedLimit": ' + resourceContents + '}');
dataStore.put(speedFile, currentLimit);
log.info("DEBUG:*** Current speed limit set to:" + currentLimit.content);
} }
else if (executionPlan == "Within") { else if (executionPlan === constants.EXECUTION_PLAN_TYPE_WITHIN) {
try { pathToAddAlert = registryPath(constants.EXECUTION_PLAN_TYPE_WITHIN, deviceId, optional.queryName);
var res = dataStore.get("geo/alerts/within"); if (log.isDebugEnabled()) {
log.debug("DEBUG:****** resourceContents = " + String('{"geoJson": ' + resourceContents + '}'));
} }
catch (e) { registry.put(pathToAddAlert, {
var geo = dataStore.newCollection(); content: JSON.stringify(resourceContents),
var alerts = dataStore.newCollection(); mediaType: 'application/json',
var within = dataStore.newCollection(); properties : {
"queryName" : optional.queryName,
dataStore.put("geo", geo); "areaName" : optional.customName
dataStore.put("alerts", alerts);
dataStore.put("within", within);
} }
log.info("DEBUG:****** resourceContents = " + String('{"geoJson": ' + resourceContents + '}')); });
var resource = dataStore.newResource(); } else if (executionPlan === constants.EXECUTION_PLAN_TYPE_PROXIMITY) {
resource.addProperty("queryName", optional.queryName); pathToAddAlert = registryPath(constants.EXECUTION_PLAN_TYPE_PROXIMITY, deviceId);
resource.addProperty("areaName", optional.customName); if (log.isDebugEnabled()) {
resource.mediaType = 'application/json'; log.debug("DEBUG:****** resourceContents = " + resourceContents);
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) { registry.put(pathToAddAlert, {
var geo = dataStore.newCollection(); content: "",
var alerts = dataStore.newCollection(); mediaType: 'application/json'
var proximity = dataStore.newCollection(); });
registry.addProperty(pathToAddAlert, "proximityDistance", resourceContents.proximityDistance);
dataStore.put("geo", geo); registry.addProperty(pathToAddAlert, "proximityTime", resourceContents.proximityTime);
dataStore.put("alerts", alerts); } else if (executionPlan === constants.EXECUTION_PLAN_TYPE_STATIONARY) {
dataStore.put("proximity", proximity); pathToAddAlert = registryPath(constants.EXECUTION_PLAN_TYPE_STATIONARY, deviceId, optional.queryName);
} if (log.isDebugEnabled()) {
log.info("DEBUG:****** resourceContents = " + resourceContents); log.debug("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");
} }
catch (e) { var registryResource = {
var geo = dataStore.newCollection(); content: JSON.stringify(resourceContents.geoFenceGeoJSON),
var alerts = dataStore.newCollection(); mediaType: 'application/json',
var stationery = dataStore.newCollection(); properties: {
"queryName" : optional.queryName,
dataStore.put("geo", geo); "stationeryName" : optional.customName,
dataStore.put("alerts", alerts); "stationeryTime" : resourceContents.stationeryTime,
dataStore.put("stationery", stationery); "fluctuationRadius" : resourceContents.fluctuationRadius
}
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");
} }
catch (e) { };
var geo = dataStore.newCollection(); registry.put(pathToAddAlert, registryResource);
var alerts = dataStore.newCollection(); } else if (executionPlan === constants.EXECUTION_PLAN_TYPE_TRAFFIC) {
var traffic = dataStore.newCollection(); pathToAddAlert = registryPath(constants.EXECUTION_PLAN_TYPE_TRAFFIC, deviceId, optional.queryName);
if (log.isDebugEnabled()) {
dataStore.put("geo", geo); log.debug("DEBUG:****** resourceContents = " + resourceContents.geoFenceGeoJSON);
dataStore.put("alerts", alerts); }
dataStore.put("traffic", traffic); var registryResource = {
} content: JSON.stringify(resourceContents),
log.info("DEBUG:****** resourceContents = " + resourceContents.geoFenceGeoJSON); mediaType: 'application/json',
var resource = dataStore.newResource(); properties: {
resource.addProperty("queryName", optional.queryName); "queryName" : optional.queryName,
resource.addProperty("areaName", optional.customName); "stationeryName" : optional.customName,
resource.content = String(resourceContents); "stationeryTime" : resourceContents.stationeryTime,
dataStore.put(String("geo/alerts/traffic/" + optional.queryName + deviceIdSeperator + deviceId + ".json"), resource); "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 = ""; var path = "";
try { try {
if (id == "WithIn") { if (executionPlanType === constants.EXECUTION_PLAN_TYPE_SPEED || executionPlanType === constants.EXECUTION_PLAN_TYPE_PROXIMITY) {
path = "geo/alerts/within/" + queryName + deviceIdSeperator + deviceId + ".json"; path = registryPath(executionPlanType, deviceId);
} else if (id == "Stationery") { } else {
path = "geo/alerts/stationery/" + queryName + deviceIdSeperator + deviceId + ".json"; path = registryPath(executionPlanType, deviceId, queryName);
} else if (id == "Traffic") { }
path = "geo/alerts/traffic/" + queryName + deviceIdSeperator + deviceId + ".json"; 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) { catch (e) {
log.info("The requested resource " + path + " was not found on this server. Thats all we know."); // Inspired by google 404 message log.error("The requested resource " + path + " was not found on this server.");
} }
} }
%> %>

@ -349,7 +349,7 @@ function updateDrawing(updatedGeoJson) {
} }
function viewFence(geoFenceElement,id) { 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 queryName = $(geoFenceElement).attr('data-queryName');
var areaName = $(geoFenceElement).attr('data-areaName'); var areaName = $(geoFenceElement).attr('data-areaName');
var geometryShape; var geometryShape;
@ -382,7 +382,7 @@ function viewFence(geoFenceElement,id) {
var stationeryTime=$(geoFenceElement).attr('data-stationeryTime'); 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'); var popupTemplate = $('#templateLoader').find('#viewStationeryAlert');
popupTemplate.find('#exportGeoJson').attr('leaflet_id', geometryShape._leaflet_id); popupTemplate.find('#exportGeoJson').attr('leaflet_id', geometryShape._leaflet_id);
popupTemplate.find('#hideViewFence').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"){ } 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'); var popupTemplate = $('#templateLoader').find('#viewWithinAlert');
popupTemplate.find('#exportGeoJson').attr('leaflet_id', geometryShape._leaflet_id); popupTemplate.find('#exportGeoJson').attr('leaflet_id', geometryShape._leaflet_id);
popupTemplate.find('#hideViewFence').attr('leaflet_id', geometryShape._leaflet_id); popupTemplate.find('#hideViewFence').attr('leaflet_id', geometryShape._leaflet_id);

@ -28,6 +28,12 @@ var proximityMap = L.map("proximityMap", {
var proximityDistance = $("#proximityDistance"); 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({ L.grid({
redraw: 'move' redraw: 'move'
}).addTo(proximityMap); }).addTo(proximityMap);

@ -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) 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") { 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") { 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) 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)

@ -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();

@ -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(
"<tr class='viewGeoFenceRow'style='cursor: pointer' data-stationeryTime='" + alert.stationeryTime +
"'data-fluctuationRadius='" + alert.fluctuationRadius + "'data-areaName='" + alert.areaName +
"'data-queryName='" + alert.queryName + "'data-geoJson=" + alert.geoJson + ">" +
"<td>" + alert.areaName + "</td><td>" + alert.stationeryTime + "</td><td>" + alert.fluctuationRadius +
"<td>" + alert.queryName + "</td><td>" + alert.createdTime + "</td><td" +
" onClick=removeGeoFence(this.parentElement,'Stationery') data-toggle=" +
" 'tooltip' title='Remove fence' ><i class='fa fa-trash-o'></i></td></tr>")
}
} else{
$(".fence-not-exist").show();
}
$('.viewGeoFenceRow td:not(:last-child)').click(function () {
viewFence(this.parentElement,'Stationery');
});
});
}
initStationaryAlert();

@ -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(
"<tr class='viewGeoFenceRow' style='cursor: pointer' data-areaName='" + alert.areaName +
"' data-queryName='" + alert.queryName + "'data-geoJson="+ alert.geoJson +"><td>" + alert.areaName + "</td>" +
"<td>" + alert.queryName + "</td><td>" + alert.createdTime + "</td>" +
"<td onClick=removeGeoFence(this.parentElement,'WithIn') class='removeGeoFence'" +
" data-toggle='tooltip' title='Remove fence' ><i class='fa fa-trash-o'></i></td></tr>");
}
} else{
$(".fence-not-exist").show();
}
$('.viewGeoFenceRow td:not(:last-child)').click(function () {
viewFence(this.parentElement,'WithIn');
});
});
}
initializeWithin();
Loading…
Cancel
Save