diff --git a/apps/docs/package.json b/apps/docs/package.json index d8c045fc9..6283ce04a 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -25,9 +25,9 @@ "@headlessui/react": "^2.2.9", "@heroicons/react": "2.2.0", "@inkeep/cxkit-react": "^0.5.115", - "@scalar/api-reference": "^1.44.23", - "@shikijs/rehype": "^3.22.0", - "@shikijs/types": "^3.22.0", + "@scalar/api-reference": "^1.49.8", + "@shikijs/rehype": "^3.23.0", + "@shikijs/types": "^3.23.0", "@types/js-yaml": "^4.0.9", "clsx": "2.1.1", "fumadocs-core": "16.6.15", @@ -36,41 +36,41 @@ "fumadocs-ui": "16.6.15", "js-yaml": "^4.1.1", "lucide-react": "^0.574.0", - "mixpanel-browser": "^2.74.0", + "mixpanel-browser": "^2.77.0", "next": "16.1.6", "next-themes": "^0.4.6", "react": "^19.2.4", - "react-copy-to-clipboard": "^5.1.0", + "react-copy-to-clipboard": "^5.1.1", "react-dom": "^19.2.4", "react-google-charts": "^5.2.1", - "shiki": "^3.22.0", + "shiki": "^3.23.0", "tailwind-merge": "^3.5.0", "vanilla-cookieconsent": "3.1.0", "zod": "^4.3.6" }, "devDependencies": { "@eslint/js": "^10.0.1", - "@tailwindcss/postcss": "^4.1.18", + "@tailwindcss/postcss": "^4.2.2", "@tailwindcss/typography": "^0.5.19", "@types/mdx": "^2.0.13", - "@types/node": "^25.2.3", + "@types/node": "^25.5.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", - "@typescript-eslint/eslint-plugin": "^8.57.0", - "@typescript-eslint/parser": "^8.57.0", - "eslint": "^10.0.0", + "@typescript-eslint/eslint-plugin": "^8.58.0", + "@typescript-eslint/parser": "^8.58.0", + "eslint": "^10.1.0", "eslint-config-prettier": "^10.1.8", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-import": "^2.32.0", "eslint-plugin-mdx": "^3.7.0", - "glob": "^13.0.5", - "globals": "^17.3.0", + "glob": "^13.0.6", + "globals": "^17.4.0", "next-validate-link": "^1.6.4", - "postcss": "^8.5.6", + "postcss": "^8.5.8", "raw-loader": "^4.0.2", "remark-heading-id": "^1.0.1", "semver": "^7.7.4", - "tailwindcss": "^4.1.18", + "tailwindcss": "^4.2.2", "tailwindcss-animate": "^1.0.7", "tsx": "^4.21.0", "typescript": "^5.9.3", diff --git a/apps/login/next-env-vars.d.ts b/apps/login/next-env-vars.d.ts index c3da60ae8..d3757ce46 100644 --- a/apps/login/next-env-vars.d.ts +++ b/apps/login/next-env-vars.d.ts @@ -87,7 +87,7 @@ declare namespace NodeJS { /** * Optional: JSON string to configure the cache TTLs (in minutes) for specific backend API routes or global fallbacks. * Example: '{"defaultMinutes": 15, "longMinutes": 60, "getBrandingSettings": 120}' - * + * * Properties: * - \`defaultMinutes\`: The globally utilized default TTL in minutes (falls back to 15 if not set). * - \`longMinutes\`: The TTL utilized string for long-cached routes, like branding/translation (falls back to 60 if not set). diff --git a/apps/login/package.json b/apps/login/package.json index 47d76533f..d1dff65ba 100644 --- a/apps/login/package.json +++ b/apps/login/package.json @@ -23,93 +23,93 @@ "*": "prettier --write --ignore-unknown" }, "dependencies": { + "@connectrpc/connect": "^2.1.1", + "@connectrpc/connect-node": "^2.1.1", "@headlessui/react": "^2.2.9", "@heroicons/react": "^2.2.0", - "@opentelemetry/api": "^1.9.0", - "@opentelemetry/api-logs": "^0.211.0", - "@opentelemetry/auto-instrumentations-node": "^0.69.0", - "@opentelemetry/resource-detector-container": "^0.8.2", - "@opentelemetry/resource-detector-gcp": "^0.46.0", - "@opentelemetry/resources": "^2.5.0", - "@opentelemetry/sdk-node": "^0.211.0", - "@opentelemetry/winston-transport": "^0.21.0", + "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api-logs": "^0.214.0", + "@opentelemetry/auto-instrumentations-node": "^0.72.0", + "@opentelemetry/resource-detector-container": "^0.8.5", + "@opentelemetry/resource-detector-gcp": "^0.49.0", + "@opentelemetry/resources": "^2.6.1", + "@opentelemetry/sdk-node": "^0.214.0", + "@opentelemetry/winston-transport": "^0.24.0", "@radix-ui/react-tooltip": "^1.2.8", "@tailwindcss/forms": "^0.5.11", "clsx": "^2.1.1", "copy-to-clipboard": "^3.3.3", "deepmerge": "^4.3.1", "escape-html": "^1.0.3", - "lucide-react": "^0.562.0", + "lucide-react": "^0.577.0", "moment": "^2.30.1", - "next": "16.1.6", - "next-intl": "^4.8.3", - "next-themes": "^0.2.1", + "next": "16.2.2", + "next-intl": "^4.8.4", + "next-themes": "^0.4.6", "nice-grpc": "^2.1.14", "qrcode.react": "^4.2.0", "react": "19.2.4", "react-dom": "19.2.4", - "react-hook-form": "^7.71.1", + "react-hook-form": "^7.72.0", "server-only": "^0.0.1", "tinycolor2": "^1.6.0", "uuid": "^13.0.0", - "@connectrpc/connect-node": "^2.1.1", - "@connectrpc/connect": "^2.1.1", - "winston": "^3.17.0" + "winston": "^3.19.0" }, "devDependencies": { - "@eslint/js": "^10.0.0", + "@eslint/js": "^10.0.1", "@faker-js/faker": "^9.9.0", - "@next/eslint-plugin-next": "16.1.6", - "@opentelemetry/sdk-trace-base": "^2.5.0", - "@opentelemetry/sdk-trace-node": "^2.5.0", + "@next/eslint-plugin-next": "16.2.2", + "@opentelemetry/sdk-trace-base": "^2.6.1", + "@opentelemetry/sdk-trace-node": "^2.6.1", "@otplib/core": "^12.0.1", "@otplib/plugin-crypto": "^12.0.1", "@otplib/plugin-thirty-two": "^12.0.1", - "@playwright/test": "^1.58.0", + "@playwright/test": "^1.59.0", + "@tailwindcss/postcss": "^4.2.2", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@types/escape-html": "^1.0.4", - "@types/node": "^22.19.7", + "@types/node": "^25.5.0", "@types/node-forge": "^1.3.14", - "@types/react": "19.2.7", + "@types/react": "19.2.14", "@types/react-dom": "19.2.3", "@types/tinycolor2": "^1.4.6", - "@types/uuid": "^10.0.0", - "@typescript-eslint/eslint-plugin": "^8.57.0", - "@typescript-eslint/parser": "^8.57.0", - "@vercel/git-hooks": "1.0.0", + "@types/uuid": "^11.0.0", + "@typescript-eslint/eslint-plugin": "^8.58.0", + "@typescript-eslint/parser": "^8.58.0", + "@vercel/git-hooks": "^1.0.0", "@vitejs/plugin-react": "^4.7.0", "@zitadel/client": "workspace:*", "@zitadel/proto": "workspace:*", - "autoprefixer": "^10.4.23", "concurrently": "^9.2.1", - "dotenv-cli": "^8.0.0", - "env-cmd": "^10.1.0", - "esbuild": "^0.27.3", - "eslint": "^10.0.0", + "dotenv-cli": "^11.0.0", + "env-cmd": "^11.0.0", + "esbuild": "^0.27.4", + "eslint": "^10.1.0", "eslint-config-prettier": "^10.1.8", "eslint-import-resolver-typescript": "^4.4.4", - "eslint-plugin-cypress": "^4.2.0", + "eslint-plugin-cypress": "^4.3.0", "eslint-plugin-import": "^2.32.0", "eslint-plugin-react-hooks": "^7.0.1", - "gaxios": "^7.1.3", - "globals": "^17.0.0", + "gaxios": "^7.1.4", + "globals": "^17.4.0", "grpc-tools": "^1.13.1", "jsdom": "^26.1.0", - "lint-staged": "15.5.1", - "node-forge": "^1.3.3", - "nodemon": "^3.1.11", - "postcss": "^8.5.6", + "lint-staged": "^16.4.0", + "node-forge": "^1.4.0", + "nodemon": "^3.1.14", + "postcss": "^8.5.8", "prettier": "^3.8.1", "prettier-plugin-organize-imports": "^4.3.0", "prettier-plugin-tailwindcss": "^0.7.2", - "sass": "^1.97.3", - "start-server-and-test": "^2.1.3", - "tailwindcss": "3.4.14", - "testcontainers": "^11.11.0", - "ts-proto": "^2.11.1", + "sass": "^1.98.0", + "start-server-and-test": "^3.0.0", + "tailwindcss": "^4.2.2", + "testcontainers": "^11.13.0", + "ts-proto": "^2.11.6", "typescript": "^5.9.3", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^2.1.9" + "vitest": "^4.1.2" } } diff --git a/apps/login/postcss.config.cjs b/apps/login/postcss.config.cjs index 12a703d90..483f37854 100644 --- a/apps/login/postcss.config.cjs +++ b/apps/login/postcss.config.cjs @@ -1,6 +1,5 @@ module.exports = { plugins: { - tailwindcss: {}, - autoprefixer: {}, + "@tailwindcss/postcss": {}, }, }; diff --git a/apps/login/project.json b/apps/login/project.json index df070979e..1aea46c78 100644 --- a/apps/login/project.json +++ b/apps/login/project.json @@ -44,7 +44,7 @@ }, "build-vercel": { "description": "Builds the Next.js Login application for Vercel deployment", - "cache": true, + "cache": false, "dependsOn": ["^build"], "inputs": [ "default", @@ -54,7 +54,7 @@ "!{projectRoot}/acceptance/**/*", "!{projectRoot}/dockerized/**/*" ], - "outputs": ["{projectRoot}/.next", "!{projectRoot}/.next/cache", "!{projectRoot}/.next/standalone"] + "outputs": ["{projectRoot}/.next/!(cache|standalone)/**"] }, "lint": { "description": "Runs all linters", @@ -77,7 +77,7 @@ }, "test-unit": { "description": "Runs unit tests using Vitest", - "dependsOn": ["^build"] + "dependsOn": ["build"] }, "test-dockerized": { "description": "Runs dockerized integration tests (OpenTelemetry and custom CA certificate tests)", diff --git a/apps/login/src/app/(login)/idp/[provider]/account-not-found/page.tsx b/apps/login/src/app/(login)/idp/[provider]/account-not-found/page.tsx index be3bfb255..5ce906e38 100644 --- a/apps/login/src/app/(login)/idp/[provider]/account-not-found/page.tsx +++ b/apps/login/src/app/(login)/idp/[provider]/account-not-found/page.tsx @@ -50,7 +50,7 @@ export default async function Page(props: { searchParams: Promise - diff --git a/apps/login/src/app/(login)/idp/[provider]/registration-failed/page.tsx b/apps/login/src/app/(login)/idp/[provider]/registration-failed/page.tsx index 82988bf03..6e43fb8ad 100644 --- a/apps/login/src/app/(login)/idp/[provider]/registration-failed/page.tsx +++ b/apps/login/src/app/(login)/idp/[provider]/registration-failed/page.tsx @@ -50,7 +50,7 @@ export default async function Page(props: { searchParams: Promise - diff --git a/apps/login/src/app/(login)/layout.tsx b/apps/login/src/app/(login)/layout.tsx index 93413ed8d..aee7c1d73 100644 --- a/apps/login/src/app/(login)/layout.tsx +++ b/apps/login/src/app/(login)/layout.tsx @@ -51,7 +51,7 @@ export default async function RootLayout({ children }: { children: React.ReactNo
@@ -66,7 +66,7 @@ export default async function RootLayout({ children }: { children: React.ReactNo >
{children}
diff --git a/apps/login/src/app/(login)/loginname/page.tsx b/apps/login/src/app/(login)/loginname/page.tsx index 3df26bee8..a656d0860 100644 --- a/apps/login/src/app/(login)/loginname/page.tsx +++ b/apps/login/src/app/(login)/loginname/page.tsx @@ -71,7 +71,7 @@ export default async function Page(props: { searchParams: Promise +
-
+
{domain}
{pathname ? ( diff --git a/apps/login/src/components/alert.tsx b/apps/login/src/components/alert.tsx index 551bff670..d61d977f9 100644 --- a/apps/login/src/components/alert.tsx +++ b/apps/login/src/components/alert.tsx @@ -26,8 +26,8 @@ export function Alert({ children, type = AlertType.ALERT }: Props) { [neutral]: type === AlertType.INFO, })} > - {type === AlertType.ALERT && } - {type === AlertType.INFO && } + {type === AlertType.ALERT && } + {type === AlertType.INFO && } {children}
); diff --git a/apps/login/src/components/app-avatar.tsx b/apps/login/src/components/app-avatar.tsx index 8686043fa..df65d22b8 100644 --- a/apps/login/src/components/app-avatar.tsx +++ b/apps/login/src/components/app-avatar.tsx @@ -26,7 +26,7 @@ export function AppAvatar({ appName, imageUrl, shadow }: AvatarProps) { return (
) : ( diff --git a/apps/login/src/components/auth-methods.tsx b/apps/login/src/components/auth-methods.tsx index 8f1ec2df3..a536077af 100644 --- a/apps/login/src/components/auth-methods.tsx +++ b/apps/login/src/components/auth-methods.tsx @@ -181,7 +181,7 @@ export const PASSWORD = (alreadyAdded: boolean, link: string) => { function Setup() { return ( -
+
diff --git a/apps/login/src/components/authentication-method-radio.tsx b/apps/login/src/components/authentication-method-radio.tsx index 0870ec1ae..71e435d5c 100644 --- a/apps/login/src/components/authentication-method-radio.tsx +++ b/apps/login/src/components/authentication-method-radio.tsx @@ -29,11 +29,11 @@ export function AuthenticationMethodRadio({ value={method} data-testid={method + "-radio"} className={({ focus, checked }) => - `${focus ? "ring-2 ring-primary-light-500 ring-opacity-60 dark:ring-white/20" : ""} ${ + `${focus ? "ring-primary-light-500 ring-opacity-60 ring-2 dark:ring-white/20" : ""} ${ checked - ? "bg-background-light-400 ring-2 ring-primary-light-500 dark:bg-background-dark-400 dark:ring-primary-dark-500" + ? "bg-background-light-400 ring-primary-light-500 dark:bg-background-dark-400 dark:ring-primary-dark-500 ring-2" : "bg-background-light-400 dark:bg-background-dark-400" - } boder-divider-light relative flex h-full flex-1 cursor-pointer rounded-lg border px-5 py-4 hover:shadow-lg focus:outline-none dark:border-divider-dark dark:hover:bg-white/10` + } boder-divider-light dark:border-divider-dark relative flex h-full flex-1 cursor-pointer rounded-lg border px-5 py-4 hover:shadow-lg focus:outline-none dark:hover:bg-white/10` } >
diff --git a/apps/login/src/components/avatar.tsx b/apps/login/src/components/avatar.tsx index 646ad2619..29621f971 100644 --- a/apps/login/src/components/avatar.tsx +++ b/apps/login/src/components/avatar.tsx @@ -54,7 +54,7 @@ export function Avatar({ size = "base", name, loginName, imageUrl, shadow }: Ava return (
) : ( diff --git a/apps/login/src/components/boundary.tsx b/apps/login/src/components/boundary.tsx index fd5c7fc74..24ca2f328 100644 --- a/apps/login/src/components/boundary.tsx +++ b/apps/login/src/components/boundary.tsx @@ -56,7 +56,7 @@ export const Boundary = ({ })} >
(function Che disabled={disabled} type="checkbox" className={classNames( - "form-checkbox rounded border-gray-300 text-primary-light-500 shadow-sm focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50 focus:ring-offset-0 dark:text-primary-dark-500", + "form-checkbox text-primary-light-500 focus:ring-opacity-50 dark:text-primary-dark-500 rounded border-gray-300 shadow-sm focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-offset-0", className, )} {...props} diff --git a/apps/login/src/components/choose-second-factor-to-setup.tsx b/apps/login/src/components/choose-second-factor-to-setup.tsx index 0fa183fb9..e5af29f3b 100644 --- a/apps/login/src/components/choose-second-factor-to-setup.tsx +++ b/apps/login/src/components/choose-second-factor-to-setup.tsx @@ -83,7 +83,7 @@ export function ChooseSecondFactorToSetup({
{!force && ( - -
- - -
-
+ @if (toggleStates$ | async; as toggleStates) { + +
+ @for (key of FEATURE_KEYS; track key) { + + } + +
+
+ }
diff --git a/console/src/app/components/framework-autocomplete/framework-autocomplete.component.html b/console/src/app/components/framework-autocomplete/framework-autocomplete.component.html index c66b61b72..37091c88e 100644 --- a/console/src/app/components/framework-autocomplete/framework-autocomplete.component.html +++ b/console/src/app/components/framework-autocomplete/framework-autocomplete.component.html @@ -4,32 +4,40 @@ - - - - -
-
-
- - + @if (isLoading()) { + + + + } + @for (framework of filteredOptions | async; track framework) { + +
+
+
+ @if (framework.imgSrcDark) { + + } + @if (framework.imgSrcLight) { + + } +
+ + {{ framework.title }}
- - - {{ framework.title }}
-
- - -
-
-
- - - {{ 'QUICKSTART.FRAMEWORK_OTHER' | translate }} + + } + @if (withCustom) { + +
+
+
+ + {{ 'QUICKSTART.FRAMEWORK_OTHER' | translate }} +
-
- + + } diff --git a/console/src/app/components/framework-change/framework-change.component.html b/console/src/app/components/framework-change/framework-change.component.html index 0cb8a6cef..9234cc7ee 100644 --- a/console/src/app/components/framework-change/framework-change.component.html +++ b/console/src/app/components/framework-change/framework-change.component.html @@ -1,18 +1,22 @@
-
-
- - + @if (framework | async; as framework) { +
+
+ @if (framework.imgSrcDark) { + + } + @if (framework.imgSrcLight) { + + } +
+ {{ framework.title }}
- {{ framework.title }} -
- - + } @else {
{{ 'QUICKSTART.SELECT_FRAMEWORK' | translate }}
-
+ }
{{ 'APP.OIDC.RESPONSETYPE' | translate }} - - [ - {{ 'APP.OIDC.RESPONSE.' + element | translate }} - {{ i < configuration.responseTypesList.length - 1 ? ', ' : '' }} ] - + @if (configuration.responseTypesList && configuration.responseTypesList.length > 0) { + + [ + @for (element of configuration.responseTypesList ?? []; track element; let i = $index) { + + {{ 'APP.OIDC.RESPONSE.' + element | translate }} + {{ i < configuration.responseTypesList.length - 1 ? ', ' : '' }} + + } + ] + + }
diff --git a/console/src/app/components/oidc-configuration/oidc-configuration.component.ts b/console/src/app/components/oidc-configuration/oidc-configuration.component.ts index d6f4688d6..55da8cc7c 100644 --- a/console/src/app/components/oidc-configuration/oidc-configuration.component.ts +++ b/console/src/app/components/oidc-configuration/oidc-configuration.component.ts @@ -1,4 +1,3 @@ -import { CommonModule } from '@angular/common'; import { Component, EventEmitter, Input, Output } from '@angular/core'; import { RouterModule } from '@angular/router'; import { TranslateModule } from '@ngx-translate/core'; @@ -25,7 +24,7 @@ export type Framework = FrameworkDefinition & { selector: 'cnsl-oidc-app-configuration', templateUrl: './oidc-configuration.component.html', styleUrls: ['./oidc-configuration.component.scss'], - imports: [TranslateModule, RouterModule, CommonModule, MatButtonModule], + imports: [TranslateModule, RouterModule, MatButtonModule], }) export class OIDCConfigurationComponent { @Input() public name?: string; diff --git a/console/src/app/components/quickstart/quickstart.component.html b/console/src/app/components/quickstart/quickstart.component.html index 18e017269..4175e81cc 100644 --- a/console/src/app/components/quickstart/quickstart.component.html +++ b/console/src/app/components/quickstart/quickstart.component.html @@ -13,11 +13,15 @@
- + @for (framework of frameworks.slice(0, 18); track framework) { - {{ framework.title }} - {{ framework.title }} + @if (framework.imgSrcDark) { + {{ framework.title }} + } + @if (framework.imgSrcLight) { + {{ framework.title }} + } - + }
diff --git a/console/src/app/components/quickstart/quickstart.component.ts b/console/src/app/components/quickstart/quickstart.component.ts index e944fc11a..b870f1cf1 100644 --- a/console/src/app/components/quickstart/quickstart.component.ts +++ b/console/src/app/components/quickstart/quickstart.component.ts @@ -1,4 +1,3 @@ -import { CommonModule } from '@angular/common'; import { Component } from '@angular/core'; import { RouterModule } from '@angular/router'; import { TranslateModule } from '@ngx-translate/core'; @@ -27,7 +26,7 @@ export type Framework = FrameworkDefinition & { selector: 'cnsl-quickstart', templateUrl: './quickstart.component.html', styleUrls: ['./quickstart.component.scss'], - imports: [TranslateModule, RouterModule, CommonModule, MatButtonModule], + imports: [TranslateModule, RouterModule, MatButtonModule], }) export class QuickstartComponent { public frameworks: FrameworkDefinition[] = frameworkDefinition diff --git a/console/src/app/modules/accounts-card/accounts-card.component.html b/console/src/app/modules/accounts-card/accounts-card.component.html index 24fe09833..54c64e0f8 100644 --- a/console/src/app/modules/accounts-card/accounts-card.component.html +++ b/console/src/app/modules/accounts-card/accounts-card.component.html @@ -1,51 +1,56 @@ -
- - - - {{ user?.human?.profile?.displayName ? user?.human?.profile?.displayName : 'A' }} - {{ user?.preferredLoginName }} - - - +} diff --git a/console/src/app/modules/action-keys/action-keys.component.html b/console/src/app/modules/action-keys/action-keys.component.html index 8d127a531..e7750cd89 100644 --- a/console/src/app/modules/action-keys/action-keys.component.html +++ b/console/src/app/modules/action-keys/action-keys.component.html @@ -1,62 +1,81 @@ -
-
-
-
- ESC -
+@if (type !== ActionKeysType.ORGSWITCHER && (isHandset$ | async) === false) { +
+ @switch (type) { + @case (ActionKeysType.CLEAR) { +
+
+
+ ESC +
+
+ } + @case (ActionKeysType.ADD) { +
+
+
+ N +
+
+ } + @case (ActionKeysType.DELETE) { +
+
+
+ @if (isMacLike || isIOS) { + ⌘ + } @else { + crtl + } +
+ + +
+
+ BS +
+
+ } + @case (ActionKeysType.DEACTIVATE) { +
+
+
+ @if (isMacLike || isIOS) { + ⌘ + } @else { + crtl + } +
+ + +
+
+ ↓ +
+
+ } + @case (ActionKeysType.REACTIVATE) { +
+
+
+ @if (isMacLike || isIOS) { + ⌘ + } @else { + crtl + } +
+ + +
+
+ ↑ +
+
+ } + @case (ActionKeysType.FILTER) { +
+
+
+ F +
+
+ } + }
-
-
-
- N -
-
-
-
-
- ⌘ -
- + -
-
- BS -
-
-
-
-
- ⌘ -
- + -
-
- ↓ -
-
-
-
-
- ⌘ -
- + -
-
- ↑ -
-
-
-
-
- F -
-
-
- - - crtl - +} diff --git a/console/src/app/modules/actions-two/actions-two-actions/actions-two-actions-table/actions-two-actions-table.component.html b/console/src/app/modules/actions-two/actions-two-actions/actions-two-actions-table/actions-two-actions-table.component.html index 7948ba755..a528d723b 100644 --- a/console/src/app/modules/actions-two/actions-two-actions/actions-two-actions-table/actions-two-actions-table.component.html +++ b/console/src/app/modules/actions-two/actions-two-actions/actions-two-actions-table/actions-two-actions-table.component.html @@ -24,9 +24,11 @@ {{ 'ACTIONSTWO.EXECUTION.TABLE.TARGET' | translate }}
- - {{ target.name }} - + @for (target of row.mappedTargets; track trackTarget($index, target)) { + + {{ target.name }} + + }
diff --git a/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-autocomplete-input/actions-two-add-action-autocomplete-input.component.html b/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-autocomplete-input/actions-two-add-action-autocomplete-input.component.html index 567c1c582..4d1ac3586 100644 --- a/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-autocomplete-input/actions-two-add-action-autocomplete-input.component.html +++ b/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-autocomplete-input/actions-two-add-action-autocomplete-input.component.html @@ -3,12 +3,16 @@ - - - - - {{ item }} - + @if (items === undefined) { + + + + } + @for (item of items | filter: input | async; track item) { + + {{ item }} + + } diff --git a/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-autocomplete-input/actions-two-add-action-autocomplete-input.component.ts b/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-autocomplete-input/actions-two-add-action-autocomplete-input.component.ts index 4eb0bae2f..ee1a70408 100644 --- a/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-autocomplete-input/actions-two-add-action-autocomplete-input.component.ts +++ b/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-autocomplete-input/actions-two-add-action-autocomplete-input.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component, Input, Pipe, PipeTransform } from '@angular/core'; -import { AsyncPipe, NgForOf, NgIf } from '@angular/common'; +import { AsyncPipe } from '@angular/common'; import { FormFieldModule } from 'src/app/modules/form-field/form-field.module'; import { InputModule } from 'src/app/modules/input/input.module'; import { LabelModule } from 'src/app/modules/label/label.module'; @@ -39,8 +39,6 @@ class Filter implements PipeTransform { MatOptionModule, MatProgressSpinnerModule, TranslateModule, - NgIf, - NgForOf, ReactiveFormsModule, ], }) diff --git a/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-condition/actions-two-add-action-condition.component.html b/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-condition/actions-two-add-action-condition.component.html index 0ef7cca65..c74df6885 100644 --- a/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-condition/actions-two-add-action-condition.component.html +++ b/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-condition/actions-two-add-action-condition.component.html @@ -1,79 +1,70 @@ -
- -

{{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.REQ_RESP_DESCRIPTION' | translate }}

- -
- -
- {{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.ALL.TITLE' | translate }} - {{ - 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.ALL.DESCRIPTION' | translate - }} -
-
+@if (form$ | async; as form) { + + @if (form.case === 'request' || form.case === 'response') { +

{{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.REQ_RESP_DESCRIPTION' | translate }}

+
+ +
+ {{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.ALL.TITLE' | translate }} + {{ + 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.ALL.DESCRIPTION' | translate + }} +
+
+
+

{{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.SELECT_SERVICE.TITLE' | translate }}

+ +

{{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.SELECT_METHOD.TITLE' | translate }}

+ + } + @if (form.case === 'function') { + + {{ + 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.FUNCTIONNAME.DESCRIPTION' | translate + }} + + } + @if (form.case === 'event') { +
+ +
+ {{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.ALL.TITLE' | translate }} + {{ + 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.ALL_EVENTS' | translate + }} +
+
+
+

{{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.SELECT_GROUP.TITLE' | translate }}

+ + {{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.SELECT_GROUP.DESCRIPTION' | translate }} + + +

{{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.SELECT_EVENT.TITLE' | translate }}

+ + {{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.SELECT_EVENT.DESCRIPTION' | translate }} + + + } +
+ +
- -

{{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.SELECT_SERVICE.TITLE' | translate }}

- - -

{{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.SELECT_METHOD.TITLE' | translate }}

- - - - - - - {{ - 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.FUNCTIONNAME.DESCRIPTION' | translate - }} - - - - -
- -
- {{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.ALL.TITLE' | translate }} - {{ - 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.ALL_EVENTS' | translate - }} -
-
-
- -

{{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.SELECT_GROUP.TITLE' | translate }}

- - - {{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.SELECT_GROUP.DESCRIPTION' | translate }} - - - -

{{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.SELECT_EVENT.TITLE' | translate }}

- - - {{ 'ACTIONSTWO.EXECUTION.DIALOG.CONDITION.SELECT_EVENT.DESCRIPTION' | translate }} - - -
- -
- - -
- + +} diff --git a/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-dialog.component.html b/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-dialog.component.html index cc6e989cf..b58f114cb 100644 --- a/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-dialog.component.html +++ b/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-dialog.component.html @@ -1,28 +1,35 @@ -

{{ 'ACTIONSTWO.EXECUTION.DIALOG.CREATE_TITLE' | translate }}

-

{{ 'ACTIONSTWO.EXECUTION.DIALOG.UPDATE_TITLE' | translate }}

+@if (!data.execution) { +

{{ 'ACTIONSTWO.EXECUTION.DIALOG.CREATE_TITLE' | translate }}

+} +@if (data.execution) { +

{{ 'ACTIONSTWO.EXECUTION.DIALOG.UPDATE_TITLE' | translate }}

+} -
- - - - - +
+ @switch (page()) { + @case (Page.Type) { + + } + @case (Page.Condition) { + + } + @case (Page.Target) { + + } + }
diff --git a/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-dialog.component.ts b/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-dialog.component.ts index 1e277df4e..082bcf6bb 100644 --- a/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-dialog.component.ts +++ b/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-dialog.component.ts @@ -9,7 +9,7 @@ import { ConditionType, } from './actions-two-add-action-condition/actions-two-add-action-condition.component'; import { ActionsTwoAddActionTargetComponent } from './actions-two-add-action-target/actions-two-add-action-target.component'; -import { CommonModule } from '@angular/common'; + import { Condition, Execution } from '@zitadel/proto/zitadel/action/v2/execution_pb'; import { Subject } from 'rxjs'; import { SetExecutionRequestSchema } from '@zitadel/proto/zitadel/action/v2/action_service_pb'; @@ -54,7 +54,6 @@ export type ActionTwoAddActionDialogResult = MessageInitShape -

{{ 'ACTIONSTWO.EXECUTION.DIALOG.TARGET.DESCRIPTION' | translate }}

- - - {{ 'ACTIONSTWO.EXECUTION.DIALOG.TARGET.TARGET.DESCRIPTION' | translate }} - - - - - - - {{ target.name }} - - - - - - - - - - - - - - - - - - - -
Reorder - - Name - {{ row.name }} - - - - -
- -
- - - -
- +@if (form$ | async; as form) { +
+

{{ 'ACTIONSTWO.EXECUTION.DIALOG.TARGET.DESCRIPTION' | translate }}

+ + {{ 'ACTIONSTWO.EXECUTION.DIALOG.TARGET.TARGET.DESCRIPTION' | translate }} + + + @if (targets().state === 'loading') { + + + + } + @for (target of selectableTargets(); track trackTarget($index, target)) { + + {{ target.name }} + + } + + + + + + + + + + + + + + + + + +
Reorder + + Name + {{ row.name }} + + + + +
+
+ @if (!hideBackButton) { + + } + + +
+
+} diff --git a/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-type/actions-two-add-action-type.component.ts b/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-type/actions-two-add-action-type.component.ts index 61248b57c..74fdf89c3 100644 --- a/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-type/actions-two-add-action-type.component.ts +++ b/console/src/app/modules/actions-two/actions-two-add-action/actions-two-add-action-type/actions-two-add-action-type.component.ts @@ -1,4 +1,3 @@ -import { CommonModule } from '@angular/common'; import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, signal } from '@angular/core'; import { RouterModule } from '@angular/router'; import { TranslateModule } from '@ngx-translate/core'; @@ -20,7 +19,7 @@ import { ConditionType } from '../actions-two-add-action-condition/actions-two-a selector: 'cnsl-actions-two-add-action-type', templateUrl: './actions-two-add-action-type.component.html', styleUrls: ['./actions-two-add-action-type.component.scss'], - imports: [TranslateModule, MatRadioModule, RouterModule, ReactiveFormsModule, FormsModule, CommonModule, MatButtonModule], + imports: [TranslateModule, MatRadioModule, RouterModule, ReactiveFormsModule, FormsModule, MatButtonModule], }) export class ActionsTwoAddActionTypeComponent { protected readonly typeForm: ReturnType = this.buildActionTypeForm(); diff --git a/console/src/app/modules/actions-two/actions-two-add-target/actions-two-add-target-dialog.component.html b/console/src/app/modules/actions-two/actions-two-add-target/actions-two-add-target-dialog.component.html index f0d2d0813..097747db2 100644 --- a/console/src/app/modules/actions-two/actions-two-add-target/actions-two-add-target-dialog.component.html +++ b/console/src/app/modules/actions-two/actions-two-add-target/actions-two-add-target-dialog.component.html @@ -2,71 +2,70 @@

{{ 'ACTIONSTWO.TARGET.CREATE.DESCRIPTION' | translate }}

-
- - {{ 'ACTIONSTWO.TARGET.CREATE.NAME' | translate }} - - {{ - 'ACTIONSTWO.TARGET.CREATE.NAME_DESCRIPTION' | translate - }} - - - - {{ 'ACTIONSTWO.TARGET.CREATE.ENDPOINT' | translate }} - - {{ - 'ACTIONSTWO.TARGET.CREATE.ENDPOINT_DESCRIPTION' | translate - }} - - - - {{ 'ACTIONSTWO.TARGET.CREATE.TYPE' | translate }} - - - {{ 'ACTIONSTWO.TARGET.CREATE.TYPES.' + type | translate }} - - - - {{ 'ACTIONSTWO.TARGET.CREATE.TYPES_DESCRIPTION' | translate }} - - - - - {{ 'ACTIONSTWO.TARGET.CREATE.PAYLOAD_TYPE' | translate }} - - - {{ 'ACTIONSTWO.TARGET.CREATE.PAYLOAD_TYPES.' + type | translate }} - - - - {{ 'ACTIONSTWO.TARGET.CREATE.PAYLOAD_TYPE_DESCRIPTION' | translate }} - - - - - {{ 'ACTIONSTWO.TARGET.CREATE.TIMEOUT' | translate }} - - {{ - 'ACTIONSTWO.TARGET.CREATE.TIMEOUT_DESCRIPTION' | translate - }} - - - -
- {{ 'ACTIONSTWO.TARGET.CREATE.INTERRUPT_ON_ERROR' | translate }} - {{ - 'ACTIONSTWO.TARGET.CREATE.INTERRUPT_ON_ERROR_DESCRIPTION' | translate + @if (targetForm) { + + + {{ 'ACTIONSTWO.TARGET.CREATE.NAME' | translate }} + + {{ + 'ACTIONSTWO.TARGET.CREATE.NAME_DESCRIPTION' | translate }} - {{ 'ACTIONSTWO.TARGET.CREATE.INTERRUPT_ON_ERROR_WARNING' | translate }} + + + {{ 'ACTIONSTWO.TARGET.CREATE.ENDPOINT' | translate }} + + {{ + 'ACTIONSTWO.TARGET.CREATE.ENDPOINT_DESCRIPTION' | translate + }} + + + {{ 'ACTIONSTWO.TARGET.CREATE.TYPE' | translate }} + + @for (type of targetTypes; track type) { + + {{ 'ACTIONSTWO.TARGET.CREATE.TYPES.' + type | translate }} + + } + + + {{ 'ACTIONSTWO.TARGET.CREATE.TYPES_DESCRIPTION' | translate }} -
-
-
+ + + {{ 'ACTIONSTWO.TARGET.CREATE.PAYLOAD_TYPE' | translate }} + + @for (type of payloadTypes; track type) { + + {{ 'ACTIONSTWO.TARGET.CREATE.PAYLOAD_TYPES.' + type | translate }} + + } + + + {{ 'ACTIONSTWO.TARGET.CREATE.PAYLOAD_TYPE_DESCRIPTION' | translate }} + + + + {{ 'ACTIONSTWO.TARGET.CREATE.TIMEOUT' | translate }} + + {{ + 'ACTIONSTWO.TARGET.CREATE.TIMEOUT_DESCRIPTION' | translate + }} + + @if (targetForm.controls.type.value === 'restWebhook' || targetForm.controls.type.value === 'restCall') { + +
+ {{ 'ACTIONSTWO.TARGET.CREATE.INTERRUPT_ON_ERROR' | translate }} + {{ + 'ACTIONSTWO.TARGET.CREATE.INTERRUPT_ON_ERROR_DESCRIPTION' | translate + }} + {{ 'ACTIONSTWO.TARGET.CREATE.INTERRUPT_ON_ERROR_WARNING' | translate }} + +
+
+ } + + }
diff --git a/console/src/app/modules/actions-two/actions-two-add-target/actions-two-add-target-dialog.component.ts b/console/src/app/modules/actions-two/actions-two-add-target/actions-two-add-target-dialog.component.ts index 2b29539ce..ec6ba2dbd 100644 --- a/console/src/app/modules/actions-two/actions-two-add-target/actions-two-add-target-dialog.component.ts +++ b/console/src/app/modules/actions-two/actions-two-add-target/actions-two-add-target-dialog.component.ts @@ -2,7 +2,7 @@ import { Component, Inject } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog'; import { TranslateModule } from '@ngx-translate/core'; -import { CommonModule } from '@angular/common'; + import { FormBuilder, FormControl, ReactiveFormsModule } from '@angular/forms'; import { MatCheckboxModule } from '@angular/material/checkbox'; import { InputModule } from '../../input/input.module'; @@ -21,7 +21,6 @@ type TargetTypes = ActionTwoAddTargetDialogComponent['targetTypes'][number]; templateUrl: './actions-two-add-target-dialog.component.html', styleUrls: ['./actions-two-add-target-dialog.component.scss'], imports: [ - CommonModule, MatButtonModule, MatDialogModule, ReactiveFormsModule, diff --git a/console/src/app/modules/add-key-dialog/add-key-dialog.component.html b/console/src/app/modules/add-key-dialog/add-key-dialog.component.html index ed79c5940..b8364b025 100644 --- a/console/src/app/modules/add-key-dialog/add-key-dialog.component.html +++ b/console/src/app/modules/add-key-dialog/add-key-dialog.component.html @@ -5,9 +5,11 @@ {{ 'USER.MACHINE.TYPE' | translate }} - - {{ 'USER.MACHINE.KEYTYPES.' + t | translate }} - + @for (t of types; track t) { + + {{ 'USER.MACHINE.KEYTYPES.' + t | translate }} + + } @@ -16,10 +18,12 @@ - - {{ 'USER.MACHINE.CHOOSEDATEAFTER' | translate }}: - {{ dateControl.errors['matDatepickerMin'].min.toDate() | localizedDate: 'EEE dd. MMM' }} - + @if (dateControl && dateControl.errors && dateControl.errors['matDatepickerMin']?.min) { + + {{ 'USER.MACHINE.CHOOSEDATEAFTER' | translate }}: + {{ dateControl.errors['matDatepickerMin'].min.toDate() | localizedDate: 'EEE dd. MMM' }} + + }
diff --git a/console/src/app/modules/add-member-dialog/member-create-dialog.component.html b/console/src/app/modules/add-member-dialog/member-create-dialog.component.html index 45d888924..2edfb9b08 100644 --- a/console/src/app/modules/add-member-dialog/member-create-dialog.component.html +++ b/console/src/app/modules/add-member-dialog/member-create-dialog.component.html @@ -5,17 +5,18 @@

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

- + @if (showCreationTypeSelector) { {{ 'MEMBER.CREATIONTYPE' | translate }} - - {{ 'MEMBER.CREATIONTYPES.' + type.type | translate }} - + @for (type of creationTypes; track type) { + + {{ 'MEMBER.CREATIONTYPES.' + type.type | translate }} + + } - - + @if (creationType === CreationType.PROJECT_OWNED || creationType === CreationType.PROJECT_GRANTED) {

{{ 'PROJECT.GRANT.CREATE.SEL_PROJECT' | translate }}

-
-
+ } + }
- -
-
- {{ role | roletransform }} - -
-
+ @for (role of memberRoleOptions; track role) { + +
+
+ {{ role | roletransform }} + +
+
+ }
diff --git a/console/src/app/modules/add-member-roles-dialog/add-member-roles-dialog.component.html b/console/src/app/modules/add-member-roles-dialog/add-member-roles-dialog.component.html index 14d48a887..49fbfb5f1 100644 --- a/console/src/app/modules/add-member-roles-dialog/add-member-roles-dialog.component.html +++ b/console/src/app/modules/add-member-roles-dialog/add-member-roles-dialog.component.html @@ -2,19 +2,15 @@

{{ 'MEMBER.EDITFOR' | translate: { value: data.user } }}

- -
-
- {{ role | roletransform }} - -
-
+ @for (role of allRoles; track role) { + +
+
+ {{ role | roletransform }} + +
+
+ }
diff --git a/console/src/app/modules/add-token-dialog/add-token-dialog.component.html b/console/src/app/modules/add-token-dialog/add-token-dialog.component.html index 3cdd3067d..d72dcecd4 100644 --- a/console/src/app/modules/add-token-dialog/add-token-dialog.component.html +++ b/console/src/app/modules/add-token-dialog/add-token-dialog.component.html @@ -7,10 +7,12 @@ - - {{ 'USER.PERSONALACCESSTOKEN.ADD.CHOOSEDATEAFTER' | translate }}: - {{ dateControl.errors['matDatepickerMin'].min.toDate() | localizedDate: 'EEE dd. MMM' }} - + @if (dateControl && dateControl.errors && dateControl.errors['matDatepickerMin']?.min) { + + {{ 'USER.PERSONALACCESSTOKEN.ADD.CHOOSEDATEAFTER' | translate }}: + {{ dateControl.errors['matDatepickerMin'].min.toDate() | localizedDate: 'EEE dd. MMM' }} + + }
diff --git a/console/src/app/modules/app-radio/app-auth-method-radio/app-auth-method-radio.component.html b/console/src/app/modules/app-radio/app-auth-method-radio/app-auth-method-radio.component.html index 08b278854..1d70c9aff 100644 --- a/console/src/app/modules/app-radio/app-auth-method-radio/app-auth-method-radio.component.html +++ b/console/src/app/modules/app-radio/app-auth-method-radio/app-auth-method-radio.component.html @@ -1,5 +1,5 @@
- + @for (method of authMethods; track method; let i = $index) { - - + @if (method.recommended || method.notRecommended) { + + }
{{ method.prefix }} -
{{ 'APP.OIDC.CURRENT' | translate }}
+ @if (current === method.key) { +
{{ 'APP.OIDC.CURRENT' | translate }}
+ }

{{ method.titleI18nKey | translate }}

{{ method.descI18nKey | translate }}

-
- {{ 'APP.OIDC.RESPONSETYPE' | translate }} - {{ 'APP.OIDC.RESPONSE.' + method.responseType.toString() | translate }} -
-
- {{ 'APP.GRANT' | translate }} - {{ - 'APP.OIDC.GRANT.' + grant.toString() | translate - }} -
-
- {{ 'APP.AUTHMETHOD' | translate }} - {{ 'APP.OIDC.AUTHMETHOD.' + method.authMethod.toString() | translate }} -
-
- {{ 'APP.AUTHMETHOD' | translate }} - {{ 'APP.API.AUTHMETHOD.' + method.apiAuthMethod.toString() | translate }} -
+ @if (isOIDC && method && method.responseType !== undefined) { +
+ {{ 'APP.OIDC.RESPONSETYPE' | translate }} + {{ 'APP.OIDC.RESPONSE.' + method.responseType.toString() | translate }} +
+ } + @if (isOIDC && method.grantType !== undefined) { +
+ {{ 'APP.GRANT' | translate }} + + @for (grant of method.grantType; track grant) { + {{ 'APP.OIDC.GRANT.' + grant.toString() | translate }} + } + +
+ } + @if (isOIDC && method.authMethod !== undefined) { +
+ {{ 'APP.AUTHMETHOD' | translate }} + {{ 'APP.OIDC.AUTHMETHOD.' + method.authMethod.toString() | translate }} +
+ } + @if (!isOIDC && method.apiAuthMethod !== undefined) { +
+ {{ 'APP.AUTHMETHOD' | translate }} + {{ 'APP.API.AUTHMETHOD.' + method.apiAuthMethod.toString() | translate }} +
+ }
-
+ }
diff --git a/console/src/app/modules/app-radio/app-type-radio/app-type-radio.component.html b/console/src/app/modules/app-radio/app-type-radio/app-type-radio.component.html index 3180527bf..0da3a3e24 100644 --- a/console/src/app/modules/app-radio/app-type-radio/app-type-radio.component.html +++ b/console/src/app/modules/app-radio/app-type-radio/app-type-radio.component.html @@ -1,5 +1,5 @@
- + @for (type of types; track type) {
diff --git a/console/src/app/modules/card/card.component.html b/console/src/app/modules/card/card.component.html index 94d06abed..947a10976 100644 --- a/console/src/app/modules/card/card.component.html +++ b/console/src/app/modules/card/card.component.html @@ -1,19 +1,37 @@
-
-
-

{{ title }}

- - - + @if (title || description) { +
+ @if (title) { +
+

{{ title }}

+ + + +
+ } + @if (description) { +

+ {{ description }} +

+ }
-

- {{ description }} -

-
-
- -
+ } + @if (expanded) { +
+ +
+ }
diff --git a/console/src/app/modules/changes/changes.component.html b/console/src/app/modules/changes/changes.component.html index 7ed7faa69..933a63c05 100644 --- a/console/src/app/modules/changes/changes.component.html +++ b/console/src/app/modules/changes/changes.component.html @@ -3,49 +3,63 @@
-
  • - - {{ hist.values[0].dates[0] | timestampToDate | localizedDate: 'dd. MMM yyyy' }} - -
    -
    - - - -
    -
    -
    -
    -
    - {{ action.localizedMessage }} - {{ dayelement.dates[j] | timestampToDate | localizedDate: 'HH:mm' }} + @if (hist.values[0].dates[0]) { + + {{ hist.values[0].dates[0] | timestampToDate | localizedDate: 'dd. MMM yyyy' }} + + } + @for (dayelement of hist.values; track dayelement; let i = $index) { +
    +
    + @if (dayelement.editorDisplayName) { + + + } @else { +
    + } +
    + @for (action of dayelement.eventTypes; track action; let j = $index) { +
    +
    + {{ action.localizedMessage }} + {{ dayelement.dates[j] | timestampToDate | localizedDate: 'HH:mm' }} +
    +
    + }
    -
    -
    -
  • + } + + }
    - + @if (loading | async) { + + }
    - + @if (!bottom) { + + } -
    - {{ 'CHANGES.BOTTOM' | translate }} -
    + @if (bottom) { +
    + {{ 'CHANGES.BOTTOM' | translate }} +
    + }
    diff --git a/console/src/app/modules/contributors/contributors.component.html b/console/src/app/modules/contributors/contributors.component.html index 0ec292faa..65a847b1e 100644 --- a/console/src/app/modules/contributors/contributors.component.html +++ b/console/src/app/modules/contributors/contributors.component.html @@ -1,9 +1,11 @@
    - - - + @if (loading) { + + } + @if (totalResult < 10) { + @for (member of membersSubject | async; track member; let i = $index) {
    - - - + @if (member && member.userType === UserType.TYPE_HUMAN) { + + + } @else { - + }
    -
    -
    - + } + } @else {
    {{ totalResult }}
    -
    + } - {{ title }}{{ 'ACTIONS.STEP' | translate }} {{ currentCreateStep }} {{ 'ACTIONS.OF' | translate }} {{ createSteps }} + {{ title }} + @if (createSteps > 1) { + {{ 'ACTIONS.STEP' | translate }} {{ currentCreateStep }} {{ 'ACTIONS.OF' | translate }} {{ createSteps }} + }
    diff --git a/console/src/app/modules/detail-layout/detail-layout.component.html b/console/src/app/modules/detail-layout/detail-layout.component.html index 3086fe77b..c796445a9 100644 --- a/console/src/app/modules/detail-layout/detail-layout.component.html +++ b/console/src/app/modules/detail-layout/detail-layout.component.html @@ -4,9 +4,11 @@
    - - arrow_back - + @if (hasBackButton) { + + arrow_back + + }

    {{ title }}

    diff --git a/console/src/app/modules/display-json-dialog/display-json-dialog.component.html b/console/src/app/modules/display-json-dialog/display-json-dialog.component.html index 24df49a95..5c90809c6 100644 --- a/console/src/app/modules/display-json-dialog/display-json-dialog.component.html +++ b/console/src/app/modules/display-json-dialog/display-json-dialog.component.html @@ -1,76 +1,87 @@

    {{ 'IAM.EVENTS.DIALOG.TITLE' | translate }}

    -
    -
    - {{ 'IAM.EVENTS.TYPE' | translate }} - {{ event.type.localized.localizedMessage }} -
    - -
    - {{ 'IAM.EVENTS.CREATIONDATE' | translate }} - {{ event.creationDate | timestampToDate | localizedDate: 'EEE dd. MMM, HH:mm' }} -
    - -
    - {{ 'IAM.EVENTS.AGGREGATEID' | translate }} - {{ event.aggregate.id }} -
    - -
    - {{ 'IAM.EVENTS.RESOURCEOWNER' | translate }} - {{ event.aggregate.resourceOwner }} -
    - -
    + @if (event && event.type && event.type.localized && event.type.localized.localizedMessage) { +
    + {{ 'IAM.EVENTS.TYPE' | translate }} + {{ event.type.localized.localizedMessage }} +
    + } + @if (event && event.creationDate) { +
    + {{ 'IAM.EVENTS.CREATIONDATE' | translate }} + {{ event.creationDate | timestampToDate | localizedDate: 'EEE dd. MMM, HH:mm' }} +
    + } + @if (event && event.aggregate && event.aggregate.id) { +
    + {{ 'IAM.EVENTS.AGGREGATEID' | translate }} + {{ event.aggregate.id }} +
    + } + @if (event && event.aggregate && event.aggregate.resourceOwner) { +
    + {{ 'IAM.EVENTS.RESOURCEOWNER' | translate }} + {{ event.aggregate.resourceOwner }} +
    + } + @if ( event && event.aggregate && event.aggregate.type && event.aggregate.type.localized && event.aggregate.type.localized.localizedMessage - " - > - {{ 'IAM.EVENTS.AGGREGATETYPE' | translate }} - {{ event.aggregate.type.localized.localizedMessage }} + ) { +
    + {{ 'IAM.EVENTS.AGGREGATETYPE' | translate }} + {{ event.aggregate.type.localized.localizedMessage }} +
    + } + @if (event && event.editor?.userId) { +
    + {{ 'IAM.EVENTS.EDITORID' | translate }} + {{ event.editor?.userId }} +
    + } + @if (event && event.editor?.displayName) { +
    + {{ 'IAM.EVENTS.EDITOR' | translate }} + {{ event.editor?.displayName }} +
    + } + @if (event && event.sequence) { +
    + {{ 'IAM.EVENTS.SEQUENCE' | translate }} + {{ event.sequence }} +
    + }
    + } -
    - {{ 'IAM.EVENTS.EDITORID' | translate }} - {{ event.editor?.userId }} + @if (opened$ | async) { +
    + @if (event) { + + }
    - -
    - {{ 'IAM.EVENTS.EDITOR' | translate }} - {{ event.editor?.displayName }} -
    - -
    - {{ 'IAM.EVENTS.SEQUENCE' | translate }} - {{ event.sequence }} -
    -
    - -
    - -
    + }
    -
    -

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION' | translate }}

    -

    - {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTML' | translate }} + @if (showNew && !(dns || http)) { +

    +

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION' | translate }}

    +

    + {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTML' | translate }} +

    +

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS' | translate }}

    +

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_SKIP' | translate }}

    +
    + } + + @if (showNew && !(dns || http)) { + {{ + 'ORG.PAGES.ORGDOMAIN.VERIFICATION_VALIDATION_DESC' | translate + }} + } + + @if (!showNew && !(dns || http)) { +

    + {{ + 'ORG.PAGES.ORGDOMAIN.VERIFICATION_VALIDATION_ONGOING' + | translate: { value: domain?.validationType == 1 ? 'HTTP' : 'DNS' } + }}

    -

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS' | translate }}

    -

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_SKIP' | translate }}

    -
    + } - {{ - 'ORG.PAGES.ORGDOMAIN.VERIFICATION_VALIDATION_DESC' | translate - }} - -

    - {{ - 'ORG.PAGES.ORGDOMAIN.VERIFICATION_VALIDATION_ONGOING' - | translate: { value: domain?.validationType == 1 ? 'HTTP' : 'DNS' } - }} -

    - - -
    -

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTTP_DESC' | translate: { value: domain?.domainName } }}

    -

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTTP_URL_LABEL' | translate }}

    -
    -

    {{ http.url }}

    - + @if (showNew) { + @if (http) { +
    +

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTTP_DESC' | translate: { value: domain?.domainName } }}

    +

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTTP_URL_LABEL' | translate }}

    + @if (http.url) { +
    +

    {{ http.url }}

    + +
    + } +

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTTP_FILE_LABEL' | translate }}

    +
    - -

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTTP_FILE_LABEL' | translate }}

    - -
    - -
    -

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS_DESC' | translate: { value: domain?.domainName } }}

    -

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS_HOST_LABEL' | translate }}

    -
    -
    -

    {{ dnsChallenge }}

    - + } + @if (dns) { +
    +

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS_DESC' | translate: { value: domain?.domainName } }}

    +

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS_HOST_LABEL' | translate }}

    +
    + @if (dns.token) { +
    +

    {{ dnsChallenge }}

    + +
    + } + .{{ domain?.domainName }}
    - .{{ domain?.domainName }} +

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS_CHALLENGE_LABEL' | translate }}

    + @if (dns.token) { +
    +

    {{ dns.token }}

    + +
    + }
    -

    {{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS_CHALLENGE_LABEL' | translate }}

    -
    -

    {{ dns.token }}

    - -
    -
    - + } + }
    - - + @if (!showNew || dns || http) { + + } + @if (validating) { + + } - + @if (!showNew) { + + }
    - - + @if (showNew && !(dns || http)) { + + } + @if (showNew && !(dns || http)) { + + }
    - - -
    - {{ domain.domainName }} - - - - {{ 'ORG.DOMAINS.SETPRIMARY' | translate }} - - - - -
    -
    - + @for (domain of domains; track domain) { + +
    + {{ domain.domainName }} + @if (domain.isVerified) { + + } + @if (domain.isPrimary) { + + } + @if (domain.isVerified && !domain.isPrimary && (canwrite$ | async)) { + {{ 'ORG.DOMAINS.SETPRIMARY' | translate }} + } + + @if (verifyOrgDomains) { + + } + +
    +
    + } +} diff --git a/console/src/app/modules/edit-text/edit-text.component.html b/console/src/app/modules/edit-text/edit-text.component.html index 933834858..b33864e15 100644 --- a/console/src/app/modules/edit-text/edit-text.component.html +++ b/console/src/app/modules/edit-text/edit-text.component.html @@ -1,66 +1,80 @@ -
    -
    - -
    -
    - - {{ key.key }} - -
    - -
    - {{ chip.key | translate }} - {{ chip.value }} - - +@if (currentMap) { +
    + + @for (key of current$ | async | keyvalue; track key) { + @if (key.key !== 'isDefault') { +
    + @if (default$ | async; as defaultmap) { +
    + + {{ key.key }} + + @if (warnText[key.key] === undefined) { +
    + @for (chip of chips; track chip) { +
    + {{ chip.key | translate }} + {{ chip.value }} + @if (copied !== chip.value) { + + } + @if (copied === chip.value) { + + } +
    + } +
    + } +
    +
    + +
    - -
    - -
    - - +
    + }
    -
    -
    - - {{ 'ACTIONS.RESETTO' | translate }} '{{ warnText[key.key] }}' -
    - -
    + } + @if (warnText[key.key] !== undefined) { + + {{ 'ACTIONS.RESETTO' | translate }} '{{ warnText[key.key] }}' + } + } + +
    +} diff --git a/console/src/app/modules/events/events.component.html b/console/src/app/modules/events/events.component.html index 7dad189da..6e2af1f65 100644 --- a/console/src/app/modules/events/events.component.html +++ b/console/src/app/modules/events/events.component.html @@ -22,49 +22,57 @@ {{ 'IAM.EVENTS.EDITOR' | translate }} - -
    - - {{ editor.displayName }} - {{ editor.service }} -
    -
    + > --> + @if (editor.displayName) { + {{ editor.displayName }} + } + @if (editor.service) { + {{ editor.service }} + } +
    + } + }
    {{ 'IAM.EVENTS.AGGREGATE' | translate }} - + @if (event | toobject; as event) {
    - {{ event.aggregate.id }}{{ - event.aggregate.type.localized.localizedMessage - }} + {{ event.aggregate.id }} + @if (event.aggregate?.type?.localized?.localizedMessage) { + {{ event.aggregate.type.localized.localizedMessage }} + }
    -
    + }
    {{ 'IAM.EVENTS.RESOURCEOWNER' | translate }} - - {{ event.aggregate.resourceOwner }} - + @if (event | toobject; as event) { + @if (event.aggregate.resourceOwner) { + {{ event.aggregate.resourceOwner }} + } + } @@ -73,9 +81,9 @@ {{ 'IAM.EVENTS.SEQUENCE' | translate }} - + @if (event | toobject; as event) { {{ event.sequence }} - + } @@ -84,32 +92,34 @@ {{ 'IAM.EVENTS.CREATIONDATE' | translate }} - + @if (event | toobject; as event) { {{ event?.creationDate | timestampToDate | localizedDate: 'EEE dd. MMM, HH:mm:ss' }} - + } {{ 'IAM.EVENTS.TYPE' | translate }} - - {{ event.type.localized.localizedMessage }} - + @if (event | toobject; as event) { + @if (event.type?.localized?.localizedMessage) { + {{ event.type.localized.localizedMessage }} + } + } {{ 'IAM.EVENTS.PAYLOAD' | translate }} - + @if (event | topayload; as payload) { {{ payload | json }}
    -
    + }
    diff --git a/console/src/app/modules/filter-events/filter-events.component.html b/console/src/app/modules/filter-events/filter-events.component.html index e43e60d6b..0dbff57a6 100644 --- a/console/src/app/modules/filter-events/filter-events.component.html +++ b/console/src/app/modules/filter-events/filter-events.component.html @@ -9,7 +9,9 @@
    {{ 'ACTIONS.FILTER' | translate }} - {{ queryCount }} + @if (queryCount) { + {{ queryCount }} + }
    -
    -
    -
    -
    - {{ 'IAM.EVENTS.FILTERS.USER.CHECKBOX' | translate }} - -
    -
    - - {{ 'IAM.EVENTS.FILTERS.USER.IDLABEL' | translate }} - - -
    -
    - -
    -
    - {{ 'IAM.EVENTS.FILTERS.AGGREGATE.CHECKBOX' | translate }} - -
    -
    - - {{ 'IAM.EVENTS.FILTERS.AGGREGATE.TYPELABEL' | translate }} - - - - {{ - aggregateTypesList?.value[0]?.localized?.localizedMessage || '' - }} - - (+{{ (aggregateTypesList?.value?.length || 0) - 1 }} - {{ aggregateTypesList?.value?.length === 2 ? 'other' : 'others' }}) - - - - - {{ aggregate.localized.localizedMessage }} - - - - - - - {{ 'IAM.EVENTS.FILTERS.AGGREGATE.IDLABEL' | translate }} - - -
    -
    - -
    -
    - {{ 'IAM.EVENTS.FILTERS.TYPE.CHECKBOX' | translate }} - -
    -
    - - {{ 'IAM.EVENTS.FILTERS.TYPE.TYPELABEL' | translate }} - - - - {{ - eventTypesList?.value[0]?.localized?.localizedMessage || '' - }} - - (+{{ (eventTypesList?.value?.length || 0) - 1 }} - {{ eventTypesList?.value?.length === 2 ? 'other' : 'others' }}) - - - - - {{ eventType.localized.localizedMessage }} - - - - -
    -
    - -
    -
    - {{ 'IAM.EVENTS.FILTERS.RESOURCEOWNER.CHECKBOX' | translate }} - -
    -
    - - {{ 'IAM.EVENTS.FILTERS.RESOURCEOWNER.LABEL' | translate }} - - -
    -
    -
    -
    - {{ 'IAM.EVENTS.FILTERS.SEQUENCE.CHECKBOX' | translate }} - -
    -
    - - {{ 'IAM.EVENTS.FILTERS.SEQUENCE.LABEL' | translate }} - - -
    -
    -
    - - - {{ 'IAM.EVENTS.FILTERS.CREATIONDATE.RADIO_FROM' | translate }} - - - {{ 'IAM.EVENTS.FILTERS.CREATIONDATE.RADIO_RANGE' | translate }} - - -
    - - - - - - -
    - - {{ 'IAM.EVENTS.FILTERS.CREATIONDATE.LABEL_SINCE' | translate }} - - - - - {{ 'IAM.EVENTS.FILTERS.CREATIONDATE.LABEL_UNTIL' | translate }} - - - + @if (form) { + + @if (isLoading) { +
    + } +
    +
    + {{ 'IAM.EVENTS.FILTERS.USER.CHECKBOX' | translate }} + +
    + @if (userFilterSet?.value) { +
    + + {{ 'IAM.EVENTS.FILTERS.USER.IDLABEL' | translate }} + +
    - + }
    -
    -
    - - {{ 'IAM.EVENTS.FILTERS.SORT' | translate }} - - - {{ 'IAM.EVENTS.FILTERS.DESC' | translate }} - {{ 'IAM.EVENTS.FILTERS.ASC' | translate }} - - -
    - +
    +
    + {{ 'IAM.EVENTS.FILTERS.AGGREGATE.CHECKBOX' | translate }} + +
    + @if (aggregateFilterSet?.value) { +
    + + {{ 'IAM.EVENTS.FILTERS.AGGREGATE.TYPELABEL' | translate }} + + + @if (aggregateTypesList?.value && aggregateTypesList?.value.length) { + {{ aggregateTypesList?.value[0]?.localized?.localizedMessage || '' }} + } + @if ((aggregateTypesList?.value?.length || 0) > 1) { + + (+{{ (aggregateTypesList?.value?.length || 0) - 1 }} + {{ aggregateTypesList?.value?.length === 2 ? 'other' : 'others' }}) + + } + + @for (aggregate of aggregateTypes; track aggregate) { + + @if (aggregate.localized && aggregate.localized.localizedMessage) { + + {{ aggregate.localized.localizedMessage }} + + } + + } + + + + {{ 'IAM.EVENTS.FILTERS.AGGREGATE.IDLABEL' | translate }} + + +
    + } +
    +
    +
    + {{ 'IAM.EVENTS.FILTERS.TYPE.CHECKBOX' | translate }} + +
    + @if (eventTypesFilterSet?.value) { +
    + + {{ 'IAM.EVENTS.FILTERS.TYPE.TYPELABEL' | translate }} + + + @if (eventTypesList?.value && eventTypesList?.value.length) { + {{ eventTypesList?.value[0]?.localized?.localizedMessage || '' }} + } + @if ((eventTypesList?.value?.length || 0) > 1) { + + (+{{ (eventTypesList?.value?.length || 0) - 1 }} + {{ eventTypesList?.value?.length === 2 ? 'other' : 'others' }}) + + } + + @for (eventType of eventTypes; track eventType) { + + @if (eventType.localized && eventType.localized.localizedMessage) { + {{ eventType.localized.localizedMessage }} + } + + } + + +
    + } +
    +
    +
    + {{ 'IAM.EVENTS.FILTERS.RESOURCEOWNER.CHECKBOX' | translate }} + +
    + @if (resourceOwnerFilterSet?.value) { +
    + + {{ 'IAM.EVENTS.FILTERS.RESOURCEOWNER.LABEL' | translate }} + + +
    + } +
    +
    +
    + {{ 'IAM.EVENTS.FILTERS.SEQUENCE.CHECKBOX' | translate }} + +
    + @if (sequenceFilterSet?.value) { +
    + + {{ 'IAM.EVENTS.FILTERS.SEQUENCE.LABEL' | translate }} + + +
    + } +
    +
    + + + {{ 'IAM.EVENTS.FILTERS.CREATIONDATE.RADIO_FROM' | translate }} + + + {{ 'IAM.EVENTS.FILTERS.CREATIONDATE.RADIO_RANGE' | translate }} + + +
    + @if (creationDateFilterType!.value === CreationDateFilterType.FROM) { + + + + } + @if (creationDateFilterType!.value === CreationDateFilterType.RANGE) { +
    + + {{ 'IAM.EVENTS.FILTERS.CREATIONDATE.LABEL_SINCE' | translate }} + + + + + {{ 'IAM.EVENTS.FILTERS.CREATIONDATE.LABEL_UNTIL' | translate }} + + + +
    + } +
    +
    +
    + + {{ 'IAM.EVENTS.FILTERS.SORT' | translate }} + + {{ 'IAM.EVENTS.FILTERS.DESC' | translate }} + {{ 'IAM.EVENTS.FILTERS.ASC' | translate }} + + +
    + + }
    diff --git a/console/src/app/modules/filter-org/filter-org.component.html b/console/src/app/modules/filter-org/filter-org.component.html index ae42667f4..c55c3d093 100644 --- a/console/src/app/modules/filter-org/filter-org.component.html +++ b/console/src/app/modules/filter-org/filter-org.component.html @@ -8,19 +8,22 @@ (change)="changeCheckbox(SubQuery.NAME, $event)" >{{ 'FILTER.ORGNAME' | translate }} -
    - - - - {{ 'FILTER.METHODS.' + method | translate }} - - - - - - - -
    + @if (getSubFilter(SubQuery.NAME); as eq) { +
    + + + @for (method of methods; track method) { + + {{ 'FILTER.METHODS.' + method | translate }} + + } + + + + + +
    + }
    @@ -31,19 +34,22 @@ (change)="changeCheckbox(SubQuery.STATE, $event)" >{{ 'FILTER.STATE' | translate }} -
    - - {{ 'FILTER.METHODS.1' | translate }} - - - - - - {{ 'USER.STATE.' + state | translate }} - - - -
    + @if (getSubFilter(SubQuery.STATE); as sq) { +
    + + {{ 'FILTER.METHODS.1' | translate }} + + + + @for (state of states; track state) { + + {{ 'USER.STATE.' + state | translate }} + + } + + +
    + }
    @@ -55,33 +61,37 @@ (change)="changeCheckbox(SubQuery.DOMAIN, $event)" >{{ 'FILTER.PRIMARYDOMAIN' | translate }} -
    - - - - {{ 'FILTER.METHODS.' + method | translate }} - - - - - - - -
    + @if (getSubFilter(SubQuery.DOMAIN); as dq) { +
    + + + @for (method of methods; track method) { + + {{ 'FILTER.METHODS.' + method | translate }} + + } + + + + + +
    + }
    {{ 'FILTER.ORGID' | translate }} -
    - - {{ 'FILTER.METHODS.1' | translate }} - - - - - -
    + @if (getSubFilter(SubQuery.ID); as idq) { +
    + + {{ 'FILTER.METHODS.1' | translate }} + + + + +
    + }
    diff --git a/console/src/app/modules/filter-project/filter-project.component.html b/console/src/app/modules/filter-project/filter-project.component.html index 4c0b1975a..6cf9ef9ae 100644 --- a/console/src/app/modules/filter-project/filter-project.component.html +++ b/console/src/app/modules/filter-project/filter-project.component.html @@ -8,19 +8,22 @@ (change)="changeCheckbox(SubQuery.NAME, $event)" >{{ 'FILTER.PROJECTNAME' | translate }} -
    - - - - {{ 'FILTER.METHODS.' + method | translate }} - - - - - - - -
    + @if (getSubFilter(SubQuery.NAME); as eq) { +
    + + + @for (method of methods; track method) { + + {{ 'FILTER.METHODS.' + method | translate }} + + } + + + + + +
    + }
    diff --git a/console/src/app/modules/filter-user-grants/filter-user-grants.component.html b/console/src/app/modules/filter-user-grants/filter-user-grants.component.html index b3cdf40af..2214d391f 100644 --- a/console/src/app/modules/filter-user-grants/filter-user-grants.component.html +++ b/console/src/app/modules/filter-user-grants/filter-user-grants.component.html @@ -8,24 +8,27 @@ (change)="changeCheckbox(SubQuery.DISPLAYNAME, $event)" >{{ 'FILTER.DISPLAYNAME' | translate }} -
    - - - - {{ 'FILTER.METHODS.' + method | translate }} - - - - - - - -
    + @if (getSubFilter(SubQuery.DISPLAYNAME); as dnq) { +
    + + + @for (method of methods; track method) { + + {{ 'FILTER.METHODS.' + method | translate }} + + } + + + + + +
    + }
    @@ -36,19 +39,22 @@ (change)="changeCheckbox(SubQuery.USERNAME, $event)" >{{ 'FILTER.USERNAME' | translate }} -
    - - - - {{ 'FILTER.METHODS.' + method | translate }} - - - - - - - -
    + @if (getSubFilter(SubQuery.USERNAME); as unq) { +
    + + + @for (method of methods; track method) { + + {{ 'FILTER.METHODS.' + method | translate }} + + } + + + + + +
    + }
    diff --git a/console/src/app/modules/filter-user/filter-user.component.html b/console/src/app/modules/filter-user/filter-user.component.html index 907ea6d18..d24945e0e 100644 --- a/console/src/app/modules/filter-user/filter-user.component.html +++ b/console/src/app/modules/filter-user/filter-user.component.html @@ -8,19 +8,22 @@ (change)="changeCheckbox(SubQuery.STATE, $event)" >{{ 'FILTER.STATE' | translate }} -
    - - {{ 'FILTER.METHODS.1' | translate }} - - - - - - {{ 'USER.STATE.' + state | translate }} - - - -
    + @if (getSubFilter(SubQuery.STATE); as sq) { +
    + + {{ 'FILTER.METHODS.1' | translate }} + + + + @for (state of states; track state) { + + {{ 'USER.STATE.' + state | translate }} + + } + + +
    + }
    @@ -31,24 +34,27 @@ (change)="changeCheckbox(SubQuery.DISPLAYNAME, $event)" >{{ 'FILTER.DISPLAYNAME' | translate }} -
    - - - - {{ 'FILTER.METHODS.' + method | translate }} - - - - - - - -
    + @if (getSubFilter(SubQuery.DISPLAYNAME); as dnq) { +
    + + + @for (method of methods; track method) { + + {{ 'FILTER.METHODS.' + method | translate }} + + } + + + + + +
    + }
    @@ -82,19 +91,22 @@ (change)="changeCheckbox(SubQuery.USERNAME, $event)" >{{ 'FILTER.USERNAME' | translate }} -
    - - - - {{ 'FILTER.METHODS.' + method | translate }} - - - - - - - -
    + @if (getSubFilter(SubQuery.USERNAME); as unq) { +
    + + + @for (method of methods; track method) { + + {{ 'FILTER.METHODS.' + method | translate }} + + } + + + + + +
    + }
    diff --git a/console/src/app/modules/filter/filter.component.html b/console/src/app/modules/filter/filter.component.html index 35122a6aa..ea54c35be 100644 --- a/console/src/app/modules/filter/filter.component.html +++ b/console/src/app/modules/filter/filter.component.html @@ -3,7 +3,9 @@
    {{ 'ACTIONS.FILTER' | translate }} - {{ queryCount }} + @if (queryCount) { + {{ queryCount }} + }
    diff --git a/console/src/app/modules/footer/footer.component.html b/console/src/app/modules/footer/footer.component.html index b9eda2d7d..644404cfc 100644 --- a/console/src/app/modules/footer/footer.component.html +++ b/console/src/app/modules/footer/footer.component.html @@ -1,35 +1,43 @@