diff --git a/app/frontend/src/app/settings/settings-page/settings-page.component.html b/app/frontend/src/app/settings/settings-page/settings-page.component.html
index c8f92f5..4123d6e 100644
--- a/app/frontend/src/app/settings/settings-page/settings-page.component.html
+++ b/app/frontend/src/app/settings/settings-page/settings-page.component.html
@@ -1,9 +1,26 @@
-
Updates
+
Updates
+
+
+
No update available
+ New version available: {{newVersion}}
+ Downloading...
+ Checking for update...
+ Installing update...
+
+
+
+
+
-
About
+
About
Version 0.1.0
License MIT
diff --git a/app/frontend/src/app/settings/settings-page/settings-page.component.ts b/app/frontend/src/app/settings/settings-page/settings-page.component.ts
index e7b9cbc..96c4379 100644
--- a/app/frontend/src/app/settings/settings-page/settings-page.component.ts
+++ b/app/frontend/src/app/settings/settings-page/settings-page.component.ts
@@ -1,15 +1,41 @@
import { Component, OnInit } from '@angular/core';
+import { UpdaterStatus, UpdaterService } from 'src/app/updater/updater.service';
+import { SubscriptionComponent } from 'src/app/helpers/subscription-component';
@Component({
selector: 'app-settings-page',
templateUrl: './settings-page.component.html',
styleUrls: ['./settings-page.component.scss']
})
-export class SettingsPageComponent implements OnInit {
+export class SettingsPageComponent extends SubscriptionComponent implements OnInit {
+
+ private status = UpdaterStatus.NoUpdateAvailable;
+ private UpdaterStatus = UpdaterStatus;
+ private downloadProgress = 0;
+ private newVersion = '';
+ constructor(
+ private updater: UpdaterService
+ ) {
+ super();
+ }
- constructor() { }
ngOnInit() {
+ this.recordSubscription(this.updater.updaterStatus.subscribe(ua => {
+ this.status = ua;
+ }));
+ this.recordSubscription(this.updater.updateVersion.subscribe(version => {
+ this.newVersion = version;
+ }));
+ this.recordSubscription(this.updater.updateDownloadProgress.subscribe(pgs => {
+ this.downloadProgress = pgs;
+ }));
+ }
+ checkUpdate() {
+ this.updater.checkUpdate();
+ }
+ install() {
+ this.updater.installUpdate();
}
}
diff --git a/app/frontend/src/app/settings/settings.module.ts b/app/frontend/src/app/settings/settings.module.ts
index 0a49fe4..542cd91 100644
--- a/app/frontend/src/app/settings/settings.module.ts
+++ b/app/frontend/src/app/settings/settings.module.ts
@@ -3,6 +3,8 @@ import { CommonModule } from '@angular/common';
import { SettingsPageComponent } from './settings-page/settings-page.component';
import { FormsModule } from '@angular/forms';
import { WorkspaceModule } from '../workspace/workspace.module';
+import { ControlsModule } from '../controls/controls.module';
+import { UpdaterModule } from '../updater/updater.module';
@NgModule({
declarations: [SettingsPageComponent],
@@ -11,7 +13,9 @@ import { WorkspaceModule } from '../workspace/workspace.module';
imports: [
CommonModule,
FormsModule,
- WorkspaceModule
+ WorkspaceModule,
+ UpdaterModule,
+ ControlsModule
]
})
export class SettingsModule { }
diff --git a/app/frontend/src/app/updater/updater.module.ts b/app/frontend/src/app/updater/updater.module.ts
index 3333810..f6c117c 100644
--- a/app/frontend/src/app/updater/updater.module.ts
+++ b/app/frontend/src/app/updater/updater.module.ts
@@ -1,10 +1,33 @@
-import { NgModule } from '@angular/core';
+import { NgModule, APP_INITIALIZER } from '@angular/core';
import { CommonModule } from '@angular/common';
+import { UpdaterService } from './updater.service';
+import { MessagingModule } from '../messaging/messaging.module';
@NgModule({
declarations: [],
imports: [
- CommonModule
+ CommonModule,
+ MessagingModule
+ ],
+ providers: [
+ UpdaterService,
+ {
+ provide: APP_INITIALIZER,
+ useFactory: initModule,
+ multi: true,
+ deps: [
+ UpdaterService,
+ ]
+ },
]
})
export class UpdaterModule { }
+
+function initModule(
+ us: UpdaterService,
+): () => Promise
{
+ return (): Promise => {
+ us.init();
+ return Promise.resolve();
+ };
+}
diff --git a/app/frontend/src/app/updater/updater.service.ts b/app/frontend/src/app/updater/updater.service.ts
index 0108c57..e3446f0 100644
--- a/app/frontend/src/app/updater/updater.service.ts
+++ b/app/frontend/src/app/updater/updater.service.ts
@@ -40,7 +40,7 @@ export class UpdaterService {
that.electron.Send(new UpdaterCommand('commence-install-update'));
}, 7 * 1000);
} else if (evt.Event === 'checking') {
- if (evt.Arg.inProgress) {
+ if (evt.Arg) {
this.statusSubject.next(UpdaterStatus.CheckingUpdate);
}
}
diff --git a/app/frontend/src/app/websocket-servers/connection/connection.component.html b/app/frontend/src/app/websocket-servers/connection/connection.component.html
index dba3637..ef4b6a6 100644
--- a/app/frontend/src/app/websocket-servers/connection/connection.component.html
+++ b/app/frontend/src/app/websocket-servers/connection/connection.component.html
@@ -1,5 +1,5 @@
-
Request
+
Request
-
Response
+ Response
{{err}}