1
1
mirror of https://github.com/Eugeny/tabby.git synced 2024-09-11 04:43:03 +03:00

wip ref(core): getProfileGroups create non editable group for built-in profile

This commit is contained in:
Clem 2023-08-05 21:04:10 +02:00
parent 951c69b31a
commit 935c981d2b
2 changed files with 21 additions and 7 deletions

View File

@ -410,11 +410,13 @@ export class ProfilesService {
})
if (includeNonUserGroup) {
const builtIn: PartialProfileGroup<ProfileGroup> = {
const builtInGroups: PartialProfileGroup<ProfileGroup>[] = []
builtInGroups.push({
id: 'built-in',
name: this.translate.instant('Built-in'),
editable: false,
}
profiles: [],
})
const ungrouped: PartialProfileGroup<ProfileGroup> = {
id: 'ungrouped',
@ -423,13 +425,25 @@ export class ProfilesService {
}
if (includeProfiles) {
builtIn.profiles = profiles.filter(p => p.isBuiltin)
profiles = profiles.filter(p => !p.isBuiltin)
for (const profile of profiles.filter(p => p.isBuiltin)) {
let group: PartialProfileGroup<ProfileGroup> | undefined = builtInGroups.find(g => g.id === slugify(profile.group ?? 'built-in'))
if (!group) {
group = {
id: `${slugify(profile.group!)}`,
name: `${profile.group!}`,
editable: false,
profiles: [],
}
builtInGroups.push(group)
}
ungrouped.profiles = profiles
group.profiles!.push(profile)
}
ungrouped.profiles = profiles.filter(p => !p.isBuiltin)
}
groups.push(builtIn)
groups = groups.concat(builtInGroups)
groups.push(ungrouped)
}

View File

@ -144,7 +144,7 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
const profileGroupCollapsed = JSON.parse(window.localStorage.profileGroupCollapsed ?? '{}')
const groups = await this.profilesService.getProfileGroups(true, true)
groups.sort((a, b) => a.name.localeCompare(b.name))
groups.sort((a, b) => (a.id === 'built-in' ? 1 : 0) - (b.id === 'built-in' ? 1 : 0))
groups.sort((a, b) => (a.id === 'built-in' || !a.editable ? 1 : 0) - (b.id === 'built-in' || !b.editable ? 1 : 0))
groups.sort((a, b) => (a.id === 'ungrouped' ? 0 : 1) - (b.id === 'ungrouped' ? 0 : 1))
this.profileGroups = groups.map(g => ProfilesSettingsTabComponent.intoPartialCollapsableProfileGroup(g, profileGroupCollapsed[g.id] ?? false))
}