enable and disable auto check for updates

This commit is contained in:
Matt Hill
2021-01-16 10:22:57 -07:00
committed by Aiden McClelland
parent 0c7eae7333
commit fc9b3a6d69
10 changed files with 37 additions and 27 deletions

View File

@@ -1,5 +1,5 @@
<ion-item button lines="none" *ngIf="updateAvailable$ | async as version" (click)="confirmUpdate(version)">
<ion-label>
New Embassy OS Version {{version | displayEmver}} Available!
New EmbassyOS Version {{version | displayEmver}} Available!
</ion-label>
</ion-item>

View File

@@ -23,8 +23,8 @@ export class UpdateOsBannerComponent {
async confirmUpdate (versionLatest: string) {
const alert = await this.alertCtrl.create({
header: `Update Embassy OS`,
message: `Are you sure you want to update your Embassy OS to version ${versionLatest}?`,
header: `Update EmbassyOS`,
message: `Update EmbassyOS to version ${versionLatest}?`,
buttons: [
{
text: 'Cancel',

View File

@@ -6,27 +6,29 @@
</ion-button>
</ion-buttons>
<ion-title >
<ion-label style="font-size: 20px;" class="ion-text-wrap">Welcome to {{ version }}</ion-label>
<ion-label style="font-size: 20px;" class="ion-text-wrap">Welcome to EmbassyOS {{ version }}!</ion-label>
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content class="ion-padding">
<div>
<h2>Overview</h2>
<p>
0.2.8 is a small but important update designed to enhance awareness around potential pitfalls of using certain services.
It introduces warnings for installing, uninstalling, backing up, and restoring backups of stateful services such as LND or c-lightning.
0.2.8 also draws a distinction between services that can be launched inside the browser and those that are designed to run in the background.
</p>
</div>
<h2>Highlights</h2>
<p>
0.2.8 is a small but important update designed to enhance awareness around potential pitfalls of using certain services.
It introduces warnings for installing, uninstalling, backing up, and restoring backups of stateful services such as LND or c-lightning.
0.2.8 introduces automatic checks for updates, a setting that can be enabled or disabled in your Embassy config, and it also draws a distinction between services that are designed to be launched inside the browser and those that are designed to run in the background.
</p>
<div style="margin-top: 30px">
<h5 style="color: var(--ion-color-danger)">Critical - Read Carefully</h5>
<h5 style="color: var(--ion-color-danger)">Important</h5>
<p>
If you have LND or c-lightning installed, it is critical that you update them to the latest version.
An oversight in Start9s USB backups system has created a situation where restoring a LND or c-lightning backup can result in permanent loss of channel funds.
To be clear, <ion-text style="font-weight: 'bold';">DO NOT</ion-text> attempt to restore a LND or c-lightning backup until you have updated these services to the latest versions.
If you have LND or c-lightning installed, please update them to the latest versions.
An oversight in Start9s USB backups system has created a situation where <b>restoring</b> a LND or c-lightning backup could potentially result in permanent loss of channel funds.
To be clear, <ion-text style="font-weight: 'bold';">DO NOT</ion-text> attempt to <b>restore</b> a LND or c-lightning backup until you have updated to the latest versions.
</p>
</div>
<ion-button style="text-align: right; margin-top:12px;" fill="outline" (click)="dismiss()">
Close
</ion-button>
</ion-content>

View File

@@ -21,13 +21,6 @@
</ion-item>
<ion-item-group>
<ion-item-divider style="margin-top: 0px;">Description</ion-item-divider>
<ion-item lines="none">
<ion-label class="ion-text-wrap">
<h2><ion-text color="medium">Add SSH keys to your Embassy to gain root access from the command line.</ion-text></h2>
</ion-label>
</ion-item>
<ion-item-divider>Saved Keys</ion-item-divider>
<ion-item *ngFor="let fingerprint of server.ssh | async">
<ion-label class="ion-text-wrap">

View File

@@ -20,6 +20,10 @@
<ion-label>Device Name</ion-label>
<ion-note slot="end">{{ server.name | async }}</ion-note>
</ion-item>
<ion-item button (click)="presentModalValueEdit('autoCheckUpdates')">
<ion-label>Auto Check for Updates</ion-label>
<ion-note slot="end">{{ server.autoCheckUpdates | async }}</ion-note>
</ion-item>
<!-- <ion-item style="word-break: break-all;" button (click)="presentModalValueEdit('password', true)">
<ion-label>Change Password</ion-label>
<ion-note slot="end">********</ion-note>

View File

@@ -30,7 +30,7 @@
<ion-item-group>
<ion-item-divider></ion-item-divider>
<ion-item lines="none" button (click)="checkForUpdates()">
<ion-item button (click)="checkForUpdates()">
<ion-icon slot="start" name="refresh-outline" color="primary"></ion-icon>
<ion-label><ion-text style="font-weight: bold;" color="primary">Check for Updates</ion-text></ion-label>
</ion-item>

View File

@@ -110,7 +110,7 @@ export class ServerShowPage {
const alert = await this.alertCtrl.create({
backdropDismiss: false,
header: 'Confirm',
message: `Update EmbassyOS to ${versionLatest}?`,
message: `Update EmbassyOS to version ${versionLatest}?`,
buttons: [
{
text: 'Cancel',

View File

@@ -418,7 +418,7 @@ const mockApiServer: () => ReqRes.GetServerRes = () => ({
'WiFI': '2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE',
'Ethernet': 'Gigabit',
'Disk': '512 GB Flash (280 GB available)',
'Embassy OS Version': '0.1.0.1',
'EmbassyOS Version': '0.1.0.1',
},
wifi: {
ssids: ['Goosers', 'Atlantic City'],

View File

@@ -52,6 +52,17 @@ export class ServerConfigService {
return this.apiService.patchServerConfig('name', val).then(() => this.serverModel.update({ name: val }))
},
},
autoCheckUpdates: {
spec: {
type: 'boolean',
name: 'Auto Check for Updates',
description: 'On launch, EmabssyOS will automatically check for updates of itself and your installed services. Updating still requires user approval and action. No updates will ever be performed automatically.',
default: true,
},
saveFn: (val: string) => {
return this.apiService.patchServerConfig('autoCheckUpdates', val).then(() => this.serverModel.update({ name: val }))
},
},
// password: {
// spec: {
// type: 'string',

View File

@@ -133,7 +133,7 @@ export class SyncNotifier {
const alert = await this.alertCtrl.create({
backdropDismiss: true,
header: 'New EmbassyOS Version!',
message: `Update to EmbassyOS, version ${versionLatest}?`,
message: `Update EmbassyOS to version ${versionLatest}?`,
buttons: [
{
text: 'Not now',