[TASK] Make more colors configurable

This commit is contained in:
Xaver Maierhofer 2017-11-05 18:23:40 +01:00 committed by Xaver Maierhofer
parent cc18e53430
commit 2c7500f1bb
10 changed files with 76 additions and 56 deletions

2
app.js
View File

@ -37,7 +37,5 @@ require.config({
}); });
require(['main'], function (main) { require(['main'], function (main) {
/** global: config */
window.config = jsonData;
main(); main();
}); });

View File

@ -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 -->"
} }

View File

@ -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)) +

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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