allow setting a different server for all static content of the dashboard; initialize the dashboard when it is loaded on a tab that does not have focus
Costa Tsaousis (ktsaou) committed
Dec 5, 2017 at 20:35 UTC
08cc6edade4c3b340892d637d4fd25fecded2c53
2 files changed
+53
-33
web/dashboard.js
+46
-28
@@ -45,6 +45,8 @@
45
* (default: null) */
46
/*global netdataServer *//* string, the URL of the netdata server to use
47
* (default: the URL the page is hosted at) */
48
+/*global netdataServerStatic *//* string, the URL of the netdata server to use for static files
49
+ * (default: netdataServer) */
50
/*global netdataSnapshotData *//* object, a netdata snapshot loaded
51
* (default: null) */
52
@@ -125,28 +127,38 @@ var NETDATA = window.NETDATA || {};
127
else if(NETDATA.serverDefault.slice(-1) !== '/')
128
NETDATA.serverDefault += '/';
129
130
+ if(typeof netdataServerStatic !== 'undefined' && netdataServerStatic !== null && netdataServerStatic !== '') {
131
+ NETDATA.serverStatic = netdataServerStatic;
132
+ if(NETDATA.serverStatic.slice(-1) !== '/')
133
+ NETDATA.serverStatic += '/';
134
+ }
135
+ else {
136
+ NETDATA.serverStatic = NETDATA.serverDefault;
137
+ }
138
+
139
+
140
// default URLs for all the external files we need
141
// make them RELATIVE so that the whole thing can also be
142
// installed under a web server
131
- NETDATA.jQuery = NETDATA.serverDefault + 'lib/jquery-2.2.4.min.js';
132
- NETDATA.peity_js = NETDATA.serverDefault + 'lib/jquery.peity-3.2.0.min.js';
133
- NETDATA.sparkline_js = NETDATA.serverDefault + 'lib/jquery.sparkline-2.1.2.min.js';
134
- NETDATA.easypiechart_js = NETDATA.serverDefault + 'lib/jquery.easypiechart-97b5824.min.js';
135
- NETDATA.gauge_js = NETDATA.serverDefault + 'lib/gauge-1.3.2.min.js';
136
- NETDATA.dygraph_js = NETDATA.serverDefault + 'lib/dygraph-combined-dd74404.js';
137
- NETDATA.dygraph_smooth_js = NETDATA.serverDefault + 'lib/dygraph-smooth-plotter-dd74404.js';
138
- NETDATA.raphael_js = NETDATA.serverDefault + 'lib/raphael-2.2.4-min.js';
139
- NETDATA.c3_js = NETDATA.serverDefault + 'lib/c3-0.4.11.min.js';
140
- NETDATA.c3_css = NETDATA.serverDefault + 'css/c3-0.4.11.min.css';
141
- NETDATA.d3_js = NETDATA.serverDefault + 'lib/d3-3.5.17.min.js';
142
- NETDATA.morris_js = NETDATA.serverDefault + 'lib/morris-0.5.1.min.js';
143
- NETDATA.morris_css = NETDATA.serverDefault + 'css/morris-0.5.1.css';
143
+ NETDATA.jQuery = NETDATA.serverStatic + 'lib/jquery-2.2.4.min.js';
144
+ NETDATA.peity_js = NETDATA.serverStatic + 'lib/jquery.peity-3.2.0.min.js';
145
+ NETDATA.sparkline_js = NETDATA.serverStatic + 'lib/jquery.sparkline-2.1.2.min.js';
146
+ NETDATA.easypiechart_js = NETDATA.serverStatic + 'lib/jquery.easypiechart-97b5824.min.js';
147
+ NETDATA.gauge_js = NETDATA.serverStatic + 'lib/gauge-1.3.2.min.js';
148
+ NETDATA.dygraph_js = NETDATA.serverStatic + 'lib/dygraph-combined-dd74404.js';
149
+ NETDATA.dygraph_smooth_js = NETDATA.serverStatic + 'lib/dygraph-smooth-plotter-dd74404.js';
150
+ NETDATA.raphael_js = NETDATA.serverStatic + 'lib/raphael-2.2.4-min.js';
151
+ NETDATA.c3_js = NETDATA.serverStatic + 'lib/c3-0.4.11.min.js';
152
+ NETDATA.c3_css = NETDATA.serverStatic + 'css/c3-0.4.11.min.css';
153
+ NETDATA.d3_js = NETDATA.serverStatic + 'lib/d3-3.5.17.min.js';
154
+ NETDATA.morris_js = NETDATA.serverStatic + 'lib/morris-0.5.1.min.js';
155
+ NETDATA.morris_css = NETDATA.serverStatic + 'css/morris-0.5.1.css';
156
NETDATA.google_js = 'https://www.google.com/jsapi';
157
158
NETDATA.themes = {
159
white: {
148
- bootstrap_css: NETDATA.serverDefault + 'css/bootstrap-3.3.7.css',
149
- dashboard_css: NETDATA.serverDefault + 'dashboard.css?v20171127-1',
160
+ bootstrap_css: NETDATA.serverStatic + 'css/bootstrap-3.3.7.css',
161
+ dashboard_css: NETDATA.serverStatic + 'dashboard.css?v20171127-1',
162
background: '#FFFFFF',
163
foreground: '#000000',
164
grid: '#F0F0F0',
@@ -163,8 +175,8 @@ var NETDATA = window.NETDATA || {};
175
gauge_gradient: false
176
},
177
slate: {
166
- bootstrap_css: NETDATA.serverDefault + 'css/bootstrap-slate-flat-3.3.7.css?v20161229-1',
167
- dashboard_css: NETDATA.serverDefault + 'dashboard.slate.css?v20171127-1',
178
+ bootstrap_css: NETDATA.serverStatic + 'css/bootstrap-slate-flat-3.3.7.css?v20161229-1',
179
+ dashboard_css: NETDATA.serverStatic + 'dashboard.slate.css?v20171127-1',
180
background: '#272b30',
181
foreground: '#C8C8C8',
182
grid: '#283236',
@@ -5133,6 +5145,7 @@ var NETDATA = window.NETDATA || {};
5145
5146
// the default refresher
5147
NETDATA.chartRefresherLastRun = 0;
5148
+ NETDATA.chartRefresherRunsAfterParseDom = 0;
5149
NETDATA.chartRefresherTimeoutId = undefined;
5150
5151
NETDATA.chartRefresherReschedule = function() {
@@ -5145,19 +5158,23 @@ var NETDATA = window.NETDATA || {};
5158
};
5159
5160
NETDATA.chartRefresher = function() {
5148
- //console.log('chartRefresher() begin ' + (now - NETDATA.chartRefresherLastRun).toString() + ' ms since last run');
5161
+ // console.log('chartRefresher() begin ' + (Date.now() - NETDATA.chartRefresherLastRun).toString() + ' ms since last run');
5162
5163
if(NETDATA.options.page_is_visible === false
5164
&& NETDATA.options.current.stop_updates_when_focus_is_lost === true
5165
&& NETDATA.chartRefresherLastRun > NETDATA.options.last_page_resize
5166
&& NETDATA.chartRefresherLastRun > NETDATA.options.last_page_scroll
5167
+ && NETDATA.chartRefresherRunsAfterParseDom > 10
5168
) {
5169
setTimeout(
5170
NETDATA.chartRefresher,
5171
NETDATA.options.current.idle_lost_focus
5172
);
5173
+
5174
+ // console.log('chartRefresher() page without focus, will run in ' + NETDATA.options.current.idle_lost_focus.toString() + ' ms, ' + NETDATA.chartRefresherRunsAfterParseDom.toString());
5175
return;
5176
}
5177
+ NETDATA.chartRefresherRunsAfterParseDom++;
5178
5179
var now = Date.now();
5180
NETDATA.chartRefresherLastRun = now;
@@ -5168,7 +5185,7 @@ var NETDATA = window.NETDATA || {};
5185
NETDATA.chartRefresherWaitTime()
5186
);
5187
5171
- //console.log('chartRefresher() end1 will run in ' + NETDATA.chartRefresherWaitTime().toString() + ' ms');
5188
+ // console.log('chartRefresher() end1 will run in ' + NETDATA.chartRefresherWaitTime().toString() + ' ms');
5189
return;
5190
}
5191
@@ -5178,7 +5195,7 @@ var NETDATA = window.NETDATA || {};
5195
NETDATA.chartRefresherWaitTime()
5196
);
5197
5181
- //console.log('chartRefresher() end2 will run in ' + NETDATA.chartRefresherWaitTime().toString() + ' ms');
5198
+ // console.log('chartRefresher() end2 will run in ' + NETDATA.chartRefresherWaitTime().toString() + ' ms');
5199
return;
5200
}
5201
@@ -5189,7 +5206,7 @@ var NETDATA = window.NETDATA || {};
5206
NETDATA.chartRefresherWaitTime()
5207
);
5208
5192
- //console.log('chartRefresher() end3 will run in ' + NETDATA.chartRefresherWaitTime().toString() + ' ms');
5209
+ // console.log('chartRefresher() end3 will run in ' + NETDATA.chartRefresherWaitTime().toString() + ' ms');
5210
return;
5211
}
5212
@@ -5200,7 +5217,7 @@ var NETDATA = window.NETDATA || {};
5217
NETDATA.options.pauseCallback();
5218
NETDATA.chartRefresher();
5219
5203
- //console.log('chartRefresher() end4 (nested)');
5220
+ // console.log('chartRefresher() end4 (nested)');
5221
return;
5222
}
5223
@@ -5212,7 +5229,7 @@ var NETDATA = window.NETDATA || {};
5229
NETDATA.options.current.idle_between_loops
5230
);
5231
});
5215
- //console.log('chartRefresher() end5 (no parallel, nested)');
5232
+ // console.log('chartRefresher() end5 (no parallel, nested)');
5233
return;
5234
}
5235
@@ -5221,7 +5238,7 @@ var NETDATA = window.NETDATA || {};
5238
// get the dom parts again
5239
// console.log('auto-refresher is calling parseDom()');
5240
NETDATA.parseDom(NETDATA.chartRefresher);
5224
- //console.log('chartRefresher() end6 (parseDom)');
5241
+ // console.log('chartRefresher() end6 (parseDom)');
5242
return;
5243
}
5244
@@ -5280,6 +5297,7 @@ var NETDATA = window.NETDATA || {};
5297
5298
NETDATA.options.last_page_scroll = Date.now();
5299
NETDATA.options.updated_dom = false;
5300
+ NETDATA.chartRefresherRunsAfterParseDom = 0;
5301
5302
var targets = $('div[data-netdata]'); //.filter(':visible');
5303
@@ -7774,7 +7792,7 @@ var NETDATA = window.NETDATA || {};
7792
7793
NETDATA.requiredJs = [
7794
{
7777
- url: NETDATA.serverDefault + 'lib/bootstrap-3.3.7.min.js',
7795
+ url: NETDATA.serverStatic + 'lib/bootstrap-3.3.7.min.js',
7796
async: false,
7797
isAlreadyLoaded: function() {
7798
// check if bootstrap is loaded
@@ -7786,7 +7804,7 @@ var NETDATA = window.NETDATA || {};
7804
}
7805
},
7806
{
7789
- url: NETDATA.serverDefault + 'lib/perfect-scrollbar-0.6.15.min.js',
7807
+ url: NETDATA.serverStatic + 'lib/perfect-scrollbar-0.6.15.min.js',
7808
isAlreadyLoaded: function() { return false; }
7809
}
7810
];
@@ -7799,7 +7817,7 @@ var NETDATA = window.NETDATA || {};
7817
}
7818
},
7819
{
7802
- url: NETDATA.serverDefault + 'css/font-awesome.min.css?v4.7.0',
7820
+ url: NETDATA.serverStatic + 'css/font-awesome.min.css?v4.7.0',
7821
isAlreadyLoaded: function() { return false; }
7822
},
7823
{
@@ -7999,7 +8017,7 @@ var NETDATA = window.NETDATA || {};
8017
body: entry.hostname + ' - ' + entry.chart + ' (' + entry.family + ') - ' + status + ': ' + entry.info,
8018
tag: tag,
8019
requireInteraction: interaction,
8002
- icon: NETDATA.serverDefault + icon,
8020
+ icon: NETDATA.serverStatic + icon,
8021
data: data
8022
});
8023
web/index.html
+7
-5
@@ -632,8 +632,10 @@
632
}
633
}
634
635
- if(urlOptions.server !== null && urlOptions.server !== '')
635
+ if(urlOptions.server !== null && urlOptions.server !== '') {
636
+ netdataServerStatic = document.location.origin.toString() + document.location.pathname.toString();
637
netdataServer = urlOptions.server;
638
+ }
639
else
640
urlOptions.server = null;
641
@@ -4251,17 +4253,17 @@
4253
// parallel javascript downloader in netdata
4254
var netdataPrepCallback = function() {
4255
NETDATA.requiredCSS.push({
4254
- url: NETDATA.serverDefault + 'css/bootstrap-toggle-2.2.2.min.css',
4256
+ url: NETDATA.serverStatic + 'css/bootstrap-toggle-2.2.2.min.css',
4257
isAlreadyLoaded: function() { return false; }
4258
});
4259
4260
NETDATA.requiredJs.push({
4259
- url: NETDATA.serverDefault + 'lib/bootstrap-toggle-2.2.2.min.js',
4261
+ url: NETDATA.serverStatic + 'lib/bootstrap-toggle-2.2.2.min.js',
4262
isAlreadyLoaded: function() { return false; }
4263
});
4264
4265
NETDATA.requiredJs.push({
4264
- url: NETDATA.serverDefault + 'dashboard_info.js?v20171107-1',
4266
+ url: NETDATA.serverStatic + 'dashboard_info.js?v20171107-1',
4267
async: false,
4268
isAlreadyLoaded: function() { return false; }
4269
});
@@ -5541,6 +5543,6 @@
5543
</div>
5544
</div>
5545
<div id="hiddenDownloadLinks" style="display: none;" hidden></div>
5544
- <script type="text/javascript" src="dashboard.js?v20171130-1"></script>
5546
+ <script type="text/javascript" src="dashboard.js?v20171205-4"></script>
5547
</body>
5548
</html>