Added new branding material #4598 (#4656)
* Moved name2id to utils.js * Added new favicon and other branding material #4598 * Added improved favicon, cleanup #4598 * Removed some older icons * Removed seo-performance-128 icon refs, and refs to soylent icon * Regenerated dashboard.js * Use base64 encoded favicon #4598 Avoids refetching when hash gets updated
George Moschovitis committed
Nov 14, 2018 at 14:07 UTC
c52348e234755c0c4bcb51e6c71fddfc55912b28
48 files changed
+126
-69
REDISTRIBUTED.md
-5
@@ -126,11 +126,6 @@ connectivity is not available.
126
Code license: [MIT License](http://opensource.org/licenses/mit-license.html)
127
128
129
-- [IconsDB.com Icons](http://www.iconsdb.com/soylent-red-icons/seo-performance-icon.html)
130
-
131
- Icons provided as CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
132
-
133
-
129
- [node-extend](https://github.com/justmoon/node-extend)
130
131
Copyright 2014, Stefan Thomas
health/notifications/alarm-notify.sh.in
+6
-6
@@ -1480,7 +1480,7 @@ send_slack() {
1480
{
1481
"channel": "#${channel}",
1482
"username": "netdata on ${host}",
1483
- "icon_url": "${images_base_url}/images/seo-performance-128.png",
1483
+ "icon_url": "${images_base_url}/images/banner-icon-144x144.png",
1484
"text": "${host} ${status_message}, \`${chart}\` (_${family}_), *${alarm}*",
1485
"attachments": [
1486
{
@@ -1545,7 +1545,7 @@ send_rocketchat() {
1545
{
1546
"channel": "#${channel}",
1547
"alias": "netdata on ${host}",
1548
- "avatar": "${images_base_url}/images/seo-performance-128.png",
1548
+ "avatar": "${images_base_url}/images/banner-icon-144x144.png",
1549
"text": "${host} ${status_message}, \`${chart}\` (_${family}_), *${alarm}*",
1550
"attachments": [
1551
{
@@ -1684,7 +1684,7 @@ send_flock() {
1684
httpcode=$(docurl -X POST "${webhook}" -H "Content-Type: application/json" -d "{
1685
\"sendAs\": {
1686
\"name\" : \"netdata on ${host}\",
1687
- \"profileImage\" : \"${images_base_url}/images/seo-performance-128.png\"
1687
+ \"profileImage\" : \"${images_base_url}/images/banner-icon-144x144.png\"
1688
},
1689
\"text\": \"${host} *${status_message}*\",
1690
\"timestamp\": \"${when}\",
@@ -1744,7 +1744,7 @@ send_discord() {
1744
"channel": "#${channel}",
1745
"username": "${username}",
1746
"text": "${host} ${status_message}, \`${chart}\` (_${family}_), *${alarm}*",
1747
- "icon_url": "${images_base_url}/images/seo-performance-128.png",
1747
+ "icon_url": "${images_base_url}/images/banner-icon-144x144.png",
1748
"attachments": [
1749
{
1750
"color": "${color}",
@@ -1758,7 +1758,7 @@ send_discord() {
1758
}
1759
],
1760
"thumb_url": "${image}",
1761
- "footer_icon": "${images_base_url}/images/seo-performance-128.png",
1761
+ "footer_icon": "${images_base_url}/images/banner-icon-144x144.png",
1762
"footer": "${this_host}",
1763
"ts": ${when}
1764
}
@@ -1981,7 +1981,7 @@ color="grey"
1981
alarm="${name//_/ } = ${value_string}"
1982
1983
# the image of the alarm
1984
-image="${images_base_url}/images/seo-performance-128.png"
1984
+image="${images_base_url}/images/banner-icon-144x144.png"
1985
1986
# prepare the title based on status
1987
case "${status}" in
web/gui/Makefile.am
+26
-12
@@ -127,18 +127,32 @@ dist_webimages_DATA = \
127
images/check-mark-2-multi-size-green.ico \
128
images/netdata.svg \
129
images/post.png \
130
- images/seo-performance-16.png \
131
- images/seo-performance-24.png \
132
- images/seo-performance-32.png \
133
- images/seo-performance-48.png \
134
- images/seo-performance-64.png \
135
- images/seo-performance-72.png \
136
- images/seo-performance-114.png \
137
- images/seo-performance-128.png \
138
- images/seo-performance-256.png \
139
- images/seo-performance-512.png \
140
- images/seo-performance-multi-size.ico \
141
- images/seo-performance-multi-size.icns \
130
+ images/android-icon-36x36.png \
131
+ images/android-icon-48x48.png \
132
+ images/android-icon-72x72.png \
133
+ images/android-icon-96x96.png \
134
+ images/android-icon-144x144.png \
135
+ images/android-icon-192x192.png \
136
+ images/apple-icon-57x57.png \
137
+ images/apple-icon-60x60.png \
138
+ images/apple-icon-72x72.png \
139
+ images/apple-icon-76x76.png \
140
+ images/apple-icon-114x114.png \
141
+ images/apple-icon-120x120.png \
142
+ images/apple-icon-144x144.png \
143
+ images/apple-icon-152x152.png \
144
+ images/apple-icon-180x180.png \
145
+ images/apple-icon-precomposed.png \
146
+ images/apple-icon.png \
147
+ images/favicon-16x16.png \
148
+ images/favicon-32x32.png \
149
+ images/favicon-96x96.png \
150
+ images/favicon.ico \
151
+ images/ms-icon-70x70.png \
152
+ images/ms-icon-144x144.png \
153
+ images/ms-icon-150x150.png \
154
+ images/ms-icon-310x310.png \
155
+ images/banner-icon-144x144.png \
156
$(NULL)
157
158
dashboard.js: $(DASHBOARD_JS_FILES)
web/gui/browserconfig.xml
new
+2
@@ -0,0 +1,2 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<browserconfig><msapplication><tile><square70x70logo src="images/ms-icon-70x70.png"/><square150x150logo src="images/ms-icon-150x150.png"/><square310x310logo src="images/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
web/gui/dashboard.js
+16
-13
@@ -81,6 +81,18 @@ const NETDATA = window.NETDATA || {};
81
82
(function(window, document, $, undefined) {
83
84
+// *** src/dashboard.js/utils.js
85
+
86
+NETDATA.name2id = function (s) {
87
+ return s
88
+ .replace(/ /g, '_')
89
+ .replace(/:/g, '_')
90
+ .replace(/\(/g, '_')
91
+ .replace(/\)/g, '_')
92
+ .replace(/\./g, '_')
93
+ .replace(/\//g, '_');
94
+};
95
+
96
NETDATA.encodeURIComponent = function (s) {
97
if (typeof(s) === 'string') {
98
return encodeURIComponent(s);
@@ -603,8 +615,9 @@ NETDATA.errorReset = function () {
615
NETDATA.errorLast.message = "You are doing fine!";
616
NETDATA.errorLast.datetime = 0;
617
};
606
-// ------------------------------------------------------------------------
607
-// compatibility fixes
618
+// *** src/dashboard.js/compatibility.js
619
+
620
+// Compatibility fixes.
621
622
// fix IE issue with console
623
if (!window.console) {
@@ -633,16 +646,6 @@ if (typeof String.prototype.startsWith !== 'function') {
646
return this.slice(s.length) === s;
647
};
648
}
636
-
637
-NETDATA.name2id = function (s) {
638
- return s
639
- .replace(/ /g, '_')
640
- .replace(/:/g, '_')
641
- .replace(/\(/g, '_')
642
- .replace(/\)/g, '_')
643
- .replace(/\./g, '_')
644
- .replace(/\//g, '_');
645
-};
649
// ----------------------------------------------------------------------------------------------------------------
650
// XSS checks
651
@@ -9300,7 +9303,7 @@ NETDATA.alarms = {
9303
let status = entry.status.toLowerCase();
9304
let title = name + ' = ' + value_string.toString();
9305
let tag = entry.alarm_id;
9303
- let icon = 'images/seo-performance-128.png';
9306
+ let icon = 'images/banner-icon-144x144.png';
9307
let interaction = false;
9308
let data = entry;
9309
let show = true;
web/gui/favicon.ico
Binary files a/web/gui/favicon.ico and b/web/gui/favicon.ico differ
web/gui/images/android-icon-144x144.png
Binary files /dev/null and b/web/gui/images/android-icon-144x144.png differ
web/gui/images/android-icon-192x192.png
Binary files /dev/null and b/web/gui/images/android-icon-192x192.png differ
web/gui/images/android-icon-36x36.png
Binary files /dev/null and b/web/gui/images/android-icon-36x36.png differ
web/gui/images/android-icon-48x48.png
Binary files /dev/null and b/web/gui/images/android-icon-48x48.png differ
web/gui/images/android-icon-72x72.png
Binary files /dev/null and b/web/gui/images/android-icon-72x72.png differ
web/gui/images/android-icon-96x96.png
Binary files /dev/null and b/web/gui/images/android-icon-96x96.png differ
web/gui/images/apple-icon-114x114.png
Binary files /dev/null and b/web/gui/images/apple-icon-114x114.png differ
web/gui/images/apple-icon-120x120.png
Binary files /dev/null and b/web/gui/images/apple-icon-120x120.png differ
web/gui/images/apple-icon-144x144.png
Binary files /dev/null and b/web/gui/images/apple-icon-144x144.png differ
web/gui/images/apple-icon-152x152.png
Binary files /dev/null and b/web/gui/images/apple-icon-152x152.png differ
web/gui/images/apple-icon-180x180.png
Binary files /dev/null and b/web/gui/images/apple-icon-180x180.png differ
web/gui/images/apple-icon-57x57.png
Binary files /dev/null and b/web/gui/images/apple-icon-57x57.png differ
web/gui/images/apple-icon-60x60.png
Binary files /dev/null and b/web/gui/images/apple-icon-60x60.png differ
web/gui/images/apple-icon-72x72.png
Binary files /dev/null and b/web/gui/images/apple-icon-72x72.png differ
web/gui/images/apple-icon-76x76.png
Binary files /dev/null and b/web/gui/images/apple-icon-76x76.png differ
web/gui/images/apple-icon-precomposed.png
Binary files /dev/null and b/web/gui/images/apple-icon-precomposed.png differ
web/gui/images/apple-icon.png
Binary files /dev/null and b/web/gui/images/apple-icon.png differ
web/gui/images/banner-icon-144x144.png
Binary files /dev/null and b/web/gui/images/banner-icon-144x144.png differ
web/gui/images/favicon-16x16.png
Binary files /dev/null and b/web/gui/images/favicon-16x16.png differ
web/gui/images/favicon-32x32.png
Binary files /dev/null and b/web/gui/images/favicon-32x32.png differ
web/gui/images/favicon-96x96.png
Binary files /dev/null and b/web/gui/images/favicon-96x96.png differ
web/gui/images/favicon.ico
Binary files /dev/null and b/web/gui/images/favicon.ico differ
web/gui/images/ms-icon-144x144.png
Binary files /dev/null and b/web/gui/images/ms-icon-144x144.png differ
web/gui/images/ms-icon-150x150.png
Binary files /dev/null and b/web/gui/images/ms-icon-150x150.png differ
web/gui/images/ms-icon-310x310.png
Binary files /dev/null and b/web/gui/images/ms-icon-310x310.png differ
web/gui/images/ms-icon-70x70.png
Binary files /dev/null and b/web/gui/images/ms-icon-70x70.png differ
web/gui/images/seo-performance-114.png
Binary files a/web/gui/images/seo-performance-114.png and /dev/null differ
web/gui/images/seo-performance-16.png
Binary files a/web/gui/images/seo-performance-16.png and /dev/null differ
web/gui/images/seo-performance-24.png
Binary files a/web/gui/images/seo-performance-24.png and /dev/null differ
web/gui/images/seo-performance-256.png
Binary files a/web/gui/images/seo-performance-256.png and /dev/null differ
web/gui/images/seo-performance-32.png
Binary files a/web/gui/images/seo-performance-32.png and /dev/null differ
web/gui/images/seo-performance-48.png
Binary files a/web/gui/images/seo-performance-48.png and /dev/null differ
web/gui/images/seo-performance-512.png
Binary files a/web/gui/images/seo-performance-512.png and /dev/null differ
web/gui/images/seo-performance-64.png
Binary files a/web/gui/images/seo-performance-64.png and /dev/null differ
web/gui/images/seo-performance-72.png
Binary files a/web/gui/images/seo-performance-72.png and /dev/null differ
web/gui/images/seo-performance-multi-size.icns
Binary files a/web/gui/images/seo-performance-multi-size.icns and /dev/null differ
web/gui/images/seo-performance-multi-size.ico
Binary files a/web/gui/images/seo-performance-multi-size.ico and /dev/null differ
web/gui/index.html
+19
-20
@@ -14,25 +14,26 @@
14
<meta name="author" content="costa@tsaousis.gr">
15
16
<link rel="stylesheet" type="text/css" href="main.css?v=2">
17
+
18
+ <link rel="icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACyklEQVRYhcWXz0sUYRjHP8+wLItImEhnEfEgEVJk+56CbCECQWezOkTQTTp6kejgKUSoEAoK/wAhaaeDBkLoIahZIWIJo0U8hHQJJBYJERGfDrOju7PjuO5u6/c0PM/7zvfzvvP+eEaoVu6wBZIA3cW82wtvY7cD1xEWSTpb1bxWjm2RtbtQxoF7iLSA7gO/UL4A74G3mBIzNz0Peg1hFmUK46zXBuDaCYQJlDFE4ke/QreAZyhPMc42rt2PyEoxt4cyDUxgnO3qAVy7C8gg0hdFHwBZA0ZIOt9w7e+I9B6mdBVhmGTlbFQCuPYFhA8g56o3P3D6CwyiDCIyFshtgqRIZnKlUStg3lW7OYC0AvPATkiuA9U3uOlEOEDWTgCZ2s3LIMbCU9ID3A8HUCZO9s2jGCRxdFIflDUF/EX3I3q1N0iq+8BZf+v6MzDeFHMAEQvoJpuOAwiu3Qr89g6ZJkm5CnoHeBwDbjTV3CPoRRhF+WQBA801B+AJiAUMWMDFptuLtBef+iygs+kAh+q0gDOnCNBmETyOmywLKJyifyEG/ATqPP+LUt0FZoAlIA6MgNyKqDo2YkAO6G+QeQrjfCyJzuHaoyCvjuiVs4q0jdBMwNyTcV6j+jm0h7BkAYuohpZLJ1TUQJYrIqo7KAtW8VaabQBA1GVWmROZwzgFfwtOoRpealevdGg0a8eAoUB0D9VJ8M8A46yDTNdlL9wmaz8MMX9RrIQOpfoS4+S9br7cdAvoCiLn6wLxFtwyQhxlKMQ8j3CJpFeml+9QN90N6iLSURfEkXD8AQwms+aHyo9hk1kHSaG6+Z/MU6XmlQAeRA7EoLraQPM83si/BlPhF5E3E1dQfY5S++5Q/9dMLwdH7uv4n1PX7gEeAXejy+0y4x2QOWASk8lHNT0e4AAk3QZ6E6+E68MrZNqK2QKwgXevLCEskHSqumX/AUXU5QBtOC5FAAAAAElFTkSuQmCC">
19
18
- <!-- <link rel="shortcut icon" href="images/seo-performance-multi-size.ico"> -->
19
-
20
- <!-- <link rel="apple-touch-icon" href="images/seo-performance-72.png"> -->
21
- <!-- <link rel="apple-touch-icon" sizes="72x72" href="images/seo-performance-72.png"> -->
22
- <!-- <link rel="apple-touch-icon" sizes="114x114" href="images/seo-performance-114.png"> -->
23
-
24
- <!-- <link rel="icon" type="image/png" sizes="512x512" href="images/seo-performance-512.png"> -->
25
- <!-- <link rel="icon" type="image/png" sizes="256x256" href="images/seo-performance-256.png"> -->
26
- <!-- <link rel="icon" type="image/png" sizes="128x128" href="images/seo-performance-128.png"> -->
27
- <!-- <link rel="icon" type="image/png" sizes="64x64" href="images/seo-performance-64.png"> -->
28
- <!-- <link rel="icon" type="image/png" sizes="48x48" href="images/seo-performance-48.png"> -->
29
- <!-- <link rel="icon" type="image/png" sizes="24x24" href="images/seo-performance-24.png"> -->
30
- <!-- <link rel="icon" type="image/png" sizes="16x16" href="images/seo-performance-16.png"> -->
31
- <!-- <link rel="icon" type="image/png" sizes="32x32" href="images/seo-performance-32.png"> -->
32
-
33
- <link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACNklEQVRYhcXXv2tUQRAH8M+FEIJISBHCIWIhIQSUILERi4AiiqCggiIiomAjlhaC4j+ghYWISgqNohZaCBZBC8Ei8QdEUCutFBsxCBqDYkgci/cunkfuJffjJQPD8mZm5/vd2WV2HzlJ0Bs8CvrywsgCHwy+BpGOg0sJfjj4nYKX9FdwKG9gwZlgtgK8pLOpPxfw1mCoCnClDgWtzQTvCEYWCV7SkWAlFBoEb8dlDKBF8t2bMWUSH/AHr3CiEfz5CPUusPJLkRCdk5ZqyeqUrQv4R7E5TwK7M3zTeIKduRAIitiWEfIY69GdCwGcRFuG/xqONRkzkaA7+J5x+MaDtWmHvJ4HgeEM8Nn0bridfv9HoOFyBAdwJCPkqqTzHWwUaz7wgeBHxupfBKuCj2W25mxBsCGYyAB/FxTT27HcPlyep64tCLbjKbqqhLzBlgKfF8pVE4FgRXABI+ioEnYfOyzcFWsCbg+OV+xlpU4ER4O+4HVwL51b3xYEXcGu4Ao+YQhr5gmdxHmsQyfG0b/YxbWmLfRWmnxa0s06VbTMCpnBS9zFzQKTwR5cXCzwHIE02Sl8wSZsRI/kgLVJqjSd+t9LVjiG1diPszhdK3A5gR48k5zYMTwscC59sfT799CYKvA8EttbSeXgTr3gJQKl91kR+yTlvyG5uUbLYh9gb+ovltkb6qYtNSRo3kOygsBSzGlKsubf43USWLYK5CLLXoFWyU/CtzLbVDpW2n+m40yN9ukqdvAX9ac/EIgOapcAAAAASUVORK5CYII=">
34
-
35
- <link rel="mask-icon" href="images/netdata.svg" color="red" />
20
+ <!-- <link rel="apple-touch-icon" sizes="57x57" href="images/apple-icon-57x57.png">
21
+ <link rel="apple-touch-icon" sizes="60x60" href="images/apple-icon-60x60.png">
22
+ <link rel="apple-touch-icon" sizes="72x72" href="images/apple-icon-72x72.png">
23
+ <link rel="apple-touch-icon" sizes="76x76" href="images/apple-icon-76x76.png">
24
+ <link rel="apple-touch-icon" sizes="114x114" href="images/apple-icon-114x114.png">
25
+ <link rel="apple-touch-icon" sizes="120x120" href="images/apple-icon-120x120.png">
26
+ <link rel="apple-touch-icon" sizes="144x144" href="images/apple-icon-144x144.png">
27
+ <link rel="apple-touch-icon" sizes="152x152" href="images/apple-icon-152x152.png">
28
+ <link rel="apple-touch-icon" sizes="180x180" href="images/apple-icon-180x180.png">
29
+ <link rel="icon" type="image/png" sizes="192x192" href="images/android-icon-192x192.png">
30
+ <link rel="icon" type="image/png" sizes="32x32" href="images/favicon-32x32.png">
31
+ <link rel="icon" type="image/png" sizes="96x96" href="images/favicon-96x96.png">
32
+ <link rel="icon" type="image/png" sizes="16x16" href="images/favicon-16x16.png">
33
+ <link rel="manifest" href="manifest.json">
34
+ <meta name="msapplication-TileColor" content="#ffffff">
35
+ <meta name="msapplication-TileImage" content="images/ms-icon-144x144.png">
36
+ <meta name="theme-color" content="#ffffff"> -->
37
38
<meta property="og:locale" content="en_US" />
39
<meta property="og:url" content="https://my-netdata.io" />
@@ -199,8 +200,6 @@
200
<i class="fas fa-circle"></i> <a href="https://fortawesome.github.io/Font-Awesome/" target="_blank">FontAwesome</a>,
201
<i class="fas fa-copyright"></i> Created by Dave Gandy, Font: <a href="http://scripts.sil.org/OFL" target="_blank">SIL OFL 1.1 License</a>, CSS: <a href="http://opensource.org/licenses/mit-license.html" target="_blank">MIT License</a>
202
202
- <i class="fas fa-circle"></i> <a href="http://www.iconsdb.com/soylent-red-icons/seo-performance-icon.html" target="_blank">IconsDB.com Icons</a>, Icons provided as CC0 1.0 Universal (CC0 1.0) Public Domain Dedication.
203
-
203
<i class="fas fa-circle"></i> <a href="http://bootstrap-table.wenzhixin.net.cn/" target="_blank">bootstrap-table</a>,
204
<i class="fas fa-copyright"></i> Copyright 2012-2016 Zhixin Wen, <a href="https://github.com/wenzhixin/bootstrap-table/blob/master/LICENSE" target="_blank">MIT License</a>
205
web/gui/manifest.json
new
+41
@@ -0,0 +1,41 @@
1
+{
2
+ "name": "App",
3
+ "icons": [
4
+ {
5
+ "src": "images\/android-icon-36x36.png",
6
+ "sizes": "36x36",
7
+ "type": "image\/png",
8
+ "density": "0.75"
9
+ },
10
+ {
11
+ "src": "images\/android-icon-48x48.png",
12
+ "sizes": "48x48",
13
+ "type": "image\/png",
14
+ "density": "1.0"
15
+ },
16
+ {
17
+ "src": "images\/android-icon-72x72.png",
18
+ "sizes": "72x72",
19
+ "type": "image\/png",
20
+ "density": "1.5"
21
+ },
22
+ {
23
+ "src": "images\/android-icon-96x96.png",
24
+ "sizes": "96x96",
25
+ "type": "image\/png",
26
+ "density": "2.0"
27
+ },
28
+ {
29
+ "src": "images\/android-icon-144x144.png",
30
+ "sizes": "144x144",
31
+ "type": "image\/png",
32
+ "density": "3.0"
33
+ },
34
+ {
35
+ "src": "images\/android-icon-192x192.png",
36
+ "sizes": "192x192",
37
+ "type": "image\/png",
38
+ "density": "4.0"
39
+ }
40
+ ]
41
+}
web/gui/src/dashboard.js/alarms.js
+1
-1
@@ -91,7 +91,7 @@ NETDATA.alarms = {
91
let status = entry.status.toLowerCase();
92
let title = name + ' = ' + value_string.toString();
93
let tag = entry.alarm_id;
94
- let icon = 'images/seo-performance-128.png';
94
+ let icon = 'images/banner-icon-144x144.png';
95
let interaction = false;
96
let data = entry;
97
let show = true;
web/gui/src/dashboard.js/compatibility.js
+3
-12
@@ -1,5 +1,6 @@
1
-// ------------------------------------------------------------------------
2
-// compatibility fixes
1
+// *** src/dashboard.js/compatibility.js
2
+
3
+// Compatibility fixes.
4
5
// fix IE issue with console
6
if (!window.console) {
@@ -28,13 +29,3 @@ if (typeof String.prototype.startsWith !== 'function') {
29
return this.slice(s.length) === s;
30
};
31
}
31
-
32
-NETDATA.name2id = function (s) {
33
- return s
34
- .replace(/ /g, '_')
35
- .replace(/:/g, '_')
36
- .replace(/\(/g, '_')
37
- .replace(/\)/g, '_')
38
- .replace(/\./g, '_')
39
- .replace(/\//g, '_');
40
-};
web/gui/src/dashboard.js/utils.js
+12
@@ -1,3 +1,15 @@
1
+// *** src/dashboard.js/utils.js
2
+
3
+NETDATA.name2id = function (s) {
4
+ return s
5
+ .replace(/ /g, '_')
6
+ .replace(/:/g, '_')
7
+ .replace(/\(/g, '_')
8
+ .replace(/\)/g, '_')
9
+ .replace(/\./g, '_')
10
+ .replace(/\//g, '_');
11
+};
12
+
13
NETDATA.encodeURIComponent = function (s) {
14
if (typeof(s) === 'string') {
15
return encodeURIComponent(s);