@cryptotaxi247 / netdata-1 / commits / 08cc6edad

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>