Files
zitadel/console/src/app/modules/policies/language-settings/language-settings.component.html
T
0945195f68 chore: deps update (#11968)
# Which Problems Are Solved
This pr updates major and minor dependencies and is the first step on
getting our dependabot alerts cut down.

# How the Problems Are Solved

Depedency updates across the board eg:
- Upgrade Angular to v21
- Upgrade next.js to v16.2
- Upgrade tailwind to v4 in the login
- Upgrade vitest to v4 in the login

This is an uncompleted list refer to the changed files for a full
overview of all the updates.

# Additional Changes

Migrated all control flow in the console to the modern control flow
syntax.
Fixed the dependsOn setting for the @zitadel/login:test-unit nx target.

# Additional Context

- Closes https://github.com/zitadel/zitadel/issues/11274

---------

Co-authored-by: Max Peintner <[email protected]>
2026-04-02 15:53:08 +02:00

140 lines
4.9 KiB
HTML

<h2>{{ 'DESCRIPTIONS.SETTINGS.LANGUAGES.TITLE' | translate }}</h2>
<p class="cnsl-secondary-text">{{ 'DESCRIPTIONS.SETTINGS.LANGUAGES.DESCRIPTION' | translate }}</p>
<div class="spinner-wr">
@if (loading) {
<mat-spinner diameter="30" color="primary"></mat-spinner>
}
</div>
<div>
<form class="languages-container-wrapper">
<div class="languages-container">
<div
class="languages-list"
cdkDropList
id="allowed"
[cdkDropListConnectedTo]="['notallowed']"
(cdkDropListDropped)="drop($event)"
[cdkDropListData]="(localState$ | async)!.allowed"
>
<div class="languages-top-row">
<span class="label">{{ 'SETTING.LANGUAGES.ALLOWED' | translate }}</span>
<button
class="list-button"
[disabled]="(canWriteRestrictions$ | async) === false"
(click)="allowAll()"
mat-stroked-button
>
<div class="cnsl-action-button">
<i class="las la-object-group"></i><span>{{ 'SETTING.LANGUAGES.ALLOW_ALL' | translate }}</span>
</div>
</button>
</div>
<div class="languages-drop-target">
@for (lang of (localState$ | async)!.allowed; track lang; let i = $index) {
<div
class="card languages-box"
[cdkDragData]="lang"
cdkDrag
[cdkDragDisabled]="(canWriteRestrictions$ | async) === false"
mat-list-item
>
<span class="index">{{ i + 1 }}</span>
<span class="locale">{{ lang }}</span>
<span class="lang">{{ 'SETTING.LANGUAGES.OPTIONS.' + lang | translate }} </span>
@if (lang === (defaultLang$ | async)) {
<span class="state orgdefaultlabel">{{ 'SETTING.LANGUAGES.DEFAULT' | translate }}</span>
}
@if (lang !== (defaultLang$ | async) && (isRemotelyAllowed$(lang) | async) === true) {
<button
(click)="$event.stopPropagation()"
mat-icon-button
class="more-button"
[matMenuTriggerFor]="actions"
data-e2e="table-actions-button"
>
<mat-icon>more_vert</mat-icon>
</button>
}
<mat-menu #actions="matMenu" xPosition="before" class="language-actions-menu">
<button
menuActions
mat-menu-item
(click)="setDefaultLang(lang)"
[disabled]="(canWriteDefaultLanguage$ | async) === false"
>
{{ 'SETTING.LANGUAGES.SETASDEFAULT' | translate }}
</button>
</mat-menu>
</div>
}
</div>
</div>
</div>
<div class="languages-container">
<div
class="languages-list"
cdkDropList
id="notallowed"
[cdkDropListConnectedTo]="['allowed']"
(cdkDropListDropped)="drop($event)"
[cdkDropListData]="(localState$ | async)!.notAllowed"
[cdkDropListEnterPredicate]="defaultLangPredicate"
cdkDropListSortingDisabled
>
<div class="languages-top-row">
<span class="label">{{ 'SETTING.LANGUAGES.NOT_ALLOWED' | translate }}</span>
<button
class="list-button"
[disabled]="(canWriteRestrictions$ | async) === false"
(click)="disallowAll()"
mat-stroked-button
>
<div class="cnsl-action-button">
<i class="las la-object-group"></i><span>{{ 'SETTING.LANGUAGES.DISALLOW_ALL' | translate }}</span>
</div>
</button>
</div>
<div class="languages-drop-target">
@for (lang of (localState$ | async)!.notAllowed; track lang) {
<div
class="card languages-box"
[cdkDragData]="lang"
cdkDrag
[cdkDragDisabled]="(canWriteRestrictions$ | async) === false"
mat-list-item
>
<span class="locale">{{ lang }}</span>
<span class="lang">{{ 'SETTING.LANGUAGES.OPTIONS.' + lang | translate }} </span>
</div>
}
</div>
</div>
</div>
<div class="general-btn-container">
<button
class="reset-button"
[disabled]="(canWriteRestrictions$ | async) === false"
(click)="discard()"
color="message-text-warn"
mat-stroked-button
>
<div class="cnsl-action-button">
<i class="las la-history"></i><span>{{ 'ACTIONS.UNSAVED.DIALOG.DISCARD' | translate }}</span>
</div>
</button>
<button
class="save-button"
color="primary"
type="submit"
(click)="submit()"
mat-raised-button
[disabled]="(canWriteRestrictions$ | async) === false"
>
{{ 'ACTIONS.SAVE' | translate }}
</button>
</div>
</form>
</div>