Skip to content

Commit ef716d0

Browse files
committed
implemented history API to webui
history back/forward now shows the intuitive, expected page
1 parent 5fc726a commit ef716d0

File tree

4 files changed

+37
-0
lines changed

4 files changed

+37
-0
lines changed

html/index_en.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1512,6 +1512,10 @@ <h4>Remove <span data-bind="text: pruning.profiles.profile"></span> from availab
15121512
ko.applyBindings(vm);
15131513
});
15141514

1515+
window.addEventListener('popstate', function(event) {
1516+
vm.restore_state(event.state);
1517+
})
1518+
15151519
</script>
15161520
<!--/ END JAVASCRIPT SECTION -->
15171521
</body>

html/index_nl.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1510,6 +1510,10 @@ <h4>Remove <span data-bind="text: pruning.profiles.profile"></span> from availab
15101510
ko.applyBindings(vm);
15111511
});
15121512

1513+
window.addEventListener('popstate', function(event) {
1514+
vm.restore_state(event.state);
1515+
})
1516+
15131517
</script>
15141518
<!--/ END JAVASCRIPT SECTION -->
15151519
</body>

html/index_ru.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1512,6 +1512,10 @@ <h4>Удалить <span data-bind="text: pruning.profiles.profile"></span> из
15121512
ko.applyBindings(vm);
15131513
});
15141514

1515+
window.addEventListener('popstate', function(event) {
1516+
vm.restore_state(event.state);
1517+
})
1518+
15151519
</script>
15161520
<!--/ END JAVASCRIPT SECTION -->
15171521
</body>

html/js/scriptin.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,30 @@ function webui() {
316316

317317
/* beginning root functions */
318318

319+
self.save_state = function() {
320+
var state_to_save = {
321+
page: self.page(),
322+
server: JSON.stringify(self.server()),
323+
profile: self.profile()
324+
}
325+
history.pushState(state_to_save, 'MineOS Web UI');
326+
}
327+
328+
self.restore_state = function(state) {
329+
var server = new model_server(JSON.parse(state.server));
330+
$('.container-fluid').hide();
331+
332+
if ($.isEmptyObject(server)) {
333+
self.server({})
334+
$('#dashboard').show();
335+
} else {
336+
self.server(server);
337+
self.page(state.page);
338+
$('.container-fluid').hide();
339+
$('#{0}'.format(self.page())).show();
340+
}
341+
}
342+
319343
self.toggle_loadaverages = function() {
320344
if (self.load_averages.autorefresh())
321345
self.load_averages.autorefresh(false);
@@ -362,6 +386,7 @@ function webui() {
362386

363387
$('.container-fluid').hide();
364388
$('#{0}'.format(self.page())).show();
389+
self.save_state();
365390
}
366391

367392
self.extract_required = function(required, element, vm) {

0 commit comments

Comments
 (0)