mirror of
https://github.com/bitwarden/browser
synced 2025-12-14 15:23:33 +00:00
SG-680 - Moved domain verification comp into subfolder to add clarity in folder structure
This commit is contained in:
@@ -1,55 +0,0 @@
|
|||||||
<div class="tw-flex tw-flex-row tw-justify-between">
|
|
||||||
<h1>{{ "domainVerification" | i18n }}</h1>
|
|
||||||
|
|
||||||
<button type="button" buttonType="primary" bitButton>
|
|
||||||
<i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i> {{ "newDomain" | i18n }}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tw-flex tw-flex-row">
|
|
||||||
<bit-table class="tw-w-full tw-table-auto">
|
|
||||||
<ng-container header>
|
|
||||||
<tr>
|
|
||||||
<th bitCell>Name</th>
|
|
||||||
<th bitCell>Status</th>
|
|
||||||
<th bitCell>Last Checked</th>
|
|
||||||
<th bitCell>Options</th>
|
|
||||||
</tr>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container body>
|
|
||||||
<!-- <tr bitRow [alignContent]="alignRowContent">
|
|
||||||
<td bitCell>Cell 1</td>
|
|
||||||
<td bitCell>Cell 2 <br> Multiline Cell</td>
|
|
||||||
<td bitCell>Cell 3</td>
|
|
||||||
</tr>
|
|
||||||
<tr bitRow [alignContent]="alignRowContent">
|
|
||||||
<td bitCell>Cell 4</td>
|
|
||||||
<td bitCell>Cell 5</td>
|
|
||||||
<td bitCell>Cell 6</td>
|
|
||||||
</tr>
|
|
||||||
<tr bitRow [alignContent]="alignRowContent">
|
|
||||||
<td bitCell>Cell 7 <br> Multiline Cell</td>
|
|
||||||
<td bitCell>Cell 8</td>
|
|
||||||
<td bitCell>Cell 9</td>
|
|
||||||
</tr> -->
|
|
||||||
</ng-container>
|
|
||||||
</bit-table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tw-mt-6 tw-flex tw-flex-col tw-items-center tw-justify-center">
|
|
||||||
<img src="../../images/domain-verification/domain.svg" class="tw-mb-4" alt="domain" />
|
|
||||||
|
|
||||||
<div class="tw-mb-2 tw-flex tw-flex-row tw-justify-center">
|
|
||||||
<span class="tw-text-lg tw-font-bold">{{ "noDomains" | i18n }}</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tw-mb-4 tw-flex tw-flex-row tw-justify-center">
|
|
||||||
<span>
|
|
||||||
{{ "noDomainsSubText" | i18n }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button type="button" buttonType="secondary" bitButton>
|
|
||||||
<i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i> {{ "newDomain" | i18n }}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
import { Component, OnDestroy, OnInit } from "@angular/core";
|
|
||||||
import { ActivatedRoute } from "@angular/router";
|
|
||||||
import { Subject } from "rxjs";
|
|
||||||
|
|
||||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
|
||||||
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/abstractions/organization/organization-api.service.abstraction";
|
|
||||||
import { OrganizationService } from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
|
|
||||||
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
|
||||||
import { Organization } from "@bitwarden/common/models/domain/organization";
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: "app-org-manage-domain-verification",
|
|
||||||
templateUrl: "domain-verification.component.html",
|
|
||||||
})
|
|
||||||
export class DomainVerificationComponent implements OnInit, OnDestroy {
|
|
||||||
private componentDestroyed$ = new Subject<void>();
|
|
||||||
|
|
||||||
organization: Organization;
|
|
||||||
|
|
||||||
constructor(
|
|
||||||
private route: ActivatedRoute,
|
|
||||||
private apiService: ApiService,
|
|
||||||
private platformUtilsService: PlatformUtilsService,
|
|
||||||
private i18nService: I18nService,
|
|
||||||
private organizationService: OrganizationService,
|
|
||||||
private organizationApiService: OrganizationApiServiceAbstraction
|
|
||||||
) {}
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
||||||
async ngOnInit() {}
|
|
||||||
|
|
||||||
ngOnDestroy(): void {
|
|
||||||
this.componentDestroyed$.next();
|
|
||||||
this.componentDestroyed$.complete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
<div class="tw-flex tw-flex-row tw-justify-between">
|
||||||
|
<h1>{{ "domainVerification" | i18n }}</h1>
|
||||||
|
|
||||||
|
<button *ngIf="!loading" type="button" buttonType="primary" bitButton>
|
||||||
|
<i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i> {{ "newDomain" | i18n }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ng-container *ngIf="loading">
|
||||||
|
<i
|
||||||
|
class="bwi bwi-spinner bwi-spin text-muted"
|
||||||
|
title="{{ 'loading' | i18n }}"
|
||||||
|
aria-hidden="true"
|
||||||
|
></i>
|
||||||
|
<span class="sr-only">{{ "loading" | i18n }}</span>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<!-- <div *ngIf="orgDomains$ | async as orgDomains; else loading">
|
||||||
|
{{ obs }}
|
||||||
|
</div>
|
||||||
|
<ng-template #loading>Loading...</ng-template> -->
|
||||||
|
|
||||||
|
<ng-container *ngIf="!loading">
|
||||||
|
<div class="tw-flex tw-flex-row">
|
||||||
|
<bit-table class="tw-w-full tw-table-auto">
|
||||||
|
<ng-container header>
|
||||||
|
<tr>
|
||||||
|
<th bitCell>Name</th>
|
||||||
|
<th bitCell>Status</th>
|
||||||
|
<th bitCell>Last Checked</th>
|
||||||
|
<th bitCell>Options</th>
|
||||||
|
</tr>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container body>
|
||||||
|
<!-- [alignContent]="alignRowContent" -->
|
||||||
|
<tr bitRow *ngFor="let orgDomain of orgDomains$ | async; index as i">
|
||||||
|
<td bitCell>{{ orgDomain.domainName }}</td>
|
||||||
|
<td bitCell>
|
||||||
|
{{ orgDomain.domainName }}
|
||||||
|
</td>
|
||||||
|
<td bitCell>test</td>
|
||||||
|
<td bitCell>test</td>
|
||||||
|
</tr>
|
||||||
|
</ng-container>
|
||||||
|
</bit-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tw-mt-6 tw-flex tw-flex-col tw-items-center tw-justify-center">
|
||||||
|
<img src="../../images/domain-verification/domain.svg" class="tw-mb-4" alt="domain" />
|
||||||
|
|
||||||
|
<div class="tw-mb-2 tw-flex tw-flex-row tw-justify-center">
|
||||||
|
<span class="tw-text-lg tw-font-bold">{{ "noDomains" | i18n }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tw-mb-4 tw-flex tw-flex-row tw-justify-center">
|
||||||
|
<span>
|
||||||
|
{{ "noDomainsSubText" | i18n }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="button" buttonType="secondary" bitButton>
|
||||||
|
<i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i> {{ "newDomain" | i18n }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
¸
|
||||||
|
</ng-container>
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
import { Component, OnDestroy, OnInit } from "@angular/core";
|
||||||
|
import { ActivatedRoute, Params } from "@angular/router";
|
||||||
|
import { concatMap, Observable, Subject, takeUntil } from "rxjs";
|
||||||
|
|
||||||
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
|
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||||
|
import { OrgDomainApiServiceAbstraction } from "@bitwarden/common/abstractions/organization-domain/org-domain-api.service.abstraction";
|
||||||
|
import { OrgDomainServiceAbstraction } from "@bitwarden/common/abstractions/organization-domain/org-domain.service.abstraction";
|
||||||
|
import { OrganizationDomainResponse } from "@bitwarden/common/abstractions/organization-domain/responses/organization-domain.response";
|
||||||
|
import { OrganizationService } from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
|
||||||
|
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: "app-org-manage-domain-verification",
|
||||||
|
templateUrl: "domain-verification.component.html",
|
||||||
|
})
|
||||||
|
export class DomainVerificationComponent implements OnInit, OnDestroy {
|
||||||
|
private componentDestroyed$ = new Subject<void>();
|
||||||
|
|
||||||
|
loading = true;
|
||||||
|
|
||||||
|
organizationId: string;
|
||||||
|
// organization: Organization;
|
||||||
|
orgDomains$: Observable<OrganizationDomainResponse[]>;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private route: ActivatedRoute,
|
||||||
|
private apiService: ApiService,
|
||||||
|
private platformUtilsService: PlatformUtilsService,
|
||||||
|
private i18nService: I18nService,
|
||||||
|
private organizationService: OrganizationService,
|
||||||
|
private orgDomainApiService: OrgDomainApiServiceAbstraction,
|
||||||
|
private orgDomainService: OrgDomainServiceAbstraction
|
||||||
|
) {}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
||||||
|
async ngOnInit() {
|
||||||
|
this.orgDomains$ = this.orgDomainService.orgDomains$;
|
||||||
|
|
||||||
|
// Note: going to use concatMap as async subscribe blocks don't work as you expect and
|
||||||
|
// as such, ESLint rejects it
|
||||||
|
// ex: https://stackoverflow.com/a/71056380
|
||||||
|
this.route.params
|
||||||
|
.pipe(
|
||||||
|
concatMap(async (params: Params) => {
|
||||||
|
this.organizationId = params.organizationId;
|
||||||
|
await this.load();
|
||||||
|
}),
|
||||||
|
takeUntil(this.componentDestroyed$)
|
||||||
|
)
|
||||||
|
.subscribe();
|
||||||
|
}
|
||||||
|
|
||||||
|
async load() {
|
||||||
|
await this.orgDomainApiService.getAllByOrgId(this.organizationId);
|
||||||
|
|
||||||
|
this.loading = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
this.componentDestroyed$.next();
|
||||||
|
this.componentDestroyed$.complete();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,7 +8,7 @@ import { OrganizationPermissionsGuard } from "@bitwarden/web-vault/app/organizat
|
|||||||
import { OrganizationLayoutComponent } from "@bitwarden/web-vault/app/organizations/layouts/organization-layout.component";
|
import { OrganizationLayoutComponent } from "@bitwarden/web-vault/app/organizations/layouts/organization-layout.component";
|
||||||
import { SettingsComponent } from "@bitwarden/web-vault/app/organizations/settings/settings.component";
|
import { SettingsComponent } from "@bitwarden/web-vault/app/organizations/settings/settings.component";
|
||||||
|
|
||||||
import { DomainVerificationComponent } from "./manage/domain-verification.component";
|
import { DomainVerificationComponent } from "./manage/domain-verification/domain-verification.component";
|
||||||
import { ScimComponent } from "./manage/scim.component";
|
import { ScimComponent } from "./manage/scim.component";
|
||||||
import { SsoComponent } from "./manage/sso.component";
|
import { SsoComponent } from "./manage/sso.component";
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { NgModule } from "@angular/core";
|
|||||||
import { SharedModule } from "@bitwarden/web-vault/app/shared/shared.module";
|
import { SharedModule } from "@bitwarden/web-vault/app/shared/shared.module";
|
||||||
|
|
||||||
import { InputCheckboxComponent } from "./components/input-checkbox.component";
|
import { InputCheckboxComponent } from "./components/input-checkbox.component";
|
||||||
import { DomainVerificationComponent } from "./manage/domain-verification.component";
|
import { DomainVerificationComponent } from "./manage/domain-verification/domain-verification.component";
|
||||||
import { ScimComponent } from "./manage/scim.component";
|
import { ScimComponent } from "./manage/scim.component";
|
||||||
import { SsoComponent } from "./manage/sso.component";
|
import { SsoComponent } from "./manage/sso.component";
|
||||||
import { OrganizationsRoutingModule } from "./organizations-routing.module";
|
import { OrganizationsRoutingModule } from "./organizations-routing.module";
|
||||||
|
|||||||
Reference in New Issue
Block a user