Merge pull request #6046 from artu-ole/master

This commit is contained in:
Eugeny 2022-03-29 16:35:18 +02:00 committed by GitHub
commit 65ef8cde5a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 4 deletions

View File

@ -36,7 +36,7 @@ ul.nav-tabs(ngbNav, #nav='ngbNav')
ng-container(*ngFor='let group of profileGroups') ng-container(*ngFor='let group of profileGroups')
ng-container(*ngIf='isGroupVisible(group)') ng-container(*ngIf='isGroupVisible(group)')
.list-group-item.list-group-item-action.d-flex.align-items-center( .list-group-item.list-group-item-action.d-flex.align-items-center(
(click)='group.collapsed = !group.collapsed' (click)='toggleGroupCollapse(group)'
) )
.fa.fa-fw.fa-chevron-right(*ngIf='group.collapsed') .fa.fa-fw.fa-chevron-right(*ngIf='group.collapsed')
.fa.fa-fw.fa-chevron-down(*ngIf='!group.collapsed') .fa.fa-fw.fa-chevron-down(*ngIf='!group.collapsed')

View File

@ -143,6 +143,7 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
refresh (): void { refresh (): void {
this.profiles = this.config.store.profiles this.profiles = this.config.store.profiles
this.profileGroups = [] this.profileGroups = []
const profileGroupCollapsed = JSON.parse(window.localStorage.profileGroupCollapsed ?? '{}')
for (const profile of this.profiles) { for (const profile of this.profiles) {
let group = this.profileGroups.find(x => x.name === profile.group) let group = this.profileGroups.find(x => x.name === profile.group)
@ -151,7 +152,7 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
name: profile.group, name: profile.group,
profiles: [], profiles: [],
editable: true, editable: true,
collapsed: false, collapsed: profileGroupCollapsed[profile.group ?? ''] ?? false,
} }
this.profileGroups.push(group) this.profileGroups.push(group)
} }
@ -160,12 +161,14 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
this.profileGroups.sort((a, b) => a.name?.localeCompare(b.name ?? '') ?? -1) this.profileGroups.sort((a, b) => a.name?.localeCompare(b.name ?? '') ?? -1)
this.profileGroups.push({ const builtIn = {
name: this.translate.instant('Built-in'), name: this.translate.instant('Built-in'),
profiles: this.builtinProfiles, profiles: this.builtinProfiles,
editable: false, editable: false,
collapsed: false, collapsed: false,
}) }
builtIn.collapsed = profileGroupCollapsed[builtIn.name ?? ''] ?? false
this.profileGroups.push(builtIn)
} }
async editGroup (group: ProfileGroup): Promise<void> { async editGroup (group: ProfileGroup): Promise<void> {
@ -246,6 +249,13 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
}[this.profilesService.providerForProfile(profile)?.id ?? ''] ?? 'warning' }[this.profilesService.providerForProfile(profile)?.id ?? ''] ?? 'warning'
} }
toggleGroupCollapse (group: ProfileGroup): void {
group.collapsed = !group.collapsed
const profileGroupCollapsed = JSON.parse(window.localStorage.profileGroupCollapsed ?? '{}')
profileGroupCollapsed[group.name ?? ''] = group.collapsed
window.localStorage.profileGroupCollapsed = JSON.stringify(profileGroupCollapsed)
}
async editDefaults (provider: ProfileProvider<Profile>): Promise<void> { async editDefaults (provider: ProfileProvider<Profile>): Promise<void> {
const modal = this.ngbModal.open( const modal = this.ngbModal.open(
EditProfileModalComponent, EditProfileModalComponent,