mirror of
https://github.com/avatao-content/frontend-tutorial-framework
synced 2024-11-01 10:31:22 +00:00
Implement state recovery, make ask before reload opt-in
This commit is contained in:
parent
362804f54d
commit
bc50d52f4d
@ -17,10 +17,12 @@ export class AppComponent implements OnInit {
|
||||
|
||||
ngOnInit() {
|
||||
this.titleService.setTitle(this.documentTitle);
|
||||
window.addEventListener('beforeunload', (event) => {
|
||||
const confirmationMessage = 'Refreshing this page may mess up your challenge/tutorial state. Are you sure?';
|
||||
event.returnValue = confirmationMessage;
|
||||
return confirmationMessage;
|
||||
});
|
||||
if (config.dashboard.askReloadSite) {
|
||||
window.addEventListener('beforeunload', (event) => {
|
||||
const confirmationMessage = 'Refreshing this page may mess up your challenge/tutorial state. Are you sure?';
|
||||
event.returnValue = confirmationMessage;
|
||||
return confirmationMessage;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,8 @@ export const config = {
|
||||
dashboard: {
|
||||
route: 'dashboard',
|
||||
triggerFirstFSMStep: 'step_1',
|
||||
askReloadSite: false,
|
||||
recoverAfterPageReload: true,
|
||||
terminalOrConsole: 'terminal',
|
||||
currentLayout: 'terminal-ide-web',
|
||||
enabledLayouts: [
|
||||
|
@ -44,6 +44,7 @@ export class DashboardComponent implements OnInit, OnDestroy {
|
||||
this.initCommandHandling();
|
||||
this.initDeploymentNotifications();
|
||||
this.triggerFirstFSMStepIfNeeded();
|
||||
this.recoverIfNeeded();
|
||||
}
|
||||
|
||||
initCommandHandling() {
|
||||
@ -74,6 +75,12 @@ export class DashboardComponent implements OnInit, OnDestroy {
|
||||
}
|
||||
}
|
||||
|
||||
recoverIfNeeded() {
|
||||
if (config.dashboard.recoverAfterPageReload) {
|
||||
setTimeout(() => this.webSocketService.sendJSON({'key': 'recover'}));
|
||||
}
|
||||
}
|
||||
|
||||
layoutHandler(data: LayoutCommand) {
|
||||
if (config.dashboard.enabledLayouts.includes(data.value)) {
|
||||
this.setLayout(data.value);
|
||||
|
Loading…
Reference in New Issue
Block a user