mirror of
https://github.com/Eugeny/tabby.git
synced 2025-06-08 21:40:03 +00:00
wip ref(core/profiles.service): add methods to interract with Provider defaults
This commit is contained in:
parent
ee4487a517
commit
8a85fcac21
@ -212,12 +212,7 @@ export class ProfilesService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getConfigProxyForProfile <T extends Profile> (profile: PartialProfile<T>, skipUserDefaults = false): T {
|
getConfigProxyForProfile <T extends Profile> (profile: PartialProfile<T>, skipUserDefaults = false): T {
|
||||||
const provider = this.providerForProfile(profile)
|
const defaults = this.getProfileDefaults(profile).reduce(configMerge, {})
|
||||||
const defaults = [
|
|
||||||
this.profileDefaults,
|
|
||||||
provider?.configDefaults ?? {},
|
|
||||||
!provider || skipUserDefaults ? {} : this.config.store.profileDefaults[provider.id] ?? {},
|
|
||||||
].reduce(configMerge, {})
|
|
||||||
return new ConfigProxy(profile, defaults) as unknown as T
|
return new ConfigProxy(profile, defaults) as unknown as T
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -234,4 +229,38 @@ export class ProfilesService {
|
|||||||
}
|
}
|
||||||
window.localStorage['recentProfiles'] = JSON.stringify(recentProfiles)
|
window.localStorage['recentProfiles'] = JSON.stringify(recentProfiles)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Methods used to interract with Profile/ProfileGroup/Global defaults
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return global defaults for a given profile provider
|
||||||
|
* Always return something, empty object if no defaults found
|
||||||
|
*/
|
||||||
|
getProviderDefaults (provider: ProfileProvider<Profile>): any {
|
||||||
|
const defaults = this.config.store.profileDefaults
|
||||||
|
return defaults[provider.id] ?? {}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set global defaults for a given profile provider
|
||||||
|
*/
|
||||||
|
setProviderDefaults (provider: ProfileProvider<Profile>, pdefaults: any) {
|
||||||
|
this.config.store.profileDefaults[provider.id] = pdefaults
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return defaults for a given profile
|
||||||
|
* Always return something, empty object if no defaults found
|
||||||
|
*/
|
||||||
|
getProfileDefaults (profile: PartialProfile<Profile>, skipUserDefaults = false): any {
|
||||||
|
const provider = this.providerForProfile(profile)
|
||||||
|
return [
|
||||||
|
this.profileDefaults,
|
||||||
|
provider?.configDefaults ?? {},
|
||||||
|
!provider || skipUserDefaults ? {} : this.getProviderDefaults(provider),
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -282,7 +282,7 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
|
|||||||
EditProfileModalComponent,
|
EditProfileModalComponent,
|
||||||
{ size: 'lg' },
|
{ size: 'lg' },
|
||||||
)
|
)
|
||||||
const model = this.config.store.profileDefaults[provider.id] ?? {}
|
const model = this.profilesService.getProviderDefaults(provider)
|
||||||
model.type = provider.id
|
model.type = provider.id
|
||||||
modal.componentInstance.profile = Object.assign({}, model)
|
modal.componentInstance.profile = Object.assign({}, model)
|
||||||
modal.componentInstance.profileProvider = provider
|
modal.componentInstance.profileProvider = provider
|
||||||
@ -295,7 +295,7 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
|
|||||||
delete model[k]
|
delete model[k]
|
||||||
}
|
}
|
||||||
Object.assign(model, result)
|
Object.assign(model, result)
|
||||||
this.config.store.profileDefaults[provider.id] = model
|
this.profilesService.setProviderDefaults(provider, model)
|
||||||
await this.config.save()
|
await this.config.save()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user