passbolt-styleguide 3.3.3 → 3.4.0-alpha2
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/build/css/help.min.css +4 -4
- package/build/css/public.min.css +5 -6
- package/build/css/themes/default/api_authentication.min.css +3 -3
- package/build/css/themes/default/api_cloud.min.css +3 -7
- package/build/css/themes/default/api_main.min.css +4 -9
- package/build/css/themes/default/api_reports.min.css +4 -9
- package/build/css/themes/default/api_webinstaller.min.css +4 -9
- package/build/css/themes/default/ext_app.min.css +4 -9
- package/build/css/themes/default/ext_authentication.min.css +3 -3
- package/build/css/themes/default/ext_external.min.css +3 -3
- package/build/css/themes/default/ext_in_form_cta.min.css +9 -0
- package/build/css/themes/default/ext_in_form_menu.min.css +9 -0
- package/build/css/themes/default/ext_quickaccess.min.css +3 -3
- package/build/css/themes/midgar/api_authentication.min.css +9 -0
- package/build/css/themes/midgar/api_main.min.css +4 -9
- package/build/css/themes/midgar/api_reports.min.css +4 -9
- package/build/css/themes/midgar/ext_app.min.css +4 -9
- package/build/css/themes/midgar/ext_authentication.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_cta.min.css +9 -0
- package/build/css/themes/midgar/ext_in_form_menu.min.css +9 -0
- package/build/css/themes/midgar/ext_quickaccess.min.css +3 -3
- package/build/js/dist/api-app.js +1 -1
- package/build/js/dist/api-app.js.LICENSE.txt +5 -5
- package/build/js/dist/api-recover.js +1 -1
- package/build/js/dist/api-recover.js.LICENSE.txt +0 -28
- package/build/js/dist/api-setup.js +1 -1
- package/build/js/dist/api-setup.js.LICENSE.txt +0 -15
- package/build/js/dist/api-triage.js +1 -1
- package/build/js/dist/api-triage.js.LICENSE.txt +0 -14
- package/build/js/dist/api-vendors.js +1 -1
- package/build/js/dist/api-vendors.js.LICENSE.txt +146 -84
- package/package.json +31 -26
- package/src/img/controls/chevron-down_blue.svg +3 -0
- package/src/img/diagrams/functional_overview.png +0 -0
- package/src/img/diagrams/functional_overview.svg +4 -0
- package/src/img/diagrams/howitworks.svg +2797 -0
- package/src/img/diagrams/mobile-transfer.svg +296 -0
- package/src/img/diagrams/sequence_diagram_form_authenticate.png +0 -0
- package/src/img/diagrams/sequence_diagram_gpg_authenticate.png +0 -0
- package/src/img/diagrams/totp.svg +251 -0
- package/src/img/illustrations/pin_passbolt.gif +0 -0
- package/src/img/illustrations/wave-pin_my_extension.svg +1 -0
- package/src/img/logo/icon-32-badge-1.png +0 -0
- package/src/img/logo/icon-32-badge-2.png +0 -0
- package/src/img/logo/icon-32-badge-3.png +0 -0
- package/src/img/logo/icon-32-badge-4.png +0 -0
- package/src/img/logo/icon-32-badge-5+.png +0 -0
- package/src/img/logo/icon-32-badge-5.png +0 -0
- package/src/img/logo/icon-32-signout.png +0 -0
- package/src/img/logo/icon-badge-1.svg +1 -0
- package/src/img/logo/icon-badge-2.svg +1 -0
- package/src/img/logo/icon-badge-3.svg +1 -0
- package/src/img/logo/icon-badge-4.svg +1 -0
- package/src/img/logo/icon-badge-5+.svg +1 -0
- package/src/img/logo/icon-badge-5.svg +1 -0
- package/src/img/logo/icon-inactive.svg +1 -0
- package/src/img/logo/icon-without-badge.svg +1 -0
- package/src/img/third_party/ChromeWebStore_black.svg +1 -0
- package/src/img/third_party/ChromeWebStore_white.svg +1 -0
- package/src/img/third_party/edge-addon-black.svg +1 -0
- package/src/img/third_party/edge-addon-white.svg +1 -0
- package/src/locales/de-DE/common.json +820 -0
- package/src/locales/en-UK/common.json +86 -20
- package/src/locales/fr/common.json +750 -0
- package/src/locales/fr-FR/common.json +92 -22
- package/src/locales/sv-SE/common.json +820 -0
- package/src/react-extension/ExtApp.js +16 -10
- package/src/react-extension/ExtBootstrapApp.js +1 -0
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +2 -2
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +2 -2
- 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 +22 -8
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.data.js +3 -0
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.js +10 -8
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js +21 -19
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.page.js +6 -6
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +0 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +5 -8
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.js +20 -38
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.data.js +4 -1
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.js +4 -4
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +1 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.js +2 -3
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.stories.js +5 -9
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +34 -32
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +0 -3
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +1 -1
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.page.js +2 -2
- package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.js +1 -1
- package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.js +2 -2
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.js +1 -1
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +12 -14
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +2 -1
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.js +1 -2
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +9 -19
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +1 -1
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.data.js +14 -0
- package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.js +65 -0
- package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.page.js +38 -0
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +15 -6
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.js +27 -0
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.js +107 -0
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.data.js +11 -0
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.js +65 -0
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.page.js +73 -0
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.stories.js +34 -0
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +8 -11
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.js +1 -1
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginProgress.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationLogin/Login/Login.js +3 -1
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.js +2 -1
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.js +1 -1
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +5 -11
- package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +5 -1
- package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +4 -0
- package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.data.js +0 -2
- package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.js +4 -5
- package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.page.js +0 -1
- package/src/react-extension/components/Common/Avatar/UserAvatar.js +2 -1
- package/src/react-extension/components/Common/Error/ShowErrorDetails/ShowErrorDetails.js +126 -0
- package/src/react-extension/components/Common/Icons/AnimatedFeedback.js +58 -0
- package/src/react-extension/components/Common/Icons/Icon.js +16 -0
- package/src/react-extension/components/Common/Icons/Icon.test.stories.js +78 -0
- package/src/react-extension/components/Common/Inputs/FormSubmitButton/FormSubmitButton.js +4 -0
- package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.js +2 -1
- package/src/react-extension/components/Common/Menu/DisplayMainMenu.js +2 -4
- package/src/react-extension/components/Common/Navigation/Search/SearchBar.js +1 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.js +1 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.js +1 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.stories.js +34 -0
- package/src/react-extension/components/Common/Tab/Tab.js +65 -0
- package/src/react-extension/components/Common/Tab/Tabs.js +87 -0
- package/src/react-extension/components/Resource/CreateResource/CreateResource.js +85 -66
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.data.js +80 -1
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.js +18 -39
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.page.js +27 -8
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +70 -4
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.js +1 -1
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayDragResource.js +68 -0
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +20 -47
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.page.js +4 -1
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.js +2 -2
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.test.data.js +1 -7
- package/src/react-extension/components/Resource/EditResource/EditResource.js +93 -68
- package/src/react-extension/components/Resource/EditResource/EditResource.test.data.js +80 -1
- package/src/react-extension/components/Resource/EditResource/EditResource.test.js +10 -39
- package/src/react-extension/components/Resource/EditResource/EditResource.test.page.js +26 -11
- package/src/react-extension/components/Resource/ExportResources/ExportResources.js +1 -1
- package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +5 -11
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +10 -12
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +5 -11
- package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.js +4 -4
- package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/DisplayDragFolderItem.js +109 -0
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.js +41 -193
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.data.js +10 -5
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.js +9 -12
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.page.js +6 -2
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.js +83 -58
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.data.js +52 -59
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.js +25 -20
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.page.js +11 -5
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItemContextualMenu.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByRootFolderContextualMenu.js +7 -2
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByRootFolderContextualMenu.test.js +3 -7
- package/src/react-extension/components/Resource/FilterResourcesByGroups/FilterResourcesByGroups.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.page.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.data.js +47 -0
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.js +34 -3
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.page.js +46 -9
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +124 -4
- package/src/react-extension/components/Resource/FilterResourcesByText/FilterResourcesByText.test.stories.js +0 -2
- package/src/react-extension/components/Resource/ImportResources/ImportResources.js +6 -5
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +10 -12
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +5 -11
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.js +3 -3
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.js +3 -3
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +5 -11
- package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.js +1 -1
- package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.page.object.js +1 -1
- package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +8 -14
- package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +5 -11
- package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +8 -14
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.js +9 -8
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.page.js +1 -1
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +8 -15
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +0 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +0 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +0 -1
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +2 -2
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.page.js +1 -1
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +0 -3
- package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +0 -6
- package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +0 -5
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +1 -1
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.page.js +1 -1
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +0 -7
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +0 -2
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +0 -2
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +0 -2
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.js +150 -0
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +30 -0
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.js +191 -0
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.test.stories.js +73 -0
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.js +296 -0
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.test.stories.js +112 -0
- package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +0 -2
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.page.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +0 -4
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.js +2 -2
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.test.page.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTagsItemViewer.js +5 -1
- package/src/react-extension/components/Share/ShareDialog.test.page.js +1 -1
- package/src/react-extension/components/Share/ShareDialog.test.stories.js +12 -10
- package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +5 -9
- package/src/react-extension/components/User/CreateUser/CreateUser.js +4 -4
- package/src/react-extension/components/User/CreateUser/CreateUser.test.page.js +3 -3
- package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +3 -1
- package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +5 -8
- package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +5 -8
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +2 -2
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.page.js +1 -1
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.js +35 -2
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.data.js +2 -1
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.js +6 -0
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.page.js +19 -6
- package/src/react-extension/components/User/EditUser/EditUser.js +3 -3
- package/src/react-extension/components/User/EditUser/EditUser.test.page.js +2 -2
- package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +3 -1
- package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.js +2 -2
- package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.js +1 -1
- package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.stories.js +5 -8
- package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroup.js +1 -1
- package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.js +1 -1
- package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.test.stories.js +0 -1
- package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.test.stories.js +0 -2
- package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +8 -11
- package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +8 -11
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +8 -12
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +1 -1
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.page.js +2 -2
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +5 -8
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +5 -8
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +5 -8
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.stories.js +8 -11
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +8 -11
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +11 -3
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.data.js +7 -0
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.page.js +1 -1
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +12 -8
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +92 -21
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.data.js +6 -0
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.js +2 -2
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.page.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DisplayChangePassphraseIntroduction.js +12 -10
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DownloadRecoveryKit.js +4 -10
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +65 -25
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.data.js +6 -0
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.page.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +14 -13
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +21 -6
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspace/DisplayUserSettingsWorkspace.js +13 -1
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.js +2 -1
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.js +3 -3
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.js +26 -4
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +7 -10
- package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.js +749 -0
- package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.test.data.js +32 -0
- package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.test.js +60 -0
- package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.test.page.js +110 -0
- package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.js +3 -2
- package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +5 -8
- package/src/react-extension/contexts/AdministrationWorkspaceContext.js +2 -2
- package/src/react-extension/contexts/ApiAppContext.js +1 -1
- package/src/react-extension/contexts/ApiRecoverContext.js +1 -1
- package/src/react-extension/contexts/ApiSetupContext.js +1 -1
- package/src/react-extension/contexts/AuthenticationContext.js +21 -2
- package/src/react-extension/contexts/AuthenticationContext.test.js +40 -0
- package/src/react-extension/contexts/DragContext.js +122 -0
- package/src/react-extension/contexts/DragContext.test.js +53 -0
- package/src/react-extension/contexts/NavigationContext.js +11 -0
- package/src/react-extension/contexts/ResourcePasswordGeneratorContext.js +144 -0
- package/src/react-extension/contexts/ResourceWorkspaceContext.js +5 -4
- package/src/react-extension/contexts/ResourceWorkspaceContext.test.data.js +0 -1
- package/src/react-extension/contexts/ResourceWorkspaceContext.test.page.js +0 -1
- package/src/react-extension/contexts/UserWorkspaceContext.js +31 -4
- package/src/react-extension/contexts/UserWorkspaceContext.test.data.js +17 -287
- package/src/react-extension/lib/Crypto/sha512.js +17 -0
- package/src/react-extension/test/fixture/Settings/siteSettings.js +6 -0
- package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +42 -7
- package/src/react-quickaccess/ExtQuickAccess.js +75 -28
- package/src/react-quickaccess/components/AnimatedSwitch/AnimatedSwitch.js +22 -5
- package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgress.js +41 -0
- package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgressPage.test.stories.js +23 -0
- package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.js +8 -4
- package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.test.stories.js +7 -7
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.js +10 -6
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +9 -5
- package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.js +10 -7
- package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.test.stories.js +7 -7
- package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.js +10 -7
- package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.test.stories.js +7 -7
- package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.js +10 -7
- package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.test.stories.js +7 -7
- package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.js +10 -7
- package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +9 -5
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.js +150 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.test.data.js +20 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.test.js +67 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.test.page.js +109 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.js +189 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.test.data.js +40 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.test.js +67 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.test.page.js +121 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.js +304 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.data.js +102 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.js +76 -0
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.page.js +158 -0
- package/src/react-quickaccess/components/Header/Header.js +10 -8
- package/src/react-quickaccess/components/Header/Header.test.stories.js +4 -7
- package/src/react-quickaccess/components/HomePage/HomePage.js +40 -11
- package/src/react-quickaccess/components/HomePage/HomePage.test.stories.js +14 -10
- package/src/react-quickaccess/components/HomePage/canSuggestUrl.js +8 -3
- package/src/react-quickaccess/components/HomePage/canSuggestUrl.test.js +6 -0
- package/src/react-quickaccess/components/LoginPage/LoginPage.js +58 -18
- package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +4 -6
- package/src/react-quickaccess/components/ManageQuickAccessMode/ManageQuickAccessMode.js +103 -0
- package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.js +2 -2
- package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.test.stories.js +4 -6
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.js +5 -3
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +6 -6
- package/src/react-quickaccess/components/PrivateRoute/PrivateRoute.js +1 -0
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +234 -0
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.data.js +28 -0
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.stories.js +44 -0
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +166 -39
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.data.js +108 -2
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.js +28 -25
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.stories.js +6 -6
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.js +6 -3
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.stories.js +5 -3
- package/src/react-quickaccess/components/Search/Search.js +13 -1
- package/src/react-quickaccess/components/Search/Search.test.stories.js +4 -6
- package/src/react-quickaccess/contexts/PrepareResourceContext.js +221 -0
- package/src/react-web-integration/AuthLogin/AuthLogin.js +72 -0
- package/src/react-web-integration/Autofill/Autofill.js +331 -0
- package/src/react-web-integration/BrowserIntegrationBootstrap.js +64 -0
- package/src/react-web-integration/Events/Quickaccess/QuickAccessEvent.js +24 -0
- package/src/react-web-integration/ExtInFormCallToAction.js +56 -0
- package/src/react-web-integration/ExtInFormMenu.js +70 -0
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.js +161 -0
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.data.js +39 -0
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.js +48 -0
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.page.js +42 -0
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +91 -0
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.js +360 -0
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +198 -0
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenuItem.js +103 -0
- package/src/react-web-integration/contexts/AppContext.js +39 -0
- package/src/react-web-integration/lib/Dom/DomUtils.js +94 -0
- package/src/react-web-integration/lib/InForm/InFormCallToActionField.js +263 -0
- package/src/react-web-integration/lib/InForm/InFormCredentialsFormField.js +118 -0
- package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +77 -0
- package/src/react-web-integration/lib/InForm/InFormManager.js +253 -0
- package/src/react-web-integration/lib/InForm/InformManager.test.data.js +46 -0
- package/src/react-web-integration/lib/InForm/InformManager.test.js +82 -0
- package/src/react-web-integration/lib/InForm/InformManager.test.page.js +116 -0
- package/src/react-web-integration/lib/InForm/InformMenuField.js +182 -0
- package/src/shared/components/Internationalisation/TranslationProvider.js +145 -0
- package/src/shared/lib/Browser/detectBrowserName.js +2 -1
- package/src/shared/lib/Secret/SecretComplexity.js +2 -2
- package/src/shared/lib/SecretGenerator/PassphraseGenerator.js +112 -0
- package/src/shared/lib/SecretGenerator/PassphraseGenerator.test.js +48 -0
- package/src/shared/lib/SecretGenerator/PassphraseGeneratorWords.js +7789 -0
- package/src/shared/lib/SecretGenerator/PasswordGenerator.js +103 -0
- package/src/shared/lib/SecretGenerator/SecretGenerator.js +45 -0
- package/src/shared/lib/SecretGenerator/SecretGeneratorComplexity.js +190 -0
- package/src/shared/lib/SecretGenerator/SecretGeneratorComplexity.test.js +95 -0
- package/src/shared/lib/Settings/SiteSettings.js +8 -0
- package/src/shared/lib/apiClient/apiClient.test.js +1 -1
- package/.babelrc +0 -11
- package/.editorconfig +0 -13
- package/.eslintrc.json +0 -197
- package/.gitlab-ci.yml +0 -28
- package/.jest.config.json +0 -6
- package/.jest.setup.js +0 -8
- package/.jest.transform.js +0 -7
- package/.storybook/main.js +0 -15
- package/.storybook/preview-body.html +0 -5
- package/.storybook/preview.js +0 -6
- package/Gruntfile.js +0 -199
- package/build/css/themes/default/ext_config_debug.min.css +0 -13
- package/build/css/themes/default/ext_legacy.min.css +0 -13
- package/build/css/themes/midgar/ext_legacy.min.css +0 -13
- package/crowdin.yml +0 -4
- package/docker-compose-dev.yml +0 -10
- package/jest.config.json +0 -6
- package/src/img/controls/colorpicker/marker.png +0 -0
- package/src/img/controls/colorpicker/mask.png +0 -0
- package/src/img/controls/colorpicker/wheel.png +0 -0
- package/src/img/controls/overlay-opacity-50.png +0 -0
- package/src/img/third_party/ChromeWebStore_black.png +0 -0
- package/src/img/third_party/ChromeWebStore_white.png +0 -0
- package/src/js/accordion.js +0 -10
- package/src/js/autocomplete.js +0 -241
- package/src/js/autocomplete.min.js +0 -3
- package/src/js/bootstrap-scrollspy.js +0 -172
- package/src/js/chosen.jquery.js +0 -1356
- package/src/js/colorpicker.js +0 -32
- package/src/js/download.js +0 -128
- package/src/js/farbtastic.js +0 -345
- package/src/js/swiper.min.js +0 -18
- package/src/react-quickaccess/components/Internationalisation/TranslationProvider.js +0 -151
- package/storybook-static/favicon.ico +0 -0
- package/storybook-static/iframe.html +0 -133
- package/storybook-static/index.html +0 -47
- package/storybook-static/main.2d01924b12554c6c15af.bundle.js +0 -1
- package/storybook-static/main.b0c44c8759149ccf4f67.bundle.js +0 -3
- package/storybook-static/main.b0c44c8759149ccf4f67.bundle.js.LICENSE.txt +0 -153
- package/storybook-static/main.b0c44c8759149ccf4f67.bundle.js.map +0 -1
- package/storybook-static/runtime~main.6a9b04192e3176eff72a.bundle.js +0 -1
- package/storybook-static/runtime~main.b0c44c8759149ccf4f67.bundle.js +0 -2
- package/storybook-static/runtime~main.b0c44c8759149ccf4f67.bundle.js.map +0 -1
- package/storybook-static/static/media/chosen-sprite.6768c197.png +0 -0
- package/storybook-static/static/media/chosen-sprite@2x.a0b7f3f1.png +0 -0
- package/storybook-static/static/media/dot_black.a2c44078.svg +0 -6
- package/storybook-static/static/media/dot_red.7b34541d.svg +0 -6
- package/storybook-static/static/media/dot_white.f60f7331.svg +0 -6
- package/storybook-static/static/media/fontawesome-webfont.1e59d233.ttf +0 -0
- package/storybook-static/static/media/fontawesome-webfont.20fd1704.woff2 +0 -0
- package/storybook-static/static/media/fontawesome-webfont.8b43027f.eot +0 -0
- package/storybook-static/static/media/fontawesome-webfont.c1e38fd9.svg +0 -2671
- package/storybook-static/static/media/fontawesome-webfont.f691f37e.woff +0 -0
- package/storybook-static/static/media/infinite-bar.f5327dc3.gif +0 -0
- package/storybook-static/static/media/loading_dark.ea474c7f.svg +0 -21
- package/storybook-static/static/media/loading_light.061977b5.svg +0 -15
- package/storybook-static/static/media/logo.e2b062a5.svg +0 -1
- package/storybook-static/static/media/logo_white.cb32e694.svg +0 -1
- package/storybook-static/static/media/opensans-bold.a6b4768c.woff +0 -0
- package/storybook-static/static/media/opensans-regular.7812bd0b.woff +0 -0
- package/storybook-static/static/media/passphrase_intro.37a1ba4e.png +0 -0
- package/storybook-static/vendors~main.4abf29e4f956d5befb41.bundle.js +0 -2
- package/storybook-static/vendors~main.4abf29e4f956d5befb41.bundle.js.LICENSE.txt +0 -105
- package/storybook-static/vendors~main.b0c44c8759149ccf4f67.bundle.js +0 -3
- package/storybook-static/vendors~main.b0c44c8759149ccf4f67.bundle.js.LICENSE.txt +0 -145
- package/storybook-static/vendors~main.b0c44c8759149ccf4f67.bundle.js.map +0 -1
- package/webpack-api.config.js +0 -83
- package/webpack-ext.config.js +0 -84
|
@@ -125,12 +125,12 @@ class DisplayChangePassphraseIntroduction extends React.Component {
|
|
|
125
125
|
return (
|
|
126
126
|
<div className="grid grid-responsive-12 profile-passphrase">
|
|
127
127
|
<div className="row">
|
|
128
|
-
<div className="
|
|
128
|
+
<div className="col7">
|
|
129
129
|
<form onSubmit={this.handleSubmit}>
|
|
130
130
|
<h3><Trans>Before getting started...</Trans></h3>
|
|
131
131
|
<div className="password-management-bg">
|
|
132
132
|
</div>
|
|
133
|
-
<p><Trans>The passphrase is stored on your device and never sent server side.</Trans
|
|
133
|
+
<p><Trans>The passphrase is stored on your device and never sent server side.</Trans>
|
|
134
134
|
<Trans>Changing your passphrase will only change it locally.</Trans>
|
|
135
135
|
<Trans>If you have multiple browsers configured, the passphrase will need to be changed in all places individually.</Trans>
|
|
136
136
|
</p>
|
|
@@ -140,19 +140,21 @@ class DisplayChangePassphraseIntroduction extends React.Component {
|
|
|
140
140
|
<label htmlFor="passphrase-update-understand"> <Trans>Ok, I understand what I need to do.</Trans></label>
|
|
141
141
|
</div>
|
|
142
142
|
<div className="submit-wrapper">
|
|
143
|
-
<button className="button
|
|
143
|
+
<button className="button primary medium submit" type="submit" disabled={this.hasAllInputDisabled()}>
|
|
144
144
|
<Trans>Start</Trans>
|
|
145
145
|
</button>
|
|
146
146
|
</div>
|
|
147
147
|
</form>
|
|
148
148
|
</div>
|
|
149
|
-
<div className="col4 last
|
|
150
|
-
<
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
<
|
|
155
|
-
|
|
149
|
+
<div className="col4 last">
|
|
150
|
+
<div className="sidebar-help">
|
|
151
|
+
<h3><Trans>What is the role of the passphrase?</Trans></h3>
|
|
152
|
+
<p><Trans>The passphrase is used to encrypt your secret key, which is required to decrypt your secrets, such as the passwords.</Trans></p>
|
|
153
|
+
<p><Trans>Without the private key and the passphrase it is not possible to decrypt!</Trans></p>
|
|
154
|
+
<a className="button" href="https://help.passbolt.com/tech/auth.html" target="_blank" rel="noopener noreferrer">
|
|
155
|
+
<span><Trans>Learn more</Trans></span>
|
|
156
|
+
</a>
|
|
157
|
+
</div>
|
|
156
158
|
</div>
|
|
157
159
|
</div>
|
|
158
160
|
</div>
|
package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DownloadRecoveryKit.js
CHANGED
|
@@ -17,6 +17,7 @@ import React from 'react';
|
|
|
17
17
|
import PropTypes from "prop-types";
|
|
18
18
|
import {withUserSettings} from "../../../contexts/UserSettingsContext";
|
|
19
19
|
import {Trans, withTranslation} from "react-i18next";
|
|
20
|
+
import AnimatedFeedback from "../../Common/Icons/AnimatedFeedback";
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* This component displays the user profile information
|
|
@@ -58,20 +59,13 @@ class DownloadRecoveryKit extends React.Component {
|
|
|
58
59
|
<div className="row">
|
|
59
60
|
<div className="col7 last">
|
|
60
61
|
<h3><Trans>The passphrase was updated!</Trans></h3>
|
|
61
|
-
<div className="
|
|
62
|
-
<
|
|
63
|
-
<svg id="successAnimation" className="animated" xmlns="http://www.w3.org/2000/svg" width="170" height="170" viewBox="0 0 70 70">
|
|
64
|
-
<circle id="successAnimationCircle" cx="35" cy="35" r="24" stroke="#000000" strokeWidth="3"
|
|
65
|
-
strokeLinecap="round" fill="transparent"/>
|
|
66
|
-
<polyline id="successAnimationCheck" stroke="#000000" strokeWidth="3" points="23 34 34 43 47 27"
|
|
67
|
-
linecap="round" fill="transparent"/>
|
|
68
|
-
</svg>
|
|
69
|
-
</div>
|
|
62
|
+
<div className="feedback-card">
|
|
63
|
+
<AnimatedFeedback name='success' />
|
|
70
64
|
<div className="additional-information">
|
|
71
65
|
<p><Trans>Your passphrase has been changed. Make sure you keep a backup of your secret key encrypted with this new passphrase.</Trans></p>
|
|
72
66
|
<p><Trans>Keep this backup in a safe place, you will need it in case of emergency.</Trans></p>
|
|
73
67
|
<p>
|
|
74
|
-
<a className="button
|
|
68
|
+
<a className="button primary medium" role="button" onClick={this.handleDownloadBackup}><Trans>Download backup</Trans></a>
|
|
75
69
|
</p>
|
|
76
70
|
</div>
|
|
77
71
|
</div>
|
package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js
CHANGED
|
@@ -24,6 +24,7 @@ import debounce from "debounce-promise";
|
|
|
24
24
|
import SecurityComplexity from "../../../../shared/lib/Secret/SecretComplexity";
|
|
25
25
|
import SecretComplexity from "../../../../shared/lib/Secret/SecretComplexity";
|
|
26
26
|
import {Trans, withTranslation} from "react-i18next";
|
|
27
|
+
import {withAppContext} from "../../../contexts/AppContext";
|
|
27
28
|
|
|
28
29
|
/**
|
|
29
30
|
* This component displays the user choose passphrase information
|
|
@@ -102,6 +103,8 @@ class EnterNewPassphrase extends React.Component {
|
|
|
102
103
|
bindEventHandlers() {
|
|
103
104
|
this.handlePassphraseChange = this.handlePassphraseChange.bind(this);
|
|
104
105
|
this.handleToggleObfuscate = this.handleToggleObfuscate.bind(this);
|
|
106
|
+
this.handleFocusPassphrase = this.handleFocusPassphrase.bind(this);
|
|
107
|
+
this.handleBlurPassphrase = this.handleBlurPassphrase.bind(this);
|
|
105
108
|
this.handleCancel = this.handleCancel.bind(this);
|
|
106
109
|
this.handleSubmit = this.handleSubmit.bind(this);
|
|
107
110
|
}
|
|
@@ -180,6 +183,48 @@ class EnterNewPassphrase extends React.Component {
|
|
|
180
183
|
};
|
|
181
184
|
}
|
|
182
185
|
|
|
186
|
+
/**
|
|
187
|
+
* Returns the security token code of the suer
|
|
188
|
+
*/
|
|
189
|
+
get securityTokenCode() {
|
|
190
|
+
return this.props.context.userSettings.getSecurityTokenCode();
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Returns the style of the security token (color and text color)
|
|
195
|
+
*/
|
|
196
|
+
get securityTokenStyle() {
|
|
197
|
+
const {userSettings} = this.props.context;
|
|
198
|
+
const inverseStyle = {background: userSettings.getSecurityTokenTextColor(), color: userSettings.getSecurityTokenBackgroundColor()};
|
|
199
|
+
const fullStyle = {background: userSettings.getSecurityTokenBackgroundColor(), color: userSettings.getSecurityTokenTextColor()};
|
|
200
|
+
return this.state.hasPassphraseFocus ? inverseStyle : fullStyle;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Get the passphrase input style.
|
|
205
|
+
* @return {Object}
|
|
206
|
+
*/
|
|
207
|
+
get passphraseInputStyle() {
|
|
208
|
+
const {userSettings} = this.props.context;
|
|
209
|
+
const emptyStyle = {background: "", color: ""};
|
|
210
|
+
const fullStyle = {background: userSettings.getSecurityTokenBackgroundColor(), color: userSettings.getSecurityTokenTextColor()};
|
|
211
|
+
return this.state.hasPassphraseFocus ? fullStyle : emptyStyle;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Whenever the user focus on the passphrase input
|
|
216
|
+
*/
|
|
217
|
+
handleFocusPassphrase() {
|
|
218
|
+
this.setState({hasPassphraseFocus: true});
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Whenever the user blurs on the passphrase input
|
|
223
|
+
*/
|
|
224
|
+
handleBlurPassphrase() {
|
|
225
|
+
this.setState({hasPassphraseFocus: false});
|
|
226
|
+
}
|
|
227
|
+
|
|
183
228
|
/**
|
|
184
229
|
* Evaluate if the passphrase is in dictionary
|
|
185
230
|
* @param passphrase The passphrase to evaluate
|
|
@@ -244,30 +289,23 @@ class EnterNewPassphrase extends React.Component {
|
|
|
244
289
|
return (
|
|
245
290
|
<div className="grid grid-responsive-12 profile-passphrase">
|
|
246
291
|
<div className="row">
|
|
247
|
-
<div className="
|
|
292
|
+
<div className="col7">
|
|
248
293
|
<form className="enter-passphrase" onSubmit={this.handleSubmit}>
|
|
249
294
|
<h3><Trans>Please enter a new passphrase</Trans></h3>
|
|
250
295
|
<div className="form-content">
|
|
251
296
|
<div className="input text password required">
|
|
252
|
-
{this.state.isObfuscated &&
|
|
253
297
|
<input
|
|
254
298
|
id="passphrase-input"
|
|
255
|
-
type="password"
|
|
299
|
+
type={this.state.isObfuscated ? "password" : "text"}
|
|
256
300
|
ref={this.passphraseInput}
|
|
257
301
|
value={this.state.passphrase}
|
|
302
|
+
style={this.passphraseInputStyle}
|
|
258
303
|
onChange={this.handlePassphraseChange}
|
|
304
|
+
onFocus={this.handleFocusPassphrase}
|
|
305
|
+
onBlur={this.handleBlurPassphrase}
|
|
259
306
|
disabled={!this.areActionsAllowed}
|
|
260
|
-
autoFocus={true}
|
|
261
|
-
|
|
262
|
-
{!this.state.isObfuscated &&
|
|
263
|
-
<input
|
|
264
|
-
id="passphrase-input"
|
|
265
|
-
type="text"
|
|
266
|
-
ref={this.passphraseInput}
|
|
267
|
-
value={this.state.passphrase}
|
|
268
|
-
onChange={this.handlePassphraseChange}
|
|
269
|
-
disabled={!this.areActionsAllowed}/>
|
|
270
|
-
}
|
|
307
|
+
autoFocus={true}
|
|
308
|
+
autoComplete="off"/>
|
|
271
309
|
<a
|
|
272
310
|
className={`password-view button-icon button button-toggle ${this.state.isObfuscated ? "" : "selected"}`}
|
|
273
311
|
role="button"
|
|
@@ -275,13 +313,15 @@ class EnterNewPassphrase extends React.Component {
|
|
|
275
313
|
<Icon name="eye-open"/>
|
|
276
314
|
<span className="visually-hidden">view</span>
|
|
277
315
|
</a>
|
|
316
|
+
<span className="security-token" style={this.securityTokenStyle}>
|
|
317
|
+
{this.securityTokenCode}
|
|
318
|
+
</span>
|
|
278
319
|
<div className="password-complexity">
|
|
279
320
|
<span className="progress">
|
|
280
321
|
<span className={`progress-bar ${this.state.passphraseStrength.id}`}/>
|
|
281
322
|
</span>
|
|
282
323
|
</div>
|
|
283
324
|
</div>
|
|
284
|
-
|
|
285
325
|
<div className="password-hints">
|
|
286
326
|
<ul>
|
|
287
327
|
<li className={this.state.hintClassNames.enoughLength}>
|
|
@@ -303,20 +343,19 @@ class EnterNewPassphrase extends React.Component {
|
|
|
303
343
|
</div>
|
|
304
344
|
</div>
|
|
305
345
|
<div className="submit-wrapper">
|
|
306
|
-
<button className="button
|
|
346
|
+
<button className="button cancel medium" type="button" disabled={!this.areActionsAllowed} onClick={this.handleCancel}>
|
|
307
347
|
<Trans>Cancel</Trans>
|
|
308
348
|
</button>
|
|
309
|
-
<FormSubmitButton
|
|
349
|
+
<FormSubmitButton primary={true} medium={true} disabled={this.mustBeDisabled} processing={this.isProcessing} value={this.translate('Update')}/>
|
|
310
350
|
</div>
|
|
311
351
|
</form>
|
|
312
352
|
</div>
|
|
313
|
-
<div className="col4 last
|
|
314
|
-
<
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
</a>
|
|
353
|
+
<div className="col4 last">
|
|
354
|
+
<div className="sidebar-help">
|
|
355
|
+
<h3><Trans>Tips for choosing a good passphrase</Trans></h3>
|
|
356
|
+
<p><Trans>Make sure your passphrase is hard to guess but also that is long enough. For example you can use your favorite lyric from a song,
|
|
357
|
+
grab the first couple of characters from the words in your favorite line.</Trans></p>
|
|
358
|
+
</div>
|
|
320
359
|
</div>
|
|
321
360
|
</div>
|
|
322
361
|
</div>
|
|
@@ -325,9 +364,10 @@ class EnterNewPassphrase extends React.Component {
|
|
|
325
364
|
}
|
|
326
365
|
|
|
327
366
|
EnterNewPassphrase.propTypes = {
|
|
367
|
+
context: PropTypes.any, // The application context
|
|
328
368
|
userSettingsContext: PropTypes.object, // The user settings context
|
|
329
369
|
dialogContext: PropTypes.any, // The dialog context
|
|
330
370
|
t: PropTypes.func, // The translation function
|
|
331
371
|
};
|
|
332
372
|
|
|
333
|
-
export default withDialog(withUserSettings(withTranslation('common')(EnterNewPassphrase)));
|
|
373
|
+
export default withAppContext(withDialog(withUserSettings(withTranslation('common')(EnterNewPassphrase))));
|
|
@@ -2,8 +2,14 @@
|
|
|
2
2
|
* Default props
|
|
3
3
|
* @returns {object}
|
|
4
4
|
*/
|
|
5
|
+
import UserSettings from "../../../../shared/lib/Settings/UserSettings";
|
|
6
|
+
import userSettingsFixture from "../../../test/fixture/Settings/userSettings";
|
|
7
|
+
|
|
5
8
|
export function defaultProps() {
|
|
6
9
|
const props = {
|
|
10
|
+
context: {
|
|
11
|
+
userSettings: new UserSettings(userSettingsFixture)
|
|
12
|
+
},
|
|
7
13
|
userSettingsContext: {
|
|
8
14
|
onUpdatePassphraseRequested: jest.fn(),
|
|
9
15
|
onGoToIntroductionPassphraseRequested: jest.fn(),
|
package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js
CHANGED
|
@@ -146,7 +146,7 @@ describe("As LU I should see the user confirm passphrase page", () => {
|
|
|
146
146
|
|
|
147
147
|
it('As LU I should see an error dialog if there is an api error', async() => {
|
|
148
148
|
expect(page.updateButton.getAttribute("disabled")).not.toBeNull();
|
|
149
|
-
expect(page.updateButton.className).toBe('button primary disabled
|
|
149
|
+
expect(page.updateButton.className).toBe('button primary disabled medium');
|
|
150
150
|
|
|
151
151
|
// Fill the form
|
|
152
152
|
page.insertPassphrase("passphrase");
|
|
@@ -62,7 +62,7 @@ export default class EnterNewPassphrasePage {
|
|
|
62
62
|
* Returns the passphrase error message element
|
|
63
63
|
*/
|
|
64
64
|
get passphraseErrorMessage() {
|
|
65
|
-
return this._page.container.querySelector('.message
|
|
65
|
+
return this._page.container.querySelector('.error-message').innerHTML;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
/**
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import React, {Component} from "react";
|
|
15
15
|
import {CirclePicker} from "react-color";
|
|
16
|
-
import Icon from "../../Common/Icons/Icon";
|
|
17
16
|
import NotifyError from "../../Common/Error/NotifyError/NotifyError";
|
|
18
17
|
import {withDialog} from "../../../contexts/DialogContext";
|
|
19
18
|
import PropTypes from "prop-types";
|
|
@@ -320,7 +319,7 @@ class ChangeUserSecurityToken extends Component {
|
|
|
320
319
|
return (
|
|
321
320
|
<div className="grid grid-responsive-12 profile-choose-security-token">
|
|
322
321
|
<div className="row">
|
|
323
|
-
<div className="
|
|
322
|
+
<div className="col7">
|
|
324
323
|
<form onSubmit={this.handleSubmit}>
|
|
325
324
|
<h3><Trans>Update the Security Token</Trans></h3>
|
|
326
325
|
<div className={`input-security-token input required ${this.hasErrors ? "error" : ""}`}>
|
|
@@ -351,36 +350,38 @@ class ChangeUserSecurityToken extends Component {
|
|
|
351
350
|
className={`randomize-button ${this.isProcessing ? "disabled" : ""}`}
|
|
352
351
|
role="button"
|
|
353
352
|
onClick={this.handleRandomize}>
|
|
354
|
-
<
|
|
353
|
+
<Trans>Randomize</Trans>
|
|
355
354
|
</a>
|
|
356
355
|
</div>
|
|
357
356
|
</div>
|
|
358
357
|
{this.state.hasBeenValidated &&
|
|
359
358
|
<div className="input text">
|
|
360
359
|
{this.state.errors.emptyCode &&
|
|
361
|
-
<div className="empty-code message
|
|
360
|
+
<div className="empty-code error-message"><Trans>The security token code should not be empty.</Trans>
|
|
362
361
|
</div>
|
|
363
362
|
}
|
|
364
363
|
{this.state.errors.lengthCode &&
|
|
365
|
-
<div className="not-good-length-code message
|
|
364
|
+
<div className="not-good-length-code error-message"><Trans>The security token code should be 3
|
|
366
365
|
characters long.</Trans></div>
|
|
367
366
|
}
|
|
368
367
|
</div>
|
|
369
368
|
}
|
|
370
369
|
<div className="submit-wrapper">
|
|
371
|
-
<button className={`button
|
|
370
|
+
<button className={`button primary medium ${processingClassName}`} type="submit" disabled={this.isProcessing}>
|
|
372
371
|
<Trans>Save</Trans>
|
|
373
372
|
</button>
|
|
374
373
|
</div>
|
|
375
374
|
</form>
|
|
376
375
|
</div>
|
|
377
|
-
<div className="col4 last">
|
|
378
|
-
<
|
|
379
|
-
|
|
380
|
-
<
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
376
|
+
<div className="col4 last ">
|
|
377
|
+
<div className="sidebar-help">
|
|
378
|
+
<h3><Trans>Why is this token needed?</Trans></h3>
|
|
379
|
+
<p>
|
|
380
|
+
<Trans>This security token will be displayed when your passphrase is requested,
|
|
381
|
+
so you can verify quickly the form is coming from passbolt.</Trans>
|
|
382
|
+
<Trans>This will help protect you from phishing attacks</Trans>
|
|
383
|
+
</p>
|
|
384
|
+
</div>
|
|
384
385
|
</div>
|
|
385
386
|
</div>
|
|
386
387
|
</div>
|
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import ChangeUserSecurityToken from "./ChangeUserSecurityToken";
|
|
7
6
|
|
|
8
7
|
|
|
@@ -20,13 +19,11 @@ const context = {
|
|
|
20
19
|
|
|
21
20
|
|
|
22
21
|
const Template = args =>
|
|
23
|
-
<
|
|
24
|
-
<
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
</AppContext.Provider>
|
|
29
|
-
</MockTranslationProvider>;
|
|
22
|
+
<AppContext.Provider value={context}>
|
|
23
|
+
<MemoryRouter initialEntries={['/']}>
|
|
24
|
+
<Route component={routerProps => <ChangeUserSecurityToken {...args} {...routerProps}/>}></Route>
|
|
25
|
+
</MemoryRouter>
|
|
26
|
+
</AppContext.Provider>;
|
|
30
27
|
|
|
31
28
|
Template.propTypes = {
|
|
32
29
|
context: PropTypes.object,
|
|
@@ -94,13 +94,14 @@ class DisplayUserGpgInformation extends React.Component {
|
|
|
94
94
|
// format the gpgkey info.
|
|
95
95
|
const keyId = gpgkeyInfo.keyId;
|
|
96
96
|
const type = this.gpgkeyType[gpgkeyInfo.algorithm];
|
|
97
|
+
const uIds = gpgkeyInfo.userIds;
|
|
97
98
|
const created = this.formatDate(gpgkeyInfo.created);
|
|
98
99
|
const expires = gpgkeyInfo.expires === "Never" ? "Never" : this.formatDate(gpgkeyInfo.expires);
|
|
99
100
|
const armoredKey = gpgkeyInfo.key;
|
|
100
101
|
const fingerprint = gpgkeyInfo.fingerprint;
|
|
101
102
|
const length = gpgkeyInfo.length;
|
|
102
103
|
|
|
103
|
-
return {keyId, type, created, expires, armoredKey, fingerprint, length};
|
|
104
|
+
return {keyId, type, uIds, created, expires, armoredKey, fingerprint, length};
|
|
104
105
|
}
|
|
105
106
|
|
|
106
107
|
/**
|
|
@@ -154,11 +155,25 @@ class DisplayUserGpgInformation extends React.Component {
|
|
|
154
155
|
}
|
|
155
156
|
|
|
156
157
|
/**
|
|
157
|
-
* Get
|
|
158
|
+
* Get fingerprint
|
|
159
|
+
* @returns {JSX.Element}
|
|
160
|
+
*/
|
|
161
|
+
get fingerprint() {
|
|
162
|
+
let fingerprint = this.gpgKeyInfo.fingerprint;
|
|
163
|
+
if (fingerprint) {
|
|
164
|
+
fingerprint = fingerprint.toUpperCase().replace(/.{4}(?=.)/g, '$& ');
|
|
165
|
+
fingerprint = <>{fingerprint.substr(0, 24)}<br/>{fingerprint.substr(25)}</>;
|
|
166
|
+
}
|
|
167
|
+
return fingerprint;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Get the first uID of the GPG key
|
|
158
172
|
* @returns {string}
|
|
159
173
|
*/
|
|
160
|
-
get
|
|
161
|
-
|
|
174
|
+
get uId() {
|
|
175
|
+
const uId = this.gpgKeyInfo.uIds && this.gpgKeyInfo.uIds[0];
|
|
176
|
+
return uId ? `${uId.name} <${uId.email}>` : "";
|
|
162
177
|
}
|
|
163
178
|
|
|
164
179
|
/**
|
|
@@ -198,11 +213,11 @@ class DisplayUserGpgInformation extends React.Component {
|
|
|
198
213
|
</tr>
|
|
199
214
|
<tr>
|
|
200
215
|
<td><Trans>Uid</Trans></td>
|
|
201
|
-
<td className="uid">{this.
|
|
216
|
+
<td className="uid">{this.uId}</td>
|
|
202
217
|
</tr>
|
|
203
218
|
<tr>
|
|
204
219
|
<td><Trans>Fingerprint</Trans></td>
|
|
205
|
-
<td className="fingerprint">{this.
|
|
220
|
+
<td className="fingerprint">{this.fingerprint}</td>
|
|
206
221
|
</tr>
|
|
207
222
|
<tr>
|
|
208
223
|
<td><Trans>Created</Trans></td>
|
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import DisplayUserGpgInformation from "./DisplayUserGpgInformation";
|
|
7
6
|
|
|
8
7
|
|
|
@@ -47,13 +46,11 @@ const context = {
|
|
|
47
46
|
|
|
48
47
|
|
|
49
48
|
const Template = args =>
|
|
50
|
-
<
|
|
51
|
-
<
|
|
52
|
-
<
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
</AppContext.Provider>
|
|
56
|
-
</MockTranslationProvider>;
|
|
49
|
+
<AppContext.Provider value={context}>
|
|
50
|
+
<MemoryRouter initialEntries={['/']}>
|
|
51
|
+
<Route component={routerProps => <DisplayUserGpgInformation {...args} {...routerProps}/>}></Route>
|
|
52
|
+
</MemoryRouter>
|
|
53
|
+
</AppContext.Provider>;
|
|
57
54
|
|
|
58
55
|
Template.propTypes = {
|
|
59
56
|
context: PropTypes.object,
|
|
@@ -127,7 +127,7 @@ class DisplayUserProfile extends React.Component {
|
|
|
127
127
|
</table>
|
|
128
128
|
{this.canIUseLocale &&
|
|
129
129
|
<>
|
|
130
|
-
<h3><Trans>
|
|
130
|
+
<h3><Trans>Internationalisation</Trans></h3>
|
|
131
131
|
<table className="table-info profile">
|
|
132
132
|
<tbody>
|
|
133
133
|
<tr className="locale">
|
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import DisplayUserProfile from "./DisplayUserProfile";
|
|
7
6
|
|
|
8
7
|
|
|
@@ -50,13 +49,11 @@ const context = {
|
|
|
50
49
|
|
|
51
50
|
|
|
52
51
|
const Template = args =>
|
|
53
|
-
<
|
|
54
|
-
<
|
|
55
|
-
<
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
</AppContext.Provider>
|
|
59
|
-
</MockTranslationProvider>;
|
|
52
|
+
<AppContext.Provider value={context}>
|
|
53
|
+
<MemoryRouter initialEntries={['/']}>
|
|
54
|
+
<Route component={routerProps => <DisplayUserProfile {...args} {...routerProps}/>}></Route>
|
|
55
|
+
</MemoryRouter>
|
|
56
|
+
</AppContext.Provider>;
|
|
60
57
|
|
|
61
58
|
Template.propTypes = {
|
|
62
59
|
context: PropTypes.object,
|
|
@@ -30,6 +30,7 @@ import DisplayUserGpgInformation from "../DisplayUserGpgInformation/DisplayUserG
|
|
|
30
30
|
import SearchBar from "../../Common/Navigation/Search/SearchBar";
|
|
31
31
|
import DisplayUserPassphrase from "../ChangeUserPassphrase/ChangeUserPassphrase";
|
|
32
32
|
import DisplayUserChooseSecurityToken from "../ChangeUserSecurityToken/ChangeUserSecurityToken";
|
|
33
|
+
import TransferToMobile from "../TransferToMobile/TransferToMobile";
|
|
33
34
|
|
|
34
35
|
/**
|
|
35
36
|
* This component is a container for all the user settings workspace features
|
|
@@ -43,6 +44,14 @@ class DisplayUserSettingsWorkspace extends React.Component {
|
|
|
43
44
|
return this.props.context.siteSettings && this.props.context.siteSettings.canIUse('accountSettings');
|
|
44
45
|
}
|
|
45
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Can the user access the mobile transfer capability.
|
|
49
|
+
* @returns {bool}
|
|
50
|
+
*/
|
|
51
|
+
get canIUseMobileTransferCapability() {
|
|
52
|
+
return this.props.context.siteSettings && this.props.context.siteSettings.canIUse('mobile');
|
|
53
|
+
}
|
|
54
|
+
|
|
46
55
|
/**
|
|
47
56
|
* Render the component
|
|
48
57
|
* @return {JSX}
|
|
@@ -71,7 +80,10 @@ class DisplayUserSettingsWorkspace extends React.Component {
|
|
|
71
80
|
{this.canIUseThemeCapability &&
|
|
72
81
|
<Route path={`${path}/theme`} component={DisplayUserTheme}/>
|
|
73
82
|
}
|
|
74
|
-
|
|
83
|
+
{this.canIUseMobileTransferCapability &&
|
|
84
|
+
<Route path={`${path}/mobile`} component={TransferToMobile}></Route>
|
|
85
|
+
}
|
|
86
|
+
<Route path={`${path}/keys`} component={DisplayUserGpgInformation}></Route>
|
|
75
87
|
</div>
|
|
76
88
|
</div>
|
|
77
89
|
</div>
|
|
@@ -56,7 +56,8 @@ class DisplayUserSettingsWorkspaceBreadcrumb extends Component {
|
|
|
56
56
|
'security-token': this.translate("Security Token"),
|
|
57
57
|
theme: this.translate("Theme"),
|
|
58
58
|
mfa: this.translate("Multi Factor Authentication"),
|
|
59
|
-
keys: this.translate("Keys inspector")
|
|
59
|
+
keys: this.translate("Keys inspector"),
|
|
60
|
+
mobile: this.translate("Mobile transfer")
|
|
60
61
|
};
|
|
61
62
|
const matchedKey = Object.keys(names).find(matchPathSuffix);
|
|
62
63
|
return names[matchedKey];
|
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import DisplayUserSettingsWorkspaceBreadcrumb from "./DisplayUserSettingsWorkspaceBreadcrumb";
|
|
7
6
|
|
|
8
7
|
|
|
@@ -44,13 +43,11 @@ const context = {
|
|
|
44
43
|
|
|
45
44
|
|
|
46
45
|
const Template = args =>
|
|
47
|
-
<
|
|
48
|
-
<
|
|
49
|
-
<
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
</AppContext.Provider>
|
|
53
|
-
</MockTranslationProvider>;
|
|
46
|
+
<AppContext.Provider value={context}>
|
|
47
|
+
<MemoryRouter initialEntries={['/profile']}>
|
|
48
|
+
<Route component={routerProps => <DisplayUserSettingsWorkspaceBreadcrumb {...args} {...routerProps}/>}></Route>
|
|
49
|
+
</MemoryRouter>
|
|
50
|
+
</AppContext.Provider>;
|
|
54
51
|
|
|
55
52
|
Template.propTypes = {
|
|
56
53
|
context: PropTypes.object,
|
package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js
CHANGED
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import DisplayUserTheme from "./DisplayUserTheme";
|
|
7
6
|
|
|
8
7
|
|
|
@@ -31,13 +30,11 @@ const context = {
|
|
|
31
30
|
|
|
32
31
|
|
|
33
32
|
const Template = args =>
|
|
34
|
-
<
|
|
35
|
-
<
|
|
36
|
-
<
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
</AppContext.Provider>
|
|
40
|
-
</MockTranslationProvider>;
|
|
33
|
+
<AppContext.Provider value={context}>
|
|
34
|
+
<MemoryRouter initialEntries={['/']}>
|
|
35
|
+
<Route component={routerProps => <DisplayUserTheme {...args} {...routerProps}/>}></Route>
|
|
36
|
+
</MemoryRouter>
|
|
37
|
+
</AppContext.Provider>;
|
|
41
38
|
|
|
42
39
|
Template.propTypes = {
|
|
43
40
|
context: PropTypes.object,
|
|
@@ -316,7 +316,7 @@ class EditUserProfile extends Component {
|
|
|
316
316
|
onChange={this.handleInputChange}
|
|
317
317
|
disabled={!this.areActionsAllowed}/>
|
|
318
318
|
{this.state.errors.isFirstnameEmpty &&
|
|
319
|
-
<div className="first_name error
|
|
319
|
+
<div className="first_name error-message">
|
|
320
320
|
<Trans>A first name is required.</Trans>
|
|
321
321
|
</div>
|
|
322
322
|
}
|
|
@@ -336,7 +336,7 @@ class EditUserProfile extends Component {
|
|
|
336
336
|
onChange={this.handleInputChange}
|
|
337
337
|
disabled={!this.areActionsAllowed}/>
|
|
338
338
|
{this.state.errors.isLastnameEmpty &&
|
|
339
|
-
<div className="last_name error
|
|
339
|
+
<div className="last_name error-message">
|
|
340
340
|
<Trans>A last name is required.</Trans>
|
|
341
341
|
</div>
|
|
342
342
|
}
|
|
@@ -355,7 +355,7 @@ class EditUserProfile extends Component {
|
|
|
355
355
|
{this.canIUseLocale &&
|
|
356
356
|
<div className="input select locale required">
|
|
357
357
|
<label htmlFor="user-profile-locale-input"><Trans>Language</Trans></label>
|
|
358
|
-
<select
|
|
358
|
+
<select id="user-profile-locale-input" name="locale" value={this.state.profile.locale}
|
|
359
359
|
disabled={!this.areActionsAllowed} onChange={this.handleInputChange}>
|
|
360
360
|
{this.supportedLocales.map(supportedLocale =>
|
|
361
361
|
<option key={supportedLocale.locale} value={supportedLocale.locale}>
|