mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-31 20:43:41 +00:00
restart after server name change
This commit is contained in:
@@ -4,10 +4,11 @@ import {
|
||||
Component,
|
||||
inject,
|
||||
INJECTOR,
|
||||
OnInit,
|
||||
} from '@angular/core'
|
||||
import { toSignal } from '@angular/core/rxjs-interop'
|
||||
import { FormsModule } from '@angular/forms'
|
||||
import { RouterLink } from '@angular/router'
|
||||
import { ActivatedRoute, Router, RouterLink } from '@angular/router'
|
||||
import { WA_WINDOW } from '@ng-web-apis/common'
|
||||
import {
|
||||
DialogService,
|
||||
@@ -277,7 +278,7 @@ import { UPDATE } from './update.component'
|
||||
TuiAnimated,
|
||||
],
|
||||
})
|
||||
export default class SystemGeneralComponent {
|
||||
export default class SystemGeneralComponent implements OnInit {
|
||||
private readonly dialogs = inject(TuiResponsiveDialogService)
|
||||
private readonly loader = inject(TuiNotificationMiddleService)
|
||||
private readonly errorService = inject(ErrorService)
|
||||
@@ -287,6 +288,20 @@ export default class SystemGeneralComponent {
|
||||
private readonly i18n = inject(i18nPipe)
|
||||
private readonly injector = inject(INJECTOR)
|
||||
private readonly win = inject(WA_WINDOW)
|
||||
private readonly route = inject(ActivatedRoute)
|
||||
private readonly router = inject(Router)
|
||||
|
||||
ngOnInit() {
|
||||
this.route.queryParams
|
||||
.pipe(filter(params => params['restart'] === 'hostname'))
|
||||
.subscribe(async () => {
|
||||
await this.router.navigate([], {
|
||||
relativeTo: this.route,
|
||||
queryParams: {},
|
||||
})
|
||||
this.promptHostnameRestart()
|
||||
})
|
||||
}
|
||||
|
||||
count = 0
|
||||
|
||||
@@ -399,7 +414,7 @@ export default class SystemGeneralComponent {
|
||||
label: 'Warning',
|
||||
data: {
|
||||
content:
|
||||
'You are currently connected via your .local address. Changing the hostname will require you to switch to the new .local address.',
|
||||
'You are currently connected via your .local address. Changing the hostname will require you to switch to the new .local address. A server restart will also be needed.',
|
||||
yes: 'Save',
|
||||
no: 'Cancel',
|
||||
},
|
||||
@@ -419,20 +434,23 @@ export default class SystemGeneralComponent {
|
||||
|
||||
if (wasLocal) {
|
||||
const { protocol, port } = this.win.location
|
||||
const newUrl = `${protocol}//${hostname}.local${port ? ':' + port : ''}`
|
||||
const portSuffix = port ? ':' + port : ''
|
||||
const newUrl = `${protocol}//${hostname}.local${portSuffix}/system/general?restart=hostname`
|
||||
|
||||
this.dialog
|
||||
.openConfirm({
|
||||
label: 'Hostname Changed',
|
||||
data: {
|
||||
content:
|
||||
`${this.i18n.transform('Your server is now reachable at')} ${hostname}.local` as i18nKey,
|
||||
`${this.i18n.transform('Your server is now reachable at')} ${hostname}.local. ${this.i18n.transform('After opening the new address, you will be prompted to restart.')}` as i18nKey,
|
||||
yes: 'Open new address',
|
||||
no: 'Dismiss',
|
||||
},
|
||||
})
|
||||
.pipe(filter(Boolean))
|
||||
.subscribe(() => this.win.open(newUrl, '_blank'))
|
||||
} else {
|
||||
this.promptHostnameRestart()
|
||||
}
|
||||
} catch (e: any) {
|
||||
this.errorService.handleError(e)
|
||||
@@ -563,6 +581,21 @@ export default class SystemGeneralComponent {
|
||||
.subscribe(() => this.restart())
|
||||
}
|
||||
|
||||
private promptHostnameRestart() {
|
||||
this.dialog
|
||||
.openConfirm({
|
||||
label: 'Restart to apply',
|
||||
data: {
|
||||
content:
|
||||
'A restart is required for service interfaces to use the new hostname.',
|
||||
yes: 'Restart now',
|
||||
no: 'Later',
|
||||
},
|
||||
})
|
||||
.pipe(filter(Boolean))
|
||||
.subscribe(() => this.restart())
|
||||
}
|
||||
|
||||
private promptLanguageRestart() {
|
||||
this.dialog
|
||||
.openConfirm({
|
||||
|
||||
Reference in New Issue
Block a user