Files
greenhouse-MyController/www/services/topology_service.js

98 lines
2.8 KiB
JavaScript

/*
* Copyright 2015-2018 Jeeva Kandasamy (jkandasa@gmail.com)
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
myControllerModule.service('TopologyService', function($filter) {
this.tooltip = function tooltip(d) {
var status = [
$filter('translate')('NAME') + ': ' + d.item.name,
$filter('translate')('TYPE') + ': ' + $filter('translate')(d.item.type)
];
if(d.item.kind === "Node"){
status.push($filter('translate')('EUI') + ': ' + d.item.localId);
}
if(d.item.kind === "Sensor"){
status.push($filter('translate')('SENSOR_ID') + ': ' + d.item.localId);
}
if(d.item.kind === "Sensor" || d.item.kind === "SensorVariable"){
status.push($filter('translate')('SUB_TYPE') + ': ' + d.item.subType.locale);
}
if(d.item.kind === "Gateway" || d.item.kind === "Node"){
status.push($filter('translate')('STATUS') + ': ' + $filter('translate')(d.item.status.toUpperCase()));
}else if(d.item.kind === "SensorVariable"){
status.push($filter('translate')('STATUS') + ': ' + d.item.status);
}
return status;
};
this.addContextMenuOption = function(popup, text, data, callback) {
popup.append("p").text(text)
.on('click' , function() {callback(data);});
};
this.searchNode = function(svg, query) {
var nodes = svg.selectAll("g");
if (query != "") {
var selected = nodes.filter(function (d) {
return d.item.name != query;
});
selected.style("opacity", "0.2");
var links = svg.selectAll("line");
links.style("opacity", "0.2");
}
};
this.resetSearch = function(d3) {
// Display all topology nodes and links
d3.selectAll("g, line").transition()
.duration(2000)
.style("opacity", 1);
};
this.getSVG = function(d3) {
var graph = d3.select("kubernetes-topology-graph");
var svg = graph.select('svg');
return svg;
};
this.defaultElementDimensions = function() {
return { x: 0, y: 9, r: 17 };
};
this.getItemStatusClass = function(d) {
switch (d.item.status) {
case "Armed":
case "On":
case "ON":
case "Up":
case "Untripped":
return "success";
case "Armed":
case "OFF":
case "Off":
case "Tripped":
case "Down":
return "error";
}
};
});