mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-25 00:32:15 +00:00
* instance routing * instance naming * org list * rm isonsystem * breadcrumb type * routing * instance members * fragment refresh org * settings pages * settings list, sidenav grouping, i18n * org-settings, policy changes * lint * grid * rename grid * fallback to general * cleanup * general settings, remove cards * sidenav for settings, label policy * i18n * header, nav backbuild * general, project nav rehaul * login text background adapt * org nav anim * org, instance settings, fix policy layout, roles * i18n, active route for project * lint
89 lines
2.8 KiB
TypeScript
89 lines
2.8 KiB
TypeScript
import { Component, Injector, Input, OnInit, Type } from '@angular/core';
|
|
import { SetDefaultLanguageResponse } from 'src/app/proto/generated/zitadel/admin_pb';
|
|
import { AdminService } from 'src/app/services/admin.service';
|
|
import { ManagementService } from 'src/app/services/mgmt.service';
|
|
import { ToastService } from 'src/app/services/toast.service';
|
|
|
|
import { PolicyComponentServiceType } from '../policy-component-types.enum';
|
|
|
|
@Component({
|
|
selector: 'cnsl-general-settings',
|
|
templateUrl: './general-settings.component.html',
|
|
styleUrls: ['./general-settings.component.scss'],
|
|
})
|
|
export class GeneralSettingsComponent implements OnInit {
|
|
@Input() public serviceType!: PolicyComponentServiceType;
|
|
public service!: ManagementService | AdminService;
|
|
|
|
public defaultLanguage: string = '';
|
|
public defaultLanguageOptions: string[] = [];
|
|
|
|
public loading: boolean = false;
|
|
constructor(private injector: Injector, private toast: ToastService) {}
|
|
|
|
ngOnInit(): void {
|
|
switch (this.serviceType) {
|
|
case PolicyComponentServiceType.MGMT:
|
|
this.service = this.injector.get(ManagementService as Type<ManagementService>);
|
|
break;
|
|
case PolicyComponentServiceType.ADMIN:
|
|
this.service = this.injector.get(AdminService as Type<AdminService>);
|
|
break;
|
|
}
|
|
this.fetchData();
|
|
}
|
|
|
|
private fetchData(): void {
|
|
if (this.serviceType === PolicyComponentServiceType.ADMIN) {
|
|
(this.service as AdminService).getDefaultLanguage().then((langResp) => {
|
|
this.defaultLanguage = langResp.language;
|
|
});
|
|
(this.service as AdminService).getSupportedLanguages().then((supportedResp) => {
|
|
this.defaultLanguageOptions = supportedResp.languagesList;
|
|
});
|
|
}
|
|
}
|
|
|
|
private updateData(): Promise<SetDefaultLanguageResponse.AsObject> | void {
|
|
if (this.serviceType === PolicyComponentServiceType.ADMIN) {
|
|
return (this.service as AdminService).setDefaultLanguage(this.defaultLanguage);
|
|
} else {
|
|
return;
|
|
}
|
|
}
|
|
|
|
public savePolicy(): void {
|
|
const prom = this.updateData();
|
|
if (prom) {
|
|
prom
|
|
.then(() => {
|
|
this.toast.showInfo('POLICY.LOGIN_POLICY.SAVED', true);
|
|
this.loading = true;
|
|
setTimeout(() => {
|
|
this.fetchData();
|
|
}, 2000);
|
|
})
|
|
.catch((error) => {
|
|
this.toast.showError(error);
|
|
});
|
|
}
|
|
}
|
|
|
|
public removePolicy(): void {
|
|
if (this.serviceType === PolicyComponentServiceType.MGMT) {
|
|
(this.service as ManagementService)
|
|
.resetLoginPolicyToDefault()
|
|
.then(() => {
|
|
this.toast.showInfo('POLICY.TOAST.RESETSUCCESS', true);
|
|
this.loading = true;
|
|
setTimeout(() => {
|
|
this.fetchData();
|
|
}, 2000);
|
|
})
|
|
.catch((error) => {
|
|
this.toast.showError(error);
|
|
});
|
|
}
|
|
}
|
|
}
|