mirror of
https://github.com/Eugeny/tabby
synced 2024-11-15 01:17:14 +00:00
Refresh default profile selection when profiles are modified
This commit is contained in:
parent
57f20eca4f
commit
f3196ac045
2 changed files with 10 additions and 5 deletions
|
@ -12,7 +12,7 @@ ul.nav-tabs(ngbNav, #nav='ngbNav')
|
|||
[(ngModel)]='config.store.terminal.profile',
|
||||
(ngModelChange)='config.save()',
|
||||
)
|
||||
optgroup([label]='"Custom Profiles"|translate', *ngIf='customProfiles?.length > 0')
|
||||
optgroup([label]='"Custom Profiles"|translate', *ngIf='customProfiles?.length > 0')
|
||||
option(
|
||||
*ngFor='let profile of customProfiles',
|
||||
[ngValue]='profile.id'
|
||||
|
|
|
@ -20,6 +20,7 @@ interface CollapsableProfileGroup extends ProfileGroup {
|
|||
})
|
||||
export class ProfilesSettingsTabComponent extends BaseComponent {
|
||||
builtinProfiles: PartialProfile<Profile>[] = []
|
||||
profiles: PartialProfile<Profile>[] = []
|
||||
templateProfiles: PartialProfile<Profile>[] = []
|
||||
customProfiles: PartialProfile<Profile>[] = []
|
||||
profileGroups: PartialProfileGroup<CollapsableProfileGroup>[]
|
||||
|
@ -41,13 +42,17 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
|
|||
}
|
||||
|
||||
async ngOnInit (): Promise<void> {
|
||||
this.refresh()
|
||||
await this.refreshProfileGroups()
|
||||
await this.refreshProfiles()
|
||||
this.subscribeUntilDestroyed(this.config.changed$, () => this.refreshProfileGroups())
|
||||
this.subscribeUntilDestroyed(this.config.changed$, () => this.refreshProfiles())
|
||||
}
|
||||
|
||||
async refreshProfiles (): Promise<void> {
|
||||
this.builtinProfiles = (await this.profilesService.getProfiles()).filter(x => x.isBuiltin)
|
||||
this.customProfiles = (await this.profilesService.getProfiles()).filter(x => !x.isBuiltin)
|
||||
this.templateProfiles = this.builtinProfiles.filter(x => x.isTemplate)
|
||||
this.builtinProfiles = this.builtinProfiles.filter(x => !x.isTemplate)
|
||||
this.refresh()
|
||||
this.subscribeUntilDestroyed(this.config.changed$, () => this.refresh())
|
||||
}
|
||||
|
||||
launchProfile (profile: PartialProfile<Profile>): void {
|
||||
|
@ -242,7 +247,7 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
|
|||
}
|
||||
}
|
||||
|
||||
async refresh (): Promise<void> {
|
||||
async refreshProfileGroups (): Promise<void> {
|
||||
const profileGroupCollapsed = JSON.parse(window.localStorage.profileGroupCollapsed ?? '{}')
|
||||
const groups = await this.profilesService.getProfileGroups({ includeNonUserGroup: true, includeProfiles: true })
|
||||
groups.sort((a, b) => a.name.localeCompare(b.name))
|
||||
|
|
Loading…
Reference in a new issue