From 1d3847ec8e47c1fec1e1e110f024278a711129fa Mon Sep 17 00:00:00 2001 From: Michael Lu <38804680+Yamazaki93@users.noreply.github.com> Date: Sun, 20 Oct 2019 17:07:24 -0700 Subject: [PATCH] Add functional update checking, change header text color --- app/frontend/src/app/app.module.ts | 6 +++- .../requests-list.component.html | 2 +- .../server-list/server-list.component.html | 2 +- .../settings-page.component.html | 21 +++++++++++-- .../settings-page/settings-page.component.ts | 30 +++++++++++++++++-- .../src/app/settings/settings.module.ts | 6 +++- .../src/app/updater/updater.module.ts | 27 +++++++++++++++-- .../src/app/updater/updater.service.ts | 2 +- .../connection/connection.component.html | 4 +-- 9 files changed, 87 insertions(+), 13 deletions(-) diff --git a/app/frontend/src/app/app.module.ts b/app/frontend/src/app/app.module.ts index 75b1149..d649446 100644 --- a/app/frontend/src/app/app.module.ts +++ b/app/frontend/src/app/app.module.ts @@ -9,6 +9,8 @@ import { ServersModule } from './servers/servers.module'; import { WorkspaceModule } from './workspace/workspace.module'; import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor'; import { RequestsModule } from './requests/requests.module'; +import { UpdaterModule } from './updater/updater.module'; +import { SettingsModule } from './settings/settings.module'; @NgModule({ @@ -20,11 +22,13 @@ import { RequestsModule } from './requests/requests.module'; CommonModule, BrowserAnimationsModule, MonacoEditorModule, + UpdaterModule, MessagingModule, ControlsModule, ServersModule, WorkspaceModule, - RequestsModule + RequestsModule, + SettingsModule ], providers: [ ], diff --git a/app/frontend/src/app/requests/requests-list/requests-list.component.html b/app/frontend/src/app/requests/requests-list/requests-list.component.html index 5481390..3109d4d 100644 --- a/app/frontend/src/app/requests/requests-list/requests-list.component.html +++ b/app/frontend/src/app/requests/requests-list/requests-list.component.html @@ -1,7 +1,7 @@
-

Requests

+

Requests

diff --git a/app/frontend/src/app/servers/server-list/server-list.component.html b/app/frontend/src/app/servers/server-list/server-list.component.html index 0ee6a98..69d384e 100644 --- a/app/frontend/src/app/servers/server-list/server-list.component.html +++ b/app/frontend/src/app/servers/server-list/server-list.component.html @@ -1,7 +1,7 @@
-

Servers

+

Servers

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

Request

Ctrl + Enter

-

Response

+

Response

{{err}}