From f22736bb648039529676571759a5fd4a1c2fec57 Mon Sep 17 00:00:00 2001 From: Jared Date: Mon, 9 Feb 2026 13:50:20 -0500 Subject: [PATCH] [PM-25627] convert policy dialogs to drawer (#18534) * Enhance policy edit dialogs by updating dialog size to large for improved layout and switching to openDrawer method for better user experience. * Enhance policy edit dialogs by adding policy status badges to indicate if a policy is enabled, improving user visibility and experience. * Update dialog component styles to enhance drawer behavior by changing height to full screen and adding sticky footer for improved layout and user experience. * Refactor policy display layout by wrapping buttons and badges in a flex container for improved alignment and spacing. * Refactor password policy forms in admin console for improved layout - Simplified the structure of form fields in `master-password.component.html` and `password-generator.component.html` by removing unnecessary div wrappers. - Updated the label for the password type policy override in `messages.json` for clarity. * Update dialog size in policy edit component for consistency - Changed the dialog size from 'large' to 'default' in `policy-edit-dialog.component.html` to align with design standards. * refactor(dialog): update dialog component styles for drawer layout - Adjusted height class for drawer dialogs from 'tw-h-screen' to 'tw-h-full' for better layout management. - Removed sticky positioning for footer in drawer mode to improve visual consistency. * refactor(dialog): enhance form layout for policy edit dialogs - Added classes for full height and flex column layout to the form elements in policy edit dialogs for improved visual consistency and usability. --- .../policies/policies.component.html | 14 ++- .../master-password.component.html | 41 +++---- .../password-generator.component.html | 108 ++++++++---------- .../policy-edit-dialog.component.html | 12 +- .../policies/policy-edit-dialog.component.ts | 9 +- ...-confirm-edit-policy-dialog.component.html | 9 +- ...to-confirm-edit-policy-dialog.component.ts | 5 +- ...wnership-edit-policy-dialog.component.html | 11 +- ...-ownership-edit-policy-dialog.component.ts | 2 +- apps/web/src/locales/en/messages.json | 4 +- 10 files changed, 115 insertions(+), 100 deletions(-) diff --git a/apps/web/src/app/admin-console/organizations/policies/policies.component.html b/apps/web/src/app/admin-console/organizations/policies/policies.component.html index 902c7e79d55..64fb4794037 100644 --- a/apps/web/src/app/admin-console/organizations/policies/policies.component.html +++ b/apps/web/src/app/admin-console/organizations/policies/policies.component.html @@ -19,12 +19,14 @@ @if (p.display$(organization, configService) | async) { - - @if (policiesEnabledMap.get(p.type)) { - {{ "on" | i18n }} - } +
+ + @if (policiesEnabledMap.get(p.type)) { + {{ "on" | i18n }} + } +
{{ p.description | i18n }} diff --git a/apps/web/src/app/admin-console/organizations/policies/policy-edit-definitions/master-password.component.html b/apps/web/src/app/admin-console/organizations/policies/policy-edit-definitions/master-password.component.html index f979c143a3a..2267bd5888e 100644 --- a/apps/web/src/app/admin-console/organizations/policies/policy-edit-definitions/master-password.component.html +++ b/apps/web/src/app/admin-console/organizations/policies/policy-edit-definitions/master-password.component.html @@ -13,29 +13,24 @@ {{ "enforceOnLoginDesc" | i18n }} -
- - {{ "minComplexityScore" | i18n }} - - - - - - {{ "minLength" | i18n }} - - -
+ + {{ "minComplexityScore" | i18n }} + + + + + + + {{ "minLength" | i18n }} + + diff --git a/apps/web/src/app/admin-console/organizations/policies/policy-edit-definitions/password-generator.component.html b/apps/web/src/app/admin-console/organizations/policies/policy-edit-definitions/password-generator.component.html index 1300acee471..372ad3609c0 100644 --- a/apps/web/src/app/admin-console/organizations/policies/policy-edit-definitions/password-generator.component.html +++ b/apps/web/src/app/admin-console/organizations/policies/policy-edit-definitions/password-generator.component.html @@ -4,56 +4,50 @@ {{ "turnOn" | i18n }} -
- - {{ "overridePasswordTypePolicy" | i18n }} - - - - -
+ + {{ "passwordTypePolicyOverride" | i18n }} + + + +

{{ "password" | i18n }}

-
- - {{ "minLength" | i18n }} - - -
-
- - {{ "minNumbers" | i18n }} - - - - {{ "minSpecial" | i18n }} - - -
+ + {{ "minLength" | i18n }} + + + + {{ "minNumbers" | i18n }} + + + + {{ "minSpecial" | i18n }} + + {{ "uppercaseLabel" | i18n }} @@ -79,18 +73,16 @@

{{ "passphrase" | i18n }}

-
- - {{ "minimumNumberOfWords" | i18n }} - - -
+ + {{ "minimumNumberOfWords" | i18n }} + + {{ "capitalize" | i18n }} diff --git a/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialog.component.html b/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialog.component.html index 6573801ad25..6981802e8e9 100644 --- a/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialog.component.html +++ b/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialog.component.html @@ -1,5 +1,13 @@ -
- + + + + + {{ policy.name | i18n }} + @if (isPolicyEnabled) { + {{ "on" | i18n }} + } + +
) => { - return dialogService.open(PolicyEditDialogComponent, config); + return dialogService.openDrawer( + PolicyEditDialogComponent, + config, + ); }; } diff --git a/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/auto-confirm-edit-policy-dialog.component.html b/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/auto-confirm-edit-policy-dialog.component.html index 4d1db65034d..fd0867a5cd5 100644 --- a/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/auto-confirm-edit-policy-dialog.component.html +++ b/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/auto-confirm-edit-policy-dialog.component.html @@ -1,5 +1,5 @@ - - + + @let title = (multiStepSubmit | async)[currentStep()]?.titleContent(); @if (title) { @@ -40,13 +40,16 @@ @if (showBadge) { {{ "availableNow" | i18n }} } - + {{ (showBadge ? "autoConfirm" : "editPolicy") | i18n }} @if (!showBadge) { {{ policy.name | i18n }} } + @if (isPolicyEnabled) { + {{ "on" | i18n }} + }
diff --git a/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/auto-confirm-edit-policy-dialog.component.ts b/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/auto-confirm-edit-policy-dialog.component.ts index f0146225b8d..b5a92671054 100644 --- a/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/auto-confirm-edit-policy-dialog.component.ts +++ b/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/auto-confirm-edit-policy-dialog.component.ts @@ -287,6 +287,9 @@ export class AutoConfirmPolicyDialogComponent dialogService: DialogService, config: DialogConfig, ) => { - return dialogService.open(AutoConfirmPolicyDialogComponent, config); + return dialogService.openDrawer( + AutoConfirmPolicyDialogComponent, + config, + ); }; } diff --git a/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/organization-data-ownership-edit-policy-dialog.component.html b/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/organization-data-ownership-edit-policy-dialog.component.html index 73691e94199..7b89f4d0acc 100644 --- a/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/organization-data-ownership-edit-policy-dialog.component.html +++ b/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/organization-data-ownership-edit-policy-dialog.component.html @@ -1,5 +1,5 @@ - - + + @let title = multiStepSubmit()[currentStep()]?.titleContent(); @if (title) { @@ -35,7 +35,12 @@ - {{ policy.name | i18n }} + + {{ policy.name | i18n }} + @if (isPolicyEnabled) { + {{ "on" | i18n }} + } + diff --git a/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/organization-data-ownership-edit-policy-dialog.component.ts b/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/organization-data-ownership-edit-policy-dialog.component.ts index 7869eab0063..c62be85287f 100644 --- a/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/organization-data-ownership-edit-policy-dialog.component.ts +++ b/apps/web/src/app/admin-console/organizations/policies/policy-edit-dialogs/organization-data-ownership-edit-policy-dialog.component.ts @@ -216,7 +216,7 @@ export class OrganizationDataOwnershipPolicyDialogComponent }; static open = (dialogService: DialogService, config: DialogConfig) => { - return dialogService.open( + return dialogService.openDrawer( OrganizationDataOwnershipPolicyDialogComponent, config, ); diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json index 97bb46029a7..042eec107d4 100644 --- a/apps/web/src/locales/en/messages.json +++ b/apps/web/src/locales/en/messages.json @@ -5394,8 +5394,8 @@ "minimumNumberOfWords": { "message": "Minimum number of words" }, - "overridePasswordTypePolicy": { - "message": "Password Type", + "passwordTypePolicyOverride": { + "message": "Password type", "description": "Name of the password generator policy that overrides the user's password/passphrase selection." }, "userPreference": {