mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-31 04:23:40 +00:00
* support http2 alpn handshake * fix protocol name * switch to https for tor * update setup wizard and main ui to accommodate https (#2356) * update setup wizard and main ui to accommodate https * update wording in download doc * fix accidential conversion of tor https for services and allow ws still * redirect to https if available * fix replaces to only search at beginning and ignore localhost when checking for https --------- Co-authored-by: Lucy <12953208+elvece@users.noreply.github.com>
74 lines
2.1 KiB
TypeScript
74 lines
2.1 KiB
TypeScript
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'
|
|
import { NavController } from '@ionic/angular'
|
|
import { PatchDB } from 'patch-db-client'
|
|
import {
|
|
DataModel,
|
|
PackageDataEntry,
|
|
PackageState,
|
|
} from 'src/app/services/patch-db/data-model'
|
|
import {
|
|
PackageStatus,
|
|
PrimaryStatus,
|
|
} from 'src/app/services/pkg-status-rendering.service'
|
|
import { tap } from 'rxjs/operators'
|
|
import { ActivatedRoute } from '@angular/router'
|
|
import { getPkgId } from '@start9labs/shared'
|
|
import { DOCUMENT } from '@angular/common'
|
|
import { ConfigService } from 'src/app/services/config.service'
|
|
import { getServerInfo } from 'src/app/util/get-server-info'
|
|
|
|
const STATES = [
|
|
PackageState.Installing,
|
|
PackageState.Updating,
|
|
PackageState.Restoring,
|
|
]
|
|
|
|
@Component({
|
|
selector: 'app-show',
|
|
templateUrl: './app-show.page.html',
|
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
})
|
|
export class AppShowPage {
|
|
readonly secure = this.config.isSecure()
|
|
|
|
private readonly pkgId = getPkgId(this.route)
|
|
|
|
readonly pkg$ = this.patch.watch$('package-data', this.pkgId).pipe(
|
|
tap(pkg => {
|
|
// if package disappears, navigate to list page
|
|
if (!pkg) this.navCtrl.navigateRoot('/services')
|
|
}),
|
|
)
|
|
|
|
constructor(
|
|
private readonly route: ActivatedRoute,
|
|
private readonly navCtrl: NavController,
|
|
private readonly patch: PatchDB<DataModel>,
|
|
private readonly config: ConfigService,
|
|
@Inject(DOCUMENT) private readonly document: Document,
|
|
) {}
|
|
|
|
isInstalled({ state }: PackageDataEntry): boolean {
|
|
return state === PackageState.Installed
|
|
}
|
|
|
|
isRunning({ primary }: PackageStatus): boolean {
|
|
return primary === PrimaryStatus.Running
|
|
}
|
|
|
|
isBackingUp({ primary }: PackageStatus): boolean {
|
|
return primary === PrimaryStatus.BackingUp
|
|
}
|
|
|
|
showProgress({ state }: PackageDataEntry): boolean {
|
|
return STATES.includes(state)
|
|
}
|
|
|
|
async launchHttps() {
|
|
const onTor = this.config.isTor()
|
|
const { 'lan-address': lanAddress, 'tor-address': torAddress } =
|
|
await getServerInfo(this.patch)
|
|
onTor ? window.open(torAddress) : window.open(lanAddress)
|
|
}
|
|
}
|