snapshots can be loaded repeatidly; snapshots cannot be saved while a snapshot is being saved; highlight are not remembered on snapshots
Costa Tsaousis (ktsaou) committed
Nov 18, 2017 at 17:58 UTC
e7cd8c332298eaac8cc4b173d3241738e71b7833
1 file changed
+43
-26
web/index.html
+43
-26
@@ -659,16 +659,18 @@
659
},
660
661
netdataHighlightCallback: function(status, after, before) {
662
- urlOptions.highlight = status;
663
- urlOptions.highlight_after = Math.round(after);
664
- urlOptions.highlight_before = Math.round(before);
665
- urlOptions.hashUpdate();
662
+ if(netdataSnapshotData === null) {
663
+ urlOptions.highlight = status;
664
+ urlOptions.highlight_after = Math.round(after);
665
+ urlOptions.highlight_before = Math.round(before);
666
+ urlOptions.hashUpdate();
667
+ }
668
669
if(status === true) {
668
- var d1 = NETDATA.dateTime.localeDateString(urlOptions.highlight_after);
669
- var d2 = NETDATA.dateTime.localeDateString(urlOptions.highlight_before);
670
+ var d1 = NETDATA.dateTime.localeDateString(after);
671
+ var d2 = NETDATA.dateTime.localeDateString(before);
672
if(d1 === d2) d2 = '';
671
- document.getElementById('navbar-highlight-content').innerHTML = 'Highlighted timeframe <b>' + d1 + ' <code>' + NETDATA.dateTime.localeTimeString(urlOptions.highlight_after) + '</code></b> to <b>' + d2 + ' <code>' + NETDATA.dateTime.localeTimeString(urlOptions.highlight_before) + '</code></b>, duration <b>' + NETDATA.seconds4human(Math.round((urlOptions.highlight_before - urlOptions.highlight_after) / 1000)) + '</b> <span onclick="urlOptions.clearHighlight();" style="padding-left: 10px;"><i class="fa fa-times" aria-hidden="true"></i></span>';
673
+ document.getElementById('navbar-highlight-content').innerHTML = 'Highlighted timeframe <b>' + d1 + ' <code>' + NETDATA.dateTime.localeTimeString(after) + '</code></b> to <b>' + d2 + ' <code>' + NETDATA.dateTime.localeTimeString(before) + '</code></b>, duration <b>' + NETDATA.seconds4human(Math.round((before - after) / 1000)) + '</b> <span onclick="urlOptions.clearHighlight();" style="padding-left: 10px;"><i class="fa fa-times" aria-hidden="true"></i></span>';
674
$('.navbar-highlight').show();
675
}
676
else
@@ -2642,7 +2644,7 @@
2644
if(netdataSnapshotData !== null) {
2645
$('#alarmsButton').hide();
2646
$('#updateButton').hide();
2645
- $('#loadButton').hide();
2647
+ // $('#loadButton').hide();
2648
$('#saveButton').hide();
2649
$('#printButton').hide();
2650
}
@@ -3060,6 +3062,8 @@
3062
3063
var tmpSnapshotData = null;
3064
function loadSnapshot() {
3065
+ $('#loadSnapshotImport').addClass('disabled');
3066
+
3067
if(tmpSnapshotData === null) {
3068
loadSnapshotModalLog('danger', 'no data have been loaded');
3069
return;
@@ -3083,17 +3087,6 @@
3087
else
3088
urlOptions.hash = '#';
3089
3086
- if( typeof tmpSnapshotData.highlight_after_ms !== 'undefined' && tmpSnapshotData.highlight_after_ms !== null && typeof tmpSnapshotData.highlight_before_ms !== 'undefined' && tmpSnapshotData.highlight_before_ms !== null) {
3087
- urlOptions.highlight = true;
3088
- urlOptions.highlight_after = tmpSnapshotData.highlight_after_ms;
3089
- urlOptions.highlight_before = tmpSnapshotData.highlight_before_ms;
3090
- }
3091
- else {
3092
- urlOptions.highlight = false;
3093
- urlOptions.highlight_after = 0;
3094
- urlOptions.highlight_before = 0;
3095
- }
3096
-
3090
if (typeof tmpSnapshotData.info !== 'undefined') {
3091
var info = jsonParseFn(tmpSnapshotData.info);
3092
if (typeof info.menu !== 'undefined')
@@ -3115,10 +3108,20 @@
3108
}
3109
3110
tmpSnapshotData.uncompress = snapshotOptions.compressions[tmpSnapshotData.compression].uncompress;
3118
-
3111
netdataSnapshotData = tmpSnapshotData;
3120
- initializeDynamicDashboard(netdataSnapshotData.url);
3112
3113
+ if( typeof tmpSnapshotData.highlight_after_ms !== 'undefined' && tmpSnapshotData.highlight_after_ms !== null && typeof tmpSnapshotData.highlight_before_ms !== 'undefined' && tmpSnapshotData.highlight_before_ms !== null) {
3114
+ NETDATA.options.highlight_after = tmpSnapshotData.highlight_after_ms;
3115
+ NETDATA.options.highlight_before = tmpSnapshotData.highlight_before_ms;
3116
+ urlOptions.netdataHighlightCallback(true, tmpSnapshotData.highlight_after_ms, tmpSnapshotData.highlight_before_ms);
3117
+ }
3118
+ else {
3119
+ NETDATA.options.highlight_after = null;
3120
+ NETDATA.options.highlight_before = null;
3121
+ urlOptions.netdataHighlightCallback(false, 0, 0);
3122
+ }
3123
+
3124
+ initializeDynamicDashboard(netdataSnapshotData.url);
3125
$('#loadSnapshotModal').modal('hide');
3126
});
3127
});
@@ -3127,6 +3130,14 @@
3130
function loadSnapshotPreflight() {
3131
var files = document.getElementById('loadSnapshotSelectFiles').files;
3132
if (files.length <= 0) {
3133
+ document.getElementById('loadSnapshotFilename').innerHTML = '';
3134
+ document.getElementById('loadSnapshotHostname').innerHTML = '';
3135
+ document.getElementById('loadSnapshotURL').innerHTML = '';
3136
+ document.getElementById('loadSnapshotCharts').innerHTML = '';
3137
+ document.getElementById('loadSnapshotInfo').innerHTML = '';
3138
+ document.getElementById('loadSnapshotTimeRange').innerHTML = '';
3139
+ document.getElementById('loadSnapshotComments').innerHTML = '';
3140
+ $('#loadSnapshotImport').addClass('disabled');
3141
loadSnapshotModalLog('danger', 'No file selected');
3142
return;
3143
}
@@ -3165,8 +3176,7 @@
3176
document.getElementById('loadSnapshotTimeRange').innerHTML = '<b>' + NETDATA.dateTime.localeDateString(date_after) + ' ' + NETDATA.dateTime.localeTimeString(date_after) + '</b> to <b>' + NETDATA.dateTime.localeDateString(date_before) + ' ' + NETDATA.dateTime.localeTimeString(date_before) + '</b>';
3177
document.getElementById('loadSnapshotComments').innerHTML = ((result.comments)?result.comments:'').toString();
3178
loadSnapshotModalLog('success', 'File loaded, click <b>Import</b> to render it!');
3168
- $('#loadSnapshotImport').prop('disabled', false);
3169
- $('#loadSnapshotImport').removeAttr('disabled');
3179
+ $('#loadSnapshotImport').removeClass('disabled');
3180
3181
tmpSnapshotData = result;
3182
}
@@ -3174,6 +3184,7 @@
3184
console.log(e);
3185
document.getElementById('loadSnapshotStatus').className = "alert alert-danger";
3186
document.getElementById('loadSnapshotStatus').innerHTML = "Failed to parse this file!";
3187
+ $('#loadSnapshotImport').addClass('disabled');
3188
}
3189
}
3190
@@ -3239,6 +3250,7 @@
3250
$('#saveSnapshotModalProgressSection').hide();
3251
$('#saveSnapshotResolutionRadio').show();
3252
saveSnapshotModalLog('info', 'Select resolution and click <b>Save</b>');
3253
+ $('#saveSnapshotExport').removeClass('disabled');
3254
3255
loadBootstrapSlider(function() {
3256
saveSnapshotViewDuration = options.duration;
@@ -3307,6 +3319,8 @@
3319
saveSnapshotStop = false;
3320
$('#saveSnapshotModalProgressSection').show();
3321
$('#saveSnapshotResolutionRadio').hide();
3322
+ $('#saveSnapshotExport').addClass('disabled');
3323
+
3324
var filename = document.getElementById('saveSnapshotFilename').value;
3325
// console.log(filename);
3326
saveSnapshotModalLog('info', 'Generating snapshot as <code>' + filename.toString() + '</code>');
@@ -3428,6 +3442,8 @@
3442
NETDATA.onscroll_updater_enabled = true;
3443
NETDATA.onresize();
3444
NETDATA.unpause();
3445
+
3446
+ $('#saveSnapshotExport').removeClass('disabled');
3447
}
3448
3449
NETDATA.pause(function () {
@@ -3438,6 +3454,7 @@
3454
NETDATA.abort_all_refreshes();
3455
3456
var size = 0;
3457
+ var info = ' Resolution: <b>' + saveSnapshotSelectedSecondsPerPoint.toString() + ((saveSnapshotSelectedSecondsPerPoint === 1)?' second ':' seconds ').toString() + 'per point</b>.';
3458
3459
function update_chart(idx) {
3460
if (saveSnapshotStop === true) {
@@ -3472,7 +3489,7 @@
3489
state.log('failed to be updated: ' + reason);
3490
}
3491
3475
- saveSnapshotModalLog((charts_failed) ? 'danger' : 'info', 'Generated size ' + (Math.round(size * 100 / 1024 / 1024) / 100).toString() + ' MB. ' + ((charts_failed) ? (charts_failed.toString() + ' charts have failed to be downloaded') : '').toString());
3492
+ saveSnapshotModalLog((charts_failed) ? 'danger' : 'info', 'Generated snapshot data size <b>' + (Math.round(size * 100 / 1024 / 1024) / 100).toString() + ' MB</b>. ' + ((charts_failed) ? (charts_failed.toString() + ' charts have failed to be downloaded') : '').toString() + info);
3493
3494
if (idx > 0) {
3495
update_chart(idx);
@@ -3655,7 +3672,7 @@
3672
NETDATA.globalPanAndZoom.callback = urlOptions.netdataPanAndZoomCallback;
3673
NETDATA.options.highlightCallback = urlOptions.netdataHighlightCallback;
3674
3658
- if(urlOptions.highlight === true) {
3675
+ if(netdataSnapshotData !== null && urlOptions.highlight === true) {
3676
NETDATA.options.highlight_after = urlOptions.highlight_after;
3677
NETDATA.options.highlight_before = urlOptions.highlight_before;
3678
urlOptions.netdataHighlightCallback(urlOptions.highlight, urlOptions.highlight_after, urlOptions.highlight_before);
@@ -4310,7 +4327,7 @@
4327
</p>
4328
</div>
4329
<div class="modal-footer">
4313
- <a id="loadSnapshotImport" href="#" onclick="loadSnapshot(); return false;" type="button" class="btn btn-success btn-disabled" disabled>Import</a>
4330
+ <a id="loadSnapshotImport" href="#" onclick="loadSnapshot(); return false;" type="button" class="btn btn-success disabled">Import</a>
4331
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
4332
</div>
4333
</div>