passbolt-styleguide 3.6.2 → 3.7.0-alpha1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/build/css/help.min.css +3 -7
- package/build/css/public.min.css +3 -16
- package/build/css/themes/default/api_authentication.min.css +3 -3
- package/build/css/themes/default/api_cloud.min.css +3 -3
- package/build/css/themes/default/api_main.min.css +3 -12
- package/build/css/themes/default/api_reports.min.css +3 -12
- package/build/css/themes/default/api_webinstaller.min.css +3 -12
- package/build/css/themes/default/ext_app.min.css +3 -12
- package/build/css/themes/default/ext_authentication.min.css +3 -3
- package/build/css/themes/default/ext_external.min.css +2 -2
- package/build/css/themes/default/ext_in_form_cta.min.css +3 -3
- package/build/css/themes/default/ext_in_form_menu.min.css +3 -3
- package/build/css/themes/default/ext_quickaccess.min.css +3 -3
- package/build/css/themes/midgar/api_authentication.min.css +3 -3
- package/build/css/themes/midgar/api_main.min.css +3 -12
- package/build/css/themes/midgar/api_reports.min.css +3 -12
- package/build/css/themes/midgar/ext_app.min.css +3 -12
- package/build/css/themes/midgar/ext_authentication.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_cta.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_menu.min.css +3 -3
- package/build/css/themes/midgar/ext_quickaccess.min.css +3 -3
- package/build/js/dist/api-account-recovery.js +1 -1
- package/build/js/dist/api-app.js +1 -1
- package/build/js/dist/api-app.js.LICENSE.txt +25 -1
- package/build/js/dist/api-recover.js +1 -1
- package/build/js/dist/api-setup.js +1 -1
- package/build/js/dist/api-triage.js +1 -1
- package/build/js/dist/api-vendors.js +1 -1
- package/build/js/dist/api-vendors.js.LICENSE.txt +43 -7
- package/i18next-parser.config.js +22 -0
- package/package.json +8 -5
- package/src/img/og/og_image.png +0 -0
- package/src/locales/de-DE/common.json +308 -173
- package/src/locales/en-UK/common.json +155 -175
- package/src/locales/es-ES/common.json +955 -0
- package/src/locales/fr-FR/common.json +308 -174
- package/src/locales/ja-JP/common.json +292 -172
- package/src/locales/lt-LT/common.json +985 -0
- package/src/locales/nl-NL/common.json +329 -194
- package/src/locales/pl-PL/common.json +337 -172
- package/src/locales/sv-SE/common.json +307 -172
- package/src/public-website-sign-in/PublicWebsiteSignInBootstrap.js +25 -0
- package/src/public-website-sign-in/lib/SignIn/SignInManager.js +85 -0
- package/src/public-website-sign-in/lib/SignIn/SignInManager.test.data.js +45 -0
- package/src/public-website-sign-in/lib/SignIn/SignInManager.test.js +59 -0
- package/src/public-website-sign-in/lib/SignIn/SignInManager.test.page.js +67 -0
- package/src/react-extension/ExtBootstrapAccountRecovery.js +17 -0
- package/src/react-extension/ExtBootstrapApp.js +17 -0
- package/src/react-extension/ExtBootstrapLogin.js +17 -0
- package/src/react-extension/ExtBootstrapRecover.js +17 -0
- package/src/react-extension/ExtBootstrapSetup.js +17 -0
- package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.stories.js +1 -1
- package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.js +1 -9
- package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.js +1 -9
- package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.js +1 -1
- package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.stories.js +1 -1
- package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.js +1 -1
- package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.stories.js +1 -1
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.js +6 -3
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.data.js +10 -7
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +2 -15
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.js +2 -12
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.js +2 -11
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +1 -1
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +1 -1
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +1 -9
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.js +1 -9
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.page.js +1 -1
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.stories.js +12 -6
- package/src/react-extension/components/Administration/DisplayLoadingDialog/DisplayLoadingDialog.js +2 -11
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js +6 -6
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +25 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +25 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.js +12 -2
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +24 -24
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +1 -1
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.stories.js +1 -1
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.js +6 -3
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.data.js +20 -5
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.stories.js +1 -1
- package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.js +1 -11
- package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.stories.js +1 -1
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.js +1 -9
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.stories.js +1 -1
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.js +90 -46
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.test.js +61 -17
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.js +1 -1
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.js +1 -9
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.page.js +14 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.stories.js +1 -1
- package/src/react-extension/components/Announcement/AnnouncementWrapper/AnnouncementWrapper.js +3 -2
- package/src/react-extension/components/Announcement/HandleSubscriptionAnnouncement/DisplayExpiredSubscriptionAnnouncement.js +3 -3
- package/src/react-extension/components/Announcement/HandleSubscriptionAnnouncement/DisplayGoingToExpireSubscriptionAnnouncement.js +3 -2
- package/src/react-extension/components/Announcement/HandleSubscriptionAnnouncement/DisplayInvalidSubscriptionAnnouncement.js +3 -3
- package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.js +2 -2
- package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.js +2 -2
- package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.js +2 -12
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +88 -41
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.js +2 -2
- package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.stories.js +11 -1
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.js +2 -2
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +24 -14
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +2 -2
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError.js +2 -2
- package/src/react-extension/components/Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.js +2 -2
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.js +2 -2
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.js +2 -2
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.js +3 -3
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +2 -2
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.js +6 -6
- package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.js +1 -1
- package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.js +34 -7
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.data.js +2 -1
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.js +20 -1
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.page.js +4 -0
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +2 -2
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +4 -1
- package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.js +2 -2
- package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.js +1 -9
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.js +2 -2
- package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.stories.js +6 -1
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.js +2 -2
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.js +2 -2
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/OrchestrateAccountRecovery.js +2 -2
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.js +2 -2
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationLogin/Login/Login.js +1 -9
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxFooter.js +2 -2
- package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxMain.js +2 -2
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.js +1 -1
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +3 -2
- package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +3 -3
- package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.stories.js +1 -1
- package/src/react-extension/components/Common/ActionFeedback/ShareActionFeedback.js +2 -2
- package/src/react-extension/components/Common/Autocomplete/Autocomplete.js +8 -2
- package/src/react-extension/components/Common/Avatar/UserAvatar.test.data.js +6 -4
- package/src/react-extension/components/Common/Avatar/UserAvatar.test.stories.js +3 -2
- package/src/react-extension/components/Common/Button/Button.test.stories.js +5 -5
- package/src/react-extension/components/Common/Checkbox/Checkbox.test.stories.js +1 -1
- package/src/react-extension/components/Common/ContextualMenu/ContextualMenu.test.stories.js +1 -1
- package/src/react-extension/components/Common/ContextualMenu/ContextualMenuWrapper.js +10 -8
- package/src/react-extension/components/Common/Dialog/DialogCloseButton/DialogCloseButton.js +2 -1
- package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogFooter.test.stories.js +2 -2
- package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogWrapper.js +2 -2
- package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogWrapper.test.stories.js +1 -1
- package/src/react-extension/components/Common/DragInfo/DragInfo.test.stories.js +10 -8
- package/src/react-extension/components/Common/Error/NotifyError/NotifyError.js +3 -11
- package/src/react-extension/components/Common/Error/NotifyError/NotifyError.test.stories.js +6 -1
- package/src/react-extension/components/Common/Footer/Footer.js +3 -13
- package/src/react-extension/components/Common/Inputs/Autocomplete/Autocomplete.js +16 -7
- package/src/react-extension/components/Common/Inputs/Autocomplete/AutocompleteItemLoading.js +4 -0
- package/src/react-extension/components/Common/Inputs/FormSubmitButton/FormCancelButton.js +3 -12
- package/src/react-extension/components/Common/Inputs/FormSubmitButton/FormSubmitButton.js +2 -2
- package/src/react-extension/components/Common/Internationalisation/TranslationProvider.js +0 -1
- package/src/react-extension/components/Common/Link/Link.test.stories.js +1 -1
- package/src/react-extension/components/Common/Loading/LoadingBar/LoadingBar.test.stories.js +1 -1
- package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.test.stories.js +1 -1
- package/src/react-extension/components/Common/Menu/DisplayMainMenu.js +2 -11
- package/src/react-extension/components/Common/Navigation/Search/SearchBar.js +7 -7
- package/src/react-extension/components/Common/Navigation/Search/SearchBar.test.stories.js +1 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.js +2 -11
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.stories.js +1 -1
- package/src/react-extension/components/Common/RadioButton/RadioButton.test.stories.js +1 -1
- package/src/react-extension/components/Common/Select/Select.js +44 -12
- package/src/react-extension/components/Common/Select/Select.test.stories.js +1 -1
- package/src/react-extension/components/Common/Text/Text.test.stories.js +1 -1
- package/src/react-extension/components/Common/TextField/TextField.test.stories.js +1 -1
- package/src/react-extension/components/Common/Toggle/Toggle.test.stories.js +1 -1
- package/src/react-extension/components/Common/Tooltip/Tooltip.test.stories.js +2 -2
- package/src/react-extension/components/Internationalisation/ChangeLocale/ChangeLocale.test.page.js +1 -1
- package/src/react-extension/components/Resource/CreateResource/CreateResource.js +9 -9
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +1 -1
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.js +3 -3
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.page.js +1 -1
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.stories.js +1 -1
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +4 -4
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.stories.js +1 -1
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspace.js +1 -9
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.js +8 -17
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.test.js +2 -2
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.test.stories.js +1 -1
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.js +6 -6
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.test.stories.js +1 -1
- package/src/react-extension/components/Resource/EditResource/EditResource.js +8 -8
- package/src/react-extension/components/Resource/EditResource/EditResource.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ExportResources/ExportResources.js +9 -10
- package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +1 -1
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItemContextualMenu.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByRootFolderContextualMenu.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByGroups/FilterResourcesByGroups.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByGroups/FilterResourcesByGroups.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.js +4 -13
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsContextualMenu.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsListContextualMenu.js +3 -12
- package/src/react-extension/components/Resource/FilterResourcesByText/FilterResourcesByText.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ImportResources/ImportResources.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +1 -1
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +1 -1
- package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +5 -3
- package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.js +1 -1
- package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +1 -1
- package/src/react-extension/components/ResourceComment/DeleteResourceComment/DeleteComment.js +2 -1
- package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.js +1 -9
- package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +5 -3
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.js +2 -2
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +5 -3
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetails.js +3 -3
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +2 -2
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsComment.js +2 -11
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.js +2 -10
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.data.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsPermission.js +2 -10
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.js +3 -12
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +1 -1
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.js +1 -1
- package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +1 -1
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetails.js +1 -1
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.js +1 -9
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +1 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.js +10 -7
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +1 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.js +12 -9
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.test.stories.js +1 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.js +10 -7
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.test.stories.js +1 -1
- package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.js +2 -2
- package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.js +2 -2
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTagsItemViewer.js +2 -11
- package/src/react-extension/components/Share/ShareDialog.js +124 -22
- package/src/react-extension/components/Share/ShareDialog.test.data.js +25 -1
- package/src/react-extension/components/Share/ShareDialog.test.js +87 -36
- package/src/react-extension/components/Share/ShareDialog.test.page.js +1 -1
- package/src/react-extension/components/Share/ShareDialog.test.stories.js +1 -1
- package/src/react-extension/components/Share/SharePermissionDeleteButton.js +2 -1
- package/src/react-extension/components/Share/SharePermissionItem.js +56 -0
- package/src/react-extension/components/Share/ShareVariesDetails.js +2 -11
- package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.js +1 -1
- package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +1 -1
- package/src/react-extension/components/User/CreateUser/CreateUser.js +9 -9
- package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +1 -1
- package/src/react-extension/components/User/DeleteUser/DeleteUser.js +1 -1
- package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +1 -1
- package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.js +3 -3
- package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.js +1 -9
- package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.js +8 -17
- package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +3 -3
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayUserWorkspaceMainActions/DisplayUserWorkspaceMainActions.js +8 -17
- package/src/react-extension/components/User/DisplayUserWorkspaceMainActions/DisplayUserWorkspaceMainActions.test.js +4 -4
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.js +1 -1
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.stories.js +1 -1
- package/src/react-extension/components/User/EditUser/EditUser.js +9 -9
- package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +1 -1
- package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.stories.js +1 -1
- package/src/react-extension/components/User/FilterUsersByGroups/DisplayGroupContextualMenu.js +2 -11
- package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroup.test.stories.js +1 -1
- package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroupContextualMenu.js +2 -11
- package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.js +3 -12
- package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.test.stories.js +1 -1
- package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.js +1 -9
- package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.js +3 -3
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.js +1 -9
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.data.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.js +1 -9
- package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +22 -83
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.js +8 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.data.js +20 -2
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.js +25 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +28 -26
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +85 -57
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.js +21 -6
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.js +1 -1
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.js +2 -2
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.js +4 -13
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembersGroupMember.js +1 -9
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +132 -151
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.js +8 -1
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.page.js +37 -14
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +5 -2
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroupItem.js +209 -0
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DisplayChangePassphraseIntroduction.js +2 -3
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DownloadRecoveryKit.js +2 -2
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +25 -12
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +5 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.page.js +7 -0
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +2 -10
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +9 -2
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +58 -35
- package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserSettingWorkspaceActions/DisplayUserSettingWorkspaceActions.js +2 -11
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.js +2 -2
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.js +1 -9
- package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.js +8 -8
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.js +4 -13
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +1 -1
- package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.js +14 -1
- package/src/react-extension/test/fixture/Settings/siteSettings.js +20 -14
- package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +8 -1
- package/src/react-quickaccess/ExtQuickAccess.js +23 -9
- package/src/react-quickaccess/components/AnimatedSwitch/AnimatedSwitch.js +0 -1
- package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgress.js +2 -5
- package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgressPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.js +2 -2
- package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.js +2 -3
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.js +3 -3
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/Header/Header.test.stories.js +1 -1
- package/src/react-quickaccess/components/HomePage/HomePage.js +0 -8
- package/src/react-quickaccess/components/HomePage/HomePage.test.stories.js +1 -1
- package/src/react-quickaccess/components/LoginPage/LoginPage.js +1 -9
- package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.js +1 -1
- package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.js +5 -5
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +1 -1
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +1 -1
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.stories.js +1 -1
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +4 -4
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.stories.js +1 -1
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.js +3 -3
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/Search/Search.js +5 -5
- package/src/react-quickaccess/components/Search/Search.test.stories.js +1 -1
- package/src/react-web-integration/BrowserIntegrationBootstrap.js +0 -17
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +1 -1
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.js +2 -2
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +1 -1
- package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +11 -1
- package/src/react-web-integration/lib/InForm/InformManager.test.data.js +60 -0
- package/src/react-web-integration/lib/InForm/InformManager.test.js +151 -6
- package/src/react-web-integration/lib/InForm/InformManager.test.page.js +39 -0
- package/src/shared/components/Icons/Icon.test.stories.js +1 -1
- package/src/shared/components/Password/Password.js +2 -1
- package/src/shared/components/Password/Password.test.page.js +4 -1
- package/src/shared/components/Password/Password.test.stories.js +1 -1
- package/src/shared/components/PasswordComplexity/PasswordComplexity.js +2 -2
- package/src/shared/components/PasswordComplexity/PasswordComplexity.test.stories.js +5 -5
- package/src/stories/assets/intro/hero.png +0 -0
- package/src/stories/assets/intro/intro.css +47 -0
- package/test/jest.setup.js +2 -0
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* @since 2.13.0
|
|
13
13
|
*/
|
|
14
14
|
import React, {Component} from "react";
|
|
15
|
+
import ReactList from "react-list";
|
|
15
16
|
import PropTypes from "prop-types";
|
|
16
17
|
import {withAppContext} from "../../../contexts/AppContext";
|
|
17
18
|
import {withActionFeedback} from "../../../contexts/ActionFeedbackContext";
|
|
@@ -21,13 +22,11 @@ import FormSubmitButton from "../../Common/Inputs/FormSubmitButton/FormSubmitBut
|
|
|
21
22
|
import FormCancelButton from "../../Common/Inputs/FormSubmitButton/FormCancelButton";
|
|
22
23
|
import NotifyError from "../../Common/Error/NotifyError/NotifyError";
|
|
23
24
|
import {withUserWorkspace} from "../../../contexts/UserWorkspaceContext";
|
|
24
|
-
import UserAvatar from "../../Common/Avatar/UserAvatar";
|
|
25
|
-
import Icon from "../../../../shared/components/Icons/Icon";
|
|
26
25
|
import Autocomplete from "../../Common/Inputs/Autocomplete/Autocomplete";
|
|
27
26
|
import {withRouter} from "react-router-dom";
|
|
28
27
|
import {Trans, withTranslation} from "react-i18next";
|
|
29
|
-
import
|
|
30
|
-
import
|
|
28
|
+
import SharePermissionItemSkeleton from "../../Share/SharePermissionItemSkeleton";
|
|
29
|
+
import EditUserGroupItem from "./EditUserGroupItem";
|
|
31
30
|
|
|
32
31
|
/**
|
|
33
32
|
* This component allows to edit an user group
|
|
@@ -88,11 +87,11 @@ class EditUserGroup extends Component {
|
|
|
88
87
|
this.references = {
|
|
89
88
|
name: React.createRef()
|
|
90
89
|
};
|
|
90
|
+
this.listRef = React.createRef();
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
/**
|
|
94
94
|
* Binds the component handlers
|
|
95
|
-
* @return {void}
|
|
96
95
|
*/
|
|
97
96
|
bindHandlers() {
|
|
98
97
|
this.handleSubmit = this.handleSubmit.bind(this);
|
|
@@ -104,24 +103,24 @@ class EditUserGroup extends Component {
|
|
|
104
103
|
this.handleAutocompleteClose = this.handleAutocompleteClose.bind(this);
|
|
105
104
|
this.handleAutocompleteOpen = this.handleAutocompleteOpen.bind(this);
|
|
106
105
|
this.fetchAutocompleteItems = this.fetchAutocompleteItems.bind(this);
|
|
106
|
+
|
|
107
|
+
this.renderItem = this.renderItem.bind(this);
|
|
107
108
|
}
|
|
108
109
|
|
|
109
110
|
/**
|
|
110
111
|
* Populate the component with initial data
|
|
111
|
-
* @return {Promise<void>}
|
|
112
112
|
*/
|
|
113
|
-
|
|
113
|
+
populate() {
|
|
114
114
|
const name = this.groupToEdit.name;
|
|
115
115
|
const groupsUsers = JSON.parse(JSON.stringify(this.groupToEdit.groups_users)); // Clone the groups users to not alter the original
|
|
116
|
-
|
|
116
|
+
groupsUsers.map(this.decorateGroupUserWithUser.bind(this));
|
|
117
117
|
this.sortGroupsUsersAlphabeticallyByUserFullName(groupsUsers);
|
|
118
|
-
|
|
118
|
+
this.setState({groupToEdit: {name, groupsUsers}});
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
/**
|
|
122
122
|
* Sort a list of groups users by their
|
|
123
123
|
* @param {array} groupsUsers
|
|
124
|
-
* @returns {void}
|
|
125
124
|
*/
|
|
126
125
|
sortGroupsUsersAlphabeticallyByUserFullName(groupsUsers) {
|
|
127
126
|
const sortGroupsUsersAlphabeticallyByUserFullName = (groupUserA, groupUserB) => this.getUserFullname(groupUserA.user).localeCompare(this.getUserFullname(groupUserB.user));
|
|
@@ -131,22 +130,19 @@ class EditUserGroup extends Component {
|
|
|
131
130
|
/**
|
|
132
131
|
* Decorate a group user with its associated user
|
|
133
132
|
* @param {Object} groupUser The group user to decorate
|
|
134
|
-
* @returns {Promise<object>}
|
|
135
133
|
*/
|
|
136
|
-
|
|
137
|
-
groupUser.user =
|
|
134
|
+
decorateGroupUserWithUser(groupUser) {
|
|
135
|
+
groupUser.user = this.findUser(groupUser.user_id);
|
|
138
136
|
return groupUser;
|
|
139
137
|
}
|
|
140
138
|
|
|
141
139
|
/**
|
|
142
140
|
* Find a user
|
|
143
141
|
* @param {string} userId
|
|
144
|
-
* @returns {
|
|
142
|
+
* @returns {object}
|
|
145
143
|
*/
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
user.gpgkey = await this.findUserGpgkey(user.id);
|
|
149
|
-
return user;
|
|
144
|
+
findUser(userId) {
|
|
145
|
+
return this.props.context.users.find(user => user.id === userId);
|
|
150
146
|
}
|
|
151
147
|
|
|
152
148
|
/**
|
|
@@ -197,7 +193,7 @@ class EditUserGroup extends Component {
|
|
|
197
193
|
* @type {boolean}
|
|
198
194
|
*/
|
|
199
195
|
get areActionsAllowed() {
|
|
200
|
-
return !this.isProcessing;
|
|
196
|
+
return !this.isProcessing && !this.isLoading;
|
|
201
197
|
}
|
|
202
198
|
|
|
203
199
|
/**
|
|
@@ -261,46 +257,43 @@ class EditUserGroup extends Component {
|
|
|
261
257
|
|
|
262
258
|
/**
|
|
263
259
|
* Whenever the group name change
|
|
264
|
-
* @return {Promise<void>}
|
|
265
260
|
*/
|
|
266
|
-
|
|
267
|
-
|
|
261
|
+
handleNameChange(event) {
|
|
262
|
+
this.updateName(event.target.value);
|
|
268
263
|
}
|
|
269
264
|
|
|
270
265
|
/**
|
|
271
266
|
* Whenever a member's permission has changed
|
|
272
267
|
* @param {Event} event A select DOM event
|
|
273
268
|
* @param {object} groupUser A group user
|
|
274
|
-
* @return {Promise<void>}
|
|
275
269
|
*/
|
|
276
|
-
|
|
270
|
+
handleMemberRoleChange(event, groupUser) {
|
|
277
271
|
const isManager = event.target.value === true;
|
|
278
|
-
|
|
272
|
+
this.updateMemberRole(groupUser, isManager);
|
|
279
273
|
}
|
|
280
274
|
|
|
281
275
|
/**
|
|
282
276
|
* Whenever a member's is removed from the group
|
|
283
277
|
* @param {Event} event A click DOM event
|
|
284
278
|
* @param {object} groupUser A group user
|
|
285
|
-
* @return {Promise<void>}
|
|
286
279
|
*/
|
|
287
|
-
|
|
288
|
-
|
|
280
|
+
handleMemberRemoved(event, groupUser) {
|
|
281
|
+
this.removeMember(groupUser);
|
|
289
282
|
}
|
|
290
283
|
|
|
291
284
|
/**
|
|
292
285
|
* Whenever the user wants to submit the changes
|
|
293
286
|
* @param {Event} event A submit DOM event
|
|
294
|
-
* @
|
|
287
|
+
* @returns {Promise<void>}
|
|
295
288
|
*/
|
|
296
289
|
async handleSubmit(event) {
|
|
297
290
|
event.preventDefault();
|
|
298
291
|
|
|
299
|
-
|
|
292
|
+
this.resetErrors();
|
|
300
293
|
const actions = Object.assign(this.state.actions, {processing: true});
|
|
301
294
|
this.setState({actions});
|
|
302
295
|
|
|
303
|
-
|
|
296
|
+
this.validate();
|
|
304
297
|
if (this.hasErrors()) {
|
|
305
298
|
return this.handleValidateError();
|
|
306
299
|
}
|
|
@@ -325,7 +318,6 @@ class EditUserGroup extends Component {
|
|
|
325
318
|
|
|
326
319
|
/**
|
|
327
320
|
* Focus the field of the form which is in error state.
|
|
328
|
-
* @return {void}
|
|
329
321
|
*/
|
|
330
322
|
focusFieldError() {
|
|
331
323
|
if (this.hasErrors("name")) {
|
|
@@ -335,7 +327,6 @@ class EditUserGroup extends Component {
|
|
|
335
327
|
|
|
336
328
|
/**
|
|
337
329
|
* Whenever the user will to close the dialog
|
|
338
|
-
* @return {void}
|
|
339
330
|
*/
|
|
340
331
|
handleClose() {
|
|
341
332
|
this.close();
|
|
@@ -343,7 +334,6 @@ class EditUserGroup extends Component {
|
|
|
343
334
|
|
|
344
335
|
/**
|
|
345
336
|
* handleAutocompleteOpen
|
|
346
|
-
* @return {void}
|
|
347
337
|
*/
|
|
348
338
|
handleAutocompleteOpen() {
|
|
349
339
|
this.setState({autocompleteOpen: true});
|
|
@@ -351,7 +341,6 @@ class EditUserGroup extends Component {
|
|
|
351
341
|
|
|
352
342
|
/**
|
|
353
343
|
* handleAutocompleteClose
|
|
354
|
-
* @return {void}
|
|
355
344
|
*/
|
|
356
345
|
handleAutocompleteClose() {
|
|
357
346
|
this.setState({autocompleteOpen: false});
|
|
@@ -362,16 +351,15 @@ class EditUserGroup extends Component {
|
|
|
362
351
|
* What happens when an item in the autocomplete list is selected
|
|
363
352
|
* e.g. if it's not already in the list, add it and scroll
|
|
364
353
|
* @param {object} user The selected user
|
|
365
|
-
* @return {void}
|
|
366
354
|
*/
|
|
367
|
-
|
|
355
|
+
handleAutocompleteSelect(user) {
|
|
368
356
|
const groupUser = this.groupToEdit.groups_users.find(groupUser => groupUser.user_id === user.id);
|
|
369
357
|
// Case of previously deleted member and re-added
|
|
370
358
|
if (groupUser) {
|
|
371
|
-
|
|
359
|
+
this.restoreMember(groupUser);
|
|
372
360
|
} else {
|
|
373
361
|
// Case of fresh member
|
|
374
|
-
|
|
362
|
+
this.addMember(user);
|
|
375
363
|
}
|
|
376
364
|
}
|
|
377
365
|
|
|
@@ -387,7 +375,7 @@ class EditUserGroup extends Component {
|
|
|
387
375
|
/**
|
|
388
376
|
* Returns true if the group user membership has changed.
|
|
389
377
|
* @param {object} groupUser the group user
|
|
390
|
-
* @
|
|
378
|
+
* @returns {boolean}
|
|
391
379
|
*/
|
|
392
380
|
isMemberChanged(groupUser) {
|
|
393
381
|
const originalGroupUser = this.groupToEdit.groups_users.find(originalGroupUser => originalGroupUser.id === groupUser.id);
|
|
@@ -396,7 +384,7 @@ class EditUserGroup extends Component {
|
|
|
396
384
|
|
|
397
385
|
/**
|
|
398
386
|
* Returns true of the member has been added
|
|
399
|
-
* @
|
|
387
|
+
* @returns {boolean}
|
|
400
388
|
*/
|
|
401
389
|
isMemberAdded(groupUser) {
|
|
402
390
|
return groupUser.id === undefined;
|
|
@@ -405,90 +393,90 @@ class EditUserGroup extends Component {
|
|
|
405
393
|
/**
|
|
406
394
|
* Changes the group name
|
|
407
395
|
* @param name The new name
|
|
408
|
-
* @return {Promise<*>}
|
|
409
396
|
*/
|
|
410
|
-
|
|
411
|
-
|
|
397
|
+
updateName(name) {
|
|
398
|
+
this.setState({groupToEdit: Object.assign({}, this.state.groupToEdit, {name})});
|
|
412
399
|
if (this.state.validation.hasAlreadyBeenValidated) {
|
|
413
|
-
|
|
400
|
+
this.validateName();
|
|
414
401
|
}
|
|
415
402
|
}
|
|
416
403
|
|
|
417
404
|
/**
|
|
418
405
|
* Changes the group groups users
|
|
419
406
|
* @param {array} The new groups users
|
|
420
|
-
* @
|
|
407
|
+
* @param {boolean} shouldScrollToEnd if true triggers a scroll to the end of the list
|
|
421
408
|
*/
|
|
422
|
-
|
|
409
|
+
updateGroupsUsers(groupsUsers, shouldScrollToEnd) {
|
|
423
410
|
const groupToEdit = Object.assign({}, this.state.groupToEdit, {groups_users: groupsUsers});
|
|
424
|
-
this.setState({groupToEdit})
|
|
411
|
+
this.setState({groupToEdit}, () => {
|
|
412
|
+
if (shouldScrollToEnd) {
|
|
413
|
+
// scroll at the bottom of the group users list
|
|
414
|
+
this.listRef.current.scrollTo(this.groupsUsers.length - 1);
|
|
415
|
+
}
|
|
416
|
+
});
|
|
425
417
|
}
|
|
426
418
|
|
|
427
419
|
/**
|
|
428
420
|
* Update a member's group membership role
|
|
429
421
|
* @param {object} groupUserToUpdate The group user whose permission will be updated
|
|
430
422
|
* @param {boolean} isManager True if the members will be a group manager
|
|
431
|
-
* @retrurn {Promise<*>}
|
|
432
423
|
*/
|
|
433
|
-
|
|
424
|
+
updateMemberRole(groupUserToUpdate, isManager) {
|
|
434
425
|
const indexToUpdate = this.groupsUsers.findIndex(groupUser => groupUser.user_id === groupUserToUpdate.user_id);
|
|
435
426
|
groupUserToUpdate.is_admin = isManager;
|
|
436
427
|
this.groupsUsers[indexToUpdate] = groupUserToUpdate;
|
|
437
|
-
|
|
428
|
+
this.updateGroupsUsers(this.groupsUsers);
|
|
438
429
|
}
|
|
439
430
|
|
|
440
431
|
/**
|
|
441
432
|
* Add a user to the member list
|
|
442
433
|
* @param {object} user The user to create a new group membership for
|
|
443
|
-
* @retrurn {Promise<*>}
|
|
444
434
|
*/
|
|
445
|
-
|
|
435
|
+
addMember(user) {
|
|
446
436
|
const mustBeAdmin = !this.hasManager;
|
|
447
437
|
const groupUser = {user_id: user.id, is_admin: mustBeAdmin};
|
|
448
|
-
|
|
438
|
+
this.decorateGroupUserWithUser(groupUser);
|
|
449
439
|
this.groupsUsers.push(groupUser);
|
|
450
|
-
|
|
440
|
+
this.updateGroupsUsers(this.groupsUsers, true);
|
|
451
441
|
}
|
|
452
442
|
|
|
453
443
|
/**
|
|
454
444
|
* Restore a previously removed group user to the list
|
|
455
445
|
* @param {object} groupUserToRestore The group user to restore
|
|
456
|
-
* @retrurn {Promise<*>}
|
|
457
446
|
*/
|
|
458
|
-
|
|
459
|
-
|
|
447
|
+
restoreMember(groupUserToRestore) {
|
|
448
|
+
this.decorateGroupUserWithUser(groupUserToRestore);
|
|
460
449
|
this.groupsUsers.push(groupUserToRestore);
|
|
461
|
-
|
|
450
|
+
this.updateGroupsUsers(this.groupsUsers, true);
|
|
462
451
|
}
|
|
463
452
|
|
|
464
453
|
/**
|
|
465
454
|
* Removes a member from the list
|
|
466
455
|
* @param {object} groupUserToRemove The group user to remove
|
|
467
456
|
*/
|
|
468
|
-
|
|
457
|
+
removeMember(groupUserToRemove) {
|
|
469
458
|
const indexToRemove = this.groupsUsers.findIndex(groupUser => groupUser.user_id === groupUserToRemove.user_id);
|
|
470
|
-
const groupsUsers = this.groupsUsers
|
|
471
|
-
|
|
459
|
+
const groupsUsers = this.groupsUsers;
|
|
460
|
+
groupsUsers.splice(indexToRemove, 1);
|
|
461
|
+
this.updateGroupsUsers(groupsUsers);
|
|
472
462
|
}
|
|
473
463
|
|
|
474
464
|
/**
|
|
475
465
|
* Validate the form
|
|
476
|
-
* @return {Promise<void>}
|
|
477
466
|
*/
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
467
|
+
validate() {
|
|
468
|
+
this.validateName();
|
|
469
|
+
this.setState({validation: Object.assign({}, this.state.validation, {hasAlreadyBeenValidated: true})});
|
|
481
470
|
}
|
|
482
471
|
|
|
483
472
|
/**
|
|
484
473
|
* Validates the group name
|
|
485
|
-
* @return {Promise<void>}
|
|
486
474
|
*/
|
|
487
|
-
|
|
488
|
-
|
|
475
|
+
validateName() {
|
|
476
|
+
this.resetErrors("name");
|
|
489
477
|
const name = this.state.groupToEdit.name;
|
|
490
478
|
if (name.trim() === "") {
|
|
491
|
-
|
|
479
|
+
this.setError("name", "empty");
|
|
492
480
|
}
|
|
493
481
|
}
|
|
494
482
|
|
|
@@ -497,9 +485,8 @@ class EditUserGroup extends Component {
|
|
|
497
485
|
* @param {string} domain The error namespace
|
|
498
486
|
* @param {string} type The error type
|
|
499
487
|
* @param {string|boolean?} value the error value
|
|
500
|
-
* @returns {Promise<void>}
|
|
501
488
|
*/
|
|
502
|
-
|
|
489
|
+
setError(domain, type, value) {
|
|
503
490
|
value = value || true;
|
|
504
491
|
const errors = this.state.errors || {};
|
|
505
492
|
errors[domain] = errors[domain] || {};
|
|
@@ -510,15 +497,14 @@ class EditUserGroup extends Component {
|
|
|
510
497
|
/**
|
|
511
498
|
* Reset the errors
|
|
512
499
|
* @param {string?} domain (Optional) The domain to reset.
|
|
513
|
-
* @returns {Promise<void>}
|
|
514
500
|
*/
|
|
515
|
-
|
|
501
|
+
resetErrors(domain) {
|
|
516
502
|
let errors = {};
|
|
517
503
|
if (domain) {
|
|
518
504
|
errors = this.state.errors;
|
|
519
505
|
delete errors[domain];
|
|
520
506
|
}
|
|
521
|
-
|
|
507
|
+
this.setState({errors});
|
|
522
508
|
}
|
|
523
509
|
|
|
524
510
|
/**
|
|
@@ -548,12 +534,12 @@ class EditUserGroup extends Component {
|
|
|
548
534
|
* @returns {*}
|
|
549
535
|
*/
|
|
550
536
|
hasGroupNameAlreadyExists(errorData) {
|
|
551
|
-
return errorData
|
|
537
|
+
return errorData?.body?.name?.group_unique;
|
|
552
538
|
}
|
|
553
539
|
|
|
554
540
|
/**
|
|
555
541
|
* Edits the current group
|
|
556
|
-
* @
|
|
542
|
+
* @returns {Promise<void>}
|
|
557
543
|
*/
|
|
558
544
|
async updateGroup() {
|
|
559
545
|
const groupDto = {
|
|
@@ -580,14 +566,13 @@ class EditUserGroup extends Component {
|
|
|
580
566
|
|
|
581
567
|
/**
|
|
582
568
|
* Whenever the group has been updated successfully
|
|
583
|
-
* @return {void}
|
|
584
569
|
*/
|
|
585
|
-
|
|
570
|
+
onEditFailure(error) {
|
|
586
571
|
// It can happen when the user has closed the passphrase entry dialog by instance.
|
|
587
572
|
if (error.name === "UserAbortsOperationError") {
|
|
588
573
|
this.setState({processing: false});
|
|
589
574
|
} else if (this.hasGroupNameAlreadyExists(error.data)) {
|
|
590
|
-
|
|
575
|
+
this.setError("name", "alreadyExists");
|
|
591
576
|
this.setState({processing: false});
|
|
592
577
|
} else {
|
|
593
578
|
// Unexpected error occurred.
|
|
@@ -600,7 +585,6 @@ class EditUserGroup extends Component {
|
|
|
600
585
|
/**
|
|
601
586
|
* Handle error to display the error dialog
|
|
602
587
|
* @param {object} error The error
|
|
603
|
-
* @return {void}
|
|
604
588
|
*/
|
|
605
589
|
onError(error) {
|
|
606
590
|
const errorDialogProps = {
|
|
@@ -659,32 +643,59 @@ class EditUserGroup extends Component {
|
|
|
659
643
|
const matchUser = (word, user) => matchUsernameProperty(word, user) || matchNameProperty(word, user);
|
|
660
644
|
const matchText = user => words.every(word => matchUser(word, user));
|
|
661
645
|
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
646
|
+
let currentCount = 0;
|
|
647
|
+
const firstUsersMatched = this.props.context.users.filter(user => {
|
|
648
|
+
const isUserMatching = currentCount < Autocomplete.DISPLAY_LIMIT
|
|
649
|
+
&& user.active === true
|
|
650
|
+
&& !this.isMember(user)
|
|
651
|
+
&& matchText(user);
|
|
652
|
+
|
|
653
|
+
if (isUserMatching) {
|
|
654
|
+
currentCount++;
|
|
655
|
+
}
|
|
656
|
+
return isUserMatching;
|
|
657
|
+
});
|
|
658
|
+
return this.decorateUsersWithGpgkey(firstUsersMatched);
|
|
665
659
|
}
|
|
666
660
|
|
|
667
661
|
/**
|
|
668
|
-
*
|
|
669
|
-
* @param
|
|
662
|
+
* Use to render a single item of the user group list
|
|
663
|
+
* @param {integer} index of the item in the source list
|
|
664
|
+
* @param {integer} key index of the HTML element in the ReactList
|
|
670
665
|
* @returns {JSX.Element}
|
|
671
666
|
*/
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
667
|
+
renderItem(index, key) {
|
|
668
|
+
const groupUser = this.groupsUsers[index];
|
|
669
|
+
const isMemberChanged = this.isMemberChanged(groupUser);
|
|
670
|
+
const isMemberAdded = this.isMemberAdded(groupUser);
|
|
671
|
+
const editUserGroupItemKey = groupUser.user_id;
|
|
672
|
+
return (
|
|
673
|
+
<EditUserGroupItem
|
|
674
|
+
key={editUserGroupItemKey}
|
|
675
|
+
itemKey={editUserGroupItemKey}
|
|
676
|
+
isMemberChanged={isMemberChanged}
|
|
677
|
+
isMemberAdded={isMemberAdded}
|
|
678
|
+
groupUser={groupUser}
|
|
679
|
+
onMemberRoleChange={this.handleMemberRoleChange}
|
|
680
|
+
onMemberRemoved={this.handleMemberRemoved}
|
|
681
|
+
areActionsAllowed={this.areActionsAllowed}
|
|
682
|
+
isLastItemDisplayed={key >= 2}
|
|
683
|
+
/>
|
|
684
|
+
);
|
|
677
685
|
}
|
|
678
686
|
|
|
679
687
|
/**
|
|
680
|
-
*
|
|
681
|
-
* @
|
|
688
|
+
* Use to render the container of the list of the ReactList component
|
|
689
|
+
* @param {Array<JSX.Element>} items the list of the items to be rendered as children element of the conainer
|
|
690
|
+
* @param {*} ref the ref ReactList needs to manage the scrll
|
|
691
|
+
* @returns {JSX.Element}
|
|
682
692
|
*/
|
|
683
|
-
|
|
684
|
-
return
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
693
|
+
renderContainer(items, ref) {
|
|
694
|
+
return (
|
|
695
|
+
<ul className="permissions groups_users" ref={ref}>
|
|
696
|
+
{items}
|
|
697
|
+
</ul>
|
|
698
|
+
);
|
|
688
699
|
}
|
|
689
700
|
|
|
690
701
|
/**
|
|
@@ -706,14 +717,14 @@ class EditUserGroup extends Component {
|
|
|
706
717
|
onClose={this.handleClose}
|
|
707
718
|
disabled={!this.areActionsAllowed}>
|
|
708
719
|
|
|
709
|
-
{
|
|
720
|
+
{this.props.context.loggedInUser &&
|
|
710
721
|
<form
|
|
711
722
|
className="group-form"
|
|
712
723
|
onSubmit={this.handleSubmit}
|
|
713
724
|
noValidate>
|
|
714
725
|
|
|
715
726
|
<div className="form-content">
|
|
716
|
-
<div className={`input text required ${this.hasErrors("name") ? "error" : ""}`}>
|
|
727
|
+
<div className={`input text required ${this.hasErrors("name") ? "error" : ""} ${!this.areActionsAllowed || !this.isLoggedInUserAdmin() ? 'disabled' : ''}`}>
|
|
717
728
|
<label htmlFor="js_field_name"><Trans>Group name</Trans></label>
|
|
718
729
|
<input
|
|
719
730
|
id="group-name-input"
|
|
@@ -742,57 +753,27 @@ class EditUserGroup extends Component {
|
|
|
742
753
|
</div>
|
|
743
754
|
|
|
744
755
|
<div className="group_members">
|
|
745
|
-
<div className="form-content permission-edit">
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
<
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
{this.isMemberAdded(groupUser) && <span><Trans>Will be added</Trans></span>}
|
|
765
|
-
{this.isMemberChanged(groupUser) && !this.isMemberAdded(groupUser) &&
|
|
766
|
-
<span><Trans>Will be updated</Trans></span>}
|
|
767
|
-
{!this.isMemberChanged(groupUser) && !this.isMemberAdded(groupUser) && <span><Trans>Unchanged</Trans></span>}
|
|
768
|
-
|
|
769
|
-
</div>
|
|
770
|
-
</div>
|
|
771
|
-
|
|
772
|
-
<div className="rights">
|
|
773
|
-
<Select
|
|
774
|
-
className="permission inline"
|
|
775
|
-
value={groupUser.is_admin}
|
|
776
|
-
items={this.permissions}
|
|
777
|
-
onChange={event => this.handleMemberRoleChange(event, groupUser)}
|
|
778
|
-
disabled={!this.areActionsAllowed}/>
|
|
779
|
-
</div>
|
|
780
|
-
|
|
781
|
-
<div className="actions">
|
|
782
|
-
<a
|
|
783
|
-
title="remove"
|
|
784
|
-
className={`remove-item button button-transparent ${!this.areActionsAllowed ? "disabled" : ""}`}
|
|
785
|
-
onClick={event => this.handleMemberRemoved(event, groupUser)}>
|
|
786
|
-
<Icon name="close"/>
|
|
787
|
-
<span className="visuallyhidden">remove</span>
|
|
788
|
-
</a>
|
|
789
|
-
</div>
|
|
790
|
-
</li>
|
|
791
|
-
))
|
|
792
|
-
}
|
|
793
|
-
</ul>
|
|
756
|
+
<div className="form-content scroll permission-edit">
|
|
757
|
+
{this.isLoading &&
|
|
758
|
+
<ul className="permissions groups_users">
|
|
759
|
+
<SharePermissionItemSkeleton/>
|
|
760
|
+
<SharePermissionItemSkeleton/>
|
|
761
|
+
<SharePermissionItemSkeleton/>
|
|
762
|
+
</ul>
|
|
763
|
+
}
|
|
764
|
+
{!this.isLoading &&
|
|
765
|
+
<ReactList
|
|
766
|
+
ref={this.listRef}
|
|
767
|
+
itemRenderer={this.renderItem}
|
|
768
|
+
itemsRenderer={this.renderContainer}
|
|
769
|
+
length={this.groupsUsers.length}
|
|
770
|
+
minSize={4}
|
|
771
|
+
type={this.groupsUsers.length < 3 ? "simple" : "uniform"}
|
|
772
|
+
threshold={30}>
|
|
773
|
+
</ReactList>
|
|
774
|
+
}
|
|
794
775
|
</div>
|
|
795
|
-
{!this.hasMembers &&
|
|
776
|
+
{!this.isLoading && !this.hasMembers &&
|
|
796
777
|
<div className="message warning">
|
|
797
778
|
<span><Trans>The group is empty, please add a group manager.</Trans></span>
|
|
798
779
|
</div>
|
|
@@ -802,7 +783,7 @@ class EditUserGroup extends Component {
|
|
|
802
783
|
<span><Trans>Please make sure there is at least one group manager.</Trans></span>
|
|
803
784
|
</div>
|
|
804
785
|
}
|
|
805
|
-
{!this.isManager &&
|
|
786
|
+
{!this.isLoading && !this.isManager &&
|
|
806
787
|
<div className="message warning feedback cannot-add-user">
|
|
807
788
|
<span><Trans>Only the group manager can add new people to a group.</Trans></span>
|
|
808
789
|
</div>
|
|
@@ -39,8 +39,12 @@ describe("See the Edit User Group", () => {
|
|
|
39
39
|
const requestGpgMockImpl = jest.fn(() => mockGpgKey);
|
|
40
40
|
requestMock = mockContextRequest(context, requestGpgMockImpl);
|
|
41
41
|
page = new EditUserGroupTestPage(context, props);
|
|
42
|
+
jest.useFakeTimers();
|
|
42
43
|
});
|
|
43
44
|
|
|
45
|
+
afterEach(() => {
|
|
46
|
+
jest.clearAllTimers();
|
|
47
|
+
});
|
|
44
48
|
|
|
45
49
|
it('As AD I should change the name of the group', async() => {
|
|
46
50
|
expect.assertions(3);
|
|
@@ -97,7 +101,10 @@ describe("See the Edit User Group", () => {
|
|
|
97
101
|
|
|
98
102
|
expect(page.canAdd).toBeTruthy();
|
|
99
103
|
|
|
100
|
-
await page.
|
|
104
|
+
await page.type('dame', page.usernameInput);
|
|
105
|
+
jest.runOnlyPendingTimers();
|
|
106
|
+
await waitFor(() => {});
|
|
107
|
+
await page.click(page.getAutocompleteItem(0));
|
|
101
108
|
|
|
102
109
|
expect(page.groupMembersCount).toBe(3);
|
|
103
110
|
expect(page.groupMember(3).name).toBe("Dame Steve Shirley");
|