+
{{ 'IDP.CREATE.TITLE' | translate }}
-
-
{{ 'IDP.CREATE.TITLE' | translate }}
+
-
+
+ {{ 'IDP.CREATE.DESCRIPTION' | translate }}
-
- {{ 'IDP.CREATE.DESCRIPTION' | translate }}
+
-
-
+
+
+
+
-
-
-
+
diff --git a/console/src/app/modules/idp-create/idp-create.component.scss b/console/src/app/modules/idp-create/idp-create.component.scss
index d60eec788..bfa2b64f2 100644
--- a/console/src/app/modules/idp-create/idp-create.component.scss
+++ b/console/src/app/modules/idp-create/idp-create.component.scss
@@ -2,75 +2,54 @@
font-size: 14px;
}
-.abort-container {
- display: flex;
- align-items: center;
- margin-bottom: 2rem;
-
- .abort {
- font-size: 1.2rem;
- margin-left: 2rem;
- }
-
- .abort-2 {
- font-size: 1.2rem;
- margin-left: 2rem;
- white-space: nowrap;
- }
-}
-
.add-line-btn {
margin-bottom: 1rem;
}
-.idp-create-content {
- padding: 0 0 0 72px;
+.first-step-actions {
+ margin-top: 1rem;
+}
- .first-step-actions {
- margin-top: 1rem;
+.auto-reg-info {
+ display: block;
+ width: 100%;
+
+ .auto-reg-desc {
+ margin: 0 0 1rem 0;
+ }
+}
+
+.idp-content {
+ display: flex;
+ margin: 0 -0.5rem;
+ flex-wrap: wrap;
+
+ .desc {
+ flex-basis: 100%;
+ margin: 0 0.5rem;
+ margin-bottom: 1rem;
}
- .auto-reg-info {
- display: block;
- width: 100%;
+ .formfield {
+ flex: 1;
+ margin: 0 0.5rem;
- .auto-reg-desc {
- margin: 0 0 1rem 0;
- }
- }
-
- .idp-content {
- display: flex;
- margin: 0 -0.5rem;
- flex-wrap: wrap;
-
- .desc {
+ @media only screen and (max-width: 450px) {
flex-basis: 100%;
- margin: 0 0.5rem;
- margin-bottom: 1rem;
- }
-
- .formfield {
- flex: 1;
- margin: 0 0.5rem;
-
- @media only screen and (max-width: 450px) {
- flex-basis: 100%;
- }
- }
- }
-
- .idp-create-actions {
- display: flex;
- justify-content: space-between;
- margin-top: 1rem;
-
- button[mat-stroked-button] {
- border-radius: 0.5rem;
- }
-
- button[mat-raised-button] {
- border-radius: 0.5rem;
}
}
}
+
+.idp-create-actions {
+ display: flex;
+ justify-content: space-between;
+ margin-top: 1rem;
+
+ button[mat-stroked-button] {
+ border-radius: 0.5rem;
+ }
+
+ button[mat-raised-button] {
+ border-radius: 0.5rem;
+ }
+}
diff --git a/console/src/app/modules/idp-create/idp-create.module.ts b/console/src/app/modules/idp-create/idp-create.module.ts
index 315975a16..075fd858f 100644
--- a/console/src/app/modules/idp-create/idp-create.module.ts
+++ b/console/src/app/modules/idp-create/idp-create.module.ts
@@ -11,6 +11,7 @@ import { MatTooltipModule } from '@angular/material/tooltip';
import { TranslateModule } from '@ngx-translate/core';
import { InputModule } from 'src/app/modules/input/input.module';
+import { CreateLayoutModule } from '../create-layout/create-layout.module';
import { InfoSectionModule } from '../info-section/info-section.module';
import { IdpCreateRoutingModule } from './idp-create-routing.module';
import { IdpCreateComponent } from './idp-create.component';
@@ -23,6 +24,7 @@ import { IdpTypeRadioComponent } from './idp-type-radio/idp-type-radio.component
CommonModule,
FormsModule,
ReactiveFormsModule,
+ CreateLayoutModule,
InfoSectionModule,
InputModule,
MatButtonModule,
@@ -35,4 +37,4 @@ import { IdpTypeRadioComponent } from './idp-type-radio/idp-type-radio.component
MatProgressBarModule,
],
})
-export class IdpCreateModule { }
+export class IdpCreateModule {}
diff --git a/console/src/app/modules/links/links.component.html b/console/src/app/modules/links/links.component.html
deleted file mode 100644
index f67fc38c2..000000000
--- a/console/src/app/modules/links/links.component.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
{{'NEXTSTEPS.TITLE' | translate}}
-
-
-
-
\ No newline at end of file
diff --git a/console/src/app/modules/links/links.component.scss b/console/src/app/modules/links/links.component.scss
deleted file mode 100644
index 6c8c7f466..000000000
--- a/console/src/app/modules/links/links.component.scss
+++ /dev/null
@@ -1,67 +0,0 @@
-.next-steps {
- margin-top: 4rem;
-
- .title-row {
- display: flex;
- align-items: center;
-
- h5 {
- text-transform: uppercase;
- font-size: 14px;
- letter-spacing: 0.05em;
- font-weight: 400;
- margin-right: 1rem;
- }
- }
-
- .row {
- display: grid;
- row-gap: 1rem;
- column-gap: 1rem;
- grid-template-columns: 1fr 1fr 1fr;
- padding-bottom: 0.5rem;
-
- @media only screen and (max-width: 1300px) {
- grid-template-columns: 1fr 1fr;
- }
-
- @media only screen and (max-width: 500px) {
- grid-template-columns: 1fr;
- }
-
- .step {
- padding: 1rem;
- width: 100%;
- display: flex;
- flex-direction: column;
- box-sizing: border-box;
- align-items: flex-start;
-
- i {
- font-size: 2.5rem;
- margin-bottom: 1rem;
- }
-
- h6 {
- font-size: 1.1rem;
- text-align: center;
- font-weight: 400;
- margin: 0;
- }
-
- p {
- font-size: 14px;
- margin: 1rem 0;
- }
-
- .fill-space {
- flex: 1;
- }
-
- button {
- display: block;
- margin: auto;
- }
- }
- }
-}
diff --git a/console/src/app/modules/links/links.component.ts b/console/src/app/modules/links/links.component.ts
deleted file mode 100644
index 2592e1e6b..000000000
--- a/console/src/app/modules/links/links.component.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Component, Input } from '@angular/core';
-
-
-export interface CnslLinks {
- i18nTitle: string;
- i18nDesc: string;
- routerLink?: any;
- href?: string;
- iconClasses?: string;
- withRole?: string[] | RegExp[];
-}
-
-@Component({
- selector: 'cnsl-links',
- templateUrl: './links.component.html',
- styleUrls: ['./links.component.scss'],
-})
-export class LinksComponent {
- @Input() links: Array
= [];
-}
diff --git a/console/src/app/modules/links/links.module.ts b/console/src/app/modules/links/links.module.ts
deleted file mode 100644
index f38c867b9..000000000
--- a/console/src/app/modules/links/links.module.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { LinksComponent } from './links.component';
-import { TranslateModule } from '@ngx-translate/core';
-import { RouterModule } from '@angular/router';
-import { MatButton, MatButtonModule } from '@angular/material/button';
-import { HasRoleModule } from 'src/app/directives/has-role/has-role.module';
-
-
-
-@NgModule({
- declarations: [LinksComponent],
- imports: [
- CommonModule,
- TranslateModule,
- RouterModule,
- MatButtonModule,
- HasRoleModule,
- ],
- exports: [
- LinksComponent,
- ],
-})
-export class LinksModule { }
diff --git a/console/src/app/modules/policies/privacy-policy/privacy-policy.component.ts b/console/src/app/modules/policies/privacy-policy/privacy-policy.component.ts
index 6b474cd35..ceecf4775 100644
--- a/console/src/app/modules/policies/privacy-policy/privacy-policy.component.ts
+++ b/console/src/app/modules/policies/privacy-policy/privacy-policy.component.ts
@@ -19,7 +19,6 @@ import { ManagementService } from 'src/app/services/mgmt.service';
import { ToastService } from 'src/app/services/toast.service';
import { InfoSectionType } from '../../info-section/info-section.component';
-import { CnslLinks } from '../../links/links.component';
import { WarnDialogComponent } from '../../warn-dialog/warn-dialog.component';
import { PolicyComponentServiceType } from '../policy-component-types.enum';
@@ -33,7 +32,6 @@ export class PrivacyPolicyComponent implements OnInit, OnDestroy {
public PolicyComponentServiceType: any = PolicyComponentServiceType;
@Input() public serviceType: PolicyComponentServiceType = PolicyComponentServiceType.MGMT;
- public nextLinks: CnslLinks[] = [];
private sub: Subscription = new Subscription();
public privacyPolicy: PrivacyPolicy.AsObject | undefined = undefined;
diff --git a/console/src/app/modules/policies/private-labeling-policy/private-labeling-policy.component.ts b/console/src/app/modules/policies/private-labeling-policy/private-labeling-policy.component.ts
index fd68aa25c..866884d5a 100644
--- a/console/src/app/modules/policies/private-labeling-policy/private-labeling-policy.component.ts
+++ b/console/src/app/modules/policies/private-labeling-policy/private-labeling-policy.component.ts
@@ -118,7 +118,7 @@ export class PrivateLabelingPolicyComponent implements OnInit, OnDestroy {
case PolicyComponentServiceType.MGMT:
return this.handleUploadPromise(this.assetService.upload(AssetEndpoint.MGMTDARKLOGO, formData, this.org.id));
case PolicyComponentServiceType.ADMIN:
- return this.handleUploadPromise(this.assetService.upload(AssetEndpoint.IAMDARKLOGO, formData, this.org.id));
+ return this.handleUploadPromise(this.assetService.upload(AssetEndpoint.IAMDARKLOGO, formData));
}
}
if (theme === Theme.LIGHT) {
@@ -126,7 +126,7 @@ export class PrivateLabelingPolicyComponent implements OnInit, OnDestroy {
case PolicyComponentServiceType.MGMT:
return this.handleUploadPromise(this.assetService.upload(AssetEndpoint.MGMTLOGO, formData, this.org.id));
case PolicyComponentServiceType.ADMIN:
- return this.handleUploadPromise(this.assetService.upload(AssetEndpoint.IAMLOGO, formData, this.org.id));
+ return this.handleUploadPromise(this.assetService.upload(AssetEndpoint.IAMLOGO, formData));
}
}
}
@@ -273,7 +273,7 @@ export class PrivateLabelingPolicyComponent implements OnInit, OnDestroy {
this.handleUploadPromise(this.assetService.upload(AssetEndpoint.MGMTDARKICON, formData, this.org.id));
break;
case PolicyComponentServiceType.ADMIN:
- this.handleUploadPromise(this.assetService.upload(AssetEndpoint.IAMDARKICON, formData, this.org.id));
+ this.handleUploadPromise(this.assetService.upload(AssetEndpoint.IAMDARKICON, formData));
break;
}
}
@@ -283,7 +283,7 @@ export class PrivateLabelingPolicyComponent implements OnInit, OnDestroy {
this.handleUploadPromise(this.assetService.upload(AssetEndpoint.MGMTICON, formData, this.org.id));
break;
case PolicyComponentServiceType.ADMIN:
- this.handleUploadPromise(this.assetService.upload(AssetEndpoint.IAMICON, formData, this.org.id));
+ this.handleUploadPromise(this.assetService.upload(AssetEndpoint.IAMICON, formData));
break;
}
}
diff --git a/console/src/app/pages/org-create/org-create.component.html b/console/src/app/pages/org-create/org-create.component.html
index f86a163c7..c7f3d4bcc 100644
--- a/console/src/app/pages/org-create/org-create.component.html
+++ b/console/src/app/pages/org-create/org-create.component.html
@@ -1,225 +1,214 @@
-
-
-
-
- {{ 'ORG.PAGES.CREATE' | translate }}
- Step {{ currentCreateStep }} of {{ createSteps }}
-
+
+
+
+
+ {{ 'ORG.PAGES.USERSELFACCOUNT' | translate }}
+
-
-
-
- {{ 'ORG.PAGES.USERSELFACCOUNT' | translate }}
-
+
+
+ {{ 'ORG.PAGES.ORGDETAIL_TITLE' | translate }}
-
-
- {{ 'ORG.PAGES.ORGDETAIL_TITLE' | translate }}
+
+
+
+
+ {{ 'ORG.PAGES.ORGDETAILUSER_TITLE' | translate }}
+
+
+
-
-
- {{ 'ORG.PAGES.ORGDETAILUSER_TITLE' | translate }}
+
+ {{ 'USER.CREATE.PASSWORDSECTION' | translate }}
-
-
-
-
-
-
-
-
-
- {{ 'ORG.PAGES.ORGDETAIL_TITLE_WITHOUT_DOMAIN' | translate }}
-
-
-
-
-
-
+
+
+
+
+
+
+
+ {{ 'ORG.PAGES.ORGDETAIL_TITLE_WITHOUT_DOMAIN' | translate }}
+
+
+
+
+
-
+
diff --git a/console/src/app/pages/org-create/org-create.component.scss b/console/src/app/pages/org-create/org-create.component.scss
index 67eeda3fc..6c1b3e686 100644
--- a/console/src/app/pages/org-create/org-create.component.scss
+++ b/console/src/app/pages/org-create/org-create.component.scss
@@ -2,25 +2,7 @@ h1 {
font-weight: 500;
}
-.abort-container {
- display: flex;
- align-items: center;
- margin-bottom: 2rem;
-
- .abort {
- font-size: 1.2rem;
- margin-left: 2rem;
- }
-
- .abort-2 {
- font-size: 1.2rem;
- margin-left: 2rem;
- white-space: nowrap;
- }
-}
-
.org-create-main-content {
- padding-left: 4.5rem;
max-width: 35rem;
.content {
diff --git a/console/src/app/pages/org-create/org-create.module.ts b/console/src/app/pages/org-create/org-create.module.ts
index 411aec252..d007e0fb8 100644
--- a/console/src/app/pages/org-create/org-create.module.ts
+++ b/console/src/app/pages/org-create/org-create.module.ts
@@ -8,6 +8,7 @@ import { MatSelectModule } from '@angular/material/select';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { TranslateModule } from '@ngx-translate/core';
import { HasRoleModule } from 'src/app/directives/has-role/has-role.module';
+import { CreateLayoutModule } from 'src/app/modules/create-layout/create-layout.module';
import { InputModule } from 'src/app/modules/input/input.module';
import { PasswordComplexityViewModule } from 'src/app/modules/password-complexity-view/password-complexity-view.module';
import { HasRolePipeModule } from 'src/app/pipes/has-role-pipe/has-role-pipe.module';
@@ -26,6 +27,7 @@ import { OrgCreateComponent } from './org-create.component';
MatButtonModule,
MatIconModule,
MatSelectModule,
+ CreateLayoutModule,
HasRolePipeModule,
TranslateModule,
HasRoleModule,
diff --git a/console/src/app/pages/projects/apps/app-create/app-create.component.html b/console/src/app/pages/projects/apps/app-create/app-create.component.html
index 1c367ee4e..7453cc972 100644
--- a/console/src/app/pages/projects/apps/app-create/app-create.component.html
+++ b/console/src/app/pages/projects/apps/app-create/app-create.component.html
@@ -1,133 +1,313 @@
-
-
-
-
- {{ 'APP.PAGES.CREATE_OIDC' | translate }}Step {{ currentCreateStep }} of {{ createSteps }}
-
+
+ {{ 'APP.PAGES.CREATE_OIDC_DESC_TITLE' | translate }}
+
-
-
{{ 'APP.PAGES.CREATE_OIDC_DESC_TITLE' | translate }}
-
+
+ {{ 'APP.OIDC.PROSWITCH' | translate }}
+
-
- {{ 'APP.OIDC.PROSWITCH' | translate }}
-
+
+
+
+
+
+
+
+ {{ 'APP.AUTHMETHODSECTION' | translate }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ 'APP.OIDC.REDIRECTSECTION' | translate }}
+
+ {{ 'APP.OIDC.REDIRECTTITLE' | translate }}
+
+ {{ 'APP.OIDC.REDIRECTDESCRIPTIONNATIVE' | translate }}
+
+
+ {{ 'APP.OIDC.REDIRECTDESCRIPTIONWEB' | translate }}
+
+
+
+
+
+ {{ 'APP.OIDC.POSTREDIRECTTITLE' | translate }}
+
+ {{ 'APP.OIDC.REDIRECTDESCRIPTIONNATIVE' | translate }}
+
+
+ {{ 'APP.OIDC.REDIRECTDESCRIPTIONWEB' | translate }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ 'APP.OIDC.OVERVIEWSECTION' | translate }}
+ {{ 'APP.OIDC.OVERVIEWTITLE' | translate }}
+
+
+ {{ 'APP.NAME' | translate }}
+
+
+ {{ oidcAppRequest.name }}
+
+
+
+
+
+
+ {{ 'APP.TYPE' | translate }}
+
+
+ {{ 'APP.OIDC.APPTYPE.' + oidcAppRequest.appType | translate }}
+
+
+
+
+ {{ 'APP.GRANT' | translate }}
+
+ 0">
+ [
+ {{ 'APP.OIDC.GRANT.' + element | translate }}
+ {{ i < oidcAppRequest.grantTypesList.length - 1 ? ', ' : '' }} ]
+
+
+
+
+ {{ 'APP.OIDC.RESPONSETYPE' | translate }}
+
+ 0">
+ [
+ {{ 'APP.OIDC.RESPONSE.' + element | translate }}
+ {{ i < oidcAppRequest.responseTypesList.length - 1 ? ', ' : '' }} ]
+
+
+
+
+
+ {{ 'APP.AUTHMETHOD' | translate }}
+
+
+
+ {{ 'APP.OIDC.AUTHMETHOD.' + oidcAppRequest?.authMethodType | translate }}
+
+
+
+
+
+
+ {{ 'APP.OIDC.REDIRECT' | translate }}
+
+ 0">
+ [
+ {{ redirect }}
+ {{ i < oidcAppRequest.redirectUrisList.length - 1 ? ', ' : '' }} ]
+
+
+
+
+
+ {{ 'APP.OIDC.POSTLOGOUTREDIRECT' | translate }}
+
+ 0"
+ >
+ [
+ {{ redirect }}
+ {{ i < oidcAppRequest.postLogoutRedirectUrisList.length - 1 ? ', ' : '' }} ]
+
+
+
+
+
+
+
+ {{ 'APP.AUTHMETHOD' | translate }}
+
+
+
+ {{ 'APP.API.AUTHMETHOD.' + apiAppRequest?.authMethodType | translate }}
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/console/src/app/pages/projects/apps/app-create/app-create.component.scss b/console/src/app/pages/projects/apps/app-create/app-create.component.scss
index 07a7a1ec5..a040ea3e5 100644
--- a/console/src/app/pages/projects/apps/app-create/app-create.component.scss
+++ b/console/src/app/pages/projects/apps/app-create/app-create.component.scss
@@ -12,122 +12,101 @@ p.desc {
display: block;
}
-.abort-container {
+.name-formfield {
+ max-width: 400px;
+ display: block;
+}
+
+.app-create-container {
+ padding-top: 2rem;
+
+ .progress-bar {
+ margin-bottom: 1rem;
+ }
+}
+
+.margin-right {
+ margin-right: 0.5rem;
+}
+
+.full-width {
+ width: 100%;
+}
+
+.stepper {
+ background: inherit !important;
+ margin: 0 -1.5rem;
+
+ .formfield {
+ max-width: 400px;
+ }
+
+ .step-title {
+ font-size: 1rem;
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+ }
+
+ .step-description {
+ font-size: 0.9rem;
+ }
+}
+
+.checkbox-container {
+ display: flex;
+ flex-direction: column;
+
+ .checkbox {
+ margin: 0.5rem 0;
+ }
+}
+
+.row {
+ display: flex;
+ justify-content: space-between;
+
+ .left,
+ .right {
+ margin-bottom: 0.5rem;
+ font-size: 14px;
+ }
+}
+
+.app-create-actions {
+ margin-top: 1rem;
display: flex;
align-items: center;
- margin-bottom: 2rem;
- .abort {
- font-size: 1.2rem;
- margin-left: 2rem;
+ .bck-button {
+ margin-right: 1rem;
}
- .abort-2 {
- font-size: 1.2rem;
- margin-left: 2rem;
- white-space: nowrap;
+ .create-button {
+ padding: 0.5rem 4rem;
}
}
-.app-create-content {
- padding-left: 4.5rem;
-
- .name-formfield {
- max-width: 400px;
- display: block;
- }
-
- .app-create-container {
- padding-top: 2rem;
-
- .progress-bar {
- margin-bottom: 1rem;
- }
- }
-
- .margin-right {
- margin-right: 0.5rem;
- }
-
- .full-width {
- width: 100%;
- }
-
- .stepper {
- background: inherit !important;
- margin: 0 -1.5rem;
+.dev {
+ .content {
+ display: flex;
+ margin: 0 -0.5rem;
+ flex-wrap: wrap;
+ flex-direction: row;
.formfield {
- max-width: 400px;
- }
+ flex: 1;
+ box-sizing: border-box;
+ margin: 0 0.5rem;
- .step-title {
- font-size: 1rem;
- text-transform: uppercase;
- letter-spacing: 0.05em;
- }
-
- .step-description {
- font-size: 0.9rem;
- }
- }
-
- .checkbox-container {
- display: flex;
- flex-direction: column;
-
- .checkbox {
- margin: 0.5rem 0;
- }
- }
-
- .row {
- display: flex;
- justify-content: space-between;
-
- .left,
- .right {
- margin-bottom: 0.5rem;
- font-size: 14px;
- }
- }
-
- .app-create-actions {
- margin-top: 1rem;
- display: flex;
- align-items: center;
-
- .bck-button {
- margin-right: 1rem;
- }
-
- .create-button {
- padding: 0.5rem 4rem;
- }
- }
-
- .dev {
- .content {
- display: flex;
- margin: 0 -0.5rem;
- flex-wrap: wrap;
- flex-direction: row;
-
- .formfield {
- flex: 1;
- box-sizing: border-box;
- margin: 0 0.5rem;
-
- &.full-width {
- flex-basis: 80%;
- }
+ &.full-width {
+ flex-basis: 80%;
}
}
+ }
- .continue-button {
- margin-top: 3rem;
- display: block;
- padding: 0.5rem 4rem;
- }
+ .continue-button {
+ margin-top: 3rem;
+ display: block;
+ padding: 0.5rem 4rem;
}
}
diff --git a/console/src/app/pages/projects/apps/app-detail/app-detail.component.html b/console/src/app/pages/projects/apps/app-detail/app-detail.component.html
index ea153af43..5848f103b 100644
--- a/console/src/app/pages/projects/apps/app-detail/app-detail.component.html
+++ b/console/src/app/pages/projects/apps/app-detail/app-detail.component.html
@@ -1,150 +1,90 @@
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
{{ 'APP.COMPLIANCE' | translate }}
+
+
+ -
+ {{ problem.localizedMessage }}
+
+
+
+
-
-
-
-
- {{'APP.OIDC.REDIRECTDESCRIPTIONNATIVE' | translate}}
-
- {{ 'APP.OIDC.DEVMODE' | translate }}
-
-
-
-
-
- {{'APP.OIDC.REDIRECTDESCRIPTIONWEB' | translate}}
-
- {{ 'APP.OIDC.DEVMODE' | translate }}
-
-
-
-
-
-
-
-
-
-
-
-
- {{ 'ACTIONS.SAVE' | translate }}
-
-
-
-
-
-
-
- {{'APP.ADDITIONALORIGINSDESC' | translate}}
-
-
-
-
-
- {{ 'ACTIONS.SAVE' | translate }}
-
-
-
-
-
-
-
-
-
-
{{environmentV.key}}
-
-
-
- {{environmentV.value}}
-
-
-
-
-
-
-
-
-
-
-
{{'APP.COMPLIANCE' | translate}}
-
-
- -
- {{problem.localizedMessage}}
-
-
-
+
+
{{ currentRadioItemAuthType.titleI18nKey | translate }}
+
{{ currentRadioItemAuthType.descI18nKey | translate }}
+
+
+
+
@@ -156,7 +96,7 @@
{{ 'APP.TYPE' | translate }}
- {{ 'APP.OIDC.APPTYPE.'+type | translate }}
+ {{ 'APP.OIDC.APPTYPE.' + type | translate }}
@@ -165,7 +105,7 @@
{{ 'APP.OIDC.RESPONSETYPE' | translate }}
- {{ 'APP.OIDC.RESPONSE.'+type | translate }}
+ {{ 'APP.OIDC.RESPONSE.' + type | translate }}
@@ -174,7 +114,7 @@
{{ 'APP.AUTHMETHOD' | translate }}
- {{ 'APP.OIDC.AUTHMETHOD.'+type | translate }}
+ {{ 'APP.OIDC.AUTHMETHOD.' + type | translate }}
@@ -183,62 +123,31 @@
{{ 'APP.OIDC.GRANTTYPE' | translate }}
- {{ 'APP.OIDC.GRANT.'+grant | translate }}
+ {{ 'APP.OIDC.GRANT.' + grant | translate }}
-
+ [checked]="this.grantTypesList?.value.includes(OIDCGrantType.OIDC_GRANT_TYPE_REFRESH_TOKEN)"
+ >
{{ 'APP.OIDC.REFRESHTOKEN' | translate }}
-
-
{{'APP.OIDC.TOKENSECTIONTITLE' | translate}}
-
-
- {{ 'APP.OIDC.TOKENTYPE' | translate }}
-
-
- {{ 'APP.OIDC.TOKENTYPE'+type | translate }}
-
-
-
-
-
- {{'APP.OIDC.ACCESSTOKENROLEASSERTION' | translate}}
-
-
- {{'APP.OIDC.ACCESSTOKENROLEASSERTION_DESCRIPTION' | translate}}
-
-
- {{'APP.OIDC.IDTOKENROLEASSERTION' | translate}}
-
- {{'APP.OIDC.IDTOKENROLEASSERTION_DESCRIPTION' | translate}}
-
-
-
- {{'APP.OIDC.IDTOKENUSERINFOASSERTION' | translate}}
-
- {{'APP.OIDC.IDTOKENUSERINFOASSERTION_DESCRIPTION' | translate}}
-
-
-
ClockSkew
-
-
-
- {{'APP.OIDC.CLOCKSKEW' | translate}}
-
-
+
{{ 'ACTIONS.SAVE' | translate }}
@@ -246,14 +155,220 @@
+
+
+
+
+ {{ 'APP.OIDC.TOKENTYPE' | translate }}
+
+
+ {{ 'APP.OIDC.TOKENTYPE' + type | translate }}
+
+
+
+
+
+ {{ 'APP.OIDC.ACCESSTOKENROLEASSERTION' | translate }}
+
+
+ {{ 'APP.OIDC.ACCESSTOKENROLEASSERTION_DESCRIPTION' | translate }}
+
+
+
+ {{ 'APP.OIDC.IDTOKENROLEASSERTION' | translate }}
+
+ {{ 'APP.OIDC.IDTOKENROLEASSERTION_DESCRIPTION' | translate }}
+
+
+
+ {{ 'APP.OIDC.IDTOKENUSERINFOASSERTION' | translate }}
+
+ {{ 'APP.OIDC.IDTOKENUSERINFOASSERTION_DESCRIPTION' | translate }}
+
+
+ ClockSkew
+
+
+
+ {{ 'APP.OIDC.CLOCKSKEW' | translate }}
+
+
+
+
+ {{ 'ACTIONS.SAVE' | translate }}
+
+
+
+
+
+
+
+
+
+
+ {{ 'APP.OIDC.REDIRECTDESCRIPTIONNATIVE' | translate }}
+
+ {{ 'APP.OIDC.DEVMODE' | translate }}
+
+
+
+
+
+ {{ 'APP.OIDC.REDIRECTDESCRIPTIONWEB' | translate }}
+
+ {{ 'APP.OIDC.DEVMODE' | translate }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ 'ACTIONS.SAVE' | translate }}
+
+
+
+
+
+
+
+ {{ 'APP.ADDITIONALORIGINSDESC' | translate }}
+
+
+
+
+
+ {{ 'ACTIONS.SAVE' | translate }}
+
+
+
+
+
+
+
+
+
+
{{ environmentV.key }}
+
+
+
+ {{ environmentV.value }}
+
+
+
+
+
+
+
+
-
+
-
+
{{ 'ACTIONS.SAVE' | translate }}
@@ -261,11 +376,9 @@
-
-
-
\ No newline at end of file
+
diff --git a/console/src/app/pages/projects/apps/app-detail/app-detail.component.scss b/console/src/app/pages/projects/apps/app-detail/app-detail.component.scss
index 040e16236..e2926272a 100644
--- a/console/src/app/pages/projects/apps/app-detail/app-detail.component.scss
+++ b/console/src/app/pages/projects/apps/app-detail/app-detail.component.scss
@@ -44,11 +44,6 @@
flex-direction: column;
margin: 0 -0.5rem;
- @media only screen and (min-width: 500px) {
- flex-direction: row;
- flex-wrap: wrap;
- }
-
.app-info-wrapper {
display: flex;
flex-direction: column;
@@ -77,6 +72,7 @@
flex-direction: column;
width: 100%;
align-items: stretch;
+ margin-bottom: 0.5rem;
button {
transition: opacity 0.15s ease-in-out;
@@ -109,22 +105,53 @@
}
}
+ .compliance {
+ padding-bottom: 1rem;
+ padding-top: 0.5rem;
+ border-bottom: 1px solid $divider-color;
+
+ .compliance-title {
+ margin: 1rem 0 1rem 0;
+ font-size: 16px;
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+ }
+
+ .problem {
+ font-size: 14px;
+ margin: 0 0 0.5rem 0;
+ display: block;
+ }
+ }
+
.app-main-content {
- border-top: 1px solid $divider-color;
- margin-top: 1.5rem;
- }
-}
+ margin-top: 0.5rem;
-.compliance {
- .compliance-title {
- margin: 1rem 0 1rem 0;
- font-size: 16px;
- }
+ .current-auth-method {
+ display: flex;
+ align-items: center;
+ border: 1px solid if($is-dark-theme, rgba(#8795a1, 0.2), rgba(#8795a1, 0.2));
+ border-radius: 0.5rem;
+ padding: 0.5rem 1rem;
+ margin-bottom: 1rem;
- .problem {
- font-size: 14px;
- margin: 0 0 0.5rem 0;
- display: block;
+ h3 {
+ margin: 0 1rem 0 0;
+ }
+
+ p {
+ font-size: 14px;
+ margin: 0;
+ }
+
+ .fill-space {
+ flex: 1;
+ }
+
+ button {
+ margin-left: 1rem;
+ }
+ }
}
}
diff --git a/console/src/app/pages/projects/apps/app-detail/app-detail.component.ts b/console/src/app/pages/projects/apps/app-detail/app-detail.component.ts
index 5851f3dad..6a1761313 100644
--- a/console/src/app/pages/projects/apps/app-detail/app-detail.component.ts
+++ b/console/src/app/pages/projects/apps/app-detail/app-detail.component.ts
@@ -5,7 +5,6 @@ import { Component, OnDestroy, OnInit } from '@angular/core';
import { AbstractControl, FormBuilder, FormControl, FormGroup } from '@angular/forms';
import { MatCheckboxChange } from '@angular/material/checkbox';
import { MatDialog } from '@angular/material/dialog';
-import { MatSnackBar } from '@angular/material/snack-bar';
import { ActivatedRoute, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { Duration } from 'google-protobuf/google/protobuf/duration_pb';
@@ -14,7 +13,6 @@ import { take } from 'rxjs/operators';
import { RadioItemAuthType } from 'src/app/modules/app-radio/app-auth-method-radio/app-auth-method-radio.component';
import { ChangeType } from 'src/app/modules/changes/changes.component';
import { InfoSectionType } from 'src/app/modules/info-section/info-section.component';
-import { CnslLinks } from 'src/app/modules/links/links.component';
import { NameDialogComponent } from 'src/app/modules/name-dialog/name-dialog.component';
import { SidenavSetting } from 'src/app/modules/sidenav/sidenav.component';
import { WarnDialogComponent } from 'src/app/modules/warn-dialog/warn-dialog.component';
@@ -52,6 +50,7 @@ import {
PKCE_METHOD,
POST_METHOD,
} from '../authmethods';
+import { AuthMethodDialogComponent } from './auth-method-dialog/auth-method-dialog.component';
@Component({
selector: 'cnsl-app-detail',
@@ -103,6 +102,7 @@ export class AppDetailComponent implements OnInit, OnDestroy {
public AppState: any = AppState;
public oidcForm!: FormGroup;
+ public oidcTokenForm!: FormGroup;
public apiForm!: FormGroup;
public redirectUrisList: string[] = [];
@@ -122,7 +122,6 @@ export class AppDetailComponent implements OnInit, OnDestroy {
public requestRedirectValuesSubject$: Subject = new Subject();
public copiedKey: any = '';
- public nextLinks: Array = [];
public InfoSectionType: any = InfoSectionType;
public copied: string = '';
@@ -139,7 +138,6 @@ export class AppDetailComponent implements OnInit, OnDestroy {
private mgmtService: ManagementService,
private authService: GrpcAuthService,
private router: Router,
- private snackbar: MatSnackBar,
private breadcrumbService: BreadcrumbService,
private http: HttpClient,
) {
@@ -150,6 +148,9 @@ export class AppDetailComponent implements OnInit, OnDestroy {
grantTypesList: [{ value: [], disabled: true }],
appType: [{ value: '', disabled: true }],
authMethodType: [{ value: '', disabled: true }],
+ });
+
+ this.oidcTokenForm = this.fb.group({
accessTokenType: [{ value: '', disabled: true }],
accessTokenRoleAssertion: [{ value: false, disabled: true }],
idTokenRoleAssertion: [{ value: false, disabled: true }],
@@ -212,32 +213,7 @@ export class AppDetailComponent implements OnInit, OnDestroy {
this.subscription?.unsubscribe();
}
- private initLinks(): void {
- this.nextLinks = [
- {
- i18nTitle: 'APP.PAGES.NEXTSTEPS.0.TITLE',
- i18nDesc: 'APP.PAGES.NEXTSTEPS.0.DESC',
- routerLink: ['/projects', this.projectId, 'roles'],
- iconClasses: 'las la-user-tag',
- },
- {
- i18nTitle: 'APP.PAGES.NEXTSTEPS.1.TITLE',
- i18nDesc: 'APP.PAGES.NEXTSTEPS.1.DESC',
- routerLink: ['/users', 'create'],
- iconClasses: 'las la-user-plus',
- },
- {
- i18nTitle: 'APP.PAGES.NEXTSTEPS.2.TITLE',
- i18nDesc: 'APP.PAGES.NEXTSTEPS.2.DESC',
- href: 'https://docs.zitadel.comm',
- iconClasses: 'las la-people-carry',
- },
- ];
- }
-
private async getData(projectId: string, appId: string): Promise {
- this.initLinks();
-
this.mgmtService.getIAM().then((iam) => {
this.isZitadel = iam.iamProjectId === this.projectId;
});
@@ -277,6 +253,7 @@ export class AppDetailComponent implements OnInit, OnDestroy {
this.settingsList = [
{ id: 'configuration', i18nKey: 'APP.CONFIGURATION' },
+ { id: 'token', i18nKey: 'APP.TOKEN' },
{ id: 'redirect-uris', i18nKey: 'APP.OIDC.REDIRECTSECTIONTITLE' },
{ id: 'additional-origins', i18nKey: 'APP.ADDITIONALORIGINS' },
{ id: 'urls', i18nKey: 'APP.URLS' },
@@ -317,6 +294,7 @@ export class AppDetailComponent implements OnInit, OnDestroy {
if (allowed) {
this.oidcForm.enable();
+ this.oidcTokenForm.enable();
this.apiForm.enable();
}
@@ -332,10 +310,11 @@ export class AppDetailComponent implements OnInit, OnDestroy {
if (this.app.oidcConfig?.clockSkew) {
const inSecs = this.app.oidcConfig?.clockSkew.seconds + this.app.oidcConfig?.clockSkew.nanos / 100000;
- this.oidcForm.controls['clockSkewSeconds'].setValue(inSecs);
+ this.oidcTokenForm.controls['clockSkewSeconds'].setValue(inSecs);
}
if (this.app.oidcConfig) {
this.oidcForm.patchValue(this.app.oidcConfig);
+ this.oidcTokenForm.patchValue(this.app.oidcConfig);
}
if (this.app.apiConfig) {
this.apiForm.patchValue(this.app.apiConfig);
@@ -350,8 +329,6 @@ export class AppDetailComponent implements OnInit, OnDestroy {
} else {
this.authMethods = this.authMethods.filter((element) => element !== CUSTOM_METHOD);
}
-
- this.showSaveSnack();
});
this.apiForm.valueChanges.subscribe((apiConfig) => {
@@ -363,8 +340,6 @@ export class AppDetailComponent implements OnInit, OnDestroy {
} else {
this.authMethods = this.authMethods.filter((element) => element !== CUSTOM_METHOD);
}
-
- this.showSaveSnack();
});
}
})
@@ -377,20 +352,6 @@ export class AppDetailComponent implements OnInit, OnDestroy {
this.docs = await this.mgmtService.getOIDCInformation();
}
- private async showSaveSnack(): Promise {
- const message = await this.translate.get('APP.TOAST.CONFIGCHANGED').toPromise();
- const action = await this.translate.get('ACTIONS.SAVENOW').toPromise();
-
- const snackRef = this.snackbar.open(message, action, { duration: 5000, verticalPosition: 'top' });
- snackRef.onAction().subscribe(() => {
- if (this.app.oidcConfig) {
- this.saveOIDCApp();
- } else if (this.app.apiConfig) {
- this.saveAPIApp();
- }
- });
- }
-
private getAuthMethodOptions(type: string): void {
if (type === 'OIDC') {
switch (this.app.oidcConfig?.appType) {
@@ -426,6 +387,7 @@ export class AppDetailComponent implements OnInit, OnDestroy {
(partialConfig.oidc as Partial).authMethodType ?? OIDCAuthMethodType.OIDC_AUTH_METHOD_TYPE_NONE;
this.oidcForm.patchValue(this.app.oidcConfig);
+ this.oidcTokenForm.patchValue(this.app.oidcConfig);
} else if (partialConfig && partialConfig.api && this.app.apiConfig) {
this.app.apiConfig.authMethodType =
(partialConfig.api as Partial).authMethodType ?? APIAuthMethodType.API_AUTH_METHOD_TYPE_BASIC;
@@ -444,6 +406,7 @@ export class AppDetailComponent implements OnInit, OnDestroy {
},
width: '400px',
});
+
dialogRef.afterClosed().subscribe((resp) => {
if (resp && this.projectId && this.app.id) {
this.mgmtService
@@ -519,40 +482,53 @@ export class AppDetailComponent implements OnInit, OnDestroy {
this.requestRedirectValuesSubject$.next();
if (this.oidcForm.valid) {
if (this.app.oidcConfig) {
+ // configuration
this.app.oidcConfig.responseTypesList = this.responseTypesList?.value;
this.app.oidcConfig.grantTypesList = this.grantTypesList?.value;
this.app.oidcConfig.appType = this.appType?.value;
this.app.oidcConfig.authMethodType = this.authMethodType?.value;
- this.app.oidcConfig.redirectUrisList = this.redirectUrisList;
- this.app.oidcConfig.postLogoutRedirectUrisList = this.postLogoutRedirectUrisList;
- this.app.oidcConfig.additionalOriginsList = this.additionalOriginsList;
- this.app.oidcConfig.devMode = this.devMode?.value;
+
+ // token
this.app.oidcConfig.accessTokenType = this.accessTokenType?.value;
this.app.oidcConfig.accessTokenRoleAssertion = this.accessTokenRoleAssertion?.value;
this.app.oidcConfig.idTokenRoleAssertion = this.idTokenRoleAssertion?.value;
this.app.oidcConfig.idTokenUserinfoAssertion = this.idTokenUserinfoAssertion?.value;
+ // redirects
+ this.app.oidcConfig.redirectUrisList = this.redirectUrisList;
+ this.app.oidcConfig.postLogoutRedirectUrisList = this.postLogoutRedirectUrisList;
+ this.app.oidcConfig.additionalOriginsList = this.additionalOriginsList;
+ this.app.oidcConfig.devMode = this.devMode?.value;
+
const req = new UpdateOIDCAppConfigRequest();
req.setProjectId(this.projectId);
req.setAppId(this.app.id);
- req.setRedirectUrisList(this.app.oidcConfig.redirectUrisList);
+
+ // configuration
req.setResponseTypesList(this.app.oidcConfig.responseTypesList);
- req.setAdditionalOriginsList(this.app.oidcConfig.additionalOriginsList);
req.setAuthMethodType(this.app.oidcConfig.authMethodType);
- req.setPostLogoutRedirectUrisList(this.app.oidcConfig.postLogoutRedirectUrisList);
req.setGrantTypesList(this.app.oidcConfig.grantTypesList);
req.setAppType(this.app.oidcConfig.appType);
- req.setDevMode(this.app.oidcConfig.devMode);
+
+ // token
req.setAccessTokenType(this.app.oidcConfig.accessTokenType);
req.setAccessTokenRoleAssertion(this.app.oidcConfig.accessTokenRoleAssertion);
req.setIdTokenRoleAssertion(this.app.oidcConfig.idTokenRoleAssertion);
req.setIdTokenUserinfoAssertion(this.app.oidcConfig.idTokenUserinfoAssertion);
+
+ // redirects
+ req.setRedirectUrisList(this.app.oidcConfig.redirectUrisList);
+ req.setAdditionalOriginsList(this.app.oidcConfig.additionalOriginsList);
+ req.setPostLogoutRedirectUrisList(this.app.oidcConfig.postLogoutRedirectUrisList);
+ req.setDevMode(this.app.oidcConfig.devMode);
+
if (this.clockSkewSeconds?.value) {
const dur = new Duration();
dur.setSeconds(Math.floor(this.clockSkewSeconds?.value));
dur.setNanos(Math.floor(this.clockSkewSeconds?.value % 1) * 10000);
req.setClockSkew(dur);
}
+
this.mgmtService
.updateOIDCAppConfig(req)
.then(() => {
@@ -622,6 +598,24 @@ export class AppDetailComponent implements OnInit, OnDestroy {
});
}
+ public changeAuthMethod(): void {
+ const ref = this.dialog.open(AuthMethodDialogComponent, {
+ data: {
+ radioItemAuthType: this.currentRadioItemAuthType,
+ initialAuthMethod: this.initialAuthMethod,
+ currentAuthMethod: this.currentAuthMethod,
+ authMethods: this.authMethods,
+ isOIDC: this.app?.oidcConfig !== undefined,
+ },
+ });
+
+ ref.afterClosed().subscribe((authMethod: string) => {
+ if (authMethod) {
+ this.setPartialConfigFromAuthMethod(authMethod);
+ }
+ });
+ }
+
public regenerateAPIClientSecret(): void {
this.mgmtService
.regenerateAPIClientSecret(this.app.id, this.projectId)
@@ -639,6 +633,10 @@ export class AppDetailComponent implements OnInit, OnDestroy {
});
}
+ public get currentRadioItemAuthType(): RadioItemAuthType | undefined {
+ return this.authMethods.find((i) => i.key === this.initialAuthMethod);
+ }
+
public navigateBack(): void {
this._location.back();
}
@@ -672,22 +670,22 @@ export class AppDetailComponent implements OnInit, OnDestroy {
}
public get accessTokenType(): AbstractControl | null {
- return this.oidcForm.get('accessTokenType');
+ return this.oidcTokenForm.get('accessTokenType');
}
public get idTokenRoleAssertion(): AbstractControl | null {
- return this.oidcForm.get('idTokenRoleAssertion');
+ return this.oidcTokenForm.get('idTokenRoleAssertion');
}
public get accessTokenRoleAssertion(): AbstractControl | null {
- return this.oidcForm.get('accessTokenRoleAssertion');
+ return this.oidcTokenForm.get('accessTokenRoleAssertion');
}
public get idTokenUserinfoAssertion(): AbstractControl | null {
- return this.oidcForm.get('idTokenUserinfoAssertion');
+ return this.oidcTokenForm.get('idTokenUserinfoAssertion');
}
public get clockSkewSeconds(): AbstractControl | null {
- return this.oidcForm.get('clockSkewSeconds');
+ return this.oidcTokenForm.get('clockSkewSeconds');
}
}
diff --git a/console/src/app/pages/projects/apps/app-detail/auth-method-dialog/auth-method-dialog.component.html b/console/src/app/pages/projects/apps/app-detail/auth-method-dialog/auth-method-dialog.component.html
new file mode 100644
index 000000000..7e1d1ce84
--- /dev/null
+++ b/console/src/app/pages/projects/apps/app-detail/auth-method-dialog/auth-method-dialog.component.html
@@ -0,0 +1,31 @@
+
+ {{ 'USER.CODEDIALOG.TITLE' | translate }} {{ data?.number }}
+
+{{ 'USER.CODEDIALOG.DESCRIPTION' | translate }}
+
+
+
+
+
+
+ {{ 'ACTIONS.CLOSE' | translate }}
+
+
+
+ {{ 'ACTIONS.SELECT' | translate }}
+
+
diff --git a/console/src/app/pages/projects/apps/app-detail/auth-method-dialog/auth-method-dialog.component.scss b/console/src/app/pages/projects/apps/app-detail/auth-method-dialog/auth-method-dialog.component.scss
new file mode 100644
index 000000000..e5b1b3b77
--- /dev/null
+++ b/console/src/app/pages/projects/apps/app-detail/auth-method-dialog/auth-method-dialog.component.scss
@@ -0,0 +1,25 @@
+h1 {
+ font-size: 1.5rem;
+ margin: 0;
+}
+
+.desc {
+ font-size: 14px;
+}
+
+.formfield {
+ width: 100%;
+}
+
+.action {
+ display: flex;
+ justify-content: flex-end;
+
+ .ok-button {
+ margin-left: 0.5rem;
+ }
+
+ button {
+ border-radius: 0.5rem;
+ }
+}
diff --git a/console/src/app/pages/projects/apps/app-detail/auth-method-dialog/auth-method-dialog.component.spec.ts b/console/src/app/pages/projects/apps/app-detail/auth-method-dialog/auth-method-dialog.component.spec.ts
new file mode 100644
index 000000000..ac6c6cf97
--- /dev/null
+++ b/console/src/app/pages/projects/apps/app-detail/auth-method-dialog/auth-method-dialog.component.spec.ts
@@ -0,0 +1,24 @@
+import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
+
+import { AuthMethodDialogComponent } from './auth-method-dialog.component';
+
+describe('AuthMethodDialogComponent', () => {
+ let component: AuthMethodDialogComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(waitForAsync(() => {
+ TestBed.configureTestingModule({
+ declarations: [AuthMethodDialogComponent],
+ }).compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(AuthMethodDialogComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/console/src/app/pages/projects/apps/app-detail/auth-method-dialog/auth-method-dialog.component.ts b/console/src/app/pages/projects/apps/app-detail/auth-method-dialog/auth-method-dialog.component.ts
new file mode 100644
index 000000000..2199b298d
--- /dev/null
+++ b/console/src/app/pages/projects/apps/app-detail/auth-method-dialog/auth-method-dialog.component.ts
@@ -0,0 +1,22 @@
+import { Component, Inject } from '@angular/core';
+import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
+
+@Component({
+ selector: 'cnsl-auth-method-dialog',
+ templateUrl: './auth-method-dialog.component.html',
+ styleUrls: ['./auth-method-dialog.component.scss'],
+})
+export class AuthMethodDialogComponent {
+ public authmethod: string = '';
+ constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {
+ this.authmethod = data.initialAuthMethod;
+ }
+
+ public closeDialog(): void {
+ this.dialogRef.close();
+ }
+
+ public closeDialogWithMethod(): void {
+ this.dialogRef.close(this.authmethod);
+ }
+}
diff --git a/console/src/app/pages/projects/apps/apps.module.ts b/console/src/app/pages/projects/apps/apps.module.ts
index 08becc22b..f89102160 100644
--- a/console/src/app/pages/projects/apps/apps.module.ts
+++ b/console/src/app/pages/projects/apps/apps.module.ts
@@ -23,10 +23,10 @@ import { AppRadioModule } from 'src/app/modules/app-radio/app-radio.module';
import { CardModule } from 'src/app/modules/card/card.module';
import { ChangesModule } from 'src/app/modules/changes/changes.module';
import { ClientKeysModule } from 'src/app/modules/client-keys/client-keys.module';
+import { CreateLayoutModule } from 'src/app/modules/create-layout/create-layout.module';
import { InfoRowModule } from 'src/app/modules/info-row/info-row.module';
import { InfoSectionModule } from 'src/app/modules/info-section/info-section.module';
import { InputModule } from 'src/app/modules/input/input.module';
-import { LinksModule } from 'src/app/modules/links/links.module';
import { MetaLayoutModule } from 'src/app/modules/meta-layout/meta-layout.module';
import { NameDialogModule } from 'src/app/modules/name-dialog/name-dialog.module';
import { SidenavModule } from 'src/app/modules/sidenav/sidenav.module';
@@ -38,6 +38,7 @@ import { RedirectPipeModule } from 'src/app/pipes/redirect-pipe/redirect-pipe.mo
import { AdditionalOriginsComponent } from './additional-origins/additional-origins.component';
import { AppCreateComponent } from './app-create/app-create.component';
import { AppDetailComponent } from './app-detail/app-detail.component';
+import { AuthMethodDialogComponent } from './app-detail/auth-method-dialog/auth-method-dialog.component';
import { AppSecretDialogComponent } from './app-secret-dialog/app-secret-dialog.component';
import { AppsRoutingModule } from './apps-routing.module';
import { RedirectUrisComponent } from './redirect-uris/redirect-uris.component';
@@ -49,12 +50,12 @@ import { RedirectUrisComponent } from './redirect-uris/redirect-uris.component';
AppSecretDialogComponent,
RedirectUrisComponent,
AdditionalOriginsComponent,
+ AuthMethodDialogComponent,
],
imports: [
CommonModule,
A11yModule,
RedirectPipeModule,
- LinksModule,
NameDialogModule,
AppRadioModule,
AppsRoutingModule,
@@ -66,6 +67,7 @@ import { RedirectUrisComponent } from './redirect-uris/redirect-uris.component';
HasRoleModule,
SidenavModule,
MatChipsModule,
+ CreateLayoutModule,
ClientKeysModule,
HasRolePipeModule,
MatIconModule,
diff --git a/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.html b/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.html
index 22c6f5445..192c44bec 100644
--- a/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.html
+++ b/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.html
@@ -1,62 +1,54 @@
-
-
-
- close
-
- {{ 'PROJECT.GRANT.CREATE.TITLE' | translate }}Step
- {{ currentCreateStep }} of
- {{ STEPS }}
-
+
+
+ {{ 'PROJECT.GRANT.CREATE.SEL_ORG' | translate }}
+ {{ 'PROJECT.GRANT.CREATE.SEL_ORG_DESC' | translate }}
-
+
+
+ {{ 'PROJECT.GRANT.CREATE.SEL_ORG_FORMFIELD' | translate }}
+
+
+
+
+ {{ 'PROJECT.GRANT.CREATE.SEL_ORG_BUTTON' | translate }}
+
+
+
+
{{ 'PROJECT.GRANT.CREATE.FOR_ORG' | translate }} {{ org?.name }}
+
+
+
+ {{ 'PROJECT.GRANT.CREATE.SEL_ROLES' | translate }}
+
+
+
+
+
+
+
+
- {{'PROJECT.GRANT.CREATE.SEL_ORG' | translate}}
- {{'PROJECT.GRANT.CREATE.SEL_ORG_DESC' | translate}}
-
-
-
- {{'PROJECT.GRANT.CREATE.SEL_ORG_FORMFIELD' | translate}}
-
-
-
-
- {{'PROJECT.GRANT.CREATE.SEL_ORG_BUTTON' | translate}}
-
-
-
-
- {{'PROJECT.GRANT.CREATE.FOR_ORG' | translate}} {{org?.name}}
-
+
+ {{ 'ACTIONS.CONTINUE' | translate }}
+
-
- {{'PROJECT.GRANT.CREATE.SEL_ROLES' | translate}}
-
-
-
-
-
+
+
+ {{ 'ACTIONS.BACK' | translate }}
+
+
+ {{ 'ACTIONS.SAVE' | translate }}
+
-
-
-
-
- {{ 'ACTIONS.CONTINUE' | translate }}
-
-
-
-
-
- {{ 'ACTIONS.BACK' | translate }}
-
-
- {{ 'ACTIONS.SAVE' | translate }}
-
-
-
-
\ No newline at end of file
+
diff --git a/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.scss b/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.scss
index f2fd39dd0..6b1695f95 100644
--- a/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.scss
+++ b/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.scss
@@ -1,34 +1,8 @@
-.container {
- padding: 4rem 0 2rem 0;
+form {
+ max-width: 35rem;
- .abort-container {
- display: flex;
- align-items: center;
- margin-bottom: 2rem;
- white-space: nowrap;
-
- .abort {
- font-size: 1.2rem;
- margin-left: 2rem;
- }
-
- .abort-2 {
- font-size: 1.2rem;
- margin-left: 2rem;
- white-space: nowrap;
- }
- }
-
- .create-content {
- padding-left: 4.5rem;
-
- form {
- max-width: 35rem;
-
- .org-domain {
- margin-right: 1rem;
- }
- }
+ .org-domain {
+ margin-right: 1rem;
}
}
diff --git a/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.ts b/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.ts
index 99ac5e3e3..533cec389 100644
--- a/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.ts
+++ b/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.ts
@@ -21,7 +21,7 @@ export class ProjectGrantCreateComponent implements OnInit, OnDestroy {
public grantId: string = '';
public rolesKeyList: string[] = [];
- public STEPS: number = 2;
+ public createSteps: number = 2;
public currentCreateStep: number = 1;
private destroy$: Subject
= new Subject();
diff --git a/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.module.ts b/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.module.ts
index e6ac1b04d..4a6151e7d 100644
--- a/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.module.ts
+++ b/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.module.ts
@@ -10,6 +10,7 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatTooltipModule } from '@angular/material/tooltip';
import { TranslateModule } from '@ngx-translate/core';
import { CardModule } from 'src/app/modules/card/card.module';
+import { CreateLayoutModule } from 'src/app/modules/create-layout/create-layout.module';
import { InputModule } from 'src/app/modules/input/input.module';
import { ProjectRolesTableModule } from 'src/app/modules/project-roles-table/project-roles-table.module';
import { HasRolePipeModule } from 'src/app/pipes/has-role-pipe/has-role-pipe.module';
@@ -25,6 +26,7 @@ import { ProjectGrantCreateComponent } from './project-grant-create.component';
MatAutocompleteModule,
MatChipsModule,
MatButtonModule,
+ CreateLayoutModule,
InputModule,
CardModule,
MatCheckboxModule,
diff --git a/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.html b/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.html
index 4b4bdc93a..851741cd7 100644
--- a/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.html
+++ b/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.html
@@ -1,14 +1,10 @@
-
-
-
- close
-
- {{ 'PROJECT.ROLE.ADDTITLE' | translate }}Step
- {{ currentCreateStep }} of
- {{ createSteps }}
-
-
-
{{'PROJECT.ROLE.ADDDESCRIPTION' | translate}}
+
+ {{ 'PROJECT.ROLE.ADDDESCRIPTION' | translate }}
@@ -27,20 +23,32 @@
-
+
- {{'PROJECT.ROLE.ADDNEWLINE' | translate}}
+ {{ 'PROJECT.ROLE.ADDNEWLINE' | translate }}
-
+
{{ 'ACTIONS.SAVE' | translate }}
-
\ No newline at end of file
+
diff --git a/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.scss b/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.scss
index 260b3e182..73be4c4a2 100644
--- a/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.scss
+++ b/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.scss
@@ -1,31 +1,6 @@
-.container {
- padding: 4rem 4rem 2rem 4rem;
-
- @media only screen and (max-width: 450px) {
- padding: 4rem 1rem 2rem 1rem;
- }
-
- .abort-container {
- display: flex;
- align-items: center;
- margin-bottom: 2rem;
-
- .abort {
- font-size: 1.2rem;
- margin-left: 2rem;
- }
-
- .abort-2 {
- font-size: 1.2rem;
- margin-left: 2rem;
- white-space: nowrap;
- }
- }
-
- .add-line-btn {
- margin-bottom: 1rem;
- border-radius: .5rem;
- }
+.add-line-btn {
+ margin-bottom: 1rem;
+ border-radius: 0.5rem;
}
.newrole-content {
@@ -55,7 +30,7 @@
.continue-button {
margin-top: 3rem;
display: block;
- padding: .5rem 4rem;
+ padding: 0.5rem 4rem;
@media only screen and (max-width: 450px) {
margin-top: 1rem;
diff --git a/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.ts b/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.ts
index a30f36163..5a44e6be8 100644
--- a/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.ts
+++ b/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.ts
@@ -36,8 +36,6 @@ export class ProjectRoleCreateComponent implements OnInit, OnDestroy {
displayName: new FormControl(''),
group: new FormControl(''),
});
- public createSteps: number = 1;
- public currentCreateStep: number = 1;
constructor(
private router: Router,
diff --git a/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.module.ts b/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.module.ts
index 15eb125fc..bff31e17a 100644
--- a/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.module.ts
+++ b/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.module.ts
@@ -5,23 +5,25 @@ import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { MatTooltipModule } from '@angular/material/tooltip';
import { TranslateModule } from '@ngx-translate/core';
+import { CreateLayoutModule } from 'src/app/modules/create-layout/create-layout.module';
import { InputModule } from 'src/app/modules/input/input.module';
import { ProjectRoleCreateRoutingModule } from './project-role-create-routing.module';
import { ProjectRoleCreateComponent } from './project-role-create.component';
@NgModule({
- declarations: [ProjectRoleCreateComponent],
- imports: [
- ProjectRoleCreateRoutingModule,
- CommonModule,
- FormsModule,
- ReactiveFormsModule,
- InputModule,
- MatButtonModule,
- MatIconModule,
- MatTooltipModule,
- TranslateModule,
- ],
+ declarations: [ProjectRoleCreateComponent],
+ imports: [
+ ProjectRoleCreateRoutingModule,
+ CommonModule,
+ FormsModule,
+ ReactiveFormsModule,
+ InputModule,
+ CreateLayoutModule,
+ MatButtonModule,
+ MatIconModule,
+ MatTooltipModule,
+ TranslateModule,
+ ],
})
-export class ProjectRoleCreateModule { }
+export class ProjectRoleCreateModule {}
diff --git a/console/src/app/pages/projects/project-create/project-create.component.html b/console/src/app/pages/projects/project-create/project-create.component.html
index f2882d3a3..a96ec233a 100644
--- a/console/src/app/pages/projects/project-create/project-create.component.html
+++ b/console/src/app/pages/projects/project-create/project-create.component.html
@@ -1,34 +1,23 @@
-
-
-
-
- close
-
-
{{ 'PROJECT.PAGES.CREATE' | translate }}
+
+ {{ 'PROJECT.PAGES.CREATE_DESC' | translate }}
+
+
+
+ {{ 'PROJECT.NAME' | translate }}
+
+
-
-
{{ 'PROJECT.PAGES.CREATE_DESC' | translate }}
-
-
-
- {{ 'PROJECT.NAME' | translate }}
-
-
-
-
-
- {{ 'ACTIONS.CONTINUE' | translate }}
-
-
-
-
-
+
+ {{ 'ACTIONS.CONTINUE' | translate }}
+
+
diff --git a/console/src/app/pages/projects/project-create/project-create.component.scss b/console/src/app/pages/projects/project-create/project-create.component.scss
index 07df0ea65..a50162196 100644
--- a/console/src/app/pages/projects/project-create/project-create.component.scss
+++ b/console/src/app/pages/projects/project-create/project-create.component.scss
@@ -2,21 +2,6 @@ h1 {
font-weight: 500;
}
-.abort-container {
- display: flex;
- align-items: center;
- margin-bottom: 2rem;
-
- .abort {
- font-size: 1.2rem;
- margin-left: 2rem;
- }
-}
-
-.project-create-content {
- padding-left: 4.5rem;
-}
-
.margin-right {
margin-right: 0.5rem;
}
diff --git a/console/src/app/pages/projects/project-create/project-create.module.ts b/console/src/app/pages/projects/project-create/project-create.module.ts
index 8c5f47b24..9456c547a 100644
--- a/console/src/app/pages/projects/project-create/project-create.module.ts
+++ b/console/src/app/pages/projects/project-create/project-create.module.ts
@@ -5,22 +5,24 @@ import { FormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { TranslateModule } from '@ngx-translate/core';
+import { CreateLayoutModule } from 'src/app/modules/create-layout/create-layout.module';
import { InputModule } from 'src/app/modules/input/input.module';
import { ProjectCreateRoutingModule } from './project-create-routing.module';
import { ProjectCreateComponent } from './project-create.component';
@NgModule({
- declarations: [ProjectCreateComponent],
- imports: [
- A11yModule,
- ProjectCreateRoutingModule,
- CommonModule,
- FormsModule,
- InputModule,
- MatButtonModule,
- MatIconModule,
- TranslateModule,
- ],
+ declarations: [ProjectCreateComponent],
+ imports: [
+ A11yModule,
+ ProjectCreateRoutingModule,
+ CommonModule,
+ FormsModule,
+ CreateLayoutModule,
+ InputModule,
+ MatButtonModule,
+ MatIconModule,
+ TranslateModule,
+ ],
})
-export class ProjectCreateModule { }
+export class ProjectCreateModule {}
diff --git a/console/src/app/pages/user-grant-create/user-grant-create.component.html b/console/src/app/pages/user-grant-create/user-grant-create.component.html
index 4df3f75af..f7dfb67e7 100644
--- a/console/src/app/pages/user-grant-create/user-grant-create.component.html
+++ b/console/src/app/pages/user-grant-create/user-grant-create.component.html
@@ -1,80 +1,73 @@
-
-
-
-
- close
+
+
+
+ {{ 'PROJECT.GRANT.CREATE.ORG_DESCRIPTION' | translate: org }}
+
+ {{ 'PROJECT.GRANT.CREATE.ORG_DESCRIPTION_DESC' | translate }}
+
+
+
+ {{ 'PROJECT.GRANT.CREATE.SEL_USER' | translate }}
+
+
+
+
+
+
+ {{ 'PROJECT.GRANT.CREATE.SEL_PROJECT' | translate }}
+
+
+
+
+
+
+
+ {{ 'PROJECT.GRANT.CREATE.SEL_ROLES' | translate }}
+
+
+ {{ $any(project)?.grantId }}
+
+
+
+
+
+
+
+
+ {{ 'ACTIONS.CONTINUE' | translate }}
- {{ 'GRANTS.CREATE.TITLE' | translate }}
- Step {{ currentCreateStep }} of {{ STEPS }}
-
+
-
-
-
- {{ 'PROJECT.GRANT.CREATE.ORG_DESCRIPTION' | translate: org }}
-
- {{ 'PROJECT.GRANT.CREATE.ORG_DESCRIPTION_DESC' | translate }}
-
-
-
- {{ 'PROJECT.GRANT.CREATE.SEL_USER' | translate }}
-
-
-
-
-
-
- {{ 'PROJECT.GRANT.CREATE.SEL_PROJECT' | translate }}
-
-
-
-
-
-
-
- {{ 'PROJECT.GRANT.CREATE.SEL_ROLES' | translate }}
-
-
- {{ $any(project)?.grantId }}
-
-
-
-
-
-
-
-
- {{ 'ACTIONS.CONTINUE' | translate }}
-
-
-
-
-
- {{ 'ACTIONS.BACK' | translate }}
-
-
- {{ 'ACTIONS.SAVE' | translate }}
-
-
-
-
+
+
+ {{ 'ACTIONS.BACK' | translate }}
+
+
+ {{ 'ACTIONS.SAVE' | translate }}
+
+
-
+
diff --git a/console/src/app/pages/user-grant-create/user-grant-create.component.scss b/console/src/app/pages/user-grant-create/user-grant-create.component.scss
index e49012a09..fdbe80243 100644
--- a/console/src/app/pages/user-grant-create/user-grant-create.component.scss
+++ b/console/src/app/pages/user-grant-create/user-grant-create.component.scss
@@ -1,65 +1,44 @@
-.abort-container {
+.user-grant-create-desc {
+ max-width: 500px;
+ font-size: 14px;
+}
+
+.block {
+ display: block;
+}
+
+.btn-container {
display: flex;
+ justify-content: space-between;
align-items: center;
- margin-bottom: 2rem;
+ margin-top: 3rem;
- .abort {
- font-size: 1.2rem;
- margin-left: 2rem;
- }
-
- .abort-2 {
- font-size: 1.2rem;
- margin-left: 2rem;
- white-space: nowrap;
- }
-}
-
-.user-grant-create-content {
- padding-left: 4.5rem;
-
- .user-grant-create-desc {
- max-width: 500px;
- font-size: 14px;
- }
-
- .block {
+ .small-button {
display: block;
}
- .btn-container {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-top: 3rem;
-
- .small-button {
- display: block;
- }
-
- .big-button {
- display: block;
- padding: 0.5rem 4rem;
- }
- }
-
- .sa-icon {
+ .big-button {
display: block;
- width: 32px;
- margin: 0 0.5rem;
+ padding: 0.5rem 4rem;
+ }
+}
+
+.sa-icon {
+ display: block;
+ width: 32px;
+ margin: 0 0.5rem;
- i {
- margin: auto;
- }
+ i {
+ margin: auto;
}
+}
- h2 {
- margin-top: 2.5rem;
- margin-bottom: 1rem;
- font-size: 2rem;
+h2 {
+ margin-top: 2.5rem;
+ margin-bottom: 1rem;
+ font-size: 2rem;
- &.project-search {
- margin-bottom: 1.5rem;
- }
+ &.project-search {
+ margin-bottom: 1.5rem;
}
}
diff --git a/console/src/app/pages/user-grant-create/user-grant-create.component.ts b/console/src/app/pages/user-grant-create/user-grant-create.component.ts
index a2e9e16f4..1ac1fd2cb 100644
--- a/console/src/app/pages/user-grant-create/user-grant-create.component.ts
+++ b/console/src/app/pages/user-grant-create/user-grant-create.component.ts
@@ -29,7 +29,7 @@ export class UserGrantCreateComponent implements OnDestroy {
public rolesList: string[] = [];
- public STEPS: number = 2; // project, roles
+ public createSteps: number = 2;
public currentCreateStep: number = 1;
public UserGrantContext: any = UserGrantContext;
diff --git a/console/src/app/pages/user-grant-create/user-grant-create.module.ts b/console/src/app/pages/user-grant-create/user-grant-create.module.ts
index 7d02d9636..1ba458143 100644
--- a/console/src/app/pages/user-grant-create/user-grant-create.module.ts
+++ b/console/src/app/pages/user-grant-create/user-grant-create.module.ts
@@ -5,10 +5,11 @@ import { MatIconModule } from '@angular/material/icon';
import { MatSelectModule } from '@angular/material/select';
import { TranslateModule } from '@ngx-translate/core';
import { CardModule } from 'src/app/modules/card/card.module';
+import { CreateLayoutModule } from 'src/app/modules/create-layout/create-layout.module';
import { InputModule } from 'src/app/modules/input/input.module';
import { ProjectRolesTableModule } from 'src/app/modules/project-roles-table/project-roles-table.module';
import {
- SearchProjectAutocompleteModule,
+ SearchProjectAutocompleteModule,
} from 'src/app/modules/search-project-autocomplete/search-project-autocomplete.module';
import { SearchUserAutocompleteModule } from 'src/app/modules/search-user-autocomplete/search-user-autocomplete.module';
import { SharedModule } from 'src/app/modules/shared/shared.module';
@@ -23,6 +24,7 @@ import { UserGrantCreateComponent } from './user-grant-create.component';
CommonModule,
MatButtonModule,
MatIconModule,
+ CreateLayoutModule,
TranslateModule,
CardModule,
InputModule,
diff --git a/console/src/app/pages/users/user-create-machine/user-create-machine.component.html b/console/src/app/pages/users/user-create-machine/user-create-machine.component.html
index 1766873bd..46a29181f 100644
--- a/console/src/app/pages/users/user-create-machine/user-create-machine.component.html
+++ b/console/src/app/pages/users/user-create-machine/user-create-machine.component.html
@@ -1,45 +1,47 @@
-
-
-
-
- close
-
-
{{ 'USER.CREATE.TITLE' | translate }}
Step
- 1 of 1
-
-
+
+
-
+
-
\ No newline at end of file
+
diff --git a/console/src/app/pages/users/user-create-machine/user-create-machine.component.scss b/console/src/app/pages/users/user-create-machine/user-create-machine.component.scss
index 60bb0fbcb..9b39299d3 100644
--- a/console/src/app/pages/users/user-create-machine/user-create-machine.component.scss
+++ b/console/src/app/pages/users/user-create-machine/user-create-machine.component.scss
@@ -1,22 +1,4 @@
-.abort-container {
- display: flex;
- align-items: center;
- margin-bottom: 2rem;
-
- .abort {
- font-size: 1.2rem;
- margin-left: 2rem;
- }
-
- .abort-2 {
- font-size: 1.2rem;
- margin-left: 2rem;
- white-space: nowrap;
- }
-}
-
.machine-create-main-content {
- padding-left: 4.5rem;
max-width: 35rem;
.machine-create-form {
diff --git a/console/src/app/pages/users/user-create-machine/user-create-machine.component.ts b/console/src/app/pages/users/user-create-machine/user-create-machine.component.ts
index f14eac765..301364e13 100644
--- a/console/src/app/pages/users/user-create-machine/user-create-machine.component.ts
+++ b/console/src/app/pages/users/user-create-machine/user-create-machine.component.ts
@@ -1,3 +1,4 @@
+import { Location } from '@angular/common';
import { Component, OnDestroy } from '@angular/core';
import { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';
import { Router } from '@angular/router';
@@ -24,6 +25,7 @@ export class UserCreateMachineComponent implements OnDestroy {
private toast: ToastService,
public userService: ManagementService,
private fb: FormBuilder,
+ private _location: Location,
breadcrumbService: BreadcrumbService,
) {
breadcrumbService.setBreadcrumb([
@@ -73,6 +75,10 @@ export class UserCreateMachineComponent implements OnDestroy {
this.sub.unsubscribe();
}
+ public close(): void {
+ this._location.back();
+ }
+
public get name(): AbstractControl | null {
return this.userForm.get('name');
}
diff --git a/console/src/app/pages/users/user-create-machine/user-create-machine.module.ts b/console/src/app/pages/users/user-create-machine/user-create-machine.module.ts
index bcdfdbba7..38ba2624b 100644
--- a/console/src/app/pages/users/user-create-machine/user-create-machine.module.ts
+++ b/console/src/app/pages/users/user-create-machine/user-create-machine.module.ts
@@ -9,31 +9,31 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatSelectModule } from '@angular/material/select';
import { MatTooltipModule } from '@angular/material/tooltip';
import { TranslateModule } from '@ngx-translate/core';
+import { CreateLayoutModule } from 'src/app/modules/create-layout/create-layout.module';
import { DetailLayoutModule } from 'src/app/modules/detail-layout/detail-layout.module';
import { InputModule } from 'src/app/modules/input/input.module';
import { UserCreateMachineRoutingModule } from './user-create-machine-routing.module';
import { UserCreateMachineComponent } from './user-create-machine.component';
-
-
@NgModule({
- declarations: [UserCreateMachineComponent],
- imports: [
- UserCreateMachineRoutingModule,
- CommonModule,
- FormsModule,
- ReactiveFormsModule,
- MatSelectModule,
- MatButtonModule,
- MatIconModule,
- MatProgressSpinnerModule,
- MatProgressBarModule,
- MatCheckboxModule,
- MatTooltipModule,
- TranslateModule,
- DetailLayoutModule,
- InputModule,
- ],
+ declarations: [UserCreateMachineComponent],
+ imports: [
+ UserCreateMachineRoutingModule,
+ CommonModule,
+ FormsModule,
+ ReactiveFormsModule,
+ CreateLayoutModule,
+ MatSelectModule,
+ MatButtonModule,
+ MatIconModule,
+ MatProgressSpinnerModule,
+ MatProgressBarModule,
+ MatCheckboxModule,
+ MatTooltipModule,
+ TranslateModule,
+ DetailLayoutModule,
+ InputModule,
+ ],
})
-export class UserCreateMachineModule { }
+export class UserCreateMachineModule {}
diff --git a/console/src/app/pages/users/user-create/user-create.component.html b/console/src/app/pages/users/user-create/user-create.component.html
index dd7f23276..7887ef49b 100644
--- a/console/src/app/pages/users/user-create/user-create.component.html
+++ b/console/src/app/pages/users/user-create/user-create.component.html
@@ -1,167 +1,163 @@
-
-
-
-
- close
-
-
{{ 'USER.CREATE.TITLE' | translate }}
-
+
+
+
-
-
+
+
+
{{ 'USER.CREATE.NAMEANDEMAILSECTION' | translate }}
-
-
-
{{ 'USER.CREATE.NAMEANDEMAILSECTION' | translate }}
+
-
-
- {{ 'ACTIONS.CREATE' | translate }}
-
+
+
+
+ {{ 'USER.LOGINMETHODS.EMAIL.ISVERIFIED' | translate }}
+
+
+ {{ 'ORG.PAGES.USEPASSWORD' | translate }}
+
+
+ {{ 'USER.CREATE.INITMAILDESCRIPTION' | translate }}
+
-
-
+
+
+
+
{{ 'USER.CREATE.GENDERLANGSECTION' | translate }}
+
+
+
+ {{ 'USER.PROFILE.GENDER' | translate }}
+
+
+ {{ 'GENDERS.' + gender | translate }}
+
+
+
+ {{ 'USER.VALIDATION.REQUIRED' | translate }}
+
+
+
+ {{ 'USER.PROFILE.PREFERRED_LANGUAGE' | translate }}
+
+
+ {{ 'LANGUAGES.' + language | translate }}
+
+
+ {{ 'USER.VALIDATION.REQUIRED' | translate }}
+
+
+
+
+
+
{{ 'USER.CREATE.ADDRESSANDPHONESECTION' | translate }}
+
+
+ {{ 'USER.PROFILE.PHONE' | translate }}
+
+
+ {{ 'USER.VALIDATION.REQUIRED' | translate }}
+
+
+
+
+
+ {{ 'ACTIONS.CREATE' | translate }}
+
+
+
-
+
diff --git a/console/src/app/pages/users/user-create/user-create.component.scss b/console/src/app/pages/users/user-create/user-create.component.scss
index e3206b2f9..5cbf979da 100644
--- a/console/src/app/pages/users/user-create/user-create.component.scss
+++ b/console/src/app/pages/users/user-create/user-create.component.scss
@@ -1,16 +1,4 @@
-.abort-container {
- display: flex;
- align-items: center;
- margin-bottom: 2rem;
-
- .abort {
- font-size: 1.2rem;
- margin-left: 2rem;
- }
-}
-
.user-create-main-content {
- padding-left: 4.5rem;
max-width: 35rem;
@media only screen and (max-width: 500px) {
diff --git a/console/src/app/pages/users/user-create/user-create.component.ts b/console/src/app/pages/users/user-create/user-create.component.ts
index 5e5b1d2e2..9137f058f 100644
--- a/console/src/app/pages/users/user-create/user-create.component.ts
+++ b/console/src/app/pages/users/user-create/user-create.component.ts
@@ -1,3 +1,4 @@
+import { Location } from '@angular/common';
import { ChangeDetectorRef, Component, OnDestroy, ViewChild } from '@angular/core';
import { AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms';
import { Router } from '@angular/router';
@@ -63,6 +64,7 @@ export class UserCreateComponent implements OnDestroy {
private fb: FormBuilder,
private mgmtService: ManagementService,
private changeDetRef: ChangeDetectorRef,
+ private _location: Location,
breadcrumbService: BreadcrumbService,
) {
breadcrumbService.setBreadcrumb([
@@ -94,6 +96,10 @@ export class UserCreateComponent implements OnDestroy {
});
}
+ public close(): void {
+ this._location.back();
+ }
+
private async loadOrg(): Promise
{
const domains = await this.mgmtService.listOrgDomains();
const found = domains.resultList.find((resp) => resp.isPrimary);
diff --git a/console/src/app/pages/users/user-create/user-create.module.ts b/console/src/app/pages/users/user-create/user-create.module.ts
index 4af4988cd..45fcd57b8 100644
--- a/console/src/app/pages/users/user-create/user-create.module.ts
+++ b/console/src/app/pages/users/user-create/user-create.module.ts
@@ -10,6 +10,7 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatSelectModule } from '@angular/material/select';
import { MatTooltipModule } from '@angular/material/tooltip';
import { TranslateModule } from '@ngx-translate/core';
+import { CreateLayoutModule } from 'src/app/modules/create-layout/create-layout.module';
import { DetailLayoutModule } from 'src/app/modules/detail-layout/detail-layout.module';
import { InfoSectionModule } from 'src/app/modules/info-section/info-section.module';
import { InputModule } from 'src/app/modules/input/input.module';
@@ -26,6 +27,7 @@ import { UserCreateComponent } from './user-create.component';
FormsModule,
ReactiveFormsModule,
MatSelectModule,
+ CreateLayoutModule,
MatButtonModule,
MatIconModule,
MatProgressSpinnerModule,
diff --git a/console/src/assets/i18n/de.json b/console/src/assets/i18n/de.json
index eab5c5467..81a5e17d7 100644
--- a/console/src/assets/i18n/de.json
+++ b/console/src/assets/i18n/de.json
@@ -95,6 +95,7 @@
"CANCEL": "Abbrechen",
"INFO": "Info",
"OK": "OK",
+ "SELECT": "Auswählen",
"VIEW": "Öffnen",
"SELECTIONDELETE": "Ausgewählte löschen",
"DELETE": "Löschen",
@@ -118,6 +119,7 @@
"PREVIOUS": "Zurück",
"NEXT": "Weiter",
"MORE": "mehr",
+ "STEP": "Schritt",
"TABLE": {
"SHOWUSER": "Zeige Benutzer {{value}}"
}
@@ -1525,6 +1527,7 @@
"COMPLIANCE": "OIDC Einhaltung",
"URLS": "Urls",
"CONFIGURATION": "Konfiguration",
+ "TOKEN": "Token Einstellungen",
"PAGES": {
"TITLE": "Anwendung",
"ID": "ID",
@@ -1717,8 +1720,8 @@
"TOAST": {
"REACTIVATED": "Anwendung reaktiviert.",
"DEACTIVATED": "Anwendung deaktiviert.",
- "OIDCUPDATED": "OIDC-Konfiguration geändert.",
- "APIUPDATED": "API Konfiguration geändert.",
+ "OIDCUPDATED": "App gespeichert",
+ "APIUPDATED": "App gespeichert",
"UPDATED": "App geändert.",
"CREATED": "App erstellt.",
"CLIENTSECRETREGENERATED": "Client Secret generiert.",
diff --git a/console/src/assets/i18n/en.json b/console/src/assets/i18n/en.json
index 534dfdc7a..4bf390738 100644
--- a/console/src/assets/i18n/en.json
+++ b/console/src/assets/i18n/en.json
@@ -95,6 +95,7 @@
"CANCEL": "Cancel",
"INFO": "Info",
"OK": "OK",
+ "SELECT": "Select",
"VIEW": "Show",
"SELECTIONDELETE": "Delete selection",
"DELETE": "Delete",
@@ -118,6 +119,7 @@
"PREVIOUS": "Previous",
"NEXT": "Next",
"MORE": "more",
+ "STEP": "Step",
"TABLE": {
"SHOWUSER": "Show user {{value}}"
}
@@ -1525,6 +1527,7 @@
"COMPLIANCE": "OIDC Compliance",
"URLS": "Urls",
"CONFIGURATION": "Configuration",
+ "TOKEN": "Token Settings",
"PAGES": {
"TITLE": "Application",
"ID": "ID",
@@ -1717,8 +1720,8 @@
"TOAST": {
"REACTIVATED": "Application reactivated.",
"DEACTIVATED": "Application deactivated.",
- "OIDCUPDATED": "OIDC configuration updated.",
- "APIUPDATED": "API configuration updated",
+ "OIDCUPDATED": "App updated.",
+ "APIUPDATED": "App updated",
"UPDATED": "App updated.",
"CREATED": "App created.",
"CLIENTSECRETREGENERATED": "client secret generated.",
diff --git a/console/src/assets/i18n/it.json b/console/src/assets/i18n/it.json
index 8f286c345..b114a84bd 100644
--- a/console/src/assets/i18n/it.json
+++ b/console/src/assets/i18n/it.json
@@ -95,6 +95,7 @@
"CANCEL": "cancella",
"INFO": "Info",
"OK": "OK",
+ "SELECT": "Seleziona",
"VIEW": "Mostra",
"SELECTIONDELETE": "Elimina selezione",
"DELETE": "Elimina",
@@ -118,6 +119,7 @@
"PREVIOUS": "Precedente",
"NEXT": "Avanti",
"MORE": "azioni",
+ "STEP": "Passo",
"TABLE": {
"SHOWUSER": "Mostra utente {{value}}"
}
@@ -1525,6 +1527,7 @@
"COMPLIANCE": "Conformità con OIDC",
"URLS": "Urls",
"CONFIGURATION": "Configurazione",
+ "TOKEN": "Impostazioni Token",
"PAGES": {
"TITLE": "Applicazione",
"ID": "ID",
@@ -1717,8 +1720,8 @@
"TOAST": {
"REACTIVATED": "Applicazione riattivata.",
"DEACTIVATED": "Applicazione disattivata.",
- "OIDCUPDATED": "Configurazione OIDC aggiornata.",
- "APIUPDATED": "Configurazione API aggiornata",
+ "OIDCUPDATED": "Applicazione aggiornata",
+ "APIUPDATED": "Applicazione aggiornata",
"UPDATED": "App aggiornata.",
"CREATED": "App creata.",
"CLIENTSECRETREGENERATED": "Client secret generato.",