[TASK] Make more colors configurable
This commit is contained in:
parent
cc18e53430
commit
2c7500f1bb
2
app.js
2
app.js
@ -37,7 +37,5 @@ require.config({
|
|||||||
});
|
});
|
||||||
|
|
||||||
require(['main'], function (main) {
|
require(['main'], function (main) {
|
||||||
/** global: config */
|
|
||||||
window.config = jsonData;
|
|
||||||
main();
|
main();
|
||||||
});
|
});
|
||||||
|
@ -75,6 +75,7 @@
|
|||||||
"fr",
|
"fr",
|
||||||
"ru"
|
"ru"
|
||||||
],
|
],
|
||||||
|
// Color configs
|
||||||
"icon": {
|
"icon": {
|
||||||
"base": {
|
"base": {
|
||||||
"fillOpacity": 0.6,
|
"fillOpacity": 0.6,
|
||||||
@ -107,5 +108,62 @@
|
|||||||
"fillColor": "#93E929"
|
"fillColor": "#93E929"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"client": {
|
||||||
|
"wifi24": "rgba(220, 0, 103, 0.7)",
|
||||||
|
"wifi5": "rgba(10, 156, 146, 0.7)",
|
||||||
|
"other": "rgba(227, 166, 25, 0.7)"
|
||||||
|
},
|
||||||
|
"map": {
|
||||||
|
"labelNewColor": "#459c18",
|
||||||
|
"tqFrom": "#F02311",
|
||||||
|
"tqTo": "#04C714",
|
||||||
|
"highlightNode": {
|
||||||
|
"color": "#ad2358",
|
||||||
|
"weight": 8,
|
||||||
|
"fillOpacity": 1,
|
||||||
|
"opacity": 0.4,
|
||||||
|
"className": "stroke-first"
|
||||||
|
},
|
||||||
|
"highlightLink": {
|
||||||
|
"weight": 4,
|
||||||
|
"opacity": 1,
|
||||||
|
"dashArray": "5, 10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"forceGraph": {
|
||||||
|
"nodeColor": "#fff",
|
||||||
|
"highlightColor": "rgba(255, 255, 255, 0.2)",
|
||||||
|
"labelColor": "#fff",
|
||||||
|
"tqFrom": "#770038",
|
||||||
|
"tqTo": "#dc0067"
|
||||||
|
},
|
||||||
|
"locate": {
|
||||||
|
"outerCircle": {
|
||||||
|
"stroke": false,
|
||||||
|
"color": "#4285F4",
|
||||||
|
"opacity": 1,
|
||||||
|
"fillOpacity": 0.3,
|
||||||
|
"clickable": false,
|
||||||
|
"radius": 16
|
||||||
|
},
|
||||||
|
"innerCircle": {
|
||||||
|
"stroke:": true,
|
||||||
|
"color": "#ffffff",
|
||||||
|
"fillColor": "#4285F4",
|
||||||
|
"weight": 1.5,
|
||||||
|
"clickable": false,
|
||||||
|
"opacity": 1,
|
||||||
|
"fillOpacity": 1,
|
||||||
|
"radius": 7
|
||||||
|
},
|
||||||
|
"accuracyCircle": {
|
||||||
|
"stroke": true,
|
||||||
|
"color": "#4285F4",
|
||||||
|
"weight": 1,
|
||||||
|
"clickable": false,
|
||||||
|
"opacity": 0.7,
|
||||||
|
"fillOpacity": 0.2
|
||||||
|
}
|
||||||
|
},
|
||||||
"cacheBreaker": "<!-- inject:cache-breaker -->"
|
"cacheBreaker": "<!-- inject:cache-breaker -->"
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ module.exports = function (gulp, plugins, config, env) {
|
|||||||
JSON.parse(JSON.minify(defaultConfig)),
|
JSON.parse(JSON.minify(defaultConfig)),
|
||||||
JSON.parse(JSON.minify(customConfig.contents.toString('utf8')))
|
JSON.parse(JSON.minify(customConfig.contents.toString('utf8')))
|
||||||
);
|
);
|
||||||
return '<script>var jsonData =' +
|
return '<script>window.config =' +
|
||||||
JSON.stringify(buildConfig)
|
JSON.stringify(buildConfig)
|
||||||
.replace('<!-- inject:cache-breaker -->',
|
.replace('<!-- inject:cache-breaker -->',
|
||||||
Math.random().toString(12).substring(7)) +
|
Math.random().toString(12).substring(7)) +
|
||||||
|
@ -4,16 +4,9 @@ define(['helper'], function (helper) {
|
|||||||
var ctx;
|
var ctx;
|
||||||
var width;
|
var width;
|
||||||
var height;
|
var height;
|
||||||
|
|
||||||
var transform;
|
var transform;
|
||||||
|
|
||||||
var highlight;
|
var highlight;
|
||||||
|
|
||||||
var nodeColor = '#fff';
|
|
||||||
var highlightColor = 'rgba(255, 255, 255, 0.2)';
|
|
||||||
|
|
||||||
var labelColor = '#fff';
|
|
||||||
|
|
||||||
var NODE_RADIUS = 15;
|
var NODE_RADIUS = 15;
|
||||||
var LINE_RADIUS = 12;
|
var LINE_RADIUS = 12;
|
||||||
|
|
||||||
@ -26,7 +19,7 @@ define(['helper'], function (helper) {
|
|||||||
name = d.o.hostname;
|
name = d.o.hostname;
|
||||||
}
|
}
|
||||||
ctx.textAlign = 'center';
|
ctx.textAlign = 'center';
|
||||||
ctx.fillStyle = labelColor;
|
ctx.fillStyle = config.forceGraph.labelColor;
|
||||||
ctx.fillText(name, d.x, d.y + 20);
|
ctx.fillText(name, d.x, d.y + 20);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -34,7 +27,7 @@ define(['helper'], function (helper) {
|
|||||||
function drawHighlightNode(d) {
|
function drawHighlightNode(d) {
|
||||||
if (highlight && highlight.type === 'node' && d.o.node_id === highlight.id) {
|
if (highlight && highlight.type === 'node' && d.o.node_id === highlight.id) {
|
||||||
ctx.arc(d.x, d.y, NODE_RADIUS * 1.5, 0, 2 * Math.PI);
|
ctx.arc(d.x, d.y, NODE_RADIUS * 1.5, 0, 2 * Math.PI);
|
||||||
ctx.fillStyle = highlightColor;
|
ctx.fillStyle = config.forceGraph.highlightColor;
|
||||||
ctx.fill();
|
ctx.fill();
|
||||||
ctx.beginPath();
|
ctx.beginPath();
|
||||||
}
|
}
|
||||||
@ -43,7 +36,7 @@ define(['helper'], function (helper) {
|
|||||||
function drawHighlightLink(d, to) {
|
function drawHighlightLink(d, to) {
|
||||||
if (highlight && highlight.type === 'link' && d.o.id === highlight.id) {
|
if (highlight && highlight.type === 'link' && d.o.id === highlight.id) {
|
||||||
ctx.lineTo(to[0], to[1]);
|
ctx.lineTo(to[0], to[1]);
|
||||||
ctx.strokeStyle = highlightColor;
|
ctx.strokeStyle = config.forceGraph.highlightColor;
|
||||||
ctx.lineWidth = LINE_RADIUS * 2;
|
ctx.lineWidth = LINE_RADIUS * 2;
|
||||||
ctx.lineCap = 'round';
|
ctx.lineCap = 'round';
|
||||||
ctx.stroke();
|
ctx.stroke();
|
||||||
@ -62,7 +55,7 @@ define(['helper'], function (helper) {
|
|||||||
|
|
||||||
ctx.moveTo(d.x + 3, d.y);
|
ctx.moveTo(d.x + 3, d.y);
|
||||||
ctx.arc(d.x, d.y, 8, 0, 2 * Math.PI);
|
ctx.arc(d.x, d.y, 8, 0, 2 * Math.PI);
|
||||||
ctx.fillStyle = nodeColor;
|
ctx.fillStyle = config.forceGraph.nodeColor;
|
||||||
ctx.fill();
|
ctx.fill();
|
||||||
|
|
||||||
drawDetailNode(d);
|
drawDetailNode(d);
|
||||||
|
@ -12,7 +12,7 @@ function (d3Interpolate, Map, Sidebar, Tabs, Container, Legend, Linklist,
|
|||||||
var content;
|
var content;
|
||||||
var contentDiv;
|
var contentDiv;
|
||||||
|
|
||||||
var linkScale = d3Interpolate.interpolate('#F02311', '#04C714');
|
var linkScale = d3Interpolate.interpolate(config.map.tqFrom, config.map.tqTo);
|
||||||
var sidebar;
|
var sidebar;
|
||||||
|
|
||||||
var buttons = document.createElement('div');
|
var buttons = document.createElement('div');
|
||||||
|
@ -152,10 +152,10 @@ define(['map/clientlayer', 'map/labellayer', 'map/button', 'leaflet'],
|
|||||||
if (highlight !== undefined) {
|
if (highlight !== undefined) {
|
||||||
if (highlight.type === 'node' && nodeDict[highlight.o.node_id]) {
|
if (highlight.type === 'node' && nodeDict[highlight.o.node_id]) {
|
||||||
m = nodeDict[highlight.o.node_id];
|
m = nodeDict[highlight.o.node_id];
|
||||||
m.setStyle({ color: '#ad2358', weight: 8, fillOpacity: 1, opacity: 0.4, className: 'stroke-first' });
|
m.setStyle(config.map.highlightNode);
|
||||||
} else if (highlight.type === 'link' && linkDict[highlight.o.id]) {
|
} else if (highlight.type === 'link' && linkDict[highlight.o.id]) {
|
||||||
m = linkDict[highlight.o.id];
|
m = linkDict[highlight.o.id];
|
||||||
m.setStyle({ weight: 4, opacity: 1, dashArray: '5, 10' });
|
m.setStyle(config.map.highlightLink);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -212,9 +212,9 @@ define(['leaflet', 'rbush', 'helper', 'moment'],
|
|||||||
// - color (string)
|
// - color (string)
|
||||||
|
|
||||||
var labelsOnline = d.online.map(prepareLabel(null, 11, 8, true));
|
var labelsOnline = d.online.map(prepareLabel(null, 11, 8, true));
|
||||||
var labelsOffline = d.offline.map(prepareLabel('rgba(212, 62, 42, 0.9)', 9, 5, false));
|
var labelsOffline = d.offline.map(prepareLabel(config.icon.offline.color, 9, 5, false));
|
||||||
var labelsNew = d.new.map(prepareLabel('rgba(48, 99, 20, 0.9)', 11, 8, true));
|
var labelsNew = d.new.map(prepareLabel(config.map.labelNewColor, 11, 8, true));
|
||||||
var labelsLost = d.lost.map(prepareLabel('rgba(212, 62, 42, 0.9)', 11, 8, true));
|
var labelsLost = d.lost.map(prepareLabel(config.icon.lost.color, 11, 8, true));
|
||||||
|
|
||||||
var labels = []
|
var labels = []
|
||||||
.concat(labelsNew)
|
.concat(labelsNew)
|
||||||
|
@ -2,39 +2,10 @@ define(['leaflet'], function (L) {
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
return L.CircleMarker.extend({
|
return L.CircleMarker.extend({
|
||||||
outerCircle: {
|
|
||||||
stroke: false,
|
|
||||||
color: '#4285F4',
|
|
||||||
opacity: 1,
|
|
||||||
fillOpacity: 0.3,
|
|
||||||
clickable: false,
|
|
||||||
radius: 16
|
|
||||||
},
|
|
||||||
|
|
||||||
innerCircle: {
|
|
||||||
stroke: true,
|
|
||||||
color: '#ffffff',
|
|
||||||
fillColor: '#4285F4',
|
|
||||||
weight: 1.5,
|
|
||||||
clickable: false,
|
|
||||||
opacity: 1,
|
|
||||||
fillOpacity: 1,
|
|
||||||
radius: 7
|
|
||||||
},
|
|
||||||
|
|
||||||
accuracyCircle: {
|
|
||||||
stroke: true,
|
|
||||||
color: '#4285F4',
|
|
||||||
weight: 1,
|
|
||||||
clickable: false,
|
|
||||||
opacity: 0.7,
|
|
||||||
fillOpacity: 0.2
|
|
||||||
},
|
|
||||||
|
|
||||||
initialize: function (latlng) {
|
initialize: function (latlng) {
|
||||||
this.accuracyCircle = L.circle(latlng, 0, this.accuracyCircle);
|
this.accuracyCircle = L.circle(latlng, 0, config.locate.accuracyCircle);
|
||||||
this.outerCircle = L.circleMarker(latlng, this.outerCircle);
|
this.outerCircle = L.circleMarker(latlng, config.locate.outerCircle);
|
||||||
L.CircleMarker.prototype.initialize.call(this, latlng, this.innerCircle);
|
L.CircleMarker.prototype.initialize.call(this, latlng, config.locate.innerCircle);
|
||||||
|
|
||||||
this.on('remove', function () {
|
this.on('remove', function () {
|
||||||
this._map.removeLayer(this.accuracyCircle);
|
this._map.removeLayer(this.accuracyCircle);
|
||||||
|
@ -5,7 +5,7 @@ define(['d3-interpolate', 'snabbdom', 'filters/genericnode', 'helper'],
|
|||||||
|
|
||||||
return function (filterManager) {
|
return function (filterManager) {
|
||||||
var self = this;
|
var self = this;
|
||||||
var scale = d3Interpolate.interpolate('#770038', '#dc0067');
|
var scale = d3Interpolate.interpolate(config.forceGraph.tqFrom, config.forceGraph.tqTo);
|
||||||
|
|
||||||
var statusTable;
|
var statusTable;
|
||||||
var fwTable;
|
var fwTable;
|
||||||
|
@ -151,7 +151,7 @@ define({
|
|||||||
var mode = 0;
|
var mode = 0;
|
||||||
|
|
||||||
ctx.beginPath();
|
ctx.beginPath();
|
||||||
ctx.fillStyle = 'rgba(220, 0, 103, 0.7)';
|
ctx.fillStyle = config.client.wifi24;
|
||||||
|
|
||||||
for (var orbit = 0, i = 0; i < node.clients; orbit++) {
|
for (var orbit = 0, i = 0; i < node.clients; orbit++) {
|
||||||
var distance = startDistance + orbit * 2 * radius * a;
|
var distance = startDistance + orbit * 2 * radius * a;
|
||||||
@ -163,12 +163,12 @@ define({
|
|||||||
mode = 1;
|
mode = 1;
|
||||||
ctx.fill();
|
ctx.fill();
|
||||||
ctx.beginPath();
|
ctx.beginPath();
|
||||||
ctx.fillStyle = 'rgba(10, 156, 146, 0.7)';
|
ctx.fillStyle = config.client.wifi5;
|
||||||
} else if (mode === 0 && i >= node.clients_wifi24) {
|
} else if (mode === 0 && i >= node.clients_wifi24) {
|
||||||
mode = 2;
|
mode = 2;
|
||||||
ctx.fill();
|
ctx.fill();
|
||||||
ctx.beginPath();
|
ctx.beginPath();
|
||||||
ctx.fillStyle = 'rgba(227, 166, 25, 0.7)';
|
ctx.fillStyle = config.client.other;
|
||||||
}
|
}
|
||||||
var angle = 2 * Math.PI / n * j;
|
var angle = 2 * Math.PI / n * j;
|
||||||
var x = p.x + distance * Math.cos(angle + startAngle);
|
var x = p.x + distance * Math.cos(angle + startAngle);
|
||||||
|
Loading…
Reference in New Issue
Block a user