mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-15 17:42:18 +00:00
* cli core * update material * imports * schematics * lint * rm ng-qrcode, ngx-quicklink * replace qr code lib * rm shared module as quicklink is removed * lazy loading imports * rm public * chore(deps): bump @grpc/grpc-js from 1.7.1 to 1.8.0 in /console (#4857) Bumps [@grpc/grpc-js](https://github.com/grpc/grpc-node) from 1.7.1 to 1.8.0. - [Release notes](https://github.com/grpc/grpc-node/releases) - [Commits](https://github.com/grpc/grpc-node/compare/v1.7.1...@grpc/grpc-js@1.8.0) --- updated-dependencies: - dependency-name: "@grpc/grpc-js" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump libphonenumber-js from 1.10.13 to 1.10.15 in /console (#4861) Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.10.13 to 1.10.15. - [Release notes](https://gitlab.com/catamphetamine/libphonenumber-js/tags) - [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md) - [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.10.13...v1.10.15) --- updated-dependencies: - dependency-name: libphonenumber-js dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * rxjs * chore(deps): bump engine.io from 6.2.0 to 6.2.1 in /console (#4734) Bumps [engine.io](https://github.com/socketio/engine.io) from 6.2.0 to 6.2.1. - [Release notes](https://github.com/socketio/engine.io/releases) - [Changelog](https://github.com/socketio/engine.io/blob/main/CHANGELOG.md) - [Commits](https://github.com/socketio/engine.io/compare/6.2.0...6.2.1) --- updated-dependencies: - dependency-name: engine.io dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * lock * lint * rm comments * tsconfig ES2022 * get rid of polyfills file * use node 18 * rm age policy, legacy components * packages * build beta prerelease * remove pre-release build Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Florian Forster <florian@zitadel.com> Co-authored-by: Livio Spring <livio.a@gmail.com>
130 lines
3.9 KiB
TypeScript
130 lines
3.9 KiB
TypeScript
import { Component, OnInit } from '@angular/core';
|
|
import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';
|
|
import { InfoSectionType } from 'src/app/modules/info-section/info-section.component';
|
|
import { WarnDialogComponent } from 'src/app/modules/warn-dialog/warn-dialog.component';
|
|
import { Domain, DomainValidationType } from 'src/app/proto/generated/zitadel/org_pb';
|
|
import { Breadcrumb, BreadcrumbService, BreadcrumbType } from 'src/app/services/breadcrumb.service';
|
|
import { ManagementService } from 'src/app/services/mgmt.service';
|
|
import { ToastService } from 'src/app/services/toast.service';
|
|
|
|
import { AddDomainDialogComponent } from './add-domain-dialog/add-domain-dialog.component';
|
|
import { DomainVerificationComponent } from './domain-verification/domain-verification.component';
|
|
|
|
@Component({
|
|
selector: 'cnsl-domains',
|
|
templateUrl: './domains.component.html',
|
|
styleUrls: ['./domains.component.scss'],
|
|
})
|
|
export class DomainsComponent implements OnInit {
|
|
public domains: Domain.AsObject[] = [];
|
|
public primaryDomain: string = '';
|
|
public InfoSectionType: any = InfoSectionType;
|
|
|
|
constructor(
|
|
private mgmtService: ManagementService,
|
|
private toast: ToastService,
|
|
private dialog: MatDialog,
|
|
breadcrumbService: BreadcrumbService,
|
|
) {
|
|
const bread: Breadcrumb = {
|
|
type: BreadcrumbType.ORG,
|
|
routerLink: ['/org'],
|
|
};
|
|
breadcrumbService.setBreadcrumb([bread]);
|
|
}
|
|
|
|
ngOnInit(): void {
|
|
this.loadDomains();
|
|
}
|
|
|
|
public loadDomains(): void {
|
|
this.mgmtService.listOrgDomains().then((result) => {
|
|
this.domains = result.resultList;
|
|
this.primaryDomain = this.domains.find((domain) => domain.isPrimary)?.domainName ?? '';
|
|
});
|
|
}
|
|
|
|
public setPrimary(domain: Domain.AsObject): void {
|
|
this.mgmtService
|
|
.setPrimaryOrgDomain(domain.domainName)
|
|
.then(() => {
|
|
this.toast.showInfo('ORG.TOAST.SETPRIMARY', true);
|
|
this.loadDomains();
|
|
})
|
|
.catch((error) => {
|
|
this.toast.showError(error);
|
|
});
|
|
}
|
|
|
|
public addNewDomain(): void {
|
|
const dialogRef = this.dialog.open(AddDomainDialogComponent, {
|
|
data: {},
|
|
width: '400px',
|
|
});
|
|
|
|
dialogRef.afterClosed().subscribe((domainName) => {
|
|
if (domainName) {
|
|
this.mgmtService
|
|
.addOrgDomain(domainName)
|
|
.then(() => {
|
|
this.toast.showInfo('ORG.TOAST.DOMAINADDED', true);
|
|
this.verifyDomain({
|
|
domainName: domainName,
|
|
validationType: DomainValidationType.DOMAIN_VALIDATION_TYPE_UNSPECIFIED,
|
|
});
|
|
setTimeout(() => {
|
|
this.loadDomains();
|
|
}, 1000);
|
|
})
|
|
.catch((error) => {
|
|
this.toast.showError(error);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
public removeDomain(domain: string): void {
|
|
const dialogRef = this.dialog.open(WarnDialogComponent, {
|
|
data: {
|
|
confirmKey: 'ACTIONS.DELETE',
|
|
cancelKey: 'ACTIONS.CANCEL',
|
|
titleKey: 'ORG.DOMAINS.DELETE.TITLE',
|
|
descriptionKey: 'ORG.DOMAINS.DELETE.DESCRIPTION',
|
|
},
|
|
width: '400px',
|
|
});
|
|
|
|
dialogRef.afterClosed().subscribe((del) => {
|
|
if (del) {
|
|
this.mgmtService
|
|
.removeOrgDomain(domain)
|
|
.then(() => {
|
|
this.toast.showInfo('ORG.TOAST.DOMAINREMOVED', true);
|
|
const index = this.domains.findIndex((d) => d.domainName === domain);
|
|
if (index > -1) {
|
|
this.domains.splice(index, 1);
|
|
}
|
|
})
|
|
.catch((error) => {
|
|
this.toast.showError(error);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
public verifyDomain(domain: Partial<Domain.AsObject>): void {
|
|
const dialogRef = this.dialog.open(DomainVerificationComponent, {
|
|
data: {
|
|
domain: domain,
|
|
},
|
|
width: '500px',
|
|
});
|
|
|
|
dialogRef.afterClosed().subscribe((reload: boolean) => {
|
|
if (reload) {
|
|
this.loadDomains();
|
|
}
|
|
});
|
|
}
|
|
}
|