diff --git a/console/src/app/app-routing.module.ts b/console/src/app/app-routing.module.ts index b336e0b640..4e7bc301c7 100644 --- a/console/src/app/app-routing.module.ts +++ b/console/src/app/app-routing.module.ts @@ -75,7 +75,7 @@ const routes: Routes = [ loadChildren: () => import('./pages/actions/actions.module').then((m) => m.ActionsModule), canActivate: [AuthGuard, RoleGuard], data: { - roles: ['org.read'], + roles: ['org.action.read', 'org.flow.read'], }, }, { diff --git a/console/src/app/app.component.scss b/console/src/app/app.component.scss index 49ea39dbc8..b3a8cd86f4 100644 --- a/console/src/app/app.component.scss +++ b/console/src/app/app.component.scss @@ -11,8 +11,6 @@ $warn-color: mat.get-color-from-palette($warn, 500); $accent-color: mat.get-color-from-palette($accent, 500); $is-dark-theme: map-get($theme, is-dark); - $back: map-get($background, background); - $base: map-get($foreground, base); .main-container { display: flex; diff --git a/console/src/app/app.component.ts b/console/src/app/app.component.ts index 0bf7d498db..98d6ae95ae 100644 --- a/console/src/app/app.component.ts +++ b/console/src/app/app.component.ts @@ -1,7 +1,7 @@ import { BreakpointObserver } from '@angular/cdk/layout'; import { OverlayContainer } from '@angular/cdk/overlay'; import { DOCUMENT, ViewportScroller } from '@angular/common'; -import { Component, HostBinding, HostListener, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core'; +import { Component, HostBinding, HostListener, Inject, OnDestroy, ViewChild } from '@angular/core'; import { MatIconRegistry } from '@angular/material/icon'; import { MatDrawer } from '@angular/material/sidenav'; import { DomSanitizer } from '@angular/platform-browser'; @@ -19,8 +19,7 @@ import { KeyboardShortcutsService } from './services/keyboard-shortcuts/keyboard import { ManagementService } from './services/mgmt.service'; import { NavigationService } from './services/navigation.service'; import { OverlayWorkflowService } from './services/overlay/overlay-workflow.service'; -import { IntroWorkflowOverlays } from './services/overlay/workflows'; -import { StorageLocation, StorageService } from './services/storage.service'; +import { StorageService } from './services/storage.service'; import { ThemeService } from './services/theme.service'; import { UpdateService } from './services/update.service'; @@ -30,7 +29,7 @@ import { UpdateService } from './services/update.service'; styleUrls: ['./app.component.scss'], animations: [toolbarAnimation, ...navAnimations, accountCard, routeAnimations, adminLineAnimation], }) -export class AppComponent implements OnInit, OnDestroy { +export class AppComponent implements OnDestroy { @ViewChild('drawer') public drawer!: MatDrawer; public isHandset$: Observable = this.breakpointObserver.observe('(max-width: 599px)').pipe( map((result) => { @@ -218,7 +217,10 @@ export class AppComponent implements OnInit, OnDestroy { .then((org) => { this.org = org; - this.startIntroWorkflow(); + this.loadPrivateLabelling(); + + // TODO add when console storage is implemented + // this.startIntroWorkflow(); }) .catch((error) => { this.router.navigate(['/users/me']); @@ -235,21 +237,19 @@ export class AppComponent implements OnInit, OnDestroy { }); } - private startIntroWorkflow(): void { - setTimeout(() => { - const cb = () => { - this.storageService.setItem('intro-dismissed', true, StorageLocation.local); - }; - const dismissed = this.storageService.getItem('intro-dismissed', StorageLocation.local); - if (!dismissed) { - this.workflowService.startWorkflow(IntroWorkflowOverlays, cb); - } - }, 1000); - } + // TODO implement Console storage - public ngOnInit(): void { - this.loadPrivateLabelling(); - } + // private startIntroWorkflow(): void { + // setTimeout(() => { + // const cb = () => { + // this.storageService.setItem('intro-dismissed', true, StorageLocation.local); + // }; + // const dismissed = this.storageService.getItem('intro-dismissed', StorageLocation.local); + // if (!dismissed) { + // this.workflowService.startWorkflow(IntroWorkflowOverlays, cb); + // } + // }, 1000); + // } public ngOnDestroy(): void { this.destroy$.next(); diff --git a/console/src/app/modules/filter/filter.component.scss b/console/src/app/modules/filter/filter.component.scss index 84a2eff836..c0f99975cb 100644 --- a/console/src/app/modules/filter/filter.component.scss +++ b/console/src/app/modules/filter/filter.component.scss @@ -63,6 +63,11 @@ font-size: 15px; } + .filter-select-method .mat-select { + height: 36px; + padding: 7px 10px; + } + .subquery { display: flex; flex-direction: row; @@ -82,6 +87,8 @@ } .filter-input-value { + flex: 1; + input { height: 36px; font-size: 15px; diff --git a/console/src/app/modules/footer/footer.component.scss b/console/src/app/modules/footer/footer.component.scss index 4ee1ff240e..8756ed29db 100644 --- a/console/src/app/modules/footer/footer.component.scss +++ b/console/src/app/modules/footer/footer.component.scss @@ -96,7 +96,7 @@ margin: 0.5rem 0; a { - color: map-get($foreground, base); + color: map-get($foreground, text); text-decoration: none; display: flex; align-items: center; diff --git a/console/src/app/modules/header/header.component.scss b/console/src/app/modules/header/header.component.scss index b3df3035e1..0325e0710d 100644 --- a/console/src/app/modules/header/header.component.scss +++ b/console/src/app/modules/header/header.component.scss @@ -57,7 +57,7 @@ .org-link { font-size: 14px; - color: map-get($foreground, base); + color: map-get($foreground, text); text-decoration: none; padding: 0.5rem 0.75rem 0.5rem 0.75rem; height: 2.5rem; @@ -90,7 +90,7 @@ .org-switch-button { font-weight: bold; border: none; - color: map-get($foreground, base); + color: map-get($foreground, text); border-radius: 6px; position: relative; font-size: 14px; @@ -118,7 +118,7 @@ svg { opacity: 0.7; - fill: map-get($foreground, base); + fill: map-get($foreground, text); height: 1.25rem; width: 1.25rem; } @@ -135,7 +135,7 @@ .breadcrumb-link { font-size: 14px; - color: map-get($foreground, base); + color: map-get($foreground, text); text-decoration: none; padding: 0.5rem 0.75rem 0.5rem 0.75rem; height: 2.5rem; diff --git a/console/src/app/modules/info-overlay/info-overlay.component.scss b/console/src/app/modules/info-overlay/info-overlay.component.scss index 6ee542524a..7bd92caaee 100644 --- a/console/src/app/modules/info-overlay/info-overlay.component.scss +++ b/console/src/app/modules/info-overlay/info-overlay.component.scss @@ -44,7 +44,7 @@ display: flex; flex-direction: column; width: 100%; - color: map-get($foreground, base); + color: map-get($foreground, text); &.top-left { &::before { diff --git a/console/src/app/modules/info-section/info-section.component.scss b/console/src/app/modules/info-section/info-section.component.scss index e2d402d703..3caadf9c20 100644 --- a/console/src/app/modules/info-section/info-section.component.scss +++ b/console/src/app/modules/info-section/info-section.component.scss @@ -14,6 +14,7 @@ padding-right: 1rem; font-size: 14px; margin: 0.5rem 0; + box-shadow: 0 2px 5px rgb(0 0 0 / 10%); &.fit { width: fit-content; diff --git a/console/src/app/modules/name-dialog/name-dialog.component.html b/console/src/app/modules/name-dialog/name-dialog.component.html index 52ef09b816..7582e10ebe 100644 --- a/console/src/app/modules/name-dialog/name-dialog.component.html +++ b/console/src/app/modules/name-dialog/name-dialog.component.html @@ -1,7 +1,7 @@

- {{data.titleKey | translate}} {{data?.number}} + {{ data.titleKey | translate }} {{ data?.number }}

-

{{data.descKey | translate}}

+

{{ data.descKey | translate }}

{{ data.labelKey | translate }} @@ -9,12 +9,11 @@
- - -
\ No newline at end of file + diff --git a/console/src/app/modules/name-dialog/name-dialog.component.scss b/console/src/app/modules/name-dialog/name-dialog.component.scss index 3bab15639a..5aa5e2f4e1 100644 --- a/console/src/app/modules/name-dialog/name-dialog.component.scss +++ b/console/src/app/modules/name-dialog/name-dialog.component.scss @@ -15,10 +15,6 @@ h1 { display: flex; justify-content: space-between; - .ok-button { - margin-left: 0.5rem; - } - button { border-radius: 0.5rem; } diff --git a/console/src/app/modules/paginator/paginator.component.html b/console/src/app/modules/paginator/paginator.component.html index fc3af1f621..f5cee0943d 100644 --- a/console/src/app/modules/paginator/paginator.component.html +++ b/console/src/app/modules/paginator/paginator.component.html @@ -1,25 +1,29 @@
-

{{length}} {{'PAGINATOR.COUNT' | translate}}

+

+ {{ length }} {{ 'PAGINATOR.COUNT' | translate }} +

- {{(timestamp | timestampToDate)| localizedDate: 'EEEE dd. MMM YYYY, HH:mm'}} + {{ timestamp | timestampToDate | localizedDate: 'EEEE dd. MMM YYYY, HH:mm' }}

- {{pageIndex * pageSize}} - {{pageIndex * pageSize + - pageSize}} + {{ pageIndex * pageSize }} - {{ pageIndex * pageSize + pageSize }} +
- + - {{sizeOption}} + {{ sizeOption }} - - + +
-
\ No newline at end of file + diff --git a/console/src/app/modules/paginator/paginator.component.scss b/console/src/app/modules/paginator/paginator.component.scss index 6df7f1e389..fb5326846d 100644 --- a/console/src/app/modules/paginator/paginator.component.scss +++ b/console/src/app/modules/paginator/paginator.component.scss @@ -50,7 +50,7 @@ } /* stylelint-disable */ -::ng-deep .mat-select { +::ng-deep .paginator-select.mat-select { min-width: 60px; height: 36px !important; padding-top: 8px !important; diff --git a/console/src/app/modules/policies/login-policy/factor-table/dialog-add-type/dialog-add-type.component.html b/console/src/app/modules/policies/login-policy/factor-table/dialog-add-type/dialog-add-type.component.html index ba67725551..61dc83a436 100644 --- a/console/src/app/modules/policies/login-policy/factor-table/dialog-add-type/dialog-add-type.component.html +++ b/console/src/app/modules/policies/login-policy/factor-table/dialog-add-type/dialog-add-type.component.html @@ -1,4 +1,4 @@ -

+

{{ data.title | translate }}

diff --git a/console/src/app/modules/policies/login-policy/factor-table/dialog-add-type/dialog-add-type.component.scss b/console/src/app/modules/policies/login-policy/factor-table/dialog-add-type/dialog-add-type.component.scss index 8192f76685..3d218bed60 100644 --- a/console/src/app/modules/policies/login-policy/factor-table/dialog-add-type/dialog-add-type.component.scss +++ b/console/src/app/modules/policies/login-policy/factor-table/dialog-add-type/dialog-add-type.component.scss @@ -1,9 +1,10 @@ .title { - font-size: 1.5rem; + font-size: 1.3rem; } .desc { font-size: 14px; + margin-top: 0; } .form-field { diff --git a/console/src/app/modules/policies/login-policy/factor-table/dialog-add-type/dialog-add-type.component.ts b/console/src/app/modules/policies/login-policy/factor-table/dialog-add-type/dialog-add-type.component.ts index 5bc8a324cb..a3c02ee115 100644 --- a/console/src/app/modules/policies/login-policy/factor-table/dialog-add-type/dialog-add-type.component.ts +++ b/console/src/app/modules/policies/login-policy/factor-table/dialog-add-type/dialog-add-type.component.ts @@ -19,6 +19,7 @@ export class DialogAddTypeComponent { constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) { this.availableMfaTypes = data.types; + this.newMfaType = data.types && data.types[0] ? data.types[0] : undefined; } public closeDialog(): void { diff --git a/console/src/app/modules/policies/login-policy/factor-table/factor-table.component.html b/console/src/app/modules/policies/login-policy/factor-table/factor-table.component.html index c8d858dcfa..edd2186d7a 100644 --- a/console/src/app/modules/policies/login-policy/factor-table/factor-table.component.html +++ b/console/src/app/modules/policies/login-policy/factor-table/factor-table.component.html @@ -22,7 +22,7 @@
-
+
-
+
+ + +
@@ -38,17 +46,4 @@ > {{ 'ACTIONS.SAVE' | translate }} - - - -
- diff --git a/console/src/app/modules/policies/privacy-policy/privacy-policy.component.html b/console/src/app/modules/policies/privacy-policy/privacy-policy.component.html index 8846f76bc4..362b0f9544 100644 --- a/console/src/app/modules/policies/privacy-policy/privacy-policy.component.html +++ b/console/src/app/modules/policies/privacy-policy/privacy-policy.component.html @@ -1,7 +1,21 @@

{{ 'POLICY.PRIVACY_POLICY.TITLE' | translate }}

{{ 'POLICY.PRIVACY_POLICY.DESCRIPTION' | translate }}

- {{ 'POLICY.DEFAULTLABEL' | translate }} + + + + + + +
@@ -26,17 +40,6 @@
- - -
\ No newline at end of file +
diff --git a/console/src/app/modules/project-private-labeling-dialog/project-private-labeling-dialog.component.scss b/console/src/app/modules/project-private-labeling-dialog/project-private-labeling-dialog.component.scss index d824441af5..54cd2b2c2d 100644 --- a/console/src/app/modules/project-private-labeling-dialog/project-private-labeling-dialog.component.scss +++ b/console/src/app/modules/project-private-labeling-dialog/project-private-labeling-dialog.component.scss @@ -7,11 +7,16 @@ font-size: 0.9rem; } -.radio-button { - margin: 0.5rem 0; +.project-radio-group { + display: flex; + flex-direction: column; - .label { - white-space: normal; + .radio-button { + margin: 0.5rem 0; + + .label { + white-space: normal; + } } } @@ -24,10 +29,6 @@ display: flex; justify-content: space-between; - .ok-button { - margin-left: 0.5rem; - } - button { border-radius: 0.5rem; } diff --git a/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.html b/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.html index 442bbf1c20..b518c437f5 100644 --- a/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.html +++ b/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.html @@ -1,5 +1,4 @@ -
- +
@@ -122,9 +123,11 @@ {{ 'USER.SEARCH.ADDITIONAL-EXTERNAL' | translate }} - + {{ (target === UserTarget.SELF ? 'USER.TARGET.SELF' : 'USER.TARGET.EXTERNAL') | translate }} - {{ 'USER.TARGET.CLICKHERE' | translate }} + {{ 'USER.TARGET.CLICKHERE' | translate }} diff --git a/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.scss b/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.scss index 383458d587..a20e4ca13f 100644 --- a/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.scss +++ b/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.scss @@ -1,15 +1,79 @@ -.target-desc { - font-size: 14px; - display: block; - margin-top: 0.5rem; +@use '@angular/material' as mat; - a { - color: #4072b4; +@mixin search-user-autocomplete-theme($theme) { + $primary: map-get($theme, primary); + $primary-color: mat.get-color-from-palette($primary, 500); + $background: map-get($theme, background); + $foreground: map-get($theme, foreground); + $secondary-text: map-get($foreground, secondary-text); - &:hover { - cursor: pointer; - color: #6992c9; - text-decoration: underline; + .user-autocomplete-found { + margin: 0.5rem 0; + border-radius: 0.5rem; + padding: 0.5rem 0; + max-width: 500px; + box-sizing: border-box; + + .add-user-row { + margin-left: -4px; + } + + .found-user-row { + display: flex; + align-items: center; + padding: 0.25rem 0; + + button { + visibility: hidden; + } + + &:hover { + button { + visibility: visible; + } + } + } + + .found-label { + font-size: 14px; + } + + .user-name-column { + display: flex; + flex-direction: column; + justify-content: center; + + .smaller { + font-size: 13px; + } + } + + .fill-space { + flex: 1; + } + + .search-user-dl-btn { + transition: color 0.2s ease; + + &:not(:hover) { + color: $secondary-text; + } + } + } + + .user-autocomplete-target-desc { + font-size: 14px; + display: block; + margin-top: 0.5rem; + + a { + color: $primary-color; + + &:hover { + cursor: pointer; + color: mat.get-color-from-palette($primary, 400); + text-decoration: underline; + } } } } @@ -36,60 +100,6 @@ font-size: 0.8rem; } -.found { - margin: 0.5rem 0; - border-radius: 0.5rem; - padding: 0.5rem 0; - max-width: 500px; - box-sizing: border-box; - - .add-user-row { - margin-left: -4px; - } - - .found-user-row { - display: flex; - align-items: center; - padding: 0.25rem 0; - - button { - visibility: hidden; - } - - &:hover { - button { - visibility: visible; - } - } - } - - .found-label { - font-size: 14px; - } - - .user-name-column { - display: flex; - flex-direction: column; - justify-content: center; - - .smaller { - font-size: 13px; - } - } - - .fill-space { - flex: 1; - } - - .search-user-dl-btn { - transition: color 0.2s ease; - - &:not(:hover) { - color: var(--grey); - } - } -} - .circle { margin-right: 0.5rem; } diff --git a/console/src/app/modules/settings-grid/settinglinks.ts b/console/src/app/modules/settings-grid/settinglinks.ts index 744b41166f..34295104e0 100644 --- a/console/src/app/modules/settings-grid/settinglinks.ts +++ b/console/src/app/modules/settings-grid/settinglinks.ts @@ -2,10 +2,10 @@ export interface SettingLinks { i18nTitle: string; i18nDesc: string; iamRouterLink: any; - orgRouterLink: any; + orgRouterLink?: any; queryParams: any; - iamWithRole: string[]; - orgWithRole: string[]; + iamWithRole?: string[]; + orgWithRole?: string[]; icon?: string; svgIcon?: string; color: string; @@ -49,12 +49,10 @@ export const PRIVACY_POLICY: SettingLinks = { export const NOTIFICATION_GROUP: SettingLinks = { i18nTitle: 'SETTINGS.GROUPS.NOTIFICATIONS', - i18nDesc: '', + i18nDesc: 'SETTINGS.LIST.NOTIFICATIONS_DESC', iamRouterLink: ['/settings'], - orgRouterLink: ['/org-settings'], queryParams: { id: 'notifications' }, iamWithRole: ['iam.policy.read'], - orgWithRole: ['policy.read'], icon: 'las la-bell', color: 'red', }; diff --git a/console/src/app/modules/settings-grid/settings-grid.component.ts b/console/src/app/modules/settings-grid/settings-grid.component.ts index 0b46ee2288..d23b362670 100644 --- a/console/src/app/modules/settings-grid/settings-grid.component.ts +++ b/console/src/app/modules/settings-grid/settings-grid.component.ts @@ -1,5 +1,5 @@ import { animate, style, transition, trigger } from '@angular/animations'; -import { Component, Input } from '@angular/core'; +import { Component, Input, OnInit } from '@angular/core'; import { PolicyComponentServiceType } from 'src/app/modules/policies/policy-component-types.enum'; import { SETTINGLINKS, SettingLinks } from './settinglinks'; @@ -35,9 +35,15 @@ import { SETTINGLINKS, SettingLinks } from './settinglinks'; ]), ], }) -export class SettingsGridComponent { +export class SettingsGridComponent implements OnInit { @Input() public type!: PolicyComponentServiceType; @Input() public tag: string = ''; public PolicyComponentServiceType: any = PolicyComponentServiceType; public SETTINGS: SettingLinks[] = SETTINGLINKS; + + ngOnInit(): void { + this.SETTINGS = this.SETTINGS.filter((setting) => + this.type === PolicyComponentServiceType.MGMT ? !!setting.orgRouterLink : !!setting.iamRouterLink, + ); + } } diff --git a/console/src/app/modules/shortcuts/shortcuts.component.html b/console/src/app/modules/shortcuts/shortcuts.component.html index 4b2e651d54..c4ac1231bd 100644 --- a/console/src/app/modules/shortcuts/shortcuts.component.html +++ b/console/src/app/modules/shortcuts/shortcuts.component.html @@ -1,99 +1,132 @@
-

{{'HOME.SHORTCUTS.SHORTCUTS' | translate}}

- -
-

{{'HOME.SHORTCUTS.REORDER' | translate}}

+

{{ 'HOME.SHORTCUTS.REORDER' | translate }}

- - -
-

{{'HOME.SHORTCUTS.REORDER' | translate}}

+
+

{{ 'HOME.SHORTCUTS.REORDER' | translate }}

- -
-

{{'HOME.SHORTCUTS.REORDER' | translate}}

+

{{ 'HOME.SHORTCUTS.REORDER' | translate }}

- -
-

{{'HOME.SHORTCUTS.SETTINGS' | translate}}

+

{{ 'HOME.SHORTCUTS.SETTINGS' | translate }}

-
+
+

{{ 'HOME.SHORTCUTS.REORDER' | translate }}

-
-

{{'HOME.SHORTCUTS.REORDER' | translate}}

- +
+ -
-
+
+
- - {{shortcut.label}} + + {{ shortcut.label }}
- {{shortcut.i18nTitle | translate}} - {{shortcut.title}} - {{shortcut.i18nDesc | - translate}} - {{shortcut.desc}} + {{ shortcut.i18nTitle | translate }} + {{ shortcut.title }} + {{ + shortcut.i18nDesc | translate + }} + {{ shortcut.desc }}
-
-
-
- - -
- -
-

{{'HOME.SHORTCUTS.REORDER' | translate}}

- - -
-
- - - {{shortcut.label}} -
-
- {{shortcut.i18nTitle | translate}} - {{shortcut.title}} - {{shortcut.i18nDesc | - translate}} - {{shortcut.desc}} -
- -
-
-
-
-
-
- -
-

{{'HOME.SHORTCUTS.REORDER' | translate}}

- - -
-
- - - {{shortcut.label}} -
-
- {{shortcut.i18nTitle | translate}} - {{shortcut.title}} - {{shortcut.i18nDesc | - translate}} - {{shortcut.desc}} -
- -
-
+
@@ -207,4 +196,4 @@ {{shortcut.title}}
- --> \ No newline at end of file + --> diff --git a/console/src/app/modules/shortcuts/shortcuts.component.scss b/console/src/app/modules/shortcuts/shortcuts.component.scss index 0bb2e1e7b8..64f6c3d5de 100644 --- a/console/src/app/modules/shortcuts/shortcuts.component.scss +++ b/console/src/app/modules/shortcuts/shortcuts.component.scss @@ -62,7 +62,6 @@ .shortcut-desc { align-self: center; font-size: 14px; - color: var(--grey); margin-top: 0; text-align: center; } @@ -89,7 +88,6 @@ .shortcut-desc { align-self: center; font-size: 14px; - color: var(--grey); margin-top: 0; text-align: center; } @@ -209,6 +207,30 @@ } } + .available-shortcut-wrapper { + border: 1px solid $border-color; + border-radius: 1rem; + padding: 1rem; + + .available-shortcut-list { + display: grid; + grid-template-columns: 1fr; + grid-gap: 1rem; + + @media only screen and (min-width: 800px) { + grid-template-columns: 1fr 1fr; + } + + @media only screen and (min-width: 1200px) { + grid-template-columns: 1fr 1fr 1fr; + } + + .shortcut-box { + margin: 0; + } + } + } + .cdk-drag-preview { box-sizing: border-box; border-radius: 1rem; diff --git a/console/src/app/modules/shortcuts/shortcuts.component.ts b/console/src/app/modules/shortcuts/shortcuts.component.ts index 419f160a7d..4427f53c28 100644 --- a/console/src/app/modules/shortcuts/shortcuts.component.ts +++ b/console/src/app/modules/shortcuts/shortcuts.component.ts @@ -17,7 +17,8 @@ export interface ShortcutItem { i18nTitle?: string; i18nDesc?: string; routerLink: any; - withRole: string[]; + queryParams?: any; + withRole?: string[]; icon?: string; label?: string; svgIcon?: string; @@ -138,8 +139,9 @@ export class ShortcutsComponent implements OnDestroy { type: ShortcutType.POLICY, i18nTitle: p.i18nTitle, i18nDesc: p.i18nDesc, - routerLink: p.orgRouterLink, - withRole: p.orgWithRole, + routerLink: p.orgRouterLink ?? p.iamRouterLink, + queryParams: p.queryParams, + withRole: p.orgWithRole ?? p.iamWithRole, icon: p.icon ?? '', svgIcon: p.svgIcon ?? '', color: p.color ?? '', @@ -176,10 +178,10 @@ export class ShortcutsComponent implements OnDestroy { } else { switch (listName) { case 'main': - this.main = [PROFILE_SHORTCUT, CREATE_ORG, CREATE_PROJECT, CREATE_USER]; + this.main = [PROFILE_SHORTCUT /* CREATE_ORG, CREATE_PROJECT, CREATE_USER */]; break; case 'secondary': - this.secondary = []; + this.secondary = [CREATE_ORG, CREATE_PROJECT, CREATE_USER]; // [LOGIN_POLICY, PRIVATELABEL_POLICY].map((p) => { // const policy: string = { // i18nTitle: p.i18nTitle, @@ -194,7 +196,7 @@ export class ShortcutsComponent implements OnDestroy { // }); break; case 'third': - this.third = []; + this.third = this.ALL_SHORTCUTS.filter((item) => item.i18nTitle === 'SETTINGS.GROUPS.APPEARANCE'); // [LOGIN_TEXTS_POLICY, MESSAGE_TEXTS_POLICY].map((p) => { // const policy: ShortcutItem = { // i18nTitle: p.i18nTitle, @@ -276,4 +278,8 @@ export class ShortcutsComponent implements OnDestroy { public get allProjects(): ShortcutItem[] { return this.all.filter((s) => s.type === ShortcutType.PROJECT); } + + public get allAvailableShortcuts(): ShortcutItem[] { + return [...this.allRoutes, ...this.allPolicies, ...this.allProjects]; + } } diff --git a/console/src/app/modules/show-token-dialog/show-token-dialog.component.html b/console/src/app/modules/show-token-dialog/show-token-dialog.component.html index 1c152541c8..3748c59d66 100644 --- a/console/src/app/modules/show-token-dialog/show-token-dialog.component.html +++ b/console/src/app/modules/show-token-dialog/show-token-dialog.component.html @@ -1,30 +1,37 @@ -{{'USER.PERSONALACCESSTOKEN.ADDED.TITLE' | translate}} +{{ 'USER.PERSONALACCESSTOKEN.ADDED.TITLE' | translate }}
- {{'USER.PERSONALACCESSTOKEN.ADDED.DESCRIPTION' | translate}} + + {{ 'USER.PERSONALACCESSTOKEN.ADDED.DESCRIPTION' | translate }}
-

{{'USER.PERSONALACCESSTOKEN.ID' | translate}}

-

{{tokenResponse.tokenId}}

+

{{ 'USER.PERSONALACCESSTOKEN.ID' | translate }}

+

{{ tokenResponse.tokenId }}

-

{{'USER.PERSONALACCESSTOKEN.TOKEN' | translate}}

+

{{ 'USER.PERSONALACCESSTOKEN.TOKEN' | translate }}

- - {{tokenResponse.token}} + {{ tokenResponse.token }}
-
\ No newline at end of file +
diff --git a/console/src/app/modules/show-token-dialog/show-token-dialog.component.scss b/console/src/app/modules/show-token-dialog/show-token-dialog.component.scss index 92b2f5c7c1..1dc60536ee 100644 --- a/console/src/app/modules/show-token-dialog/show-token-dialog.component.scss +++ b/console/src/app/modules/show-token-dialog/show-token-dialog.component.scss @@ -28,7 +28,6 @@ } .left { - color: var(--grey); margin-right: 1rem; margin-top: 0; margin-bottom: 0.5rem; diff --git a/console/src/app/modules/sidenav/sidenav.component.scss b/console/src/app/modules/sidenav/sidenav.component.scss index 0636d2f749..cc0caf57dd 100644 --- a/console/src/app/modules/sidenav/sidenav.component.scss +++ b/console/src/app/modules/sidenav/sidenav.component.scss @@ -69,7 +69,7 @@ padding: 0.75rem 0; font-size: 15px; cursor: pointer; - color: map-get($foreground, base); + color: map-get($foreground, text); display: flex; align-items: center; diff --git a/console/src/app/modules/user-grants/user-grants.component.scss b/console/src/app/modules/user-grants/user-grants.component.scss index 8a5fed998f..5e9a315996 100644 --- a/console/src/app/modules/user-grants/user-grants.component.scss +++ b/console/src/app/modules/user-grants/user-grants.component.scss @@ -16,7 +16,7 @@ opacity: 0.6; font-size: 15px; cursor: pointer; - color: map-get($foreground, base); + color: map-get($foreground, text); &:not(:last-child) { margin-right: 1rem; diff --git a/console/src/app/pages/domains/add-domain-dialog/add-domain-dialog.component.html b/console/src/app/pages/domains/add-domain-dialog/add-domain-dialog.component.html index 6f147ca875..317644c1b9 100644 --- a/console/src/app/pages/domains/add-domain-dialog/add-domain-dialog.component.html +++ b/console/src/app/pages/domains/add-domain-dialog/add-domain-dialog.component.html @@ -1,6 +1,6 @@ -{{'ORG.DOMAINS.ADD.TITLE' | translate}} +{{ 'ORG.DOMAINS.ADD.TITLE' | translate }}
-

{{'ORG.DOMAINS.ADD.DESCRIPTION' | translate}}

+

{{ 'ORG.DOMAINS.ADD.DESCRIPTION' | translate }}

Domain @@ -9,11 +9,10 @@
- -
\ No newline at end of file +
diff --git a/console/src/app/pages/domains/add-domain-dialog/add-domain-dialog.component.scss b/console/src/app/pages/domains/add-domain-dialog/add-domain-dialog.component.scss index 4c4e09231a..d865b143c0 100644 --- a/console/src/app/pages/domains/add-domain-dialog/add-domain-dialog.component.scss +++ b/console/src/app/pages/domains/add-domain-dialog/add-domain-dialog.component.scss @@ -4,7 +4,6 @@ } .desc { - color: var(--grey); font-size: 0.9rem; } diff --git a/console/src/app/pages/grants/grants.component.html b/console/src/app/pages/grants/grants.component.html index 443d233921..e0a7a6fa37 100644 --- a/console/src/app/pages/grants/grants.component.html +++ b/console/src/app/pages/grants/grants.component.html @@ -1,18 +1,34 @@

{{ 'GRANTS.TITLE' | translate }}

-

{{'GRANTS.DESC' | translate }}

- +

{{ 'GRANTS.DESC' | translate }}

+ - +
-
\ No newline at end of file +
diff --git a/console/src/app/pages/grants/grants.component.scss b/console/src/app/pages/grants/grants.component.scss index bff28483bc..9de3510e85 100644 --- a/console/src/app/pages/grants/grants.component.scss +++ b/console/src/app/pages/grants/grants.component.scss @@ -2,7 +2,7 @@ h1 { margin: 0; } -.desc { - margin-bottom: 2rem; +.grants-desc { + margin-bottom: 1rem; font-size: 14px; } 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 5848f103b4..1532a04271 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,7 +1,7 @@
- -
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 index e5b1b3b773..5aa5e2f4e1 100644 --- 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 @@ -13,11 +13,7 @@ h1 { .action { display: flex; - justify-content: flex-end; - - .ok-button { - margin-left: 0.5rem; - } + justify-content: space-between; button { border-radius: 0.5rem; diff --git a/console/src/app/pages/projects/apps/redirect-uris/redirect-uris.component.html b/console/src/app/pages/projects/apps/redirect-uris/redirect-uris.component.html index 625fa13a0f..4ff326a471 100644 --- a/console/src/app/pages/projects/apps/redirect-uris/redirect-uris.component.html +++ b/console/src/app/pages/projects/apps/redirect-uris/redirect-uris.component.html @@ -1,27 +1,40 @@ - - - {{ title }} + + + {{ title }} - - - + + + -
-
- {{uri}} - - +
+
+ {{ uri }} + + - -
+ +
-

- {{'APP.OIDC.REDIRECTNOTVALID' | translate}}

\ No newline at end of file +

+ {{ 'APP.OIDC.REDIRECTNOTVALID' | translate }} +

diff --git a/console/src/app/pages/projects/apps/redirect-uris/redirect-uris.component.scss b/console/src/app/pages/projects/apps/redirect-uris/redirect-uris.component.scss index dbc5be916a..0768e4a319 100644 --- a/console/src/app/pages/projects/apps/redirect-uris/redirect-uris.component.scss +++ b/console/src/app/pages/projects/apps/redirect-uris/redirect-uris.component.scss @@ -1,4 +1,80 @@ -.form { +@use '@angular/material' as mat; + +@mixin redirect-uris-theme($theme) { + $foreground: map-get($theme, foreground); + $background: map-get($theme, background); + $is-dark-theme: map-get($theme, is-dark); + $warn: map-get($theme, warn); + $warn-color: map-get($warn, 500); + $button-text-color: map-get($foreground, text); + $button-disabled-text-color: map-get($foreground, disabled-button); + $divider-color: map-get($foreground, dividers); + $secondary-text: map-get($foreground, secondary-text); + + .redirect-uris-list { + width: 100%; + + .uri-line { + display: flex; + align-items: center; + margin: 0.5rem 0; + padding: 0 0 0 0.75rem; + border-radius: 4px; + background: map-get($background, infosection); + + .uri { + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 14px; + overflow-x: auto; + } + + .fill-space { + flex: 1; + } + + i.green { + font-size: 1rem; + line-height: 35px; + height: 30px; + } + + .icon-button { + height: 30px; + line-height: 30px; + + .icon { + font-size: 1rem; + margin-bottom: 3px; + } + + &:not(:hover) { + color: $secondary-text; + } + } + + .alerticon { + display: none; + } + + &.alert { + background-color: map-get($background, alertinfosection); + color: map-get($foreground, alertinfosection); + + .alerticon { + display: inline; + } + } + } + } + + .redirect-uris-error { + font-size: 13px; + color: $warn-color; + margin: 0 0.5rem 1.5rem 0.5rem; + } +} + +.redirect-uris-form { display: flex; align-items: flex-end; min-width: 320px; @@ -12,52 +88,3 @@ margin-right: -0.5rem; } } - -.uri-list { - margin: 0 0.5rem; - width: 100%; - - .uri-line { - display: flex; - align-items: center; - - .uri { - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - font-size: 14px; - overflow-x: auto; - } - - .fill-space { - flex: 1; - } - - i.green { - font-size: 1rem; - line-height: 35px; - height: 30px; - } - - i.red { - font-size: 1.2rem; - } - - .icon-button { - height: 30px; - line-height: 30px; - - .icon { - font-size: 1rem !important; - } - - &:not(:hover) { - color: var(--grey); - } - } - } -} - -.error { - font-size: 13px; - color: var(--warn); - margin: 0 0.5rem 1.5rem 0.5rem; -} diff --git a/console/src/app/pages/projects/owned-projects/owned-project-detail/application-grid/application-grid.component.ts b/console/src/app/pages/projects/owned-projects/owned-project-detail/application-grid/application-grid.component.ts index 2abb61aafb..d50b4b87a9 100644 --- a/console/src/app/pages/projects/owned-projects/owned-project-detail/application-grid/application-grid.component.ts +++ b/console/src/app/pages/projects/owned-projects/owned-project-detail/application-grid/application-grid.component.ts @@ -11,7 +11,7 @@ import { ManagementService } from 'src/app/services/mgmt.service'; }) export class ApplicationGridComponent implements OnInit { @Input() public projectId: string = ''; - @Input() public disabled: boolean = false; + @Input() public disabled: boolean = true; @Output() public changeView: EventEmitter = new EventEmitter(); public appsSubject: BehaviorSubject = new BehaviorSubject([]); private loadingSubject: BehaviorSubject = new BehaviorSubject(true); diff --git a/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.html b/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.html index 8c907cace0..dad03837da 100644 --- a/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.html +++ b/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.html @@ -6,7 +6,7 @@ [isInactive]="project?.state === ProjectState.PROJECT_STATE_INACTIVE" [hasContributors]="true" stateTooltip="{{ 'PROJECT.STATE.' + project?.state | translate }}" - [hasActions]="true" + [hasActions]="['project.app.write:' + project?.id, 'project.app.write$'] | hasRole | async" >
- + @@ -111,7 +121,9 @@ > {{ 'PROJECT.ROLE.ASSERTION' | translate }} -

{{ 'PROJECT.ROLE.ASSERTION_DESCRIPTION' | translate }}

+ {{ + 'PROJECT.ROLE.ASSERTION_DESCRIPTION' | translate + }} {{ 'PROJECT.ROLE.CHECK' | translate }} -

{{ 'PROJECT.ROLE.CHECK_DESCRIPTION' | translate }}

+ {{ + 'PROJECT.ROLE.CHECK_DESCRIPTION' | translate + }} {{ 'PROJECT.HAS_PROJECT' | translate }} -

{{ 'PROJECT.HAS_PROJECT_DESCRIPTION' | translate }}

+ {{ + 'PROJECT.HAS_PROJECT_DESCRIPTION' | translate + }}
- +
diff --git a/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.scss b/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.scss index 7b553d91f4..484320ac12 100644 --- a/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.scss +++ b/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component.scss @@ -55,5 +55,5 @@ .desc { font-size: 14px; - margin-bottom: 2rem; + margin-bottom: 1rem; } diff --git a/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.module.ts b/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.module.ts index 98c899479a..6559a15050 100644 --- a/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.module.ts +++ b/console/src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.module.ts @@ -19,6 +19,7 @@ import { CardModule } from 'src/app/modules/card/card.module'; import { ChangesModule } from 'src/app/modules/changes/changes.module'; import { ContributorsModule } from 'src/app/modules/contributors/contributors.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 { MetaLayoutModule } from 'src/app/modules/meta-layout/meta-layout.module'; import { PaginatorModule } from 'src/app/modules/paginator/paginator.module'; @@ -71,6 +72,7 @@ import { OwnedProjectDetailComponent } from './owned-project-detail.component'; TopViewModule, MatCheckboxModule, MatSelectModule, + InfoSectionModule, MatMenuModule, MatProgressSpinnerModule, ChangesModule, diff --git a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.component.html b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.component.html index 0cf83685f5..851cd50d04 100644 --- a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.component.html +++ b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.component.html @@ -1,65 +1,104 @@

{{ 'PROJECT.GRANT.DETAIL.DESC' | translate }} - +

-
- - + +
-
- -
+
- +

{{ 'PROJECT.GRANT.DETAIL.MEMBERTITLE' | translate }}

-

{{ 'PROJECT.GRANT.DETAIL.MEMBERDESC' | translate }}

+

{{ 'PROJECT.GRANT.DETAIL.MEMBERDESC' | translate }}

- - - -
\ No newline at end of file + diff --git a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.component.ts b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.component.ts index 2ec2e29736..70f567a0ae 100644 --- a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.component.ts +++ b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.component.ts @@ -3,17 +3,15 @@ import { MatDialog } from '@angular/material/dialog'; import { PageEvent } from '@angular/material/paginator'; import { ActivatedRoute } from '@angular/router'; import { ActionKeysType } from 'src/app/modules/action-keys/action-keys.component'; +import { CreationType, MemberCreateDialogComponent } from 'src/app/modules/add-member-dialog/member-create-dialog.component'; import { UserGrantRoleDialogComponent } from 'src/app/modules/user-grant-role-dialog/user-grant-role-dialog.component'; import { Member } from 'src/app/proto/generated/zitadel/member_pb'; import { GrantedProject, ProjectGrantState, Role } from 'src/app/proto/generated/zitadel/project_pb'; +import { User } from 'src/app/proto/generated/zitadel/user_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 { - ProjectGrantMembersCreateDialogComponent, - ProjectGrantMembersCreateDialogExportType, -} from './project-grant-members-create-dialog/project-grant-members-create-dialog.component'; import { ProjectGrantMembersDataSource } from './project-grant-members-datasource'; @Component({ @@ -69,25 +67,29 @@ export class ProjectGrantDetailComponent { ); }; - this.mgmtService.getProjectGrantByID(this.grantid, this.projectid).then((resp) => { - if (resp.projectGrant) { - this.grant = resp.projectGrant; + this.mgmtService + .getProjectGrantByID(this.grantid, this.projectid) + .then((resp) => { + console.log(resp); + if (resp.projectGrant) { + this.grant = resp.projectGrant; - const breadcrumbs = [ - new Breadcrumb({ - type: BreadcrumbType.ORG, - routerLink: ['/org'], - }), - new Breadcrumb({ - type: BreadcrumbType.PROJECT, - name: '', - param: { key: 'projectid', value: resp.projectGrant.projectId }, - routerLink: ['/projects', resp.projectGrant.projectId], - }), - ]; - this.breadcrumbService.setBreadcrumb(breadcrumbs); - } - }); + const breadcrumbs = [ + new Breadcrumb({ + type: BreadcrumbType.ORG, + routerLink: ['/org'], + }), + new Breadcrumb({ + type: BreadcrumbType.PROJECT, + name: '', + param: { key: 'projectid', value: resp.projectGrant.projectId }, + routerLink: ['/projects', resp.projectGrant.projectId], + }), + ]; + this.breadcrumbService.setBreadcrumb(breadcrumbs); + } + }) + .catch(this.toast.showError); }); } @@ -176,36 +178,35 @@ export class ProjectGrantDetailComponent { } public async openAddMember(): Promise { - const keysList = await this.mgmtService.listProjectGrantMemberRoles(); - - const dialogRef = this.dialog.open(ProjectGrantMembersCreateDialogComponent, { + const dialogRef = this.dialog.open(MemberCreateDialogComponent, { data: { - roleKeysList: keysList.resultList, + creationType: CreationType.PROJECT_GRANTED, }, width: '400px', }); - dialogRef.afterClosed().subscribe((dataToAdd: ProjectGrantMembersCreateDialogExportType) => { - if (dataToAdd) { - Promise.all( - dataToAdd.userIds.map((userid: string) => { - return this.mgmtService.addProjectGrantMember( - this.grant.projectId, - this.grant.grantId, - userid, - dataToAdd.rolesKeyList, - ); - }), - ) - .then(() => { - this.toast.showInfo('PROJECT.GRANT.TOAST.PROJECTGRANTMEMBERADDED', true); - setTimeout(() => { - this.changePage.emit(); - }, 3000); - }) - .catch((error) => { - this.toast.showError(error); - }); + dialogRef.afterClosed().subscribe((resp) => { + if (resp) { + const users: User.AsObject[] = resp.users; + const roles: string[] = resp.roles; + + if (users && users.length && roles && roles.length) { + const userIds = users.map((user) => user.id); + Promise.all( + userIds.map((userid: string) => { + return this.mgmtService.addProjectGrantMember(this.grant.projectId, this.grant.grantId, userid, resp.roles); + }), + ) + .then(() => { + this.toast.showInfo('PROJECT.GRANT.TOAST.PROJECTGRANTMEMBERADDED', true); + setTimeout(() => { + this.changePage.emit(); + }, 3000); + }) + .catch((error) => { + this.toast.showError(error); + }); + } } }); } diff --git a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.module.ts b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.module.ts index 522b5551c9..6c528cfcef 100644 --- a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.module.ts +++ b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.module.ts @@ -15,6 +15,7 @@ import { MatTooltipModule } from '@angular/material/tooltip'; import { TranslateModule } from '@ngx-translate/core'; import { HasRoleModule } from 'src/app/directives/has-role/has-role.module'; import { ActionKeysModule } from 'src/app/modules/action-keys/action-keys.module'; +import { MemberCreateDialogModule } from 'src/app/modules/add-member-dialog/member-create-dialog.module'; import { DetailLayoutModule } from 'src/app/modules/detail-layout/detail-layout.module'; import { InputModule } from 'src/app/modules/input/input.module'; import { MembersTableModule } from 'src/app/modules/members-table/members-table.module'; @@ -25,16 +26,12 @@ import { HasRolePipeModule } from 'src/app/pipes/has-role-pipe/has-role-pipe.mod import { ProjectGrantDetailRoutingModule } from './project-grant-detail-routing.module'; import { ProjectGrantDetailComponent } from './project-grant-detail.component'; import { ProjectGrantIllustrationComponent } from './project-grant-illustration/project-grant-illustration.component'; -import { - ProjectGrantMembersCreateDialogModule, -} from './project-grant-members-create-dialog/project-grant-members-create-dialog.module'; @NgModule({ declarations: [ProjectGrantDetailComponent, ProjectGrantIllustrationComponent], imports: [ CommonModule, ProjectGrantDetailRoutingModule, - ProjectGrantMembersCreateDialogModule, MatAutocompleteModule, HasRoleModule, MatChipsModule, @@ -54,6 +51,7 @@ import { TranslateModule, MatSelectModule, DetailLayoutModule, + MemberCreateDialogModule, HasRolePipeModule, MembersTableModule, MatDialogModule, diff --git a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-illustration/project-grant-illustration.component.ts b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-illustration/project-grant-illustration.component.ts index 88e42fd23f..fda48ffef5 100644 --- a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-illustration/project-grant-illustration.component.ts +++ b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-illustration/project-grant-illustration.component.ts @@ -13,7 +13,6 @@ export class ProjectGrantIllustrationComponent { @Output() public editRoleClicked: EventEmitter = new EventEmitter(); ProjectGrantState: any = ProjectGrantState; - constructor() {} public removeRole(roleKey: string): void { this.roleRemoved.emit(roleKey); diff --git a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.component.html b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.component.html deleted file mode 100644 index adce97077f..0000000000 --- a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.component.html +++ /dev/null @@ -1,27 +0,0 @@ -

- {{'MEMBER.ADD' | translate}} -

-

{{'ORG_DETAIL.MEMBER.ADDDESCRIPTION' | translate}}

-
- - - - - {{ 'PROJECT.MEMBER.ROLES' | translate }} - - - {{ key }} - - - -
-
- - - -
\ No newline at end of file diff --git a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.component.scss b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.component.scss deleted file mode 100644 index 53919d7751..0000000000 --- a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.component.scss +++ /dev/null @@ -1,12 +0,0 @@ -.full-width { - width: 100%; -} - -.action { - display: flex; - justify-content: flex-end; - - .ok-button { - margin-left: .5rem; - } -} diff --git a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.component.spec.ts b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.component.spec.ts deleted file mode 100644 index 72b87c9165..0000000000 --- a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { ProjectGrantMembersCreateDialogComponent } from './project-grant-members-create-dialog.component'; - -describe('ProjectGrantMembersCreateDialogComponent', () => { - let component: ProjectGrantMembersCreateDialogComponent; - let fixture: ComponentFixture; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [ProjectGrantMembersCreateDialogComponent], - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(ProjectGrantMembersCreateDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.component.ts b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.component.ts deleted file mode 100644 index e0f04f8ea3..0000000000 --- a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.component.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Component, Inject } from '@angular/core'; -import { FormGroup } from '@angular/forms'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { User } from 'src/app/proto/generated/zitadel/user_pb'; - -export interface ProjectGrantMembersCreateDialogExportType { - userIds: string[]; - rolesKeyList: string[]; -} -@Component({ - selector: 'cnsl-project-grant-members-create-dialog', - templateUrl: './project-grant-members-create-dialog.component.html', - styleUrls: ['./project-grant-members-create-dialog.component.scss'], -}) -export class ProjectGrantMembersCreateDialogComponent { - public form!: FormGroup; - public userIds: string[] = []; - public roleKeyList: string[] = []; - - constructor( - public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data: any, - ) { } - - public selectUsers(users: User.AsObject | User.AsObject[]): void { - if (Array.isArray(users)) { - this.userIds = users.map(user => user.id); - } - } - - public closeDialog(): void { - this.dialogRef.close(false); - } - - public closeDialogWithSuccess(): void { - const exportData: ProjectGrantMembersCreateDialogExportType = { - userIds: this.userIds, - rolesKeyList: this.roleKeyList, - }; - this.dialogRef.close(exportData); - } -} diff --git a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.module.ts b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.module.ts deleted file mode 100644 index 03581399ff..0000000000 --- a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-members-create-dialog/project-grant-members-create-dialog.module.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { MatButtonModule } from '@angular/material/button'; -import { MatDialogModule } from '@angular/material/dialog'; -import { MatSelectModule } from '@angular/material/select'; -import { TranslateModule } from '@ngx-translate/core'; -import { InputModule } from 'src/app/modules/input/input.module'; -import { SearchUserAutocompleteModule } from 'src/app/modules/search-user-autocomplete/search-user-autocomplete.module'; - -import { ProjectGrantMembersCreateDialogComponent } from './project-grant-members-create-dialog.component'; - -@NgModule({ - declarations: [ProjectGrantMembersCreateDialogComponent], - imports: [ - CommonModule, - FormsModule, - MatDialogModule, - MatButtonModule, - TranslateModule, - MatSelectModule, - InputModule, - SearchUserAutocompleteModule, - ], -}) -export class ProjectGrantMembersCreateDialogModule { } - 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 a96ec233af..16c4311fa8 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,4 +1,9 @@ - +

{{ 'PROJECT.PAGES.CREATE_DESC' | translate }}

diff --git a/console/src/app/pages/projects/projects.component.scss b/console/src/app/pages/projects/projects.component.scss index 250e93aa72..606aaad81d 100644 --- a/console/src/app/pages/projects/projects.component.scss +++ b/console/src/app/pages/projects/projects.component.scss @@ -14,7 +14,7 @@ } .sub { - margin-bottom: 2rem; + margin-bottom: 1.5rem; font-size: 14px; } @@ -38,7 +38,7 @@ opacity: 0.6; font-size: 15px; cursor: pointer; - color: map-get($foreground, base); + color: map-get($foreground, text); &:first-child { margin-right: 1rem; diff --git a/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.html b/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.html index 0ace511569..0af8c82cc4 100644 --- a/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.html +++ b/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.html @@ -17,7 +17,7 @@
- + { + const { id } = params; + if (id) { + this.currentSetting = id; + } + }); + const mediaq: string = '(max-width: 500px)'; const small = this.mediaMatcher.matchMedia(mediaq).matches; if (small) { diff --git a/console/src/app/pages/users/user-detail/metadata-dialog/metadata-dialog.component.html b/console/src/app/pages/users/user-detail/metadata-dialog/metadata-dialog.component.html index 580e9249f6..63e7b07dcf 100644 --- a/console/src/app/pages/users/user-detail/metadata-dialog/metadata-dialog.component.html +++ b/console/src/app/pages/users/user-detail/metadata-dialog/metadata-dialog.component.html @@ -1,42 +1,55 @@ -
-

{{'USER.METADATA.TITLE' | translate}}

+
+

{{ 'USER.METADATA.TITLE' | translate }}

-

{{ts | timestampToDate | localizedDate: 'dd. MMM, HH:mm' }}

+

{{ ts | timestampToDate | localizedDate: 'dd. MMM, HH:mm' }}

-

{{'USER.METADATA.DESCRIPTION' | translate}}

-
+

{{ 'USER.METADATA.DESCRIPTION' | translate }}

+
- -
\ No newline at end of file +
diff --git a/console/src/app/pages/users/user-detail/metadata-dialog/metadata-dialog.component.scss b/console/src/app/pages/users/user-detail/metadata-dialog/metadata-dialog.component.scss index 906775f9fb..a204227269 100644 --- a/console/src/app/pages/users/user-detail/metadata-dialog/metadata-dialog.component.scss +++ b/console/src/app/pages/users/user-detail/metadata-dialog/metadata-dialog.component.scss @@ -2,8 +2,8 @@ display: flex; align-items: center; - .title { - font-size: 1.5rem; + .metadata-title { + font-size: 1.3rem; margin: 0; } @@ -23,23 +23,27 @@ } } -.content { - display: flex; - align-items: center; - margin: 0 -0.5rem; +.metadata-dialog-content { + min-width: 400px; - .formfield { - flex: 1; - margin: 0 0.5rem; + .content { + display: flex; + align-items: center; + margin: 0 -0.5rem; - @media only screen and (max-width: 450px) { - flex-basis: 100%; + .formfield { + flex: 1; + margin: 0 0.5rem; + + @media only screen and (max-width: 450px) { + flex-basis: 100%; + } } - } - .rm-button, - .set-button { - margin-top: 14px; + .rm-button, + .set-button { + margin-top: 14px; + } } } diff --git a/console/src/app/pages/users/user-detail/metadata/metadata.component.html b/console/src/app/pages/users/user-detail/metadata/metadata.component.html index 2faab4c078..c341e2aa4a 100644 --- a/console/src/app/pages/users/user-detail/metadata/metadata.component.html +++ b/console/src/app/pages/users/user-detail/metadata/metadata.component.html @@ -1,22 +1,17 @@
- {{'USER.TABLE.EMPTY' | translate}} + {{ 'USER.TABLE.EMPTY' | translate }}
- - \ No newline at end of file + + diff --git a/console/src/app/pages/users/user-list/user-table/user-table.component.scss b/console/src/app/pages/users/user-list/user-table/user-table.component.scss index 7adebdb5dc..8a9159bf3f 100644 --- a/console/src/app/pages/users/user-list/user-table/user-table.component.scss +++ b/console/src/app/pages/users/user-list/user-table/user-table.component.scss @@ -16,7 +16,7 @@ opacity: 0.6; font-size: 15px; cursor: pointer; - color: map-get($foreground, base); + color: map-get($foreground, text); &:first-child { margin-right: 1rem; diff --git a/console/src/app/pages/users/user-list/user-table/user-table.component.ts b/console/src/app/pages/users/user-list/user-table/user-table.component.ts index f5034e4e41..94c2aa3260 100644 --- a/console/src/app/pages/users/user-list/user-table/user-table.component.ts +++ b/console/src/app/pages/users/user-list/user-table/user-table.component.ts @@ -37,7 +37,7 @@ export class UserTableComponent implements OnInit { public Type: any = Type; @Input() public type: Type = Type.TYPE_HUMAN; @Input() refreshOnPreviousRoutes: string[] = []; - @Input() disabled: boolean = false; + @Input() canWrite: boolean = false; @ViewChild(PaginatorComponent) public paginator!: PaginatorComponent; @ViewChild(MatSort) public sort!: MatSort; public INITIAL_PAGE_SIZE: number = 20; @@ -77,6 +77,7 @@ export class UserTableComponent implements OnInit { public filterOpen: boolean = false; private searchQueries: SearchQuery[] = []; + @Input() public canDelete: boolean = false; constructor( private router: Router, public translate: TranslateService, diff --git a/console/src/app/services/statehandler/statehandler-processor.service.ts b/console/src/app/services/statehandler/statehandler-processor.service.ts index 6c07685cda..2adad0e3af 100644 --- a/console/src/app/services/statehandler/statehandler-processor.service.ts +++ b/console/src/app/services/statehandler/statehandler-processor.service.ts @@ -1,37 +1,36 @@ import { Location } from '@angular/common'; import { Injectable } from '@angular/core'; -import { Observable, of } from 'rxjs'; +import { Router } from '@angular/router'; import { v4 as uuidv4 } from 'uuid'; export abstract class StatehandlerProcessorService { - public abstract createState(url: string): Observable; + public abstract createState(url: string): string; public abstract restoreState(state?: string): void; } @Injectable() export class StatehandlerProcessorServiceImpl implements StatehandlerProcessorService { - constructor(private location: Location) {} + constructor(private location: Location, private router: Router) {} - public createState(url: string): Observable { + public createState(url: string): string { const externalUrl = this.location.prepareExternalUrl(url); const urlId = uuidv4(); - sessionStorage.setItem(urlId, externalUrl); - - return of(urlId); + return urlId; } public restoreState(state?: string): void { if (state === undefined) { return; + } else { + const url = sessionStorage.getItem(state); + if (url === null) { + return; + } else { + sessionStorage.removeItem(state); + // window.location.replace(window.location.origin + url); + this.router.navigate([url]); + } } - - const url = sessionStorage.getItem(state); - if (url === null) { - return; - } - - sessionStorage.removeItem(state); - window.location.href = window.location.origin + url; } } diff --git a/console/src/app/services/statehandler/statehandler.service.ts b/console/src/app/services/statehandler/statehandler.service.ts index 0ee997fe2f..4207788a88 100644 --- a/console/src/app/services/statehandler/statehandler.service.ts +++ b/console/src/app/services/statehandler/statehandler.service.ts @@ -23,7 +23,9 @@ export class StatehandlerServiceImpl implements StatehandlerService, OnDestroy { map(() => oauthService.state), takeUntil(this.unsubscribe$), ) - .subscribe((state) => processor.restoreState(state)); + .subscribe((state) => { + processor.restoreState(state); + }); } public initStateHandler(): void { @@ -47,9 +49,11 @@ export class StatehandlerServiceImpl implements StatehandlerService, OnDestroy { switchMap((url: string) => { if (url.includes('?login_hint=')) { const newUrl = this.removeParam('login_hint', url); - return of(newUrl); + return of(this.processor.createState(newUrl)); + } else if (url) { + return of(this.processor.createState(url)); } else { - return this.processor.createState(url); + return of(undefined); } }), ); diff --git a/console/src/app/services/theme.service.ts b/console/src/app/services/theme.service.ts index ff86e95383..a52a38dc2a 100644 --- a/console/src/app/services/theme.service.ts +++ b/console/src/app/services/theme.service.ts @@ -57,9 +57,10 @@ export class ThemeService { } public saveTextColor(colorHex: string, isDark: boolean): void { - this.primaryColorPalette = this.computeColors(colorHex); const theme = isDark ? 'dark' : 'light'; document.documentElement.style.setProperty(`--theme-${theme}-${'text'}`, colorHex); + const secondaryTextHex = tinycolor(colorHex).setAlpha(0.78).toHex8String(); + document.documentElement.style.setProperty(`--theme-${theme}-${'secondary-text'}`, secondaryTextHex); } private computeColors(hex: string): Color[] { diff --git a/console/src/assets/i18n/de.json b/console/src/assets/i18n/de.json index 81a5e17d78..0c00db2d22 100644 --- a/console/src/assets/i18n/de.json +++ b/console/src/assets/i18n/de.json @@ -35,7 +35,7 @@ }, "SHORTCUTS": { "SHORTCUTS": "Shortcuts", - "SETTINGS": "Organisation Einstellungen", + "SETTINGS": "Verfügbare Shortcuts", "PROJECTS": "Projekte", "REORDER": "Zum Verschieben Kachel halten un ziehen", "ADD": "Zum Hinzufügen Kachel halten und ziehen" @@ -135,7 +135,7 @@ "TEXT": "Hier können Sie zwischen Ihren Benutzerkonten wechseln und Ihre Sessions und Ihr Profil verwalten." }, "NAV": { - "TEXT": "Diese Navigation ändert sich basierend auf den Breadcrumbs darüber." + "TEXT": "Diese Navigation ändert sich basierend auf Ihrer Organisation oder Instanz" }, "CONTEXTCHANGED": { "TEXT": "Achtung! Soeben wurde die Organisation gewechselt." @@ -818,6 +818,7 @@ "LOCKOUT": "Sperrmechanismen", "COMPLEXITY": "Passwordkomplexität", "NOTIFICATIONS": "Benachrichtigungen", + "NOTIFICATIONS_DESC": "SMTP und SMS Einstellungen", "MESSAGETEXTS": "Benachrichtigungstexte", "IDP": "Identity Provider", "DOMAIN": "Domain Einstellungen", @@ -1181,11 +1182,11 @@ "DESC": "Sobald der Nutzer identifiziert ist, wird das Branding der von ihm gewählten Organisation angezeigt, davor wird der Default des Systems angezeigt." }, "1": { - "TITLE": "Durchsetzung der Richtlinie des Projekteigentümers", + "TITLE": "Einstellung des Projekteigentümers", "DESC": "Das Branding der Organisation, die Eigentümerin des Projekts ist, wird angezeigt" }, "2": { - "TITLE": "Durchsetzung der Richtlinie des Benutzereigentümers", + "TITLE": "Einstellung des Benutzereigentümers", "DESC": "Das Branding der Organisation des Projekts wird angezeigt, sobald der Benutzer identifiziert ist, wird jedoch auf die Einstellung der Organisation des identifizierten Benutzers, gewechselt." }, "DIALOG": { @@ -1549,6 +1550,9 @@ } }, "DIALOG": { + "CONFIG": { + "TITLE": "OIDC configuration ändern" + }, "DELETE": { "TITLE": "App löschen", "DESCRIPTION": "Wollen Sie diese App wirklich löschen?" diff --git a/console/src/assets/i18n/en.json b/console/src/assets/i18n/en.json index 4bf390738e..91f6901d82 100644 --- a/console/src/assets/i18n/en.json +++ b/console/src/assets/i18n/en.json @@ -35,7 +35,7 @@ }, "SHORTCUTS": { "SHORTCUTS": "Shortcuts", - "SETTINGS": "Organization Settings", + "SETTINGS": "Available shortcuts", "PROJECTS": "Projects", "REORDER": "Hold and drag the tile to move it", "ADD": "Hold and drag a tile to add" @@ -135,7 +135,7 @@ "TEXT": "Here you can switch between your user accounts and manage your sessions and profile." }, "NAV": { - "TEXT": "This navigation changes based on the breadcrumbs above." + "TEXT": "This navigation changes based on your selected oranization above or your instance" }, "CONTEXTCHANGED": { "TEXT": "Attention! The organization context has changed." @@ -818,6 +818,7 @@ "LOCKOUT": "Lockout", "COMPLEXITY": "Password complexity", "NOTIFICATIONS": "Notification providers and SMTP", + "NOTIFICATIONS_DESC": "SMTP and SMS Settings", "MESSAGETEXTS": "Message Texts", "IDP": "Identity Providers", "DOMAIN": "Domain settings", @@ -1181,11 +1182,11 @@ "DESC": "As soon as the user is identified, the branding of the organization of the identified user will be shown, before the system default is shown." }, "1": { - "TITLE": "Enforce project resource owner Policy", + "TITLE": "Use project setting", "DESC": "The branding of the organization which owns the project will be shown" }, "2": { - "TITLE": "Allow Login User resource owner policy", + "TITLE": "Use User Organization setting", "DESC": "The branding of the organization of the project will be shown, but as soon as the user is identified, the setting of the organization of the identified user, will be shown." }, "DIALOG": { @@ -1549,6 +1550,9 @@ } }, "DIALOG": { + "CONFIG": { + "TITLE": "Change OIDC Configuration" + }, "DELETE": { "TITLE": "Delete App", "DESCRIPTION": "Do you really want to delete this application?" diff --git a/console/src/assets/i18n/it.json b/console/src/assets/i18n/it.json index b114a84bd7..76781f4a36 100644 --- a/console/src/assets/i18n/it.json +++ b/console/src/assets/i18n/it.json @@ -34,8 +34,8 @@ "DESCRIPTION": "Iniziare rapidamente con ZITADEL." }, "SHORTCUTS": { - "SHORTCUTS": "Shortcuts", - "SETTINGS": "Impostazioni dell' organizazzione", + "SHORTCUTS": "Scorciatoie", + "SETTINGS": "Scorciatoie disponibili", "PROJECTS": "Progetti", "REORDER": "Per spostare, tieni premuto e trascina il riquadro", "ADD": "Per aggiungere, tieni premuto e trascina il riquadro" @@ -135,7 +135,7 @@ "TEXT": "Qui puoi passare da un account utente all'altro e gestire le sessioni e il profilo." }, "NAV": { - "TEXT": "Questa navigazione cambia in base ai breadcrumb sopra." + "TEXT": "Questa navigazione cambia in base all' organizzazione impostata sopra e la tua istanza." }, "CONTEXTCHANGED": { "TEXT": "Attenzione! L'organizzazione è appena stata cambiata." @@ -818,6 +818,7 @@ "LOCKOUT": "Meccanismi di bloccaggio", "COMPLEXITY": "complessità della password", "NOTIFICATIONS": "Notifiche", + "NOTIFICATIONS_DESC": "Impostazioni SMTP e SMS", "MESSAGETEXTS": "Testi di notifica", "IDP": "Identity Providers", "DOMAIN": "Impostazioni del dominio", @@ -1181,11 +1182,11 @@ "DESC": "Non appena l'utente viene identificato, viene mostrata l'impostazione Branding dell'organizzazione, prima che venga mostrato il default del sistema." }, "1": { - "TITLE": "Applica l'impostazione Branding delle risorse del progetto", + "TITLE": "Applica l'impostazione del progetto", "DESC": "Branding dell'organizzazione del progetto sar\u00e0 mostrata" }, "2": { - "TITLE": "Consentire l'accesso all'impostazione Branding dell'utente", + "TITLE": "Applica l'impostazione dell' organizzazione dell' utente", "DESC": "Verr\u00e0 mostrata l'impostazione Branding dell'organizzazione del progetto, ma non appena l'utente viene identificato, verr\u00e0 mostrata l'impostazione dell'organizzazione dell'utente identificato." }, "DIALOG": { @@ -1549,6 +1550,9 @@ } }, "DIALOG": { + "CONFIG": { + "TITLE": "Configurazione OIDC" + }, "DELETE": { "TITLE": "Rimuovere App", "DESCRIPTION": "Vuoi davvero rimuovere questa applicazione?" diff --git a/console/src/component-themes.scss b/console/src/component-themes.scss index 17455082c1..019973e2ac 100644 --- a/console/src/component-themes.scss +++ b/console/src/component-themes.scss @@ -23,6 +23,7 @@ @import 'src/app/pages/projects/owned-projects/owned-project-detail/owned-project-detail.component'; @import 'src/app/pages/projects/granted-projects/granted-project-detail/granted-project-detail.component'; @import 'src/app/pages/projects/apps/app-detail/app-detail.component'; +@import 'src/app/pages/projects/apps/redirect-uris/redirect-uris.component'; @import 'src/app/modules/top-view/top-view.component'; @import 'src/app/pages/projects/projects.component'; @import 'src/app/modules/edit-text/edit-text.component.scss'; @@ -51,6 +52,7 @@ @import 'src/app/pages/actions/add-action-dialog/add-action-dialog.component'; @import 'src/app/modules/project-role-chip/project-role-chip.component'; @import 'src/app/pages/home/home.component.scss'; +@import 'src/app/modules/search-user-autocomplete/search-user-autocomplete.component.scss'; @import 'src/app/modules/policies/login-policy/factor-table/factor-table.component.scss'; @import 'src/app/modules/info-overlay/info-overlay.component.scss'; @import './styles/codemirror.scss'; @@ -67,6 +69,7 @@ @include top-view-theme($theme); @include info-overlay-theme($theme); @include app-auth-method-radio-theme($theme); + @include search-user-autocomplete-theme($theme); @include project-role-chips-theme($theme); @include card-theme($theme); @include footer-theme($theme); @@ -109,6 +112,7 @@ @include user-grants-theme($theme); @include info-row-theme($theme); @include action-dialog-theme($theme); + @include redirect-uris-theme($theme); @include action-keys-theme($theme); @include codemirror-theme($theme); @include contact-theme($theme); diff --git a/console/src/styles.scss b/console/src/styles.scss index 2cbf89b65d..726e8d870e 100644 --- a/console/src/styles.scss +++ b/console/src/styles.scss @@ -229,6 +229,9 @@ $caos-light-warn: ( $caos-dark-theme-text: var(--theme-dark-text); $caos-light-theme-text: var(--theme-light-text); +$caos-dark-theme-secondary-text: var(--theme-dark-secondary-text); +$caos-light-theme-secondary-text: var(--theme-light-secondary-text); + $caos-dark-theme-background: ( status-bar: map_get($caos-dark-background, 300), app-bar: map_get($caos-dark-background, 500), @@ -287,7 +290,7 @@ $caos-light-theme-background: ( unselected-chip: map_get($caos-light-background, 300), disabled-list-option: map_get($caos-light-background, 200), tooltip: map_get($mat-gray, 700), - infosection: map_get($caos-light-primary, 100), + infosection: map_get($caos-light-background, 600), warninfosection: #ffc1c1, alertinfosection: rgb(251, 191, 36), successinfosection: #cbf4c9, @@ -307,7 +310,7 @@ $caos-dark-theme-foreground: ( disabled-text: $light-disabled-text, elevation: black, hint-text: $light-disabled-text, - secondary-text: $light-secondary-text, + secondary-text: $caos-dark-theme-secondary-text, placeholder-text: rgba(white, 0.4), icon: rgba(white, 0.54), icons: rgba(white, 0.54), @@ -332,7 +335,7 @@ $caos-light-theme-foreground: ( disabled-text: $dark-disabled-text, elevation: black, hint-text: $dark-disabled-text, - secondary-text: $dark-secondary-text, + secondary-text: $caos-light-theme-secondary-text, placeholder-text: rgba(black, 0.3), icon: rgba(black, 0.54), icons: rgba(black, 0.54), @@ -340,7 +343,7 @@ $caos-light-theme-foreground: ( slider-min: rgba(black, 0.87), slider-off: rgba(black, 0.26), slider-off-active: rgba(black, 0.38), - infosection: #4a4a4a, + infosection: map-get(map-get($caos-light-background, contrast), 600), warninfosection: #620e0e, alertinfosection: rgb(146, 64, 14), successinfosection: #0e6245, @@ -514,7 +517,7 @@ $custom-typography: mat.define-typography-config( ::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); - box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); + box-shadow: 0 0 6px rgba(0, 0, 0, 0.3); background-color: map-get($background, background); border-radius: 8px; transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1) !important; diff --git a/console/src/styles/input.scss b/console/src/styles/input.scss index 5bdd4f804f..53779af177 100644 --- a/console/src/styles/input.scss +++ b/console/src/styles/input.scss @@ -21,7 +21,7 @@ font-size: 1rem; border: none; border: 1px solid if($is-dark-theme, #f9f7f725, #1a191938); - background-color: if($is-dark-theme, #00000020, #00000005); + background-color: if($is-dark-theme, #00000020, #00000004); border-radius: 4px; height: 40px; padding: 10px;