@cryptotaxi247 / netdata-1 / commits / e7cd8c332

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>