@strapi/admin 4.7.0-beta.0 → 4.7.0-exp.117579f4c13806c2cd518e7d7d2f9d0c8a20107d
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/admin/src/StrapiApp.js +1 -1
- package/admin/src/components/AutoReloadOverlayBlockerProvider/Blocker.js +3 -7
- package/admin/src/components/AutoReloadOverlayBlockerProvider/Overlay.js +1 -2
- package/admin/src/components/GuidedTour/Homepage/components/Step.js +1 -3
- package/admin/src/components/GuidedTour/Homepage/components/Stepper.js +1 -1
- package/admin/src/components/GuidedTour/Homepage/index.js +2 -6
- package/admin/src/components/GuidedTour/Modal/components/Content.js +1 -3
- package/admin/src/components/GuidedTour/Modal/components/Modal.js +2 -8
- package/admin/src/components/GuidedTour/Modal/components/StepNumberWithPadding.js +1 -1
- package/admin/src/components/GuidedTour/Modal/components/Stepper.js +2 -5
- package/admin/src/components/GuidedTour/Stepper/StepLine.js +1 -1
- package/admin/src/components/GuidedTour/Stepper/StepNumber.js +2 -4
- package/admin/src/components/LeftMenu/index.js +3 -8
- package/admin/src/components/Notifications/Notification/index.js +2 -2
- package/admin/src/components/Notifications/index.js +1 -1
- package/admin/src/components/Theme/index.js +1 -1
- package/admin/src/components/UpgradePlanModal/index.js +3 -10
- package/admin/src/content-manager/components/AttributeFilter/Filters.js +2 -3
- package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +4 -14
- package/admin/src/content-manager/components/ComponentInitializer/index.js +2 -5
- package/admin/src/content-manager/components/DynamicTable/CellContent/Media/FileWrapper.js +1 -2
- package/admin/src/content-manager/components/DynamicTable/CellContent/Media/index.js +3 -3
- package/admin/src/content-manager/components/DynamicTable/CellContent/MultipleMedias.js +1 -1
- package/admin/src/content-manager/components/DynamicTable/CellContent/RelationMultiple/index.js +15 -12
- package/admin/src/content-manager/components/DynamicTable/CellContent/RelationSingle/index.js +1 -1
- package/admin/src/content-manager/components/DynamicTable/CellContent/RepeatableComponent/index.js +1 -4
- package/admin/src/content-manager/components/DynamicTable/CellContent/SingleComponent/index.js +1 -2
- package/admin/src/content-manager/components/DynamicTable/CellContent/index.js +1 -2
- package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDelete/index.js +10 -7
- package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDeleteAll/index.js +10 -7
- package/admin/src/content-manager/components/DynamicTable/TableRows/index.js +3 -9
- package/admin/src/content-manager/components/DynamicTable/index.js +1 -2
- package/admin/src/content-manager/components/DynamicZone/components/AddComponentButton.js +2 -5
- package/admin/src/content-manager/components/DynamicZone/components/ComponentCard.js +1 -3
- package/admin/src/content-manager/components/DynamicZone/components/ComponentCategory.js +1 -2
- package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker.js +1 -4
- package/admin/src/content-manager/components/DynamicZone/components/DynamicZoneLabel.js +1 -3
- package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +39 -9
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/cleanData.js +9 -15
- package/admin/src/content-manager/components/FieldComponent/Label.js +1 -3
- package/admin/src/content-manager/components/FieldComponent/index.js +2 -5
- package/admin/src/content-manager/components/FieldTypeIcon/index.js +15 -13
- package/admin/src/content-manager/components/Hint/index.js +1 -1
- package/admin/src/content-manager/components/InjectionZoneList/index.js +1 -1
- package/admin/src/content-manager/components/InputUID/endActionStyle.js +1 -3
- package/admin/src/content-manager/components/InputUID/index.js +2 -6
- package/admin/src/content-manager/components/NonRepeatableComponent/index.js +1 -3
- package/admin/src/content-manager/components/RelationInput/RelationInput.js +16 -12
- package/admin/src/content-manager/components/RelationInput/components/Option.js +1 -2
- package/admin/src/content-manager/components/RelationInput/components/Relation.js +1 -2
- package/admin/src/content-manager/components/RelationInput/components/RelationList.js +1 -1
- package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +4 -12
- package/admin/src/content-manager/components/Wysiwyg/WysiwygFooter.js +2 -4
- package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +24 -18
- package/admin/src/content-manager/components/Wysiwyg/WysiwygStyles.js +1 -2
- package/admin/src/content-manager/components/Wysiwyg/index.js +1 -3
- package/admin/src/content-manager/pages/App/LeftMenu/index.js +1 -1
- package/admin/src/content-manager/pages/App/index.js +1 -2
- package/admin/src/content-manager/pages/App/useModels.js +1 -1
- package/admin/src/content-manager/pages/App/utils/generateModelsLinks.js +9 -8
- package/admin/src/content-manager/pages/CollectionTypeRecursivePath/components/ErrorFallback.js +1 -1
- package/admin/src/content-manager/pages/EditSettingsView/components/ComponentFieldList.js +2 -5
- package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFieldButton.js +2 -4
- package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +2 -7
- package/admin/src/content-manager/pages/EditSettingsView/components/FieldButtonContent.js +2 -6
- package/admin/src/content-manager/pages/EditSettingsView/components/FormModal.js +5 -5
- package/admin/src/content-manager/pages/EditSettingsView/components/GenericInput.js +1 -3
- package/admin/src/content-manager/pages/EditSettingsView/components/LinkToCTB.js +1 -1
- package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +1 -2
- package/admin/src/content-manager/pages/EditSettingsView/components/RowsLayout.js +1 -1
- package/admin/src/content-manager/pages/EditSettingsView/index.js +15 -11
- package/admin/src/content-manager/pages/EditView/DeleteLink/index.js +8 -10
- package/admin/src/content-manager/pages/EditView/DraftAndPublishBadge/index.js +3 -5
- package/admin/src/content-manager/pages/EditView/GridRow/index.js +1 -1
- package/admin/src/content-manager/pages/EditView/Header/index.js +12 -10
- package/admin/src/content-manager/pages/EditView/index.js +2 -7
- package/admin/src/content-manager/pages/ListSettingsView/components/CardPreview.js +2 -6
- package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +2 -7
- package/admin/src/content-manager/pages/ListSettingsView/components/EditFieldForm.js +8 -7
- package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +10 -6
- package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +10 -7
- package/admin/src/content-manager/pages/ListSettingsView/index.js +10 -7
- package/admin/src/content-manager/pages/ListView/FieldPicker/index.js +1 -2
- package/admin/src/content-manager/pages/ListView/PaginationFooter/index.js +1 -2
- package/admin/src/content-manager/pages/ListView/index.js +18 -21
- package/admin/src/content-manager/pages/NoContentType/index.js +2 -5
- package/admin/src/content-manager/pages/NoPermissions/index.js +1 -2
- package/admin/src/hooks/useMenu/reducer.js +1 -3
- package/admin/src/layouts/AppLayout/index.js +1 -3
- package/admin/src/layouts/UnauthenticatedLayout/LocaleToggle/index.js +1 -1
- package/admin/src/layouts/UnauthenticatedLayout/index.js +1 -2
- package/admin/src/pages/Admin/Onboarding/index.js +15 -2
- package/admin/src/pages/App/index.js +1 -1
- package/admin/src/pages/AuthPage/components/FieldActionWrapper/index.js +1 -1
- package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +1 -7
- package/admin/src/pages/AuthPage/components/ForgotPasswordSuccess/index.js +1 -4
- package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +11 -10
- package/admin/src/pages/AuthPage/components/Oops/index.js +1 -4
- package/admin/src/pages/AuthPage/components/Register/index.js +13 -11
- package/admin/src/pages/AuthPage/components/ResetPassword/index.js +2 -9
- package/admin/src/pages/HomePage/CloudBox.js +83 -0
- package/admin/src/pages/HomePage/ContentBlocks.js +4 -5
- package/admin/src/pages/HomePage/HomeHeader.js +3 -6
- package/admin/src/pages/HomePage/SocialLinks.js +33 -30
- package/admin/src/pages/HomePage/assets/strapi-cloud-background.png +0 -0
- package/admin/src/pages/HomePage/assets/strapi-cloud-flags.svg +1 -0
- package/admin/src/pages/HomePage/assets/strapi-cloud-icon.svg +1 -0
- package/admin/src/pages/HomePage/index.js +1 -4
- package/admin/src/pages/InstalledPluginsPage/Plugins.js +14 -5
- package/admin/src/pages/InternalErrorPage/index.js +2 -5
- package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/EmptyNpmPackageGrid.js +1 -2
- package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/index.js +2 -5
- package/admin/src/pages/MarketplacePage/components/MissingPluginBanner/index.js +2 -3
- package/admin/src/pages/MarketplacePage/components/NpmPackageCard/CardButton.js +2 -4
- package/admin/src/pages/MarketplacePage/components/NpmPackageCard/InstallPluginButton.js +2 -4
- package/admin/src/pages/MarketplacePage/components/NpmPackageCard/PackageStats.js +2 -7
- package/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js +3 -9
- package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FilterSelect.js +1 -1
- package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FiltersPopover.js +1 -4
- package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/index.js +2 -5
- package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +1 -1
- package/admin/src/pages/MarketplacePage/components/PageHeader/index.js +3 -3
- package/admin/src/pages/MarketplacePage/components/SortSelect/index.js +1 -2
- package/admin/src/pages/MarketplacePage/index.js +15 -8
- package/admin/src/pages/NotFoundPage/index.js +2 -5
- package/admin/src/pages/ProfilePage/index.js +17 -14
- package/admin/src/pages/SettingsPage/components/Filters/index.js +2 -3
- package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +16 -3
- package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +2 -5
- package/admin/src/pages/SettingsPage/components/Tokens/FormiTokenContainer/LifeSpanInput.js +1 -2
- package/admin/src/pages/SettingsPage/components/Tokens/LifeSpanInput/index.js +1 -2
- package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +2 -2
- package/admin/src/pages/SettingsPage/components/Tokens/Table/DeleteButton/index.js +22 -10
- package/admin/src/pages/SettingsPage/components/Tokens/Table/ReadButton/index.js +1 -1
- package/admin/src/pages/SettingsPage/components/Tokens/Table/UpdateButton/index.js +1 -1
- package/admin/src/pages/SettingsPage/components/Tokens/Table/index.js +15 -5
- package/admin/src/pages/SettingsPage/components/Tokens/TokenBox/index.js +8 -6
- package/admin/src/pages/SettingsPage/components/Tokens/TokenDescription/index.js +1 -1
- package/admin/src/pages/SettingsPage/components/Tokens/TokenName/index.js +1 -1
- package/admin/src/pages/SettingsPage/components/Tokens/TokenTypeSelect/index.js +1 -1
- package/admin/src/pages/SettingsPage/components/Tokens/constants.js +2 -0
- package/admin/src/pages/SettingsPage/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ActionBoundRoutes/index.js +1 -3
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/index.js +1 -3
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/CheckBoxWrapper.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +13 -8
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ContenTypesSection/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js +1 -4
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/LoadingView/index.js +2 -4
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Permissions/index.js +1 -3
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Regenerate/index.js +2 -2
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +12 -6
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +13 -7
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/CustomizationInfos/index.js +1 -3
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/index.js +8 -5
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/AddLogoDialog.js +1 -3
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +13 -9
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +1 -4
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/ImageCardAsset.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/PendingLogoDialog.js +1 -5
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/index.js +1 -2
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +56 -70
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/CollapseLabel/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsButton/index.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/index.js +1 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/index.js +5 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/index.js +2 -5
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/index.js +1 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/CarretIcon/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/Header/index.js +1 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/index.js +1 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/activeStyle.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypes/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Curve/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +1 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatLayoutForSettingsAndPlugins.js +12 -16
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/Row/index.js +1 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/index.js +1 -5
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +11 -8
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RowLabelWithCheckbox/index.js +1 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +2 -6
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/components/RoleRow/index.js +1 -5
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +16 -10
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +1 -5
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/LoadingView/index.js +2 -4
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +23 -5
- package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +16 -4
- package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +12 -9
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js +11 -8
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +9 -7
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/index.js +1 -2
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +9 -5
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js +1 -2
- package/admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper.js +3 -20
- package/admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/EventRow.js +1 -2
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +1 -3
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/Combobox.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/index.js +11 -8
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/TriggerContainer/index.js +2 -8
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +11 -9
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +26 -18
- package/admin/src/pages/UseCasePage/index.js +12 -9
- package/admin/src/permissions/defaultPermissions.js +2 -15
- package/admin/src/translations/ar.json +4 -4
- package/admin/src/translations/ca.json +4 -4
- package/admin/src/translations/cs.json +4 -4
- package/admin/src/translations/de.json +4 -4
- package/admin/src/translations/dk.json +4 -4
- package/admin/src/translations/en.json +7 -4
- package/admin/src/translations/es.json +4 -4
- package/admin/src/translations/eu.json +4 -4
- package/admin/src/translations/fr.json +4 -4
- package/admin/src/translations/gu.json +4 -4
- package/admin/src/translations/he.json +4 -4
- package/admin/src/translations/hi.json +4 -4
- package/admin/src/translations/hu.json +4 -4
- package/admin/src/translations/id.json +4 -4
- package/admin/src/translations/it.json +4 -4
- package/admin/src/translations/ja.json +4 -4
- package/admin/src/translations/ko.json +4 -4
- package/admin/src/translations/ml.json +4 -4
- package/admin/src/translations/ms.json +4 -4
- package/admin/src/translations/nl.json +4 -4
- package/admin/src/translations/no.json +4 -4
- package/admin/src/translations/pl.json +4 -4
- package/admin/src/translations/pt-BR.json +4 -4
- package/admin/src/translations/pt.json +4 -4
- package/admin/src/translations/ru.json +785 -789
- package/admin/src/translations/sa.json +4 -4
- package/admin/src/translations/sk.json +4 -4
- package/admin/src/translations/sv.json +4 -4
- package/admin/src/translations/th.json +4 -4
- package/admin/src/translations/tr.json +4 -4
- package/admin/src/translations/uk.json +4 -4
- package/admin/src/translations/vi.json +4 -4
- package/admin/src/translations/zh-Hans.json +4 -4
- package/admin/src/translations/zh.json +4 -4
- package/build/2637.679b590b.chunk.js +1 -0
- package/build/27d16aefee06412db90a.png +0 -0
- package/build/{7407.883fb1f5.chunk.js → 4049.16583eee.chunk.js} +1 -1
- package/build/4649.b7e84a29.chunk.js +30 -0
- package/build/4849.7abafe52.chunk.js +98 -0
- package/build/6487.83e219bf.chunk.js +14 -0
- package/build/7259.3f04094f.chunk.js +1 -0
- package/build/{5015.8e3fe50b.chunk.js → 8469.853c822b.chunk.js} +1 -6
- package/build/9816.01ee964f.chunk.js +2 -0
- package/build/Admin-authenticatedApp.49265c1c.chunk.js +79 -0
- package/build/Admin_InternalErrorPage.4ad8b0df.chunk.js +1 -0
- package/build/Admin_homePage.1f10437f.chunk.js +78 -0
- package/build/Admin_marketplace.a8ea585f.chunk.js +22 -0
- package/build/Admin_pluginsPage.15e3b0fd.chunk.js +1 -0
- package/build/Admin_profilePage.b27e40f6.chunk.js +15 -0
- package/build/Admin_settingsPage.5a329b58.chunk.js +178 -0
- package/build/Upload_ConfigureTheView.34dde278.chunk.js +1 -0
- package/build/admin-app.df9adf93.chunk.js +112 -0
- package/build/admin-edit-roles-page.fd041d89.chunk.js +1 -0
- package/build/admin-edit-users.08a60ea2.chunk.js +10 -0
- package/build/admin-users.74f5629d.chunk.js +11 -0
- package/build/{api-tokens-create-page.0db3aec1.chunk.js → api-tokens-create-page.4328b852.chunk.js} +1 -1
- package/build/{api-tokens-edit-page.671e0e26.chunk.js → api-tokens-edit-page.bce5050f.chunk.js} +1 -1
- package/build/api-tokens-list-page.149903c8.chunk.js +16 -0
- package/build/ar-json.39e54aba.chunk.js +1 -0
- package/build/audit-logs-settings-page.bc1784fe.chunk.js +1 -0
- package/build/bb3108f7fd1e6179bde1.svg +1 -0
- package/build/bb4d0d527bdfb161bc5a.svg +1 -0
- package/build/{ca-json.f6a0f472.chunk.js → ca-json.4d999055.chunk.js} +1 -1
- package/build/content-manager.6ed87531.chunk.js +1139 -0
- package/build/content-type-builder-list-view.c2f917b6.chunk.js +191 -0
- package/build/content-type-builder.b7fb1e65.chunk.js +126 -0
- package/build/cs-json.4b44411c.chunk.js +1 -0
- package/build/{de-json.30e1f35b.chunk.js → de-json.866f8a28.chunk.js} +1 -1
- package/build/{dk-json.e6d9ffa4.chunk.js → dk-json.10f7b1d1.chunk.js} +1 -1
- package/build/email-settings-page.884cfb8b.chunk.js +3 -0
- package/build/en-json.8e5451b1.chunk.js +1 -0
- package/build/es-json.ea15c957.chunk.js +1 -0
- package/build/{eu-json.fceecd8b.chunk.js → eu-json.3bc24d60.chunk.js} +1 -1
- package/build/{fr-json.78545ef8.chunk.js → fr-json.e88fbdfd.chunk.js} +1 -1
- package/build/{gu-json.676518f2.chunk.js → gu-json.94f0d242.chunk.js} +1 -1
- package/build/{he-json.ad22e8cc.chunk.js → he-json.f0de8cdb.chunk.js} +1 -1
- package/build/{hi-json.19b51c09.chunk.js → hi-json.df3a7be2.chunk.js} +1 -1
- package/build/{hu-json.f947088f.chunk.js → hu-json.680e6eef.chunk.js} +1 -1
- package/build/i18n-settings-page.c7bc29fc.chunk.js +1 -0
- package/build/{id-json.504daa84.chunk.js → id-json.e0d83d41.chunk.js} +1 -1
- package/build/index.html +1 -1
- package/build/{it-json.2fd90f4d.chunk.js → it-json.8be59205.chunk.js} +1 -1
- package/build/{ja-json.c9f12d0b.chunk.js → ja-json.97ee41ba.chunk.js} +1 -1
- package/build/{ko-json.ef463065.chunk.js → ko-json.4cbbf4f2.chunk.js} +1 -1
- package/build/main.8009bfe8.js +3930 -0
- package/build/{ml-json.490f666c.chunk.js → ml-json.e3747091.chunk.js} +1 -1
- package/build/ms-json.0eddffd9.chunk.js +1 -0
- package/build/{nl-json.c416295a.chunk.js → nl-json.371a15ee.chunk.js} +1 -1
- package/build/{no-json.1a2258ba.chunk.js → no-json.9b3cd181.chunk.js} +1 -1
- package/build/{pl-json.8cf0c871.chunk.js → pl-json.e535cbce.chunk.js} +1 -1
- package/build/{pt-BR-json.51fab8d0.chunk.js → pt-BR-json.e5fafa46.chunk.js} +1 -1
- package/build/pt-json.ee554a41.chunk.js +1 -0
- package/build/{ru-json.aa5cd123.chunk.js → ru-json.866f0ff1.chunk.js} +1 -1
- package/build/{runtime~main.84941a97.js → runtime~main.86cd21d5.js} +2 -2
- package/build/{sa-json.f3fa5407.chunk.js → sa-json.7efeb257.chunk.js} +1 -1
- package/build/{sk-json.9ec60d9f.chunk.js → sk-json.7bbeb0af.chunk.js} +1 -1
- package/build/sso-settings-page.82d84043.chunk.js +1 -0
- package/build/{sv-json.c6b0c237.chunk.js → sv-json.dc40951f.chunk.js} +1 -1
- package/build/{th-json.6e68155c.chunk.js → th-json.f664b96d.chunk.js} +1 -1
- package/build/{tr-json.9f41dc08.chunk.js → tr-json.b79eae31.chunk.js} +1 -1
- package/build/{transfer-tokens-create-page.16e23791.chunk.js → transfer-tokens-create-page.a1f14bb1.chunk.js} +1 -1
- package/build/{transfer-tokens-edit-page.3886c973.chunk.js → transfer-tokens-edit-page.00ee1c74.chunk.js} +1 -1
- package/build/transfer-tokens-list-page.1e15926d.chunk.js +16 -0
- package/build/uk-json.b7e38370.chunk.js +1 -0
- package/build/upload-settings.c18b010f.chunk.js +1 -0
- package/build/upload.0876ab69.chunk.js +13 -0
- package/build/users-advanced-settings-page.677e1973.chunk.js +1 -0
- package/build/users-email-settings-page.a3c80419.chunk.js +1 -0
- package/build/users-providers-settings-page.87a9c77d.chunk.js +1 -0
- package/build/users-roles-settings-page.79c19845.chunk.js +30 -0
- package/build/vi-json.ee4c5537.chunk.js +1 -0
- package/build/webhook-edit-page.cfbdd3fd.chunk.js +23 -0
- package/build/webhook-list-page.3daa4fe2.chunk.js +1 -0
- package/build/{zh-Hans-json.9c0eac99.chunk.js → zh-Hans-json.30a18940.chunk.js} +1 -1
- package/build/{zh-json.f88f563d.chunk.js → zh-json.49d84433.chunk.js} +1 -1
- package/ee/admin/pages/AuthPage/components/Login/index.js +1 -5
- package/ee/admin/pages/AuthPage/components/Providers/SSOProviders.js +1 -4
- package/ee/admin/pages/AuthPage/components/Providers/index.js +1 -8
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionBody.js +1 -6
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionItem.js +1 -2
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/index.js +1 -2
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/PaginationFooter/index.js +1 -2
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/TableRows/index.js +2 -5
- package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +15 -11
- package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/index.js +16 -10
- package/ee/admin/pages/SettingsPage/pages/SingleSignOn/index.js +15 -9
- package/ee/admin/permissions/customPermissions.js +4 -0
- package/package.json +13 -13
- package/server/config/admin-actions.js +0 -16
- package/server/controllers/admin.js +0 -55
- package/server/routes/admin.js +0 -28
- package/webpack.alias.js +0 -1
- package/webpack.config.js +0 -3
- package/build/1412.936ed920.chunk.js +0 -159
- package/build/1683.c8aa7b7c.chunk.js +0 -268
- package/build/2607.2e48dbf8.chunk.js +0 -66
- package/build/2743.6d1632f9.chunk.js +0 -45
- package/build/3075.dc3894fe.chunk.js +0 -108
- package/build/3632.0317b618.chunk.js +0 -138
- package/build/4649.15cc0afe.chunk.js +0 -30
- package/build/4855.bd092921.chunk.js +0 -209
- package/build/7259.aa68d808.chunk.js +0 -1
- package/build/9707.7290fd92.chunk.js +0 -96
- package/build/Admin-authenticatedApp.f29f6021.chunk.js +0 -79
- package/build/Admin_InternalErrorPage.157152a8.chunk.js +0 -1
- package/build/Admin_homePage.b1730882.chunk.js +0 -77
- package/build/Admin_marketplace.ea0316c2.chunk.js +0 -26
- package/build/Admin_pluginsPage.5c24f963.chunk.js +0 -6
- package/build/Admin_profilePage.59af1978.chunk.js +0 -15
- package/build/Admin_settingsPage.178dc6e3.chunk.js +0 -178
- package/build/Upload_ConfigureTheView.3f2b6e6a.chunk.js +0 -1
- package/build/admin-app.77a50e1f.chunk.js +0 -112
- package/build/admin-edit-roles-page.446b69dc.chunk.js +0 -1
- package/build/admin-edit-users.2ed69bfd.chunk.js +0 -10
- package/build/admin-users.fc003b10.chunk.js +0 -11
- package/build/api-tokens-list-page.7387102c.chunk.js +0 -16
- package/build/ar-json.932794f7.chunk.js +0 -1
- package/build/audit-logs-settings-page.c3dce30d.chunk.js +0 -1
- package/build/content-manager.42b24d46.chunk.js +0 -1139
- package/build/content-type-builder-list-view.79e84b36.chunk.js +0 -193
- package/build/content-type-builder.855db321.chunk.js +0 -126
- package/build/cs-json.79879fb6.chunk.js +0 -1
- package/build/email-settings-page.d1fcc7a3.chunk.js +0 -10
- package/build/en-json.b0748970.chunk.js +0 -1
- package/build/es-json.e275481d.chunk.js +0 -1
- package/build/i18n-settings-page.b8d8753e.chunk.js +0 -60
- package/build/main.1022ed01.js +0 -4393
- package/build/ms-json.db87d8d3.chunk.js +0 -1
- package/build/pt-json.62927d1e.chunk.js +0 -1
- package/build/sso-settings-page.b85ad080.chunk.js +0 -41
- package/build/transfer-tokens-list-page.e8010a89.chunk.js +0 -16
- package/build/uk-json.b2fcd567.chunk.js +0 -1
- package/build/upload-settings.ef64bbf9.chunk.js +0 -84
- package/build/upload.c5730dfa.chunk.js +0 -33
- package/build/users-advanced-settings-page.fce9908e.chunk.js +0 -8
- package/build/users-email-settings-page.343d0ad2.chunk.js +0 -23
- package/build/users-providers-settings-page.e5a9a3f1.chunk.js +0 -99
- package/build/users-roles-settings-page.66312f31.chunk.js +0 -30
- package/build/vi-json.f08d7d03.chunk.js +0 -1
- package/build/webhook-edit-page.73e51e64.chunk.js +0 -75
- package/build/webhook-list-page.1134f130.chunk.js +0 -42
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3650],{84837:function(it,J,t){t.r(J),t.d(J,{default:function(){return we}});var e=t(32735),R=t(5141),A=t(5636),Ee=t(99357),g=t(13478),n=t(39161),z=t(83292),X=t(33348),y=t(57269),he=t(86588),ve=t(61405),ye=t(91575),Ce=t(35468),Me=t(65790),Fe=t(25005),Se=t(89581),Be=t(60216),f=t.n(Be);const Z=({pagination:s})=>e.createElement(n.Box,{paddingTop:6},e.createElement(n.Flex,{alignItems:"flex-end",justifyContent:"space-between"},e.createElement(g.PageSizeURLQuery,null),e.createElement(g.PaginationURLQuery,{pagination:s})));Z.defaultProps={pagination:{pageCount:0,pageSize:10,total:0}},Z.propTypes={pagination:f().shape({page:f().number,pageCount:f().number,pageSize:f().number,total:f().number})};var p=t(68781),Le=t(20069),Ae=t(81094);const Y=({selected:s,onSuccess:l})=>{const{formatMessage:r}=(0,A.useIntl)(),[i,d]=(0,e.useState)(!1),{isLoading:c,remove:h}=(0,Ae.K)(),E=async()=>{await h(s),l()};return e.createElement(e.Fragment,null,e.createElement(n.Button,{variant:"danger-light",size:"S",startIcon:e.createElement(y.Trash,null),onClick:()=>d(!0)},r({id:"global.delete",defaultMessage:"Delete"})),e.createElement(g.ConfirmDialog,{isConfirmButtonLoading:c,isOpen:i,onToggleDialog:()=>d(!1),onConfirm:E}))};Y.propTypes={selected:f().arrayOf(p.pw,p.nx).isRequired,onSuccess:f().func.isRequired};var be=t(83281),Ie=t(86834),Te=t.n(Ie),q=t(84968),D=t(74951),u=t(15503);const Re=()=>{const s=(0,g.useNotification)(),l=(0,q.useQueryClient)(),r=(0,u.IF)("actions/bulk-move"),{post:i}=(0,g.useFetchClient)(),d=({destinationFolderId:E,filesAndFolders:m})=>{const C=m.reduce((v,o)=>{const{id:b,type:S}=o,T=S==="asset"?"fileIds":"folderIds";return v[T]||(v[T]=[]),v[T].push(b),v},{});return i(r,{...C,destinationFolderId:E})},c=(0,q.useMutation)(d,{onSuccess(E){const{data:{data:m}}=E;m?.files?.length>0&&(l.refetchQueries([D.Z,"assets"],{active:!0}),l.refetchQueries([D.Z,"asset-count"],{active:!0})),l.refetchQueries([D.Z,"folders"],{active:!0}),s({type:"success",message:{id:(0,u.OB)("modal.move.success-label"),defaultMessage:"Elements have been moved successfully."}})}});return{...c,move:(E,m)=>c.mutateAsync({destinationFolderId:E,filesAndFolders:m})}};var De=t(21375),Oe=t(72236);const V=({onClose:s,selected:l,currentFolder:r})=>{const{formatMessage:i}=(0,A.useIntl)(),{data:d,isLoading:c}=(0,Oe.v)(),{move:h}=Re();if(!d)return null;const E=async(v,{setErrors:o})=>{try{await h(v.destination.value,l),s()}catch(b){const T=(0,g.normalizeAPIError)(b).errors.reduce((x,B)=>(x[B.values?.path?.length||"destination"]=B.defaultMessage,x),{});Te()(T)||o(T)}},m=()=>{s()};if(c)return e.createElement(n.ModalLayout,{onClose:m,labelledBy:"title"},e.createElement(n.ModalBody,null,e.createElement(n.Flex,{justifyContent:"center",paddingTop:4,paddingBottom:4},e.createElement(n.Loader,null,i({id:(0,u.OB)("content.isLoading"),defaultMessage:"Content is loading."})))));const C={destination:{value:r?.id||"",label:r?.name||d[0].label}};return e.createElement(n.ModalLayout,{onClose:m,labelledBy:"title"},e.createElement(be.Formik,{validateOnChange:!1,onSubmit:E,initialValues:C},({values:v,errors:o,setFieldValue:b})=>e.createElement(g.Form,{noValidate:!0},e.createElement(n.ModalHeader,null,e.createElement(n.Typography,{fontWeight:"bold",textColor:"neutral800",as:"h2",id:"title"},i({id:(0,u.OB)("modal.folder.move.title"),defaultMessage:"Move elements to"}))),e.createElement(n.ModalBody,null,e.createElement(n.Grid,{gap:4},e.createElement(n.GridItem,{xs:12,col:12},e.createElement(n.Stack,{spacing:1},e.createElement(n.FieldLabel,{htmlFor:"folder-destination"},i({id:(0,u.OB)("form.input.label.folder-location"),defaultMessage:"Location"})),e.createElement(De.Z,{options:d,onChange:S=>{b("destination",S)},defaultValue:v.destination,name:"destination",menuPortalTarget:document.querySelector("body"),inputId:"folder-destination",error:o?.destination,ariaErrorMessage:"destination-error"}),o.destination&&e.createElement(n.Typography,{variant:"pi",as:"p",id:"folder-destination-error",textColor:"danger600"},o.destination))))),e.createElement(n.ModalFooter,{startActions:e.createElement(n.Button,{onClick:m,variant:"tertiary",name:"cancel"},i({id:"cancel",defaultMessage:"Cancel"})),endActions:e.createElement(n.Button,{type:"submit",loading:c},i({id:"modal.folder.move.submit",defaultMessage:"Move"}))}))))};V.defaultProps={currentFolder:void 0},V.propTypes={onClose:f().func.isRequired,currentFolder:p.nx,selected:f().arrayOf(p.nx,p.pw).isRequired};const $=({selected:s,onSuccess:l,currentFolder:r})=>{const{formatMessage:i}=(0,A.useIntl)(),[d,c]=(0,e.useState)(!1),h=()=>{c(!1),l()};return e.createElement(e.Fragment,null,e.createElement(n.Button,{variant:"secondary",size:"S",startIcon:e.createElement(y.Folder,null),onClick:()=>c(!0)},i({id:"global.move",defaultMessage:"Move"})),d&&e.createElement(V,{currentFolder:r,onClose:h,selected:s}))};$.defaultProps={currentFolder:void 0},$.propTypes={onSuccess:f().func.isRequired,currentFolder:p.nx,selected:f().arrayOf(p.pw,p.nx).isRequired};const G=({selected:s,onSuccess:l,currentFolder:r})=>{const{formatMessage:i}=(0,A.useIntl)();return e.createElement(n.Stack,{horizontal:!0,spacing:2,paddingBottom:5},e.createElement(n.Typography,{variant:"epsilon",textColor:"neutral600"},i({id:(0,Le.Z)("list.assets.selected"),defaultMessage:"{numberFolders, plural, one {1 folder} other {# folders}} - {numberAssets, plural, one {1 asset} other {# assets}} selected"},{numberFolders:s.filter(({type:d})=>d==="folder").length,numberAssets:s.filter(({type:d})=>d==="asset").length})),e.createElement(Y,{selected:s,onSuccess:l}),e.createElement($,{currentFolder:r,selected:s,onSuccess:l}))};G.defaultProps={currentFolder:void 0},G.propTypes={onSuccess:f().func.isRequired,currentFolder:p.nx,selected:f().arrayOf(p.pw,p.nx).isRequired};var xe=t(1920);const Pe=({isFiltering:s,canCreate:l,canRead:r})=>s?{id:"list.assets-empty.title-withSearch",defaultMessage:"There are no elements with the applied filters"}:r?l?{id:"list.assets.empty-upload",defaultMessage:"Upload your first assets..."}:{id:"list.assets.empty",defaultMessage:"Media Library is empty"}:{id:"header.actions.no-permissions",defaultMessage:"No permissions to view"},_=({canCreate:s,isFiltering:l,canRead:r,onActionClick:i})=>{const{formatMessage:d}=(0,A.useIntl)(),c=Pe({isFiltering:l,canCreate:s,canRead:r});return e.createElement(xe.i,{icon:r?null:y.EmptyPermissions,action:s&&!l&&e.createElement(n.Button,{variant:"secondary",startIcon:e.createElement(y.Plus,null),onClick:i},d({id:(0,u.OB)("header.actions.add-assets"),defaultMessage:"Add new assets"})),content:d({...c,id:(0,u.OB)(c.id)})})};_.propTypes={canCreate:f().bool.isRequired,canRead:f().bool.isRequired,isFiltering:f().bool.isRequired,onActionClick:f().func.isRequired};var O=t(47359),Ue=t(79996),ke=t(90768),ee=t(90142);const Qe=()=>{const s=(0,e.useRef)(null),[l,r]=(0,e.useState)(!1),{formatMessage:i}=(0,A.useIntl)(),{trackUsage:d}=(0,g.useTracking)(),[{query:c},h]=(0,g.useQueryParams)(),E=c?.filters?.$and||[],m=()=>r(o=>!o),C=o=>{h({filters:{$and:o},page:1})},v=o=>{d("didFilterMediaLibraryElements",{location:"content-manager",filter:Object.keys(o[o.length-1])[0]}),h({filters:{$and:o},page:1})};return e.createElement(e.Fragment,null,e.createElement(n.Button,{variant:"tertiary",ref:s,startIcon:e.createElement(y.Filter,null),onClick:m,size:"S"},i({id:"app.utils.filters",defaultMessage:"Filters"})),l&&e.createElement(ke.Z,{displayedFilters:ee.Z,filters:E,onSubmit:v,onToggle:m,source:s}),e.createElement(Ue.Z,{appliedFilters:E,filtersSchema:ee.Z,onRemoveFilter:C}))};var ze=t(17837);const W=({breadcrumbs:s,canCreate:l,folder:r,onToggleEditFolderDialog:i,onToggleUploadAssetDialog:d})=>{const{formatMessage:c}=(0,A.useIntl)(),{pathname:h}=(0,R.useLocation)(),[{query:E}]=(0,g.useQueryParams)(),m={...E,folder:r?.parent?.id??void 0};return e.createElement(n.HeaderLayout,{title:c({id:(0,u.OB)("plugin.name"),defaultMessage:"Media Library"}),subtitle:s&&r&&e.createElement(ze.O,{as:"nav",label:c({id:(0,u.OB)("header.breadcrumbs.nav.label"),defaultMessage:"Folders navigation"}),breadcrumbs:s,currentFolderId:r?.id}),navigationAction:r&&e.createElement(n.Link,{startIcon:e.createElement(y.ArrowLeft,null),to:`${h}?${(0,X.stringify)(m,{encode:!1})}`},c({id:(0,u.OB)("header.actions.folder-level-up"),defaultMessage:"Back"})),primaryAction:l&&e.createElement(n.Stack,{horizontal:!0,spacing:2},e.createElement(n.Button,{startIcon:e.createElement(y.Plus,null),variant:"secondary",onClick:i},c({id:(0,u.OB)("header.actions.add-folder"),defaultMessage:"Add new folder"})),e.createElement(n.Button,{startIcon:e.createElement(y.Plus,null),onClick:d},c({id:(0,u.OB)("header.actions.add-assets"),defaultMessage:"Add new assets"})))})};W.defaultProps={breadcrumbs:!1,folder:null},W.propTypes={breadcrumbs:f().oneOfType([p.Fv,f().bool]),canCreate:f().bool.isRequired,folder:p.nx,onToggleEditFolderDialog:f().func.isRequired,onToggleUploadAssetDialog:f().func.isRequired};var Ze=t(37293),Ve=t(77935),$e=t(46891),Ge=t(36156),We=t(93826);const He=(0,z.default)(n.Box)`
|
|
2
|
+
height: ${32/16}rem;
|
|
3
|
+
display: flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
`,te=(0,z.default)(n.Typography)`
|
|
6
|
+
max-width: 100%;
|
|
7
|
+
`,ne=(0,z.default)(n.Box)`
|
|
8
|
+
svg {
|
|
9
|
+
path {
|
|
10
|
+
fill: ${({theme:s})=>s.colors.neutral500};
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
`,Ne=()=>{const{push:s}=(0,R.useHistory)(),{canRead:l,canCreate:r,canUpdate:i,canCopyLink:d,canDownload:c,isLoading:h}=(0,$e.y)(),E=(0,e.useRef)(),{formatMessage:m}=(0,A.useIntl)(),{pathname:C}=(0,R.useLocation)(),{trackUsage:v}=(0,g.useTracking)(),[{query:o},b]=(0,g.useQueryParams)(),S=Boolean(o._q||o.filters),[T,x]=(0,g.usePersistentState)(p.uf.view,p.Uk.GRID),B=T===p.Uk.GRID,{data:L,isLoading:Je,errors:Xe}=(0,Ze.L)({skipWhen:!l,query:o}),{data:Ye,isLoading:qe,errors:_e}=(0,Ve.j)({enabled:l&&L?.pagination?.page===1&&!(0,u.rV)(o),query:o}),{data:H,isLoading:ae,error:et}=(0,Ge.W)(o?.folder,{enabled:l&&!!o?.folder});et?.response?.status===404&&s(C);const P=Ye?.map(a=>({...a,type:"folder",folderURL:(0,u.Km)(C,o,a.id),isSelectable:i}))??[],M=P?.length||0,U=L?.results?.map(a=>({...a,type:"asset",isSelectable:i}))||[],F=U?.length??0,tt=L?.pagination?.total,se=ae||qe||h||Je,[nt,at]=(0,e.useState)(!1),[st,oe]=(0,e.useState)(!1),[le,N]=(0,e.useState)(void 0),[j,re]=(0,e.useState)(void 0),[I,{selectOne:k,selectAll:ie}]=(0,g.useSelectionState)(["type","id"],[]),de=I?.length>0&&I?.length!==F+M,K=()=>at(a=>!a),ce=({created:a=!1}={})=>{a&&o?.page!=="1"&&b({...o,page:1}),oe(Q=>!Q)},ue=(a,Q)=>{a.target.checked&&v("didSelectAllMediaLibraryElements"),ie(Q)},me=a=>{v("didSortMediaLibraryElements",{location:"upload",sort:a}),b({sort:a})},ge=a=>{re(a),oe(!0)},ot=a=>{re(null),ce(a),E.current&&E.current.focus()},fe=a=>{a===F&&L.pagination.page===L.pagination.pageCount&&L.pagination.page>1&&b({...o,page:L.pagination.page-1})},lt=()=>{ie(),fe(I.length)};return(0,g.useFocusWhenNavigate)(),e.createElement(n.Layout,null,e.createElement(n.Main,{"aria-busy":se},e.createElement(W,{breadcrumbs:!ae&&(0,u.M4)(H,{pathname:C,query:o}),canCreate:r,onToggleEditFolderDialog:ce,onToggleUploadAssetDialog:K,folder:H}),e.createElement(n.ActionLayout,{startActions:e.createElement(e.Fragment,null,i&&B&&(F>0||M>0)&&e.createElement(He,{paddingLeft:2,paddingRight:2,background:"neutral0",hasRadius:!0,borderColor:"neutral200"},e.createElement(n.BaseCheckbox,{"aria-label":m({id:(0,u.OB)("bulk.select.label"),defaultMessage:"Select all folders & assets"}),indeterminate:de,value:(F>0||M>0)&&I.length===F+M,onChange:a=>ue(a,[...U,...P])})),l&&B&&e.createElement(Se.Z,{onChangeSort:me}),l&&e.createElement(Qe,null)),endActions:e.createElement(e.Fragment,null,e.createElement(g.CheckPermissions,{permissions:We.Z.configureView},e.createElement(ne,{paddingTop:1,paddingBottom:1},e.createElement(n.IconButton,{forwardedAs:R.Link,to:{pathname:`${C}/configuration`,search:(0,X.stringify)(o,{encode:!1})},icon:e.createElement(y.Cog,null),label:m({id:"app.links.configure-view",defaultMessage:"Configure the view"})}))),e.createElement(ne,{paddingTop:1,paddingBottom:1},e.createElement(n.IconButton,{icon:B?e.createElement(y.List,null):e.createElement(y.Grid,null),label:m(B?{id:"view-switch.list",defaultMessage:"List View"}:{id:"view-switch.grid",defaultMessage:"Grid View"}),onClick:()=>x(B?p.Uk.LIST:p.Uk.GRID)})),e.createElement(g.SearchURLQuery,{label:m({id:(0,u.OB)("search.label"),defaultMessage:"Search for an asset"}),trackedEvent:"didSearchMediaLibraryElements",trackedEventDetails:{location:"upload"}}))}),e.createElement(n.ContentLayout,null,I.length>0&&e.createElement(G,{currentFolder:H,selected:I,onSuccess:lt}),se&&e.createElement(g.LoadingIndicatorPage,null),(Xe||_e)&&e.createElement(g.AnErrorOccurred,null),M===0&&F===0&&e.createElement(_,{canCreate:r,canRead:l,isFiltering:S,onActionClick:K}),l&&!B&&(F>0||M>0)&&e.createElement(Fe.b,{assetCount:F,folderCount:M,indeterminate:de,onChangeSort:me,onChangeFolder:a=>s((0,u.Km)(C,o,a)),onEditAsset:N,onEditFolder:ge,onSelectOne:k,onSelectAll:ue,rows:[...P,...U],selected:I,shouldDisableBulkSelect:!i,sortQuery:o?.sort??""}),l&&B&&e.createElement(e.Fragment,null,M>0&&e.createElement(Me.a,{title:(S&&F>0||!S)&&m({id:(0,u.OB)("list.folders.title"),defaultMessage:"Folders ({count})"},{count:M})||""},P.map(a=>{const rt=!!I.filter(({type:w})=>w==="folder").find(w=>w.id===a.id),pe=(0,u.Km)(C,o,a?.id);return e.createElement(n.GridItem,{col:3,key:`folder-${a.id}`},e.createElement(O.Ac,{ref:j&&a.id===j.id?E:void 0,ariaLabel:a.name,id:`folder-${a.id}`,to:pe,startAction:k&&a.isSelectable?e.createElement(O.MM,{"data-testid":`folder-checkbox-${a.id}`,value:rt,onChange:()=>k(a)}):null,cardActions:e.createElement(n.IconButton,{icon:e.createElement(y.Pencil,null),"aria-label":m({id:(0,u.OB)("list.folder.edit"),defaultMessage:"Edit folder"}),onClick:()=>ge(a)})},e.createElement(O.Bu,null,e.createElement(O.u6,{to:pe},e.createElement(n.Flex,{as:"h2",direction:"column",alignItems:"start",maxWidth:"100%"},e.createElement(te,{fontWeight:"semiBold",ellipsis:!0},a.name,e.createElement(n.VisuallyHidden,null,":")),e.createElement(te,{as:"span",textColor:"neutral600",variant:"pi",ellipsis:!0},m({id:(0,u.OB)("list.folder.subtitle"),defaultMessage:"{folderCount, plural, =0 {# folder} one {# folder} other {# folders}}, {filesCount, plural, =0 {# asset} one {# asset} other {# assets}}"},{folderCount:a.children.count,filesCount:a.files.count})))))))})),F>0&&M>0&&e.createElement(n.Box,{paddingTop:6,paddingBottom:4},e.createElement(n.Divider,null)),F>0&&e.createElement(Ce.r,{assets:U,onEditAsset:N,onSelectAsset:k,selectedAssets:I.filter(({type:a})=>a==="asset"),title:(!S||S&&M>0)&&L?.pagination?.page===1&&m({id:(0,u.OB)("list.assets.title"),defaultMessage:"Assets ({count})"},{count:tt})||""})),L?.pagination&&e.createElement(Z,{pagination:L.pagination}))),nt&&e.createElement(he.x,{onClose:K,trackedLocation:"upload",folderId:o?.folder}),st&&e.createElement(ve.f,{onClose:ot,folder:j,parentFolderId:o?.folder,location:"upload"}),le&&e.createElement(ye.s,{onClose:a=>{a===null&&fe(1),N(void 0)},asset:le,canUpdate:i,canCopyLink:d,canDownload:c,trackedLocation:"upload"}))};var je=t(68715);const Ke=(0,e.lazy)(()=>t.e(9514).then(t.bind(t,1372)));var we=()=>{const{config:{isLoading:s,isError:l,data:r}}=(0,je.Z)(),[{rawQuery:i},d]=(0,g.useQueryParams)(),{formatMessage:c}=(0,A.useIntl)(),h=c({id:(0,u.OB)("plugin.name"),defaultMessage:"Media Library"});return(0,e.useEffect)(()=>{s||l||i||d({sort:r.sort,page:1,pageSize:r.pageSize})},[s,l,r,i,d]),(0,g.useFocusWhenNavigate)(),e.createElement(n.Main,{"aria-busy":s},e.createElement(Ee.Helmet,{title:h}),s&&e.createElement(g.LoadingIndicatorPage,null),i?e.createElement(e.Suspense,{fallback:e.createElement(g.LoadingIndicatorPage,null)},e.createElement(R.Switch,null,e.createElement(R.Route,{exact:!0,path:`/plugins/${D.Z}`,component:Ne}),e.createElement(R.Route,{exact:!0,path:`/plugins/${D.Z}/configuration`,render:()=>e.createElement(Ke,{config:r})}))):null)}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[9460],{84764:function(A,f,n){n.r(f),n.d(f,{default:function(){return P}});var e=n(32735),p=n(84968),h=n(5636),E=n(83281),i=n(13478),a=n(39161),y=n(57269),l=n(88369),t=n(59677),m=[{intlLabel:{id:(0,t.OB)("EditForm.inputToggle.label.email"),defaultMessage:"One account per email address"},description:{id:(0,t.OB)("EditForm.inputToggle.description.email"),defaultMessage:"Disallow the user to create multiple accounts using the same email address with different authentication providers."},name:"unique_email",type:"bool",size:{col:12,xs:12}},{intlLabel:{id:(0,t.OB)("EditForm.inputToggle.label.sign-up"),defaultMessage:"Enable sign-ups"},description:{id:(0,t.OB)("EditForm.inputToggle.description.sign-up"),defaultMessage:"When disabled (OFF), the registration process is forbidden. No one can subscribe anymore no matter the used provider."},name:"allow_register",type:"bool",size:{col:12,xs:12}},{intlLabel:{id:(0,t.OB)("EditForm.inputToggle.label.email-reset-password"),defaultMessage:"Reset password page"},description:{id:(0,t.OB)("EditForm.inputToggle.description.email-reset-password"),defaultMessage:"URL of your application's reset password page."},placeholder:{id:(0,t.OB)("EditForm.inputToggle.placeholder.email-reset-password"),defaultMessage:"ex: https://youtfrontend.com/reset-password"},name:"email_reset_password",type:"text",size:{col:6,xs:12}},{intlLabel:{id:(0,t.OB)("EditForm.inputToggle.label.email-confirmation"),defaultMessage:"Enable email confirmation"},description:{id:(0,t.OB)("EditForm.inputToggle.description.email-confirmation"),defaultMessage:"When enabled (ON), new registered users receive a confirmation email."},name:"email_confirmation",type:"bool",size:{col:12,xs:12}},{intlLabel:{id:(0,t.OB)("EditForm.inputToggle.label.email-confirmation-redirection"),defaultMessage:"Redirection url"},description:{id:(0,t.OB)("EditForm.inputToggle.description.email-confirmation-redirection"),defaultMessage:"After you confirmed your email, choose where you will be redirected."},placeholder:{id:(0,t.OB)("EditForm.inputToggle.placeholder.email-confirmation-redirection"),defaultMessage:"ex: https://youtfrontend.com/email-confirmation"},name:"email_confirmation_redirection",type:"text",size:{col:6,xs:12}}],r=n(5173);const u=new RegExp("(^$)|((.+:\\/\\/.*)(d*)\\/?(.*))");var L=r.Ry().shape({email_confirmation_redirection:r.nK().when("email_confirmation",{is:!0,then:r.Z_().matches(u).required(),otherwise:r.Z_().nullable()}),email_reset_password:r.Z_(i.translatedErrors.string).matches(u,i.translatedErrors.regex).nullable()});const T=async()=>{const{get:s}=(0,i.getFetchClient)(),{data:d}=await s((0,t.Gc)("advanced"));return d},R=s=>{const{put:d}=(0,i.getFetchClient)();return d((0,t.Gc)("advanced"),s)},w=()=>e.createElement(i.CheckPagePermissions,{permissions:l.Z.readAdvancedSettings},e.createElement(C,null)),C=()=>{const{formatMessage:s}=(0,h.useIntl)(),d=(0,i.useNotification)(),{lockApp:x,unlockApp:O}=(0,i.useOverlayBlocker)(),{notifyStatus:N}=(0,a.useNotifyAT)(),z=(0,p.useQueryClient)();(0,i.useFocusWhenNavigate)();const G=(0,e.useMemo)(()=>({update:l.Z.updateAdvancedSettings}),[]),{isLoading:I,allowedActions:{canUpdate:k}}=(0,i.useRBAC)(G),{status:Z,data:M}=(0,p.useQuery)("advanced",()=>T(),{onSuccess(){N(s({id:(0,t.OB)("Form.advancedSettings.data.loaded"),defaultMessage:"Advanced settings data has been loaded"}))},onError(){d({type:"warning",message:{id:(0,t.OB)("notification.error"),defaultMessage:"An error occured"}})}}),H=I||Z!=="success",B=(0,p.useMutation)(c=>R(c),{async onSuccess(){await z.invalidateQueries("advanced"),d({type:"success",message:{id:(0,t.OB)("notification.success.saved"),defaultMessage:"Saved"}}),O()},onError(){d({type:"warning",message:{id:(0,t.OB)("notification.error"),defaultMessage:"An error occured"}}),O()},refetchActive:!0}),{isLoading:U}=B,D=async c=>{x();const g=c.email_confirmation?c.email_confirmation_redirection:"";await B.mutateAsync({...c,email_confirmation_redirection:g})};return H?e.createElement(a.Main,{"aria-busy":"true"},e.createElement(i.SettingsPageTitle,{name:s({id:(0,t.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"})}),e.createElement(a.HeaderLayout,{title:s({id:(0,t.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"})}),e.createElement(a.ContentLayout,null,e.createElement(i.LoadingIndicatorPage,null))):e.createElement(a.Main,{"aria-busy":U},e.createElement(i.SettingsPageTitle,{name:s({id:(0,t.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"})}),e.createElement(E.Formik,{onSubmit:D,initialValues:M.settings,validateOnChange:!1,validationSchema:L,enableReinitialize:!0},({errors:c,values:g,handleChange:F,isSubmitting:Q})=>e.createElement(i.Form,null,e.createElement(a.HeaderLayout,{title:s({id:(0,t.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"}),primaryAction:e.createElement(a.Button,{loading:Q,type:"submit",disabled:!k,startIcon:e.createElement(y.Check,null),size:"S"},s({id:"global.save",defaultMessage:"Save"}))}),e.createElement(a.ContentLayout,null,e.createElement(a.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(a.Stack,{spacing:4},e.createElement(a.Typography,{variant:"delta",as:"h2"},s({id:"global.settings",defaultMessage:"Settings"})),e.createElement(a.Grid,{gap:6},e.createElement(a.GridItem,{col:6,s:12},e.createElement(a.Select,{label:s({id:(0,t.OB)("EditForm.inputSelect.label.role"),defaultMessage:"Default role for authenticated users"}),value:g.default_role,hint:s({id:(0,t.OB)("EditForm.inputSelect.description.role"),defaultMessage:"It will attach the new authenticated user to the selected role."}),onChange:o=>F({target:{name:"default_role",value:o}})},M.roles.map(o=>e.createElement(a.Option,{key:o.type,value:o.type},o.name)))),m.map(o=>{let b=g[o.name];return b||(b=o.type==="bool"?!1:""),e.createElement(a.GridItem,{key:o.name,...o.size},e.createElement(i.GenericInput,{...o,value:b,error:c[o.name],disabled:o.name==="email_confirmation_redirection"&&g.email_confirmation===!1,onChange:F}))}))))))))};var P=w},59677:function(A,f,n){n.d(f,{YX:function(){return h},Gc:function(){return a},OB:function(){return y.Z}});var e=n(92891),h=l=>Object.keys(l).reduce((t,S)=>{const m=l[S].controllers,r=Object.keys(m).reduce((u,v)=>((0,e.isEmpty)(m[v])||(u[v]=m[v]),u),{});return(0,e.isEmpty)(r)||(t[S]={controllers:r}),t},{}),E=n(90201),a=l=>`/${E.Z}/${l}`,y=n(82069)}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8418],{218:function(S,h,s){s.r(h),s.d(h,{default:function(){return H}});var e=s(32735),v=s(84968),T=s(5636),a=s(13478),t=s(39161),B=s(88369),l=s(59677);const f=async()=>{const{get:n}=(0,a.getFetchClient)(),{data:o}=await n((0,l.Gc)("email-templates"));return o},M=n=>{const{put:o}=(0,a.getFetchClient)();return o((0,l.Gc)("email-templates"),n)};var O=s(60216),i=s.n(O),E=s(57269);const y=({canUpdate:n,onEditClick:o})=>{const{formatMessage:r}=(0,T.useIntl)();return e.createElement(t.Table,{colCount:3,rowCount:3},e.createElement(t.Thead,null,e.createElement(t.Tr,null,e.createElement(t.Th,{width:"1%"},e.createElement(t.VisuallyHidden,null,r({id:(0,l.OB)("Email.template.table.icon.label"),defaultMessage:"icon"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},r({id:(0,l.OB)("Email.template.table.name.label"),defaultMessage:"name"}))),e.createElement(t.Th,{width:"1%"},e.createElement(t.VisuallyHidden,null,r({id:(0,l.OB)("Email.template.table.action.label"),defaultMessage:"action"}))))),e.createElement(t.Tbody,null,e.createElement(t.Tr,{...(0,a.onRowClick)({fn:()=>o("reset_password")})},e.createElement(t.Td,null,e.createElement(t.Icon,null,e.createElement(E.Refresh,{"aria-label":r({id:"global.reset-password",defaultMessage:"Reset password"})}))),e.createElement(t.Td,null,e.createElement(t.Typography,null,r({id:"global.reset-password",defaultMessage:"Reset password"}))),e.createElement(t.Td,{...a.stopPropagation},e.createElement(t.IconButton,{onClick:()=>o("reset_password"),label:r({id:(0,l.OB)("Email.template.form.edit.label"),defaultMessage:"Edit a template"}),noBorder:!0,icon:n&&e.createElement(E.Pencil,null)}))),e.createElement(t.Tr,{...(0,a.onRowClick)({fn:()=>o("email_confirmation")})},e.createElement(t.Td,null,e.createElement(t.Icon,null,e.createElement(E.Check,{"aria-label":r({id:(0,l.OB)("Email.template.email_confirmation"),defaultMessage:"Email address confirmation"})}))),e.createElement(t.Td,null,e.createElement(t.Typography,null,r({id:(0,l.OB)("Email.template.email_confirmation"),defaultMessage:"Email address confirmation"}))),e.createElement(t.Td,{...a.stopPropagation},e.createElement(t.IconButton,{onClick:()=>o("email_confirmation"),label:r({id:(0,l.OB)("Email.template.form.edit.label"),defaultMessage:"Edit a template"}),noBorder:!0,icon:n&&e.createElement(E.Pencil,null)})))))};y.propTypes={canUpdate:i().bool.isRequired,onEditClick:i().func.isRequired};var b=y,U=s(83281),c=s(5173),G=c.Ry().shape({options:c.Ry().shape({from:c.Ry().shape({name:c.Z_().required(a.translatedErrors.required),email:c.Z_().email(a.translatedErrors.email).required(a.translatedErrors.required)}).required(),response_email:c.Z_().email(a.translatedErrors.email),object:c.Z_().required(a.translatedErrors.required),message:c.Z_().required(a.translatedErrors.required)}).required(a.translatedErrors.required)});const R=({template:n,onToggle:o,onSubmit:r})=>{const{formatMessage:m}=(0,T.useIntl)();return e.createElement(t.ModalLayout,{onClose:o,labelledBy:`${m({id:(0,l.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})}, ${m({id:(0,l.OB)(n.display),defaultMessage:n.display})}`},e.createElement(t.ModalHeader,null,e.createElement(t.Breadcrumbs,{label:`${m({id:(0,l.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})}, ${m({id:(0,l.OB)(n.display),defaultMessage:n.display})}`},e.createElement(t.Crumb,null,m({id:(0,l.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})),e.createElement(t.Crumb,null,m({id:(0,l.OB)(n.display),defaultMessage:n.display})))),e.createElement(U.Formik,{onSubmit:r,initialValues:n,validateOnChange:!1,validationSchema:G,enableReinitialize:!0},({errors:d,values:u,handleChange:p,isSubmitting:C})=>e.createElement(a.Form,null,e.createElement(t.ModalBody,null,e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.from.name.label"),defaultMessage:"Shipper name"},name:"options.from.name",onChange:p,value:u.options.from.name,error:d?.options?.from?.name,type:"text"})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.from.email.label"),defaultMessage:"Shipper email"},name:"options.from.email",onChange:p,value:u.options.from.email,error:d?.options?.from?.email,type:"text"})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.response_email.label"),defaultMessage:"Response email"},name:"options.response_email",onChange:p,value:u.options.response_email,error:d?.options?.response_email,type:"text"})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.object.label"),defaultMessage:"Subject"},name:"options.object",onChange:p,value:u.options.object,error:d?.options?.object,type:"text"})),e.createElement(t.GridItem,{col:12,s:12},e.createElement(t.Textarea,{label:m({id:(0,l.OB)("PopUpForm.Email.options.message.label"),defaultMessage:"Message"}),name:"options.message",onChange:p,value:u.options.message,error:d?.options?.message&&m({id:d.options.message,defaultMessage:d.options.message})})))),e.createElement(t.ModalFooter,{startActions:e.createElement(t.Button,{onClick:o,variant:"tertiary"},"Cancel"),endActions:e.createElement(t.Button,{loading:C,type:"submit"},"Finish")}))))};R.propTypes={template:i().shape({display:i().string,icon:i().string,options:i().shape({from:i().shape({name:i().string,email:i().string}),message:i().string,object:i().string,response_email:i().string})}).isRequired,onSubmit:i().func.isRequired,onToggle:i().func.isRequired};var k=R;const A=()=>e.createElement(a.CheckPagePermissions,{permissions:B.Z.readEmailTemplates},e.createElement(j,null)),j=()=>{const{formatMessage:n}=(0,T.useIntl)(),{trackUsage:o}=(0,a.useTracking)(),{notifyStatus:r}=(0,t.useNotifyAT)(),m=(0,a.useNotification)(),{lockApp:d,unlockApp:u}=(0,a.useOverlayBlocker)(),p=(0,e.useRef)(o),C=(0,v.useQueryClient)();(0,a.useFocusWhenNavigate)();const[Z,N]=(0,e.useState)(!1),[F,$]=(0,e.useState)(null),x=(0,e.useMemo)(()=>({update:B.Z.updateEmailTemplates}),[]),{isLoading:q,allowedActions:{canUpdate:w}}=(0,a.useRBAC)(x),{status:Q,data:I}=(0,v.useQuery)("email-templates",()=>f(),{onSuccess(){r(n({id:(0,l.OB)("Email.template.data.loaded"),defaultMessage:"Email templates has been loaded"}))},onError(){m({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),V=q||Q!=="success",P=()=>{N(g=>!g)},D=g=>{$(g),P()},L=(0,v.useMutation)(g=>M({"email-templates":g}),{async onSuccess(){await C.invalidateQueries("email-templates"),m({type:"success",message:{id:"notification.success.saved",defaultMessage:"Saved"}}),p.current("didEditEmailTemplates"),u(),P()},onError(){m({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}}),u()},refetchActive:!0}),{isLoading:z}=L,W=g=>{d(),p.current("willEditEmailTemplates");const X={...I,[F]:g};L.mutate(X)};return V?e.createElement(t.Main,{"aria-busy":"true"},e.createElement(a.SettingsPageTitle,{name:n({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.HeaderLayout,{title:n({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.ContentLayout,null,e.createElement(a.LoadingIndicatorPage,null))):e.createElement(t.Main,{"aria-busy":z},e.createElement(a.SettingsPageTitle,{name:n({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.HeaderLayout,{title:n({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.ContentLayout,null,e.createElement(b,{onEditClick:D,canUpdate:w}),Z&&e.createElement(k,{template:I[F],onToggle:P,onSubmit:W})))};var H=A},59677:function(S,h,s){s.d(h,{YX:function(){return T},Gc:function(){return B},OB:function(){return l.Z}});var e=s(92891),T=f=>Object.keys(f).reduce((M,O)=>{const i=f[O].controllers,E=Object.keys(i).reduce((y,b)=>((0,e.isEmpty)(i[b])||(y[b]=i[b]),y),{});return(0,e.isEmpty)(E)||(M[O]={controllers:E}),M},{}),a=s(90201),B=f=>`/${a.Z}/${f}`,l=s(82069)}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2282],{51509:function(Y,B,n){n.r(B),n.d(B,{ProvidersPage:function(){return V},default:function(){return oe}});var e=n(32735),O=n(5636),s=n(13478),S=n(23973),W=n.n(S),Z=n(23940),U=n.n(Z),t=n(39161),R=n(57269),P=n(84968),r=n(5173),o=n(59677);const M={id:(0,o.OB)("PopUpForm.Providers.redirectURL.front-end.label"),defaultMessage:"The redirect URL to your front-end app"},T={id:"http://www.client-app.com",defaultMessage:"http://www.client-app.com"},w={id:(0,o.OB)("PopUpForm.Providers.enabled.description"),defaultMessage:"If disabled, users won't be able to use this provider."},x={id:(0,o.OB)("PopUpForm.Providers.enabled.label"),defaultMessage:"Enable"},G={id:(0,o.OB)("PopUpForm.Providers.key.label"),defaultMessage:"Client ID"},X={id:(0,o.OB)("PopUpForm.Providers.redirectURL.label"),defaultMessage:"The redirect URL to add in your {provider} application configurations"},C={id:(0,o.OB)("PopUpForm.Providers.key.placeholder"),defaultMessage:"TEXT"},$={id:(0,o.OB)("PopUpForm.Providers.secret.label"),defaultMessage:"Client Secret"};var I={email:{form:[[{intlLabel:x,name:"enabled",type:"bool",description:w,size:6}]],schema:r.Ry().shape({enabled:r.Xg().required(s.translatedErrors.required)})},providers:{form:[[{intlLabel:x,name:"enabled",type:"bool",description:w,size:6,validations:{required:!0}}],[{intlLabel:G,name:"key",type:"text",placeholder:C,size:12,validations:{required:!0}}],[{intlLabel:$,name:"secret",type:"text",placeholder:C,size:12,validations:{required:!0}}],[{intlLabel:M,placeholder:T,name:"callback",type:"text",size:12,validations:{required:!0}}],[{intlLabel:X,name:"noName",type:"text",validations:{},size:12,disabled:!0}]],schema:r.Ry().shape({enabled:r.Xg().required(s.translatedErrors.required),key:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()}),secret:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()}),callback:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()})})},providersWithSubdomain:{form:[[{intlLabel:x,name:"enabled",type:"bool",description:w,size:6,validations:{required:!0}}],[{intlLabel:G,name:"key",type:"text",placeholder:C,size:12,validations:{required:!0}}],[{intlLabel:$,name:"secret",type:"text",placeholder:C,size:12,validations:{required:!0}}],[{intlLabel:{id:(0,o.OB)({id:"PopUpForm.Providers.jwksurl.label"}),defaultMessage:"JWKS URL"},name:"jwksurl",type:"text",placeholder:C,size:12,validations:{required:!1}}],[{intlLabel:{id:(0,o.OB)("PopUpForm.Providers.subdomain.label"),defaultMessage:"Host URI (Subdomain)"},name:"subdomain",type:"text",placeholder:{id:(0,o.OB)("PopUpForm.Providers.subdomain.placeholder"),defaultMessage:"my.subdomain.com"},size:12,validations:{required:!0}}],[{intlLabel:M,placeholder:T,name:"callback",type:"text",size:12,validations:{required:!0}}],[{intlLabel:X,name:"noName",type:"text",validations:{},size:12,disabled:!0}]],schema:r.Ry().shape({enabled:r.Xg().required(s.translatedErrors.required),key:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()}),secret:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()}),subdomain:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()}),callback:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()})})}};const _=async i=>{try{const{get:d}=(0,s.getFetchClient)(),{data:m}=await d((0,o.Gc)("providers"));return m}catch{throw i({type:"warning",message:{id:"notification.error"}}),new Error("error")}},ee=i=>{const{put:d}=(0,s.getFetchClient)();return d((0,o.Gc)("providers"),i)};var te=n(92891),ae=i=>(0,te.sortBy)(Object.keys(i).reduce((d,m)=>{const{icon:g,enabled:c,subdomain:b}=i[m],p=g==="envelope"?["fas","envelope"]:["fab",g];return b!==void 0?d.push({name:m,icon:p,enabled:c,subdomain:b}):d.push({name:m,icon:p,enabled:c}),d},[]),"name"),Q=n(88369),re=n(60216),a=n.n(re),se=n(83281);const z=({description:i,disabled:d,intlLabel:m,error:g,name:c,onChange:b,placeholder:p,providerToEditName:y,type:h,value:l})=>{const{formatMessage:f}=(0,O.useIntl)(),E=c==="noName"?`${strapi.backendURL}/api/connect/${y}/callback`:l,L=f({id:m.id,defaultMessage:m.defaultMessage},{provider:y,...m.values}),v=i?f({id:i.id,defaultMessage:i.defaultMessage},{provider:y,...i.values}):"";if(h==="bool")return e.createElement(t.ToggleInput,{"aria-label":c,checked:l,disabled:d,hint:v,label:L,name:c,offLabel:f({id:"app.components.ToggleCheckbox.off-label",defaultMessage:"Off"}),onLabel:f({id:"app.components.ToggleCheckbox.on-label",defaultMessage:"On"}),onChange:q=>{b({target:{name:c,value:q.target.checked}})}});const A=p?f({id:p.id,defaultMessage:p.defaultMessage},{...p.values}):"",j=g?f({id:g,defaultMessage:g}):"";return e.createElement(t.TextInput,{"aria-label":c,disabled:d,error:j,label:L,name:c,onChange:b,placeholder:A,type:h,value:E})};z.defaultProps={description:null,disabled:!1,error:"",placeholder:null,value:""},z.propTypes={description:a().shape({id:a().string.isRequired,defaultMessage:a().string.isRequired,values:a().object}),disabled:a().bool,error:a().string,intlLabel:a().shape({id:a().string.isRequired,defaultMessage:a().string.isRequired,values:a().object}).isRequired,name:a().string.isRequired,onChange:a().func.isRequired,placeholder:a().shape({id:a().string.isRequired,defaultMessage:a().string.isRequired,values:a().object}),providerToEditName:a().string.isRequired,type:a().string.isRequired,value:a().oneOfType([a().bool,a().string])};var ne=z;const N=({headerBreadcrumbs:i,initialData:d,isSubmiting:m,layout:g,isOpen:c,onSubmit:b,onToggle:p,providerToEditName:y})=>{const{formatMessage:h}=(0,O.useIntl)();return c?e.createElement(t.ModalLayout,{onClose:p,labelledBy:"title"},e.createElement(t.ModalHeader,null,e.createElement(t.Breadcrumbs,{label:i.join(", ")},i.map(l=>e.createElement(t.Crumb,{key:l},l)))),e.createElement(se.Formik,{onSubmit:l=>b(l),initialValues:d,validationSchema:g.schema,validateOnChange:!1},({errors:l,handleChange:f,values:E})=>e.createElement(s.Form,null,e.createElement(t.ModalBody,null,e.createElement(t.Stack,{spacing:1},e.createElement(t.Grid,{gap:5},g.form.map(L=>L.map(v=>e.createElement(t.GridItem,{key:v.name,col:v.size,xs:12},e.createElement(ne,{...v,error:l[v.name],onChange:f,value:E[v.name],providerToEditName:y}))))))),e.createElement(t.ModalFooter,{startActions:e.createElement(t.Button,{variant:"tertiary",onClick:p,type:"button"},h({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(t.Button,{type:"submit",loading:m},h({id:"global.save",defaultMessage:"Save"}))})))):null};N.defaultProps={initialData:null,providerToEditName:null},N.propTypes={headerBreadcrumbs:a().arrayOf(a().string).isRequired,initialData:a().object,layout:a().shape({form:a().arrayOf(a().array),schema:a().object}).isRequired,isOpen:a().bool.isRequired,isSubmiting:a().bool.isRequired,onSubmit:a().func.isRequired,onToggle:a().func.isRequired,providerToEditName:a().string};var ie=N;const V=()=>{const{formatMessage:i}=(0,O.useIntl)();(0,s.useFocusWhenNavigate)();const{notifyStatus:d}=(0,t.useNotifyAT)(),m=(0,P.useQueryClient)(),{trackUsage:g}=(0,s.useTracking)(),c=(0,e.useRef)(g),[b,p]=(0,e.useState)(!1),[y,h]=(0,e.useState)(!1),[l,f]=(0,e.useState)(null),E=(0,s.useNotification)(),{lockApp:L,unlockApp:v}=(0,s.useOverlayBlocker)(),A=(0,e.useMemo)(()=>({update:Q.Z.updateProviders}),[]),{isLoading:j,allowedActions:{canUpdate:q}}=(0,s.useRBAC)(A),{isLoading:le,data:k,isFetching:de}=(0,P.useQuery)("get-providers",()=>_(E),{onSuccess(){d(i({id:(0,o.OB)("Providers.data.loaded"),defaultMessage:"Providers have been loaded"}))},initialData:{}}),ue=le||de,ce=(0,P.useMutation)(ee,{async onSuccess(){await m.invalidateQueries("get-providers"),E({type:"info",message:{id:(0,o.OB)("notification.success.submit")}}),c.current("didEditAuthenticationProvider"),h(!1),D(),v()},onError(){E({type:"warning",message:{id:"notification.error"}}),v(),h(!1)},refetchActive:!1}),F=(0,e.useMemo)(()=>ae(k),[k]),me=F.length,J=(0,e.useMemo)(()=>{if(!l)return!1;const u=F.find(H=>H.name===l);return W()(u,"subdomain")},[F,l]),pe=i({id:(0,o.OB)("HeaderNav.link.providers"),defaultMessage:"Providers"}),ge=(0,e.useMemo)(()=>l==="email"?I.email:J?I.providersWithSubdomain:I.providers,[l,J]),D=()=>{p(u=>!u)},K=u=>{q&&(f(u.name),D())},fe=async u=>{h(!0),L(),c.current("willEditAuthenticationProvider");const H={...k,[l]:u};ce.mutate({providers:H})};return e.createElement(t.Layout,null,e.createElement(s.SettingsPageTitle,{name:pe}),e.createElement(t.Main,null,e.createElement(t.HeaderLayout,{title:i({id:(0,o.OB)("HeaderNav.link.providers"),defaultMessage:"Providers"})}),ue||j?e.createElement(s.LoadingIndicatorPage,null):e.createElement(t.ContentLayout,null,e.createElement(t.Table,{colCount:3,rowCount:me+1},e.createElement(t.Thead,null,e.createElement(t.Tr,null,e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},i({id:"global.name",defaultMessage:"Name"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},i({id:(0,o.OB)("Providers.status"),defaultMessage:"Status"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma"},e.createElement(t.VisuallyHidden,null,i({id:"global.settings",defaultMessage:"Settings"})))))),e.createElement(t.Tbody,null,F.map(u=>e.createElement(t.Tr,{key:u.name,...(0,s.onRowClick)({fn:()=>K(u),condition:q})},e.createElement(t.Td,{width:"45%"},e.createElement(t.Typography,{fontWeight:"semiBold",textColor:"neutral800"},u.name)),e.createElement(t.Td,{width:"65%"},e.createElement(t.Typography,{textColor:u.enabled?"success600":"danger600","data-testid":`enable-${u.name}`},u.enabled?i({id:"global.enabled",defaultMessage:"Enabled"}):i({id:"global.disabled",defaultMessage:"Disabled"}))),e.createElement(t.Td,{...s.stopPropagation},q&&e.createElement(t.IconButton,{onClick:()=>K(u),noBorder:!0,icon:e.createElement(R.Pencil,null),label:"Edit"})))))))),e.createElement(ie,{initialData:k[l],isOpen:b,isSubmiting:y,layout:ge,headerBreadcrumbs:[i({id:(0,o.OB)("PopUpForm.header.edit.providers"),defaultMessage:"Edit Provider"}),U()(l)],onToggle:D,onSubmit:fe,providerToEditName:l}))};var oe=()=>e.createElement(s.CheckPagePermissions,{permissions:Q.Z.readProviders},e.createElement(V,null))},59677:function(Y,B,n){n.d(B,{YX:function(){return s},Gc:function(){return Z},OB:function(){return U.Z}});var e=n(92891),s=t=>Object.keys(t).reduce((R,P)=>{const r=t[P].controllers,o=Object.keys(r).reduce((M,T)=>((0,e.isEmpty)(r[T])||(M[T]=r[T]),M),{});return(0,e.isEmpty)(o)||(R[P]={controllers:o}),R},{}),S=n(90201),Z=t=>`/${S.Z}/${t}`,U=n(82069)}}]);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8853],{77495:function(b,L,r){"use strict";r.r(L),r.d(L,{default:function(){return We}});var e=r(32735),C=r(5141),o=r(13478),c=r(90201),y=r(88369),t=r(39161),E=r(57269),f=r(5636),v=r(84968),k=r(58469),T=r(59677);const A=async(n,a)=>{try{const{get:s}=(0,o.getFetchClient)(),{data:i}=await s((0,T.Gc)("roles"));return a("The roles have loaded successfully"),i}catch{throw n({type:"warning",message:{id:"notification.error"}}),new Error("error")}},w=async(n,a)=>{try{const{del:s}=(0,o.getFetchClient)();await s(`${(0,T.Gc)("roles")}/${n}`)}catch{a({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}};var N=r(60216),D=r.n(N);const S=({sortedRoles:n,canDelete:a,permissions:s,setRoleToDelete:i,onDelete:d})=>{const{formatMessage:l}=(0,f.useIntl)(),{push:m}=(0,C.useHistory)(),[p,h]=d,g=u=>a&&!["public","authenticated"].includes(u.type),R=u=>{i(u),h(!p)},P=u=>{m(`/settings/${c.Z}/roles/${u}`)};return e.createElement(t.Tbody,null,n?.map(u=>e.createElement(t.Tr,{key:u.name,...(0,o.onRowClick)({fn:()=>P(u.id)})},e.createElement(t.Td,{width:"20%"},e.createElement(t.Typography,null,u.name)),e.createElement(t.Td,{width:"50%"},e.createElement(t.Typography,null,u.description)),e.createElement(t.Td,{width:"30%"},e.createElement(t.Typography,null,`${u.nb_users} ${l({id:"global.users",defaultMessage:"users"}).toLowerCase()}`)),e.createElement(t.Td,null,e.createElement(t.Flex,{justifyContent:"end",...o.stopPropagation},e.createElement(o.CheckPermissions,{permissions:s.updateRole},e.createElement(t.IconButton,{onClick:()=>P(u.id),noBorder:!0,icon:e.createElement(E.Pencil,null),label:l({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:`${u.name}`})})),g(u)&&e.createElement(o.CheckPermissions,{permissions:s.deleteRole},e.createElement(t.IconButton,{onClick:()=>R(u.id),noBorder:!0,icon:e.createElement(E.Trash,null),label:l({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:`${u.name}`})})))))))};var F=S;S.defaultProps={canDelete:!1},S.propTypes={onDelete:D().array.isRequired,permissions:D().object.isRequired,setRoleToDelete:D().func.isRequired,sortedRoles:D().array.isRequired,canDelete:D().bool};var W=()=>{const{trackUsage:n}=(0,o.useTracking)(),{formatMessage:a}=(0,f.useIntl)(),{push:s}=(0,C.useHistory)(),i=(0,o.useNotification)(),{notifyStatus:d}=(0,t.useNotifyAT)(),[{query:l}]=(0,o.useQueryParams)(),m=l?._q||"",[p,h]=(0,e.useState)(!1),[g,R]=(0,e.useState)(!1),[P,u]=(0,e.useState)();(0,o.useFocusWhenNavigate)();const x=(0,v.useQueryClient)(),G=(0,e.useMemo)(()=>({create:y.Z.createRole,read:y.Z.readRoles,update:y.Z.updateRole,delete:y.Z.deleteRole}),[]),{isLoading:M,allowedActions:{canRead:B,canDelete:U}}=(0,o.useRBAC)(G),{isLoading:I,data:{roles:oe},isFetching:Qe}=(0,v.useQuery)("get-roles",()=>A(i,d),{initialData:{},enabled:B}),ie=I||Qe,ze=()=>{n("willCreateRole"),s(`/settings/${c.Z}/roles/new`)},Ye=()=>{h(!p)},Xe={roles:{id:(0,T.OB)("Roles.empty"),defaultMessage:"You don't have any roles yet."},search:{id:(0,T.OB)("Roles.empty.search"),defaultMessage:"No roles match the search."}},Je=a({id:"global.roles",defaultMessage:"Roles"}),Ke=(0,v.useMutation)(nt=>w(nt,i),{async onSuccess(){await x.invalidateQueries("get-roles")}}),qe=async()=>{R(!0),await Ke.mutateAsync(P),h(!p),R(!1)},V=(0,k.ZP)(oe||[],m,{keys:["name","description"]}),_e=m&&!V.length?"search":"roles",et=4,tt=(oe?.length||0)+1;return e.createElement(t.Layout,null,e.createElement(o.SettingsPageTitle,{name:Je}),e.createElement(t.Main,{"aria-busy":ie},e.createElement(t.HeaderLayout,{title:a({id:"global.roles",defaultMessage:"Roles"}),subtitle:a({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),primaryAction:e.createElement(o.CheckPermissions,{permissions:y.Z.createRole},e.createElement(t.Button,{onClick:ze,startIcon:e.createElement(E.Plus,null),size:"S"},a({id:(0,T.OB)("List.button.roles"),defaultMessage:"Add new role"})))}),e.createElement(t.ActionLayout,{startActions:e.createElement(o.SearchURLQuery,{label:a({id:"app.component.search.label",defaultMessage:"Search"})})}),e.createElement(t.ContentLayout,null,!B&&e.createElement(o.NoPermissions,null),(ie||M)&&e.createElement(o.LoadingIndicatorPage,null),B&&V&&V?.length?e.createElement(t.Table,{colCount:et,rowCount:tt},e.createElement(t.Thead,null,e.createElement(t.Tr,null,e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},a({id:"global.name",defaultMessage:"Name"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},a({id:"global.description",defaultMessage:"Description"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},a({id:"global.users",defaultMessage:"Users"}))),e.createElement(t.Th,null,e.createElement(t.VisuallyHidden,null,a({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(F,{sortedRoles:V,canDelete:U,permissions:y.Z,setRoleToDelete:u,onDelete:[p,h]})):e.createElement(o.EmptyStateLayout,{content:Xe[_e]})),e.createElement(o.ConfirmDialog,{isConfirmButtonLoading:g,onConfirm:qe,onToggleDialog:Ye,isOpen:p})))},ce=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.accessRoles},e.createElement(W,null)),X=r(83281),$=r(82069),O=r(92891);const J=(0,e.createContext)({}),K=({children:n,value:a})=>e.createElement(J.Provider,{value:a},n),Q=()=>(0,e.useContext)(J);K.propTypes={children:D().node.isRequired,value:D().object.isRequired};var j=r(83292),ue=r(37213),de=r.n(ue),me=r(15738),ge=r.n(me),pe=n=>{switch(n){case"POST":return{text:"success600",border:"success200",background:"success100"};case"GET":return{text:"secondary600",border:"secondary200",background:"secondary100"};case"PUT":return{text:"warning600",border:"warning200",background:"warning100"};case"DELETE":return{text:"danger600",border:"danger200",background:"danger100"};default:return{text:"neutral600",border:"neutral200",background:"neutral100"}}};const Ee=(0,j.default)(t.Box)`
|
|
2
|
+
margin: -1px;
|
|
3
|
+
border-radius: ${({theme:n})=>n.spaces[1]} 0 0 ${({theme:n})=>n.spaces[1]};
|
|
4
|
+
`;function z({route:n}){const{formatMessage:a}=(0,f.useIntl)(),{method:s,handler:i,path:d}=n,l=d?ge()(d.split("/")):[],[m="",p=""]=i?i.split("."):[],h=pe(n.method);return e.createElement(t.Stack,{spacing:2},e.createElement(t.Typography,{variant:"delta",as:"h3"},a({id:"users-permissions.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",e.createElement("span",null,m),e.createElement(t.Typography,{variant:"delta",textColor:"primary600"},".",p)),e.createElement(t.Stack,{horizontal:!0,hasRadius:!0,background:"neutral0",borderColor:"neutral200",spacing:0},e.createElement(Ee,{background:h.background,borderColor:h.border,padding:2},e.createElement(t.Typography,{fontWeight:"bold",textColor:h.text},s)),e.createElement(t.Box,{paddingLeft:2,paddingRight:2},de()(l,g=>e.createElement(t.Typography,{key:g,textColor:g.includes(":")?"neutral600":"neutral900"},"/",g)))))}z.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},z.propTypes={route:D().shape({handler:D().string,method:D().string,path:D().string})};var he=z,fe=()=>{const{formatMessage:n}=(0,f.useIntl)(),{selectedAction:a,routes:s}=Q(),i=(0,O.without)(a.split("."),"controllers"),d=(0,O.get)(s,i[0]),l=i.slice(1).join("."),m=(0,O.isEmpty)(d)?[]:d.filter(p=>p.handler.endsWith(l));return e.createElement(t.GridItem,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},a?e.createElement(t.Stack,{spacing:2},m.map((p,h)=>e.createElement(he,{key:h,route:p}))):e.createElement(t.Stack,{spacing:2},e.createElement(t.Typography,{variant:"delta",as:"h3"},n({id:"users-permissions.Policies.header.title",defaultMessage:"Advanced settings"})),e.createElement(t.Typography,{as:"p",textColor:"neutral600"},n({id:"users-permissions.Policies.header.hint",defaultMessage:"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"}))))},ye=r(23940),Ce=r.n(ye);function Re(n){switch(n){case"application":return"Application";case"plugin::content-manager":return"Content manager";case"plugin::content-type-builder":return"Content types builder";case"plugin::documentation":return"Documentation";case"plugin::email":return"Email";case"plugin::i18n":return"i18n";case"plugin::upload":return"Upload";case"plugin::users-permissions":return"Users-permissions";default:return Ce()(n.replace("api::","").replace("plugin::",""))}}var be=Re,Te=r(98978),q=r.n(Te);const _=j.css`
|
|
5
|
+
background: ${n=>n.theme.colors.primary100};
|
|
6
|
+
svg {
|
|
7
|
+
opacity: 1;
|
|
8
|
+
}
|
|
9
|
+
`;var ve=(0,j.default)(t.Box)`
|
|
10
|
+
display: flex;
|
|
11
|
+
justify-content: space-between;
|
|
12
|
+
align-items: center;
|
|
13
|
+
|
|
14
|
+
svg {
|
|
15
|
+
opacity: 0;
|
|
16
|
+
path {
|
|
17
|
+
fill: ${n=>n.theme.colors.primary600};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* Show active style both on hover and when the action is selected */
|
|
22
|
+
${n=>n.isActive&&_}
|
|
23
|
+
&:hover {
|
|
24
|
+
${_}
|
|
25
|
+
}
|
|
26
|
+
`;const Ae=j.default.div`
|
|
27
|
+
flex: 1;
|
|
28
|
+
align-self: center;
|
|
29
|
+
border-top: 1px solid ${({theme:n})=>n.colors.neutral150};
|
|
30
|
+
`,ee=({subCategory:n})=>{const{formatMessage:a}=(0,f.useIntl)(),{onChange:s,onChangeSelectAll:i,onSelectedAction:d,selectedAction:l,modifiedData:m}=Q(),p=(0,e.useMemo)(()=>(0,O.get)(m,n.name,{}),[m,n]),h=(0,e.useMemo)(()=>Object.values(p).every(u=>u.enabled===!0),[p]),g=(0,e.useMemo)(()=>Object.values(p).some(u=>u.enabled===!0)&&!h,[p,h]),R=(0,e.useCallback)(({target:{name:u}})=>{i({target:{name:u,value:!h}})},[h,i]),P=(0,e.useCallback)(u=>l===u,[l]);return e.createElement(t.Box,null,e.createElement(t.Flex,{justifyContent:"space-between",alignItems:"center"},e.createElement(t.Box,{paddingRight:4},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},n.label)),e.createElement(Ae,null),e.createElement(t.Box,{paddingLeft:4},e.createElement(t.Checkbox,{name:n.name,value:h,onValueChange:u=>R({target:{name:n.name,value:u}}),indeterminate:g},a({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(t.Flex,{paddingTop:6,paddingBottom:6},e.createElement(t.Grid,{gap:2,style:{flex:1}},n.actions.map(u=>{const x=`${u.name}.enabled`;return e.createElement(t.GridItem,{col:6,key:u.name},e.createElement(ve,{isActive:P(u.name),padding:2,hasRadius:!0},e.createElement(t.Checkbox,{value:(0,O.get)(m,x,!1),name:x,onValueChange:G=>s({target:{name:x,value:G}})},u.label),e.createElement("button",{type:"button","data-testid":"action-cog",onClick:()=>d(u.name),style:{display:"inline-flex",alignItems:"center"}},e.createElement(E.Cog,null))))}))))};ee.propTypes={subCategory:D().object.isRequired};var Pe=ee;const te=({name:n,permissions:a})=>{const s=(0,e.useMemo)(()=>q()(Object.values(a.controllers).reduce((i,d,l)=>{const m=`${n}.controllers.${Object.keys(a.controllers)[l]}`,p=q()(Object.keys(d).reduce((h,g)=>[...h,{...d[g],label:g,name:`${m}.${g}`}],[]),"label");return[...i,{actions:p,label:Object.keys(a.controllers)[l],name:m}]},[]),"label"),[n,a]);return e.createElement(t.Box,{padding:6},s.map(i=>e.createElement(Pe,{key:i.name,subCategory:i})))};te.propTypes={name:D().string.isRequired,permissions:D().object.isRequired};var De=te,Le=(n,a)=>{const s=Object.keys(a).sort().map(i=>({name:i,isOpen:!1}));return{...n,collapses:s}},H=r(97889);const ke={collapses:[]},Se=(n,a)=>(0,H.default)(n,s=>{switch(a.type){case"TOGGLE_COLLAPSE":{s.collapses=n.collapses.map((i,d)=>d===a.index?{...i,isOpen:!i.isOpen}:{...i,isOpen:!1});break}default:return s}});var Me=()=>{const{modifiedData:n}=Q(),{formatMessage:a}=(0,f.useIntl)(),[{collapses:s},i]=(0,e.useReducer)(Se,ke,l=>Le(l,n)),d=l=>i({type:"TOGGLE_COLLAPSE",index:l});return e.createElement(t.Stack,{spacing:1},s.map((l,m)=>e.createElement(t.Accordion,{expanded:l.isOpen,onToggle:()=>d(m),key:l.name,variant:m%2===0?"secondary":void 0},e.createElement(t.AccordionToggle,{title:be(l.name),description:a({id:"users-permissions.Plugin.permissions.plugins.description",defaultMessage:"Define all allowed actions for the {name} plugin."},{name:l.name}),variant:m%2?"primary":"secondary"}),e.createElement(t.AccordionContent,null,e.createElement(t.Box,null,e.createElement(De,{permissions:n[l.name],name:l.name}))))))};const xe={initialData:{},modifiedData:{},routes:{},selectedAction:"",policies:[]};var Be=(n,a)=>(0,H.default)(n,s=>{switch(a.type){case"ON_CHANGE":{const i=a.keys.length,d=a.keys[i-1]==="enabled";if(a.value&&d){const l=(0,O.take)(a.keys,i-1).join(".");s.selectedAction=l}(0,O.set)(s,["modifiedData",...a.keys],a.value);break}case"ON_CHANGE_SELECT_ALL":{const i=["modifiedData",...a.keys],d=(0,O.get)(n,i,{}),l=Object.keys(d).reduce((m,p)=>(m[p]={...d[p],enabled:a.value},m),{});(0,O.set)(s,i,l);break}case"ON_RESET":{s.modifiedData=n.initialData;break}case"ON_SUBMIT_SUCCEEDED":{s.initialData=n.modifiedData;break}case"SELECT_ACTION":{const{actionToSelect:i}=a;s.selectedAction=i===n.selectedAction?"":i;break}default:return s}}),Oe=(n,a,s)=>({...n,initialData:a,modifiedData:a,routes:s});const ne=(0,e.forwardRef)(({permissions:n,routes:a},s)=>{const{formatMessage:i}=(0,f.useIntl)(),[d,l]=(0,e.useReducer)(Be,xe,R=>Oe(R,n,a));(0,e.useImperativeHandle)(s,()=>({getPermissions(){return{permissions:d.modifiedData}},resetForm(){l({type:"ON_RESET"})},setFormAfterSubmit(){l({type:"ON_SUBMIT_SUCCEEDED"})}}));const g={...d,onChange:({target:{name:R,value:P}})=>l({type:"ON_CHANGE",keys:R.split("."),value:P==="empty__string_value"?"":P}),onChangeSelectAll:({target:{name:R,value:P}})=>l({type:"ON_CHANGE_SELECT_ALL",keys:R.split("."),value:P}),onSelectedAction:R=>l({type:"SELECT_ACTION",actionToSelect:R})};return e.createElement(K,{value:g},e.createElement(t.Grid,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},e.createElement(t.GridItem,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Stack,{spacing:6},e.createElement(t.Stack,{spacing:2},e.createElement(t.Typography,{variant:"delta",as:"h2"},i({id:(0,$.Z)("Plugins.header.title"),defaultMessage:"Permissions"})),e.createElement(t.Typography,{as:"p",textColor:"neutral600"},i({id:(0,$.Z)("Plugins.header.description"),defaultMessage:"Only actions bound by a route are listed below."}))),e.createElement(Me,null))),e.createElement(fe,null)))});ne.propTypes={permissions:D().object.isRequired,routes:D().object.isRequired};var se=(0,e.memo)(ne);const ut={isLoading:!0,modifiedData:{}},dt=(n,a)=>produce(n,s=>{switch(a.type){case"GET_DATA":{s.isLoading=!0,s.modifiedData={};break}case"GET_DATA_SUCCEEDED":{s.isLoading=!1,s.modifiedData=a.data;break}case"GET_DATA_ERROR":{s.isLoading=!0;break}case"ON_SUBMIT_SUCCEEDED":{s.modifiedData=a.data;break}default:return s}});var mt=null;const gt=(n,a)=>{const{isLoading:s,allowedActions:i}=useRBAC(a),[{isLoading:d,modifiedData:l},m]=useReducer(reducer,initialState),p=useNotification(),h=useRef(!0),g=new AbortController,{signal:R}=g;useEffect(()=>(s||(async()=>{try{m({type:"GET_DATA"});const x=await request(getRequestURL(n),{method:"GET",signal:R});m({type:"GET_DATA_SUCCEEDED",data:x})}catch(x){h.current&&(m({type:"GET_DATA_ERROR"}),console.error(x),p({type:"warning",message:{id:"notification.error"}}))}})(),()=>{g.abort(),h.current=!1}),[s,n]);const P=useCallback(u=>{m({type:"ON_SUBMIT_SUCCEEDED",data:u})},[]);return{allowedActions:i,dispatchSubmitSucceeded:P,isLoading:d,isLoadingForPermissions:s,modifiedData:l}};var pt=null;const Et={roles:[],isLoading:!0},ht=(n,a)=>produce(n,s=>{switch(a.type){case"GET_DATA":{s.isLoading=!0,s.roles=[];break}case"GET_DATA_SUCCEEDED":{s.roles=a.data,s.isLoading=!1;break}case"GET_DATA_ERROR":{s.isLoading=!1;break}default:return s}});var ft=null;const yt=(n=!0)=>{const[{roles:a,isLoading:s},i]=useReducer(reducer,initialState,()=>init(initialState,n)),d=useNotification(),l=useRef(!0),m=new AbortController,{signal:p}=m;useEffect(()=>(n&&h(),()=>{m.abort(),l.current=!1}),[n]);const h=async()=>{try{i({type:"GET_DATA"});const{roles:g}=await request(`/${pluginId}/roles`,{method:"GET",signal:p});i({type:"GET_DATA_SUCCEEDED",data:g})}catch(g){const R=get(g,["response","payload","message"],"An error occured");l.current&&(i({type:"GET_DATA_ERROR"}),R!=="Forbidden"&&d({type:"warning",message:R}))}};return{roles:a,isLoading:s,getData:h}};var Ct=null,Ge=(n,a)=>({...n,isLoading:a});const ae={permissions:{},routes:{},isLoading:!0};var Ue=(n,a)=>(0,H.default)(n,s=>{switch(a.type){case"GET_DATA":{s.isLoading=!0,s.permissions={},s.routes={};break}case"GET_DATA_SUCCEEDED":{s.permissions=a.permissions,s.routes=a.routes,s.isLoading=!1;break}case"GET_DATA_ERROR":{s.isLoading=!1;break}default:return s}}),re=(n=!0)=>{const a=(0,o.useNotification)(),[{permissions:s,routes:i,isLoading:d},l]=(0,e.useReducer)(Ue,ae,()=>Ge(ae,n)),m=(0,o.useFetchClient)(),p=(0,e.useCallback)(async()=>{try{l({type:"GET_DATA"});const[{permissions:h},{routes:g}]=await Promise.all([`/${c.Z}/permissions`,`/${c.Z}/routes`].map(async R=>(await m.get(R)).data));l({type:"GET_DATA_SUCCEEDED",permissions:(0,T.YX)(h),routes:g})}catch(h){const g=(0,O.get)(h,["response","payload","message"],"An error occured");l({type:"GET_DATA_ERROR"}),g!=="Forbidden"&&a({type:"warning",message:g})}},[a]);return(0,e.useEffect)(()=>{n&&p()},[p,n]),{permissions:s,routes:i,getData:p,isLoading:d}};const we={role:{},isLoading:!0};var Ne=(n,a)=>(0,H.default)(n,s=>{switch(a.type){case"GET_DATA_SUCCEEDED":{s.role=a.role,s.isLoading=!1;break}case"GET_DATA_ERROR":{s.isLoading=!1;break}case"ON_SUBMIT_SUCCEEDED":{s.role.name=a.name,s.role.description=a.description;break}default:return s}}),Fe=n=>{const[a,s]=(0,e.useReducer)(Ne,we),i=(0,o.useNotification)(),d=(0,e.useRef)(null),{get:l}=(0,o.useFetchClient)();(0,e.useEffect)(()=>(d.current=!0,n?m(n):s({type:"GET_DATA_SUCCEEDED",role:{}}),()=>d.current=!1),[n]);const m=async h=>{try{const{data:{role:g}}=await l(`/${c.Z}/roles/${h}`);d.current&&s({type:"GET_DATA_SUCCEEDED",role:g})}catch(g){console.error(g),s({type:"GET_DATA_ERROR"}),i({type:"warning",message:{id:"notification.error"}})}},p=(0,e.useCallback)(h=>{s({type:"ON_SUBMIT_SUCCEEDED",...h})},[]);return{...a,onSubmitSucceeded:p}},Z=r(5173),$e=Z.Ry().shape({name:Z.Z_().required(o.translatedErrors.required),description:Z.Z_().required(o.translatedErrors.required)}),Ze=()=>{const{formatMessage:n}=(0,f.useIntl)(),[a,s]=(0,e.useState)(!1),i=(0,o.useNotification)(),{lockApp:d,unlockApp:l}=(0,o.useOverlayBlocker)(),{params:{id:m}}=(0,C.useRouteMatch)(`/settings/${c.Z}/roles/:id`),{isLoading:p,routes:h}=re(),{role:g,onSubmitSucceeded:R,isLoading:P}=Fe(m),u=(0,e.useRef)(),{put:x}=(0,o.useFetchClient)(),G=async M=>{d(),s(!0);try{const B=u.current.getPermissions();await x(`/${c.Z}/roles/${m}`,{...M,...B,users:[]}),R({name:M.name,description:M.description}),i({type:"success",message:{id:(0,$.Z)("Settings.roles.edited"),defaultMessage:"Role edited"}})}catch(B){console.error(B),i({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}s(!1),l()};return P?e.createElement(o.LoadingIndicatorPage,null):e.createElement(t.Main,null,e.createElement(o.SettingsPageTitle,{name:"Roles"}),e.createElement(X.Formik,{enableReinitialize:!0,initialValues:{name:g.name,description:g.description},onSubmit:G,validationSchema:$e},({handleSubmit:M,values:B,handleChange:U,errors:I})=>e.createElement(o.Form,{noValidate:!0,onSubmit:M},e.createElement(t.HeaderLayout,{primaryAction:!p&&e.createElement(t.Button,{disabled:g.code==="strapi-super-admin",type:"submit",loading:a,startIcon:e.createElement(E.Check,null)},n({id:"global.save",defaultMessage:"Save"})),title:g.name,subtitle:g.description,navigationAction:e.createElement(o.Link,{startIcon:e.createElement(E.ArrowLeft,null),to:"/settings/users-permissions/roles"},n({id:"global.back",defaultMessage:"Back"}))}),e.createElement(t.ContentLayout,null,e.createElement(t.Stack,{spacing:7},e.createElement(t.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Stack,{spacing:4},e.createElement(t.Typography,{variant:"delta",as:"h2"},n({id:(0,$.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(t.Grid,{gap:4},e.createElement(t.GridItem,{col:6},e.createElement(t.TextInput,{name:"name",value:B.name||"",onChange:U,label:n({id:"global.name",defaultMessage:"Name"}),error:I.name?n({id:I.name,defaultMessage:"Invalid value"}):null})),e.createElement(t.GridItem,{col:6},e.createElement(t.Textarea,{name:"description",value:B.description||"",onChange:U,label:n({id:"global.description",defaultMessage:"Description"}),error:I.description?n({id:I.description,defaultMessage:"Invalid value"}):null}))))),!p&&e.createElement(se,{ref:u,permissions:g.permissions,routes:h}))))))},Ie=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.updateRole},e.createElement(Ze,null)),je=Z.Ry().shape({name:Z.Z_().required(o.translatedErrors.required),description:Z.Z_().required(o.translatedErrors.required)}),He=()=>{const{formatMessage:n}=(0,f.useIntl)(),[a,s]=(0,e.useState)(!1),i=(0,o.useNotification)(),{goBack:d}=(0,C.useHistory)(),{lockApp:l,unlockApp:m}=(0,o.useOverlayBlocker)(),{isLoading:p,permissions:h,routes:g}=re(),{trackUsage:R}=(0,o.useTracking)(),P=(0,e.useRef)(),{post:u}=(0,o.useFetchClient)(),x=async G=>{l(),s(!0);try{const M=P.current.getPermissions();await u(`/${c.Z}/roles`,{...G,...M,users:[]}),R("didCreateRole"),i({type:"success",message:{id:(0,$.Z)("Settings.roles.created"),defaultMessage:"Role created"}}),d()}catch(M){console.error(M),i({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}s(!1),m()};return e.createElement(t.Main,null,e.createElement(o.SettingsPageTitle,{name:"Roles"}),e.createElement(X.Formik,{enableReinitialize:!0,initialValues:{name:"",description:""},onSubmit:x,validationSchema:je},({handleSubmit:G,values:M,handleChange:B,errors:U})=>e.createElement(o.Form,{noValidate:!0,onSubmit:G},e.createElement(t.HeaderLayout,{primaryAction:!p&&e.createElement(t.Button,{type:"submit",loading:a,startIcon:e.createElement(E.Check,null)},n({id:"global.save",defaultMessage:"Save"})),title:n({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:n({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"})}),e.createElement(t.ContentLayout,null,e.createElement(t.Stack,{spacing:7},e.createElement(t.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Stack,{spacing:4},e.createElement(t.Typography,{variant:"delta",as:"h2"},n({id:(0,$.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(t.Grid,{gap:4},e.createElement(t.GridItem,{col:6},e.createElement(t.TextInput,{name:"name",value:M.name||"",onChange:B,label:n({id:"global.name",defaultMessage:"Name"}),error:U.name?n({id:U.name,defaultMessage:"Invalid value"}):null})),e.createElement(t.GridItem,{col:6},e.createElement(t.Textarea,{name:"description",value:M.description||"",onChange:B,label:n({id:"global.description",defaultMessage:"Description"}),error:U.description?n({id:U.description,defaultMessage:"Invalid value"}):null}))))),!p&&e.createElement(se,{ref:P,permissions:h,routes:g}))))))},Ve=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.createRole},e.createElement(He,null)),We=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.accessRoles},e.createElement(C.Switch,null,e.createElement(C.Route,{path:`/settings/${c.Z}/roles/new`,component:Ve,exact:!0}),e.createElement(C.Route,{path:`/settings/${c.Z}/roles/:id`,component:Ie,exact:!0}),e.createElement(C.Route,{path:`/settings/${c.Z}/roles`,component:ce,exact:!0}),e.createElement(C.Route,{path:"",component:o.NotFound})))},59677:function(b,L,r){"use strict";r.d(L,{YX:function(){return o},Gc:function(){return t},OB:function(){return E.Z}});var e=r(92891),o=f=>Object.keys(f).reduce((v,k)=>{const T=f[k].controllers,A=Object.keys(T).reduce((w,N)=>((0,e.isEmpty)(T[N])||(w[N]=T[N]),w),{});return(0,e.isEmpty)(A)||(v[k]={controllers:A}),v},{}),c=r(90201),t=f=>`/${c.Z}/${f}`,E=r(82069)},56671:function(b,L,r){var e=r(35897),C=r(74741),o=C(e);b.exports=o},52920:function(b,L,r){var e=r(56671),C=r(81580);function o(c,y){var t=-1,E=C(c)?Array(c.length):[];return e(c,function(f,v,k){E[++t]=y(f,v,k)}),E}b.exports=o},50690:function(b,L,r){var e=r(26460),C=r(80166),o=r(88904),c=r(52920),y=r(36024),t=r(76535),E=r(1397),f=r(15362),v=r(77236);function k(T,A,w){A.length?A=e(A,function(S){return v(S)?function(F){return C(F,S.length===1?S[0]:S)}:S}):A=[f];var N=-1;A=e(A,t(o));var D=c(T,function(S,F,le){var W=e(A,function(Y){return Y(S)});return{criteria:W,index:++N,value:S}});return y(D,function(S,F){return E(S,F,w)})}b.exports=k},36024:function(b){function L(r,e){var C=r.length;for(r.sort(e);C--;)r[C]=r[C].value;return r}b.exports=L},40709:function(b,L,r){var e=r(22945);function C(o,c){if(o!==c){var y=o!==void 0,t=o===null,E=o===o,f=e(o),v=c!==void 0,k=c===null,T=c===c,A=e(c);if(!k&&!A&&!f&&o>c||f&&v&&T&&!k&&!A||t&&v&&T||!y&&T||!E)return 1;if(!t&&!f&&!A&&o<c||A&&y&&E&&!t&&!f||k&&y&&E||!v&&E||!T)return-1}return 0}b.exports=C},1397:function(b,L,r){var e=r(40709);function C(o,c,y){for(var t=-1,E=o.criteria,f=c.criteria,v=E.length,k=y.length;++t<v;){var T=e(E[t],f[t]);if(T){if(t>=k)return T;var A=y[t];return T*(A=="desc"?-1:1)}}return o.index-c.index}b.exports=C},74741:function(b,L,r){var e=r(81580);function C(o,c){return function(y,t){if(y==null)return y;if(!e(y))return o(y,t);for(var E=y.length,f=c?E:-1,v=Object(y);(c?f--:++f<E)&&t(v[f],f,v)!==!1;);return y}}b.exports=C},37213:function(b,L,r){var e=r(26460),C=r(88904),o=r(52920),c=r(77236);function y(t,E){var f=c(t)?e:o;return f(t,C(E,3))}b.exports=y},98978:function(b,L,r){var e=r(40314),C=r(50690),o=r(94569),c=r(63108),y=o(function(t,E){if(t==null)return[];var f=E.length;return f>1&&c(t,E[0],E[1])?E=[]:f>2&&c(E[0],E[1],E[2])&&(E=[E[0]]),C(t,e(E,1),[])});b.exports=y},15738:function(b,L,r){var e=r(4293);function C(o){var c=o==null?0:o.length;return c?e(o,1,c):[]}b.exports=C}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3278],{50576:function(n){n.exports=JSON.parse('{"Analytics":"Ph\xE2n T\xEDch","Auth.components.Oops.text":"T\xE0i kho\u1EA3n c\u1EE7a b\u1EA1n \u0111\xE3 b\u1ECB kho\xE1","Auth.components.Oops.text.admin":"N\u1EBFu c\xF3 s\u1EF1 nh\u1EA7m l\u1EABn, h\xE3y li\xEAn h\u1EC7 ng\u01B0\u1EDDi qu\u1EA3n tr\u1ECB","Auth.form.button.forgot-password":"G\u1EEDi Email","Auth.form.button.go-home":"QUAY V\u1EC0 TRANG CH\u1EE6","Auth.form.button.login":"\u0110\u0103ng nh\u1EADp","Auth.form.button.login.providers.error":"Kh\xF4ng th\u1EC3 k\u1EBFt n\u1ED1i b\u1EA1n v\u1EDBi d\u1ECBch v\u1EE5 \u0111\xE3 ch\u1ECDn.","Auth.form.button.login.strapi":"\u0110\u0103ng nh\u1EADp v\u1EDBi Strapi","Auth.form.button.password-recovery":"Kh\xF4i ph\u1EE5c m\u1EADt kh\u1EA9u","Auth.form.button.register":"S\u1EB5n s\xE0ng \u0111\u1EC3 b\u1EAFt \u0111\u1EA7u","Auth.form.confirmPassword.label":"Nh\u1EADp l\u1EA1i m\u1EADt kh\u1EA9u","Auth.form.currentPassword.label":"M\u1EADt kh\u1EA9u hi\u1EC7n t\u1EA1i","Auth.form.email.label":"Email","Auth.form.email.placeholder":"kai@doe.com","Auth.form.error.blocked":"T\xE0i kho\u1EA3n c\u1EE7a b\u1EA1n b\u1ECB kh\xF3a b\u1EDFi ng\u01B0\u1EDDi qu\u1EA3n tr\u1ECB.","Auth.form.error.code.provide":"M\xE3 \u0111\u01B0\u1EE3c cung c\u1EA5p kh\xF4ng ch\xEDnh x\xE1c.","Auth.form.error.confirmed":"T\xE0i kho\u1EA3n Email c\u1EE7a b\u1EA1n ch\u01B0a \u0111\u01B0\u1EE3c x\xE1c nh\u1EADn.","Auth.form.error.email.invalid":"Email sai.","Auth.form.error.email.provide":"Vui l\xF2ng cung c\u1EA5p t\xEAn \u0111\u0103ng nh\u1EADp ho\u1EB7c email.","Auth.form.error.email.taken":"Email \u0111\xE3 t\u1ED3n t\u1EA1i.","Auth.form.error.invalid":"\u0110\u1ECBnh danh ho\u1EB7c m\u1EADt kh\u1EA9u sai.","Auth.form.error.params.provide":"Tham s\u1ED1 \u0111\u01B0\u1EE3c cung c\u1EA5p kh\xF4ng ch\xEDnh x\xE1c.","Auth.form.error.password.format":"M\u1EADt kh\u1EA9u c\u1EE7a b\u1EA1n kh\xF4ng th\u1EC3 ch\u1EE9a k\xFD t\u1EF1 `$` h\u01A1n ba l\u1EA7n","Auth.form.error.password.local":"Ng\u01B0\u1EDDi d\xF9ng n\xE0y ch\u01B0a t\u1EEBng \u0111\u1EB7t m\u1EADt kh\u1EA9u c\u1EE5c b\u1ED9, vui l\xF2ng \u0111\u0103ng nh\u1EADp th\xF4ng qua nh\xE0 cung c\u1EA5p \u0111\xE3 d\xF9ng trong l\xFAc t\u1EA1o t\xE0i kho\u1EA3n ban \u0111\u1EA7u","Auth.form.error.password.matching":"M\u1EADt kh\u1EA9u kh\xF4ng kh\u1EDBp.","Auth.form.error.password.provide":"Vui l\xF2ng cung c\u1EA5p m\u1EADt kh\u1EA9u c\u1EE7a b\u1EA1n.","Auth.form.error.ratelimit":"Th\u1EED qu\xE1 nhi\u1EC1u l\u1EA7n, vui l\xF2ng th\u1EED l\u1EA1i sau m\u1ED9t ph\xFAt","Auth.form.error.user.not-exist":"Email n\xE0y ch\u01B0a t\u1ED3n t\u1EA1i.","Auth.form.error.username.taken":"T\xEAn \u0111\u0103ng nh\u1EADp \u0111\xE3 t\u1ED3n t\u1EA1i.","Auth.form.firstname.label":"H\u1ECD","Auth.form.firstname.placeholder":"v.d. Kai","Auth.form.forgot-password.email.label":"Nh\u1EADp email c\u1EE7a b\u1EA1n","Auth.form.forgot-password.email.label.success":"Email \u0111\xE3 g\u1EEDi th\xE0nh c\xF4ng \u0111\u1EBFn","Auth.form.lastname.label":"T\xEAn","Auth.form.lastname.placeholder":"v.d. Doe","Auth.form.password.hide-password":"\u1EA8n m\u1EADt kh\u1EA9u","Auth.form.password.hint":"M\u1EADt kh\u1EA9u ph\u1EA3i ch\u1EE9a \xEDt nh\u1EA5t 8 k\xFD t\u1EF1, 1 vi\u1EBFt hoa, 1 vi\u1EBFt th\u01B0\u1EDDng v\xE0 1 s\u1ED1","Auth.form.password.show-password":"Hi\u1EC3n th\u1ECB password","Auth.form.register.news.label":"C\u1EADp nh\u1EADt cho t\xF4i v\u1EC1 ch\u1EE9c n\u0103ng m\u1EDBi v\xE0 nh\u1EEFng c\u1EA3i thi\u1EC7n s\u1EAFp t\u1EDBi (th\xF4ng qua vi\u1EC7c n\xE0y b\u1EA1n \u0111\xE3 ch\u1EA5p nh\u1EADn {terms} v\xE0 {policy}).","Auth.form.register.subtitle":"Th\xF4ng tin c\u1EE7a b\u1EA1n ch\u1EC9 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng \u0111\u1EC3 \u0111\u0103ng nh\u1EADp v\xE0o trang qu\u1EA3n tr\u1ECB. T\u1EA5t c\u1EA3 c\xE1c d\u1EEF li\u1EC7u \u0111\u01B0\u1EE3c l\u01B0u \u1EDF c\u01A1 s\u1EDF d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n.","Auth.form.rememberMe.label":"Nh\u1EDB t\xF4i","Auth.form.username.label":"T\xEAn \u0111\u0103ng nh\u1EADp","Auth.form.username.placeholder":"Kai Doe","Auth.form.welcome.subtitle":"\u0110\u0103ng nh\u1EADp v\xE0o t\xE0i kho\u1EA3n Strapi c\u1EE7a b\u1EA1n","Auth.form.welcome.title":"Ch\xE0o m\u1EEBng!","Auth.link.forgot-password":"Qu\xEAn m\u1EADt kh\u1EA9u?","Auth.link.ready":"S\u1EB5n s\xE0ng \u0111\u0103ng nh\u1EADp?","Auth.link.signin":"\u0110\u0103ng nh\u1EADp","Auth.link.signin.account":"\u0110\xE3 c\xF3 t\xE0i kho\u1EA3n?","Auth.login.sso.divider":"Ho\u1EB7c \u0111\u0103ng nh\u1EADp v\u1EDBi","Auth.login.sso.loading":"\u0110ang t\u1EA3i c\xE1c d\u1ECBch v\u1EE5 cung c\u1EA5p...","Auth.login.sso.subtitle":"\u0110\u0103ng nh\u1EADp qua SSO","Auth.privacy-policy-agreement.policy":"ch\xEDnh s\xE1ch b\u1EA3o m\u1EADt","Auth.privacy-policy-agreement.terms":"c\xE1c \u0111i\u1EC1u kho\u1EA3n","Auth.reset-password.title":"\u0110\u1EB7t l\u1EA1i m\u1EADt kh\u1EA9u","Content Manager":"Qu\u1EA3n L\xFD N\u1ED9i Dung","Documentation":"T\xE0i li\u1EC7u","Email":"Email","Files Upload":"T\u1EA3i T\xE2p Tin L\xEAn","HomePage.helmet.title":"Trang ch\u1EE7","HomePage.roadmap":"Xem l\u1ED9 tr\xECnh c\u1EE7a ch\xFAng t\xF4i","HomePage.welcome.congrats":"Ch\xFAc m\u1EEBng!","HomePage.welcome.congrats.content":"B\u1EA1n \u0111\xE3 \u0111\u0103ng nh\u1EADp nh\u01B0 l\xE0 ng\u01B0\u1EDDi qu\u1EA3n tr\u1ECB \u0111\u1EA7u ti\xEAn. \u0110\u1EC3 kh\xE1m ph\xE1 nh\u1EEFng t\xEDnh n\u0103ng m\u1EA1nh m\u1EBD \u0111\u01B0\u1EE3c cung c\u1EA5p b\u1EDFi Strapi.","New entry":"B\u1EA3n ghi m\u1EDBi","Password":"M\u1EADt Kh\u1EA9u","Provider":"Nh\xE0 Cung C\u1EA5p","ResetPasswordToken":"C\xE0i L\u1EA1i Chu\u1ED7i Kh\xF3a M\u1EADt Kh\u1EA9u","Role":"Vai tr\xF2","Username":"T\xEAn \u0111\u0103ng nh\u1EADp","Users":"Ng\u01B0\u1EDDi d\xF9ng","Users & Permissions":"Ng\u01B0\u1EDDi d\xF9ng v\xE0 Ph\xE2n quy\u1EC1n","app.components.BlockLink.code":"Code v\xED d\u1EE5","app.components.Button.cancel":"H\u1EE7y b\u1ECF","app.components.ComingSoonPage.comingSoon":"S\u1EAFp c\xF3","app.components.DownloadInfo.download":"\u0110ang t\u1EA3i v\u1EC1","app.components.DownloadInfo.text":"Vi\u1EC7c n\xE0y c\xF3 th\u1EC3 t\u1ED1n m\u1ED9t ph\xFAt. C\u1EA3m \u01A1n b\u1EA1n v\xEC s\u1EF1 ki\xEAn nh\u1EABn.","app.components.EmptyAttributes.title":"Ch\u01B0a c\xF3 tr\u01B0\u1EDDng nh\u1EADp li\u1EC7u n\xE0o","app.components.HomePage.button.blog":"XEM TH\xCAM TR\xCAN BLOG","app.components.HomePage.community":"T\xECm c\u1ED9ng \u0111\u1ED3ng tr\xEAn web","app.components.HomePage.community.content":"Th\u1EA3o lu\u1EADn v\u1EDBi th\xE0nh vi\xEAn, ng\u01B0\u1EDDi \u0111\xF3ng g\xF3p v\xE0 l\u1EADp tr\xECnh vi\xEAn tr\xEAn nh\u1EEFng k\xEAnh kh\xE1c nhau.","app.components.HomePage.welcome":"Ch\xE0o m\u1EEBng b\u1EA1n \u0111\xE3 tham gia \u{1F44B}","app.components.HomePage.welcome.again":"Ch\xE0o m\u1EEBng \u{1F44B}","app.components.HomePage.welcomeBlock.content":"Ch\xFAng t\xF4i h\u1EA1nh ph\xFAc khi c\xF3 b\u1EA1n l\xE0 m\u1ED9t ph\u1EA7n c\u1EE7a c\u1ED9ng \u0111\u1ED3ng. Ch\xFAng t\xF4i li\xEAn t\u1EE5c t\xECm ki\u1EBFm s\u1EF1 ph\u1EA3n h\u1ED3i, do \u0111\xF3 b\u1EA1n c\xF3 th\u1EC3 Li\xEAn h\u1EC7 tr\u1EF1c ti\u1EBFp v\u1EDBi ch\xFAng t\xF4i tr\xEAn ","app.components.HomePage.welcomeBlock.content.again":"Ch\xFAng t\xF4i hi v\u1ECDng b\u1EA1n c\xF3 ti\u1EBFn tri\u1EC3n tr\xEAn d\u1EF1 \xE1n c\u1EE7a b\u1EA1n... B\u1EA1n t\u1EF1 do \u0111\u1ECDc tin t\u1EE9c m\u1EDBi nh\u1EA5t v\u1EC1 Strapi. Ch\xFAng t\xF4i \u0111ang c\u1ED1 g\u1EAFng h\u1EBFt m\u1EE9c \u0111\u1EC3 c\u1EA3i thi\u1EC7n s\u1EA3n ph\u1EA9m d\u1EF1a tr\xEAn ph\u1EA3n h\u1ED3i c\u1EE7a b\u1EA1n.","app.components.HomePage.welcomeBlock.content.issues":"v\u1EA5n \u0111\u1EC1.","app.components.HomePage.welcomeBlock.content.raise":" ho\u1EB7c n\xEAu l\xEAn ","app.components.ImgPreview.hint":"K\xE9o v\xE0 th\u1EA3 t\u1EADp tin c\u1EE7a b\u1EA1n v\xE0o khu v\u1EF1c n\xE0y ho\u1EB7c {browse} \u0111\u1EC3 t\xECm t\u1EADp tin t\u1EA3i l\xEAn","app.components.ImgPreview.hint.browse":"duy\u1EC7t","app.components.InputFile.newFile":"Th\xEAm t\u1EADp tin m\u1EDBi","app.components.InputFileDetails.open":"M\u1EDF ra \u1EDF th\u1EBB m\u1EDBi","app.components.InputFileDetails.originalName":"T\xEAn g\u1ED1c:","app.components.InputFileDetails.remove":"Xo\xE1 t\u1EADp tin n\xE0y","app.components.InputFileDetails.size":"K\xEDch th\u01B0\u1EDBc:","app.components.InstallPluginPage.Download.description":"N\xF3 s\u1EBD t\u1ED1n m\u1ED9t v\xE0i gi\xE2y \u0111\u1EC3 t\u1EA3i v\u1EC1 v\xE0 c\xE0i \u0111\u1EB7t plugin.","app.components.InstallPluginPage.Download.title":"\u0110ang t\u1EA3i v\u1EC1...","app.components.InstallPluginPage.description":"M\u1EDF r\u1ED9ng \u1EE9ng d\u1EE5ng c\u1EE7a b\u1EA1n d\u1EC5 d\xE0ng","app.components.LeftMenuFooter.help":"Gi\xFAp \u0111\u1EE1","app.components.LeftMenuFooter.poweredBy":"Cung c\u1EA5p b\u1EDFi ","app.components.LeftMenuLinkContainer.configuration":"C\xE1c c\u1EA5u h\xECnh","app.components.LeftMenuLinkContainer.general":"Chung","app.components.LeftMenuLinkContainer.noPluginsInstalled":"Ch\u01B0a c\xF3 plugins n\xE0o \u0111\u01B0\u1EE3c c\xE0i \u0111\u1EB7t","app.components.LeftMenuLinkContainer.plugins":"Plugins","app.components.ListPluginsPage.description":"Danh s\xE1ch plugins \u0111\xE3 c\xE0i trong d\u1EF1 \xE1n.","app.components.ListPluginsPage.helmet.title":"Danh s\xE1ch plugins","app.components.Logout.logout":"\u0110\u0103ng xu\u1EA5t","app.components.Logout.profile":"H\u1ED3 s\u01A1","app.components.NotFoundPage.back":"Tr\u1EDF v\u1EC1 trang ch\u1EE7","app.components.NotFoundPage.description":"Kh\xF4ng T\xECm Th\u1EA5y","app.components.Official":"Ch\xEDnh Th\u1EE9c","app.components.Onboarding.label.completed":"% \u0111\xE3 ho\xE0n th\xE0nh","app.components.Onboarding.title":"Videos B\u1EAFt \u0110\u1EA7u","app.components.PluginCard.Button.label.download":"T\u1EA3i v\u1EC1","app.components.PluginCard.Button.label.install":"\u0110\xE3 \u0111\u01B0\u1EE3c c\xE0i \u0111\u1EB7t","app.components.PluginCard.PopUpWarning.install.impossible.autoReload.needed":"Ch\u1EE9c n\u0103ng autoReload kh\xF4ng ho\u1EA1t \u0111\u1ED9ng. Vui l\xF2ng ch\u1EA1y \u1EE9ng d\u1EE5ng c\u1EE7a b\u1EA1n v\u1EDBi `yarn develop`.","app.components.PluginCard.PopUpWarning.install.impossible.confirm":"T\xF4i hi\u1EC3u!","app.components.PluginCard.PopUpWarning.install.impossible.environment":"V\xEC nh\u1EEFng l\xFD do b\u1EA3o m\u1EADt, ch\u1EC9 m\u1ED9t plugin c\xF3 th\u1EC3 \u0111\u01B0\u1EE3c t\u1EA3i v\u1EC1 trong m\xF4i tr\u01B0\u1EDDng ph\xE1t tri\u1EC3n.","app.components.PluginCard.PopUpWarning.install.impossible.title":"T\u1EA3i v\u1EC1 kh\xF4ng kh\u1EA3 thi","app.components.PluginCard.compatible":"T\u01B0\u01A1ng th\xEDch v\u1EDBi \u1EE9ng d\u1EE5ng c\u1EE7a b\u1EA1n","app.components.PluginCard.compatibleCommunity":"T\u01B0\u01A1ng th\xEDch v\u1EDBi c\u1ED9ng \u0111\u1ED3ng","app.components.PluginCard.more-details":"Th\xEAm chi ti\u1EBFt","app.components.listPlugins.button":"Th\xEAm m\u1EDBi Plugin","app.components.listPlugins.title.none":"Ch\u01B0a c\xF3 plugins n\xE0o \u0111\u01B0\u1EE3c c\xE0i \u0111\u1EB7t","app.components.listPluginsPage.deletePlugin.error":"M\u1ED9t l\u1ED7i x\u1EA3y ra trong khi g\u1EE1 b\u1ECF plugin","app.containers.App.notification.error.init":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi g\u1EEDi y\xEAu c\u1EA7u \u0111\u1EBFn API","app.utils.SelectOption.defaultMessage":" ","app.utils.defaultMessage":" ","app.utils.placeholder.defaultMessage":" ","components.AutoReloadBlocker.description":"Ch\u1EA1y Strapi v\u1EDBi m\u1ED9t trong c\xE1c l\u1EC7nh sau:","components.AutoReloadBlocker.header":"T\xEDnh n\u0103ng T\u1EA3i l\u1EA1i b\u1ECB b\u1EAFt bu\u1ED9c cho plugin n\xE0y.","components.ErrorBoundary.title":"\u0110i\u1EC1u g\xEC \u0111\xF3 kh\xF4ng \u1ED5n...","components.Input.error.attribute.key.taken":"Gi\xE1 tr\u1ECB n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","components.Input.error.attribute.sameKeyAndName":"Kh\xF4ng th\u1EC3 b\u1EB1ng nhau","components.Input.error.attribute.taken":"Tr\u01B0\u1EDDng nh\u1EADp li\u1EC7u n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","components.Input.error.contentTypeName.taken":"T\xEAn n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","components.Input.error.custom-error":"{errorMessage} ","components.Input.error.password.noMatch":"M\u1EADt kh\u1EA9u kh\xF4ng kh\u1EDBp","components.Input.error.validation.email":"Email kh\xF4ng h\u1EE3p l\u1EC7","components.Input.error.validation.json":"\u0110\xE2y kh\xF4ng ph\u1EA3i l\xE0 \u0111\u1ECBnh d\u1EA1ng JSON","components.Input.error.validation.max":"Gi\xE1 tr\u1ECB qu\xE1 cao {max}.","components.Input.error.validation.maxLength":"Gi\xE1 tr\u1ECB qu\xE1 d\xE0i {max}.","components.Input.error.validation.min":"Gi\xE1 tr\u1ECB qu\xE1 th\u1EA5p {min}.","components.Input.error.validation.minLength":"Gi\xE1 tr\u1ECB qu\xE1 ng\u1EAFn {min}.","components.Input.error.validation.minSupMax":"Kh\xF4ng th\u1EC3 l\xE0 tr\xEAn m\u0169","components.Input.error.validation.regex":"Gi\xE1 tr\u1ECB kh\xF4ng kh\u1EDBi v\u1EDBi regex.","components.Input.error.validation.required":"Gi\xE1 tr\u1ECB n\xE0y b\u1EAFt bu\u1ED9c.","components.InputSelect.option.placeholder":"Ch\u1ECDn \u1EDF \u0111\xE2y","components.ListRow.empty":"Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u \u0111\u1EC3 hi\u1EC3n th\u1ECB.","components.OverlayBlocker.description":"B\u1EA1n \u0111ang d\xF9ng m\u1ED9t t\xEDnh n\u0103ng m\xE0 n\xF3 c\u1EA7n ph\u1EA3i kh\u1EDFi \u0111\u1ED9ng l\u1EA1i m\xE1y ch\u1EE7. Vui l\xF2ng ch\u1EDD cho m\xE1y ch\u1EE7 kh\u1EDFi \u0111\u1ED9ng xong.","components.OverlayBlocker.description.serverError":"M\xE1y ch\u1EE7 n\xEAn \u0111\u01B0\u1EE3c kh\u1EDFi \u0111\u1ED9ng l\u1EA1i, vui l\xF2ng ki\u1EC3m tra nh\u1EADt k\xFD c\u1EE7a b\u1EA1n trong c\u1EEDa s\u1ED5 l\u1EC7nh","components.OverlayBlocker.title":"\u0110ang \u0111\u1EE3i kh\u1EDFi \u0111\u1ED9ng l\u1EA1i...","components.OverlayBlocker.title.serverError":"Vi\u1EC7c kh\u1EDFi \u0111\u1ED9ng l\u1EA1i t\u1ED1n nhi\u1EC1u th\u1EDDi gian h\u01A1n mong \u0111\u1EE3i","components.PageFooter.select":"b\u1EA3n ghi tr\xEAn trang","components.ProductionBlocker.description":"V\xEC l\xFD do an to\xE0n ch\xFAng t\xF4i ph\u1EA3i v\xF4 hi\u1EC7u ho\xE1 plugin trong c\xE1c m\xF4i tr\u01B0\u1EDDng kh\xE1c","components.ProductionBlocker.header":"Plugin n\xE0y ch\u1EC9 hi\u1EC7u l\u1EE9c trong m\xF4i tr\u01B0\u1EDDng ph\xE1t tri\u1EC3n","components.Wysiwyg.collapse":"Thu l\u1EA1i","components.Wysiwyg.selectOptions.H1":"Ti\xEAu \u0111\u1EC1 H1","components.Wysiwyg.selectOptions.H2":"Ti\xEAu \u0111\u1EC1 H2","components.Wysiwyg.selectOptions.H3":"Ti\xEAu \u0111\u1EC1 H3","components.Wysiwyg.selectOptions.H4":"Ti\xEAu \u0111\u1EC1 H4","components.Wysiwyg.selectOptions.H5":"Ti\xEAu \u0111\u1EC1 H5","components.Wysiwyg.selectOptions.H6":"Ti\xEAu \u0111\u1EC1 H6","components.Wysiwyg.selectOptions.title":"Th\xEAm m\u1ED9t ti\xEAu \u0111\u1EC1","components.WysiwygBottomControls.charactersIndicators":"k\xFD t\u1EF1","components.WysiwygBottomControls.fullscreen":"M\u1EDF r\u1ED9ng","components.WysiwygBottomControls.uploadFiles":"K\xE9o v\xE0 th\u1EA3 c\xE1c t\u1EADp tin, d\xE1n t\u1EEB b\u1ED9 nh\u1EDB t\u1EA1m hay {browse}.","components.WysiwygBottomControls.uploadFiles.browse":"ch\u1ECDn t\u1EC7p","components.popUpWarning.message":"B\u1EA1n c\xF3 ch\u1EAFc l\xE0 b\u1EA1n mu\u1ED1n xo\xE1 n\xF3?","components.popUpWarning.title":"Vui l\xF2ng x\xE1c nh\u1EADn","content-manager.EditRelations.title":"D\u1EEF Li\u1EC7u Quan H\u1EC7","content-manager.components.AddFilterCTA.add":"L\u1ECDc","content-manager.components.AddFilterCTA.hide":"L\u1ECDc","content-manager.components.DraggableAttr.edit":"Nh\u1EA5n \u0111\u1EC3 ch\u1EC9nh s\u1EEDa","content-manager.components.EmptyAttributesBlock.button":"\u0110\u1EBFn trang c\xE0i \u0111\u1EB7t","content-manager.components.EmptyAttributesBlock.description":"B\u1EA1n c\xF3 th\u1EC3 thay \u0111\u1ED5i c\xE0i \u0111\u1EB7t c\u1EE7a b\u1EA1n","content-manager.components.FilterOptions.button.apply":"\xC1p d\u1EE5ng","content-manager.components.FiltersPickWrapper.PluginHeader.actions.apply":"\xC1p d\u1EE5ng","content-manager.components.FiltersPickWrapper.PluginHeader.actions.clearAll":"X\xF3a t\u1EA5t c\u1EA3","content-manager.components.FiltersPickWrapper.PluginHeader.description":"C\xE0i \u0111\u1EB7t c\xE1c \u0111i\u1EC1u ki\u1EC7n \u0111\u1EC3 \xE1p d\u1EE5ng cho vi\u1EC7c l\u1ECDc c\xE1c b\u1EA3n ghi","content-manager.components.FiltersPickWrapper.PluginHeader.title.filter":"C\xE1c b\u1ED9 l\u1ECDc","content-manager.components.FiltersPickWrapper.hide":"\u1EA8n \u0111i","content-manager.components.LimitSelect.itemsPerPage":"S\u1ED1 l\u01B0\u1EE3ng b\u1EA3n ghi trong trang","content-manager.components.Search.placeholder":"T\xECm m\u1ED9t b\u1EA3n ghi...","content-manager.components.TableDelete.delete":"X\xF3a t\u1EA5t c\u1EA3","content-manager.components.TableDelete.deleteSelected":"X\xF3a \u0111\xE3 ch\u1ECDn","content-manager.components.TableEmpty.withFilters":"Kh\xF4ng c\xF3 {contentType} v\u1EDBi b\u1ED9 l\u1ECDc \u0111\u01B0\u1EE3c d\xF9ng","content-manager.components.TableEmpty.withSearch":"Kh\xF4ng c\xF3 {contentType} t\u01B0\u01A1ng \u1EE9ng v\u1EDBi t\xECm ki\u1EBFm ({search})...","content-manager.components.TableEmpty.withoutFilter":"Kh\xF4ng c\xF3 {contentType}...","content-manager.containers.Edit.Link.Layout":"C\u1EA5u h\xECnh b\u1ED1 c\u1EE5c","content-manager.containers.Edit.addAnItem":"Th\xEAm m\u1ED9t b\u1EA3n ghi...","content-manager.containers.Edit.clickToJump":"Nh\u1EA5n \u0111\u1EC3 nh\u1EA3y v\xE0o b\u1EA3n ghi","content-manager.containers.Edit.delete":"X\xF3a","content-manager.containers.Edit.editing":"\u0110\u0103ng s\u1EEDa...","content-manager.containers.Edit.pluginHeader.title.new":"T\u1EA1o m\u1ED9t B\u1EA3n ghi","content-manager.containers.Edit.reset":"L\xE0m l\u1EA1i","content-manager.containers.Edit.returnList":"Tr\u1EDF v\u1EC1 danh s\xE1ch","content-manager.containers.Edit.seeDetails":"Chi ti\u1EBFt","content-manager.containers.Edit.submit":"L\u01B0u","content-manager.containers.EditView.notification.errors":"B\u1EA3ng nh\u1EADp li\u1EC7u c\xF3 v\xE0i l\u1ED7i","content-manager.containers.Home.introduction":"\u0110\u1EC3 ch\u1EC9nh s\u1EEDa c\xE1c b\u1EA3n ghi c\u1EE7a b\u1EA1n, \u0111i \u0111\u1EBFn li\xEAn k\u1EBFt \u1EDF menu b\xEAn tr\xE1i. Plugin n\xE0y ch\u01B0a c\xF3 c\xE1ch th\xEDch h\u1EE3p \u0111\u1EC3 ch\u1EC9nh s\u1EEDa c\xE1c c\xE0i \u0111\u1EB7t v\xE0 n\xF3 v\u1EABn \u0111ang \u0111\u01B0\u1EE3c ph\xE1t tri\u1EC3n.","content-manager.containers.Home.pluginHeaderDescription":"Qu\u1EA3n l\xFD c\xE1c b\u1EA3n ghi th\xF4ng qua m\u1ED9t giao di\u1EC7n m\u1EA1nh v\xE0 \u0111\u1EB9p.","content-manager.containers.Home.pluginHeaderTitle":"Qu\u1EA3n L\xFD N\u1ED9i Dung","content-manager.containers.List.errorFetchRecords":"L\u1ED7i","content-manager.containers.ListPage.displayedFields":"C\xE1c tr\u01B0\u1EDDng \u0111\xE3 \u0111\u01B0\u1EE3c tr\xECnh b\xE0y","content-manager.containers.SettingPage.attributes":"C\xE1c tr\u01B0\u1EDDng thu\u1ED9c t\xEDnh","content-manager.containers.SettingPage.attributes.description":"\u0110\u1ECBnh ngh\u0129a th\u1EE9 t\u1EF1 c\xE1c thu\u1ED9c t\xEDnh","content-manager.containers.SettingPage.editSettings.description":"K\xE9o & th\u1EA3 c\xE1c tr\u01B0\u1EDDng \u0111\u1EC3 x\xE2y d\u1EF1ng b\u1ED1 c\u1EE5c","content-manager.containers.SettingPage.editSettings.entry.title":"T\xEAn b\u1EA3n ghi","content-manager.containers.SettingPage.editSettings.entry.title.description":"C\xE0i \u0111\u1EB7t tr\u01B0\u1EDDng \u0111\u01B0\u1EE3c tr\xECnh b\xE0y trong b\u1EA3n ghi c\u1EE7a b\u1EA1n","content-manager.containers.SettingPage.editSettings.title":"Ch\u1EC9nh s\u1EEDa hi\u1EC3n th\u1ECB (c\xE1c c\xE0i \u0111\u1EB7t)","content-manager.containers.SettingPage.layout":"B\u1ED1 c\u1EE5c","content-manager.containers.SettingPage.listSettings.title":"Hi\u1EC3n th\u1ECB danh s\xE1ch (c\xE1c c\xE0i \u0111\u1EB7t)","content-manager.containers.SettingPage.settings":"C\xE1c c\xE0i \u0111\u1EB7t","content-manager.containers.SettingViewModel.pluginHeader.title":"Qu\u1EA3n L\xFD N\u1ED9i Dung - {name}","content-manager.containers.SettingsPage.Block.contentType.description":"C\u1EA5u h\xECnh c\xE1c c\xE0i \u0111\u1EB7t ri\xEAng","content-manager.containers.SettingsPage.Block.generalSettings.title":"Chung","content-manager.containers.SettingsView.list.title":"C\xE1c c\u1EA5u h\xECnh v\u1EC1 Tr\xECnh b\xE0y","content-manager.emptyAttributes.title":"Ch\u01B0a c\xF3 tr\u01B0\u1EDDng n\xE0o h\u1EBFt","content-manager.error.attribute.key.taken":"Gi\xE1 tr\u1ECB n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","content-manager.error.attribute.sameKeyAndName":"Kh\xF4ng th\u1EC3 b\u1EB1ng nhau","content-manager.error.attribute.taken":"T\xEAn tr\u01B0\u1EDDng n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","content-manager.error.contentTypeName.taken":"T\xEAn n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","content-manager.error.model.fetch":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 c\u1EA5u h\xECnh n\u1ED9i dung.","content-manager.error.record.create":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi t\u1EA1o b\u1EA3n ghi.","content-manager.error.record.delete":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi xo\xE1 b\u1EA3n ghi.","content-manager.error.record.fetch":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 b\u1EA3n ghi.","content-manager.error.record.update":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi c\u1EADp nh\u1EADt b\u1EA3n ghi.","content-manager.error.records.count":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 s\u1ED1 l\u01B0\u1EE3ng b\u1EA3n ghi.","content-manager.error.records.fetch":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 c\xE1c b\u1EA3n ghi.","content-manager.error.schema.generation":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi qu\xE1 tr\xECnh t\u1EA1o ra l\u01B0\u1EE3c \u0111\u1ED3.","content-manager.error.validation.json":"\u0110\xE2y kh\xF4ng ph\u1EA3i l\xE0 \u0111\u1ECBnh d\u1EA1ng JSON","content-manager.error.validation.max":"Gi\xE1 tr\u1ECB qu\xE1 cao.","content-manager.error.validation.maxLength":"Gi\xE1 tr\u1ECB qu\xE1 d\xE0i.","content-manager.error.validation.min":"Gi\xE1 tr\u1ECB qu\xE1 th\u1EA5p.","content-manager.error.validation.minLength":"Gi\xE1 tr\u1ECB qu\xE1 ng\u1EAFn.","content-manager.error.validation.minSupMax":"Kh\xF4ng th\u1EC3 l\xE0 tr\xEAn m\u0169","content-manager.error.validation.regex":"Gi\xE1 tr\u1ECB kh\xF4ng kh\u1EDBi v\u1EDBi regex.","content-manager.error.validation.required":"Gi\xE1 tr\u1ECB n\xE0y b\u1EAFt bu\u1ED9c.","content-manager.form.Input.bulkActions":"K\xEDch ho\u1EA1t ho\u1EA1t \u0111\u1ED9ng g\u1ED9p","content-manager.form.Input.defaultSort":"Thu\u1ED9c t\xEDnh s\u1EAFp x\u1EBFp m\u1EB7c \u0111\u1ECBnh","content-manager.form.Input.description":"M\xF4 t\u1EA3","content-manager.form.Input.description.placeholder":"T\xEAn hi\u1EC3n th\u1ECB trong h\u1ED3 s\u01A1","content-manager.form.Input.editable":"Tr\u01B0\u1EDDng ch\u1EC9nh s\u1EEDa \u0111\u01B0\u1EE3c","content-manager.form.Input.filters":"K\xEDch ho\u1EA1t c\xE1c b\u1ED9 l\u1ECDc","content-manager.form.Input.label":"Nh\xE3n","content-manager.form.Input.label.inputDescription":"Gi\xE1 tr\u1ECB n\xE0y ghi \u0111\xE8 l\xEAn nh\xE3n \u0111\u01B0\u1EE3c tr\xECnh b\xE0y trong ph\u1EA7n \u0111\u1EA7u c\u1EE7a b\u1EA3ng","content-manager.form.Input.pageEntries":"B\u1EA3n ghi trong trang","content-manager.form.Input.placeholder":"Ch\u1ED7 ch\u1EDD gi\xE1 tr\u1ECB","content-manager.form.Input.placeholder.placeholder":"Gi\xE1 tr\u1ECB tuy\u1EC7t v\u1EDDi c\u1EE7a t\xF4i","content-manager.form.Input.search":"K\xEDch ho\u1EA1t t\xECm ki\u1EBFm","content-manager.form.Input.search.field":"K\xEDch ho\u1EA1t t\xECm ki\u1EBFm cho tr\u01B0\u1EDDng n\xE0y","content-manager.form.Input.sort.field":"K\xEDch ho\u1EA1t s\u1EAFp x\u1EBFp tr\xEAn tr\u01B0\u1EDDng n\xE0y","content-manager.form.Input.wysiwyg":"Tr\xECnh b\xE0y nh\u01B0 l\xE0 WYSIWYG","content-manager.global.displayedFields":"C\xE1c Tr\u01B0\u1EDDng \u0110\xE3 \u0110\u01B0\u1EE3c Tr\xECnh B\xE0y","content-manager.groups":"Nh\xF3m","content-manager.groups.numbered":"Nh\xF3m ({number})","content-manager.notification.error.displayedFields":"B\u1EA1n c\u1EA7n tr\xECnh b\xE0y \xEDt nh\u1EA5t m\u1ED9t tr\u01B0\u1EDDng","content-manager.notification.error.relationship.fetch":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 m\u1ED1i quan h\u1EC7.","content-manager.notification.info.SettingPage.disableSort":"B\u1EA1n c\u1EA7n c\xF3 m\u1ED9t thu\u1ED9c t\xEDnh \u0111\u01B0\u1EE3c ph\xE9p s\u1EAFp x\u1EBFp","content-manager.notification.info.minimumFields":"B\u1EA1n c\u1EA7n hi\u1EC3n th\u1ECB \xEDt nh\u1EA5t m\u1ED9t tr\u01B0\u1EDDng","content-manager.notification.upload.error":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi t\u1EA3i l\xEAn c\xE1c t\u1EADp tin c\u1EE7a b\u1EA1n","content-manager.pageNotFound":"Kh\xF4ng T\xECm Th\u1EA5y Trang","content-manager.plugin.description.long":"C\xE1ch nhanh \u0111\u1EC3 xem, s\u1EEDa v\xE0 xo\xE1 d\u1EEF li\u1EC7u trong c\u01A1 s\u1EDF d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n.","content-manager.plugin.description.short":"C\xE1ch nhanh \u0111\u1EC3 xem, s\u1EEDa v\xE0 xo\xE1 d\u1EEF li\u1EC7u trong c\u01A1 s\u1EDF d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n.","content-manager.popUpWarning.bodyMessage.contentType.delete":"B\u1EA1n c\xF3 ch\u1EAFc l\xE0 mu\u1ED1n xo\xE1 b\u1EA3n ghi n\xE0y kh\xF4ng?","content-manager.popUpWarning.bodyMessage.contentType.delete.all":"B\u1EA1n c\xF3 ch\u1EAFc l\xE0 mu\u1ED1n xo\xE1 c\xE1c b\u1EA3n ghi n\xE0y kh\xF4ng?","content-manager.popUpWarning.warning.cancelAllSettings":"B\u1EA1n c\xF3 ch\u1EAFc l\xE0 mu\u1ED1n h\u1EE7y b\u1ECF c\xE1c thay \u0111\u1ED5i c\u1EE7a b\u1EA1n?","content-manager.popUpWarning.warning.updateAllSettings":"N\xF3 s\u1EBD thay \u0111\u1ED5i t\u1EA5t c\u1EA3 c\xE0i \u0111\u1EB7t c\u1EE7a b\u1EA1n","content-manager.success.record.delete":"\u0110\xE3 xo\xE1","content-manager.success.record.save":"\u0110\xE3 l\u01B0u","form.button.done":"Ho\xE0n th\xE0nh","notification.error":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra","notification.error.layout":"Kh\xF4ng th\u1EC3 kh\xF4i ph\u1EE5c","notification.form.error.fields":"B\u1EA3ng nh\u1EADp li\u1EC7u c\xF3 v\xE0i l\u1ED7i","request.error.model.unknown":"C\u1EA5u tr\xFAc n\xE0y kh\xF4ng t\u1ED3n t\u1EA1i"}')}}]);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5162],{47272:function(V,I,l){l.d(I,{Z:function(){return ie}});var e=l(32735),o=l(13478),t=l(39161),y=l(84968),T=l(5141),A=l(8888),Z=l(60216),i=l.n(Z),M=l(57269),S=l(83281),P=l(5636),$=l(83292),j=l(23940),N=l.n(j);const D=({disabledEvents:a,name:n,events:r,inputValue:s,handleChange:u,handleChangeAll:p})=>{const d=r.filter(g=>!a.includes(g)),c=s.length===d.length,h=s.length>0,f=({target:{name:g}})=>{p({target:{name:g,value:!c}})};return e.createElement("tr",null,e.createElement("td",null,e.createElement(t.Checkbox,{indeterminate:h&&!c,"aria-label":"Select all entries",name:n,onChange:f,value:c},N()(n))),r.map(g=>e.createElement("td",{key:g},e.createElement(t.BaseCheckbox,{disabled:a.includes(g),"aria-label":g,name:g,value:s.includes(g),onValueChange:E=>u({target:{name:g,value:E}})}))))};D.defaultProps={disabledEvents:[],events:[],inputValue:[],handleChange(){},handleChangeAll(){}},D.propTypes={disabledEvents:i().array,events:i().array,inputValue:i().array,handleChange:i().func,handleChangeAll:i().func,name:i().string.isRequired};var X=D,Q=a=>a.reduce((n,r)=>{const s=r.split(".")[0];return n[s]||(n[s]=[]),n[s].push(r),n},{});const q=$.default.table`
|
|
2
|
+
td {
|
|
3
|
+
height: ${52/16}rem;
|
|
4
|
+
width: 10%;
|
|
5
|
+
vertical-align: middle;
|
|
6
|
+
text-align: center;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
tbody tr:nth-child(odd) {
|
|
10
|
+
background: ${({theme:a})=>a.colors.neutral100};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
tbody tr td:first-child {
|
|
14
|
+
padding-left: ${({theme:a})=>a.spaces[7]};
|
|
15
|
+
}
|
|
16
|
+
`,x={headers:{default:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"}],draftAndPublish:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"},{id:"app.utils.publish",defaultMessage:"Publish"},{id:"app.utils.unpublish",defaultMessage:"Unpublish"}]},events:{default:{entry:["entry.create","entry.update","entry.delete"],media:["media.create","media.update","media.delete"]},draftAndPublish:{entry:["entry.create","entry.update","entry.delete","entry.publish","entry.unpublish"],media:["media.create","media.update","media.delete"]}}},G=({isDraftAndPublish:a})=>{const n=a?x.headers.draftAndPublish:x.headers.default,r=a?x.events.draftAndPublish:x.events.default,{formatMessage:s}=(0,P.useIntl)(),{values:u,handleChange:p}=(0,S.useFormikContext)(),d="events",c=u.events,h=[],f=Q(c),g=({target:{name:m,value:w}})=>{let C=new Set(c);w?C.add(m):C.delete(m),p({target:{name:d,value:Array.from(C)}})},E=({target:{name:m,value:w}})=>{let C=new Set(c);w?r[m].forEach(R=>{h.includes(R)||C.add(R)}):r[m].forEach(R=>C.delete(R)),p({target:{name:d,value:Array.from(C)}})};return e.createElement(t.Stack,{spacing:1},e.createElement(t.FieldLabel,null,s({id:"Settings.webhooks.form.events",defaultMessage:"Events"})),e.createElement(q,null,e.createElement("thead",null,e.createElement("tr",null,e.createElement("td",null),n.map(m=>m==="app.utils.publish"||m==="app.utils.unpublish"?e.createElement("td",{key:m.id,title:s({id:"Settings.webhooks.event.publish-tooltip",defaultMessage:"This event only exists for content with draft & publish enabled"})},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},s(m))):e.createElement("td",{key:m.id},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},s(m)))))),e.createElement("tbody",null,Object.keys(r).map(m=>e.createElement(X,{disabledEvents:h,key:m,name:m,events:r[m],inputValue:f[m],handleChange:g,handleChangeAll:E})))))};G.propTypes={isDraftAndPublish:i().bool.isRequired};var J=G,z=["A-IM","Accept","Accept-Charset","Accept-Encoding","Accept-Language","Accept-Datetime","Access-Control-Request-Method","Access-Control-Request-Headers","Authorization","Cache-Control","Connection","Content-Length","Content-Type","Cookie","Date","Expect","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Max-Forwards","Origin","Pragma","Proxy-Authorization","Range","Referer","TE","User-Agent","Upgrade","Via","Warning"];const L=({name:a,onChange:n,value:r,...s})=>{const[u,p]=(0,e.useState)(r?[...z,r]:z),d=h=>{n({target:{name:a,value:h}})},c=h=>{p(f=>[...f,h]),n({target:{name:a,value:h}})};return e.createElement(t.CreatableCombobox,{...s,onChange:d,onCreateOption:c,placeholder:"",value:r},u.map(h=>e.createElement(t.ComboboxOption,{value:h,key:h},h)))};L.defaultProps={value:void 0},L.propTypes={name:i().string.isRequired,onChange:i().func.isRequired,value:i().string};var Y=L,_=()=>{const{formatMessage:a}=(0,P.useIntl)(),{values:n,errors:r}=(0,S.useFormikContext)();return e.createElement(t.Stack,{spacing:1},e.createElement(t.FieldLabel,null,a({id:"Settings.webhooks.form.headers",defaultMessage:"Headers"})),e.createElement(t.Box,{padding:8,background:"neutral100",hasRadius:!0},e.createElement(S.FieldArray,{validateOnChange:!1,name:"headers",render:({push:s,remove:u})=>e.createElement(t.Grid,{gap:4},n.headers?.map((p,d)=>e.createElement(e.Fragment,{key:d},e.createElement(t.GridItem,{col:6},e.createElement(S.Field,{as:Y,name:`headers.${d}.key`,"aria-label":`row ${d+1} key`,label:a({id:"Settings.webhooks.key",defaultMessage:"Key"}),error:r.headers?.[d]?.key&&a({id:r.headers[d]?.key,defaultMessage:r.headers[d]?.key})})),e.createElement(t.GridItem,{col:6},e.createElement(t.Flex,{alignItems:"flex-end"},e.createElement(t.Box,{style:{flex:1}},e.createElement(S.Field,{as:t.TextInput,"aria-label":`row ${d+1} value`,label:a({id:"Settings.webhooks.value",defaultMessage:"Value"}),name:`headers.${d}.value`,error:r.headers?.[d]?.value&&a({id:r.headers[d]?.value,defaultMessage:r.headers[d]?.value})})),e.createElement(t.Flex,{paddingLeft:2,style:{alignSelf:"center"},paddingTop:r.headers?.[d]?.value?0:5},e.createElement(o.RemoveRoundedButton,{onClick:()=>n.headers.length!==1&&u(d),label:a({id:"Settings.webhooks.headers.remove",defaultMessage:"Remove header row {number}"},{number:d+1})})))))),e.createElement(t.GridItem,{col:12},e.createElement(t.TextButton,{type:"button",onClick:()=>{s({key:"",value:""})},startIcon:e.createElement(M.Plus,null)},a({id:"Settings.webhooks.create.header",defaultMessage:"Create new header"}))))})))};const O=$.default.svg(({theme:a,color:n})=>`
|
|
17
|
+
width: ${12/16}rem;
|
|
18
|
+
height: ${12/16}rem;
|
|
19
|
+
|
|
20
|
+
path {
|
|
21
|
+
fill: ${a.colors[n]};
|
|
22
|
+
}
|
|
23
|
+
`),F=({isPending:a,statusCode:n})=>{const{formatMessage:r}=(0,P.useIntl)();return a?e.createElement(t.Stack,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(O,{as:M.Loader}),e.createElement(t.Typography,null,r({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):n>=200&&n<300?e.createElement(t.Stack,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(O,{as:M.Check,color:"success700"}),e.createElement(t.Typography,null,r({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):n>=300?e.createElement(t.Stack,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(O,{as:M.Cross,color:"danger700"}),e.createElement(t.Typography,null,r({id:"Settings.error",defaultMessage:"error"})," ",n)):null};F.propTypes={isPending:i().bool.isRequired,statusCode:i().number},F.defaultProps={statusCode:void 0};const B=({statusCode:a,message:n})=>{const{formatMessage:r}=(0,P.useIntl)();return a>=200&&a<300?e.createElement(t.Flex,{justifyContent:"flex-end"},e.createElement(t.Typography,{textColor:"neutral600",ellipsis:!0},r({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):a>=300?e.createElement(t.Flex,{justifyContent:"flex-end"},e.createElement(t.Flex,{maxWidth:(0,o.pxToRem)(250),justifyContent:"flex-end",title:n},e.createElement(t.Typography,{ellipsis:!0,textColor:"neutral600"},n))):null};B.propTypes={statusCode:i().number,message:i().string},B.defaultProps={statusCode:void 0,message:void 0};const H=({onCancel:a})=>{const{formatMessage:n}=(0,P.useIntl)();return e.createElement(t.Flex,{justifyContent:"flex-end"},e.createElement("button",{onClick:a,type:"button"},e.createElement(t.Stack,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(t.Typography,{textColor:"neutral400"},n({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(O,{as:M.Cross,color:"neutral400"}))))};H.propTypes={onCancel:i().func.isRequired};const W=({isPending:a,onCancel:n,response:r})=>{const{statusCode:s,message:u}=r,{formatMessage:p}=(0,P.useIntl)();return e.createElement(t.Box,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(t.Grid,{gap:4,style:{alignItems:"center"}},e.createElement(t.GridItem,{col:3},e.createElement(t.Typography,null,p({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(t.GridItem,{col:3},e.createElement(F,{isPending:a,statusCode:s})),e.createElement(t.GridItem,{col:6},a?e.createElement(H,{onCancel:n}):e.createElement(B,{statusCode:s,message:u}))))};W.defaultProps={isPending:!1,onCancel(){},response:{}},W.propTypes={isPending:i().bool,onCancel:i().func,response:i().object};var ee=W,v=l(5173);const te=/(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/,ae=/(^$)|((https?:\/\/.*)(d*)\/?(.*))/;var ne=v.Ry().shape({name:v.Z_(o.translatedErrors.string).required(o.translatedErrors.required).matches(te,o.translatedErrors.regex),url:v.Z_(o.translatedErrors.string).required(o.translatedErrors.required).matches(ae,o.translatedErrors.regex),headers:v.Vo(a=>{let n=v.IX();if(a.length===1){const{key:r,value:s}=a[0];if(!r&&!s)return n}return n.of(v.Ry().shape({key:v.Z_().required(o.translatedErrors.required),value:v.Z_().required(o.translatedErrors.required)}))}),events:v.IX()});const U=({handleSubmit:a,data:n,triggerWebhook:r,isCreating:s,isTriggering:u,triggerResponse:p,isDraftAndPublishEvents:d})=>{const{formatMessage:c}=(0,P.useIntl)(),[h,f]=(0,e.useState)(!1);return e.createElement(S.Formik,{onSubmit:a,initialValues:{name:n?.name||"",url:n?.url||"",headers:Object.keys(n?.headers||[]).length?Object.entries(n.headers).map(([g,E])=>({key:g,value:E})):[{key:"",value:""}],events:n?.events||[]},validationSchema:ne,validateOnChange:!1,validateOnBlur:!1},({handleSubmit:g,errors:E})=>e.createElement(o.Form,{noValidate:!0},e.createElement(t.HeaderLayout,{primaryAction:e.createElement(t.Stack,{horizontal:!0,spacing:2},e.createElement(t.Button,{onClick:()=>{r(),f(!0)},variant:"tertiary",startIcon:e.createElement(M.Play,null),disabled:s||u,size:"L"},c({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(t.Button,{startIcon:e.createElement(M.Check,null),onClick:g,type:"submit",size:"L"},c({id:"global.save",defaultMessage:"Save"}))),title:s?c({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):n?.name,navigationAction:e.createElement(o.Link,{startIcon:e.createElement(M.ArrowLeft,null),to:"/settings/webhooks"},c({id:"global.back",defaultMessage:"Back"}))}),e.createElement(t.ContentLayout,null,e.createElement(t.Stack,{spacing:4},h&&e.createElement("div",{className:"trigger-wrapper"},e.createElement(ee,{isPending:u,response:p,onCancel:()=>f(!1)})),e.createElement(t.Box,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(t.Stack,{spacing:6},e.createElement(t.Grid,{gap:6},e.createElement(t.GridItem,{col:6},e.createElement(S.Field,{as:t.TextInput,name:"name",error:E.name&&c({id:E.name}),label:c({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(t.GridItem,{col:12},e.createElement(S.Field,{as:t.TextInput,name:"url",error:E.url&&c({id:E.url}),label:c({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(_,null),e.createElement(J,{isDraftAndPublish:d})))))))};U.propTypes={data:i().object,handleSubmit:i().func.isRequired,triggerWebhook:i().func.isRequired,isCreating:i().bool.isRequired,isDraftAndPublishEvents:i().bool.isRequired,isTriggering:i().bool.isRequired,triggerResponse:i().object},U.defaultProps={data:void 0,triggerResponse:void 0};var re=U,se=l(92891);const le=a=>{const n={...a};return(0,se.set)(n,"headers",oe(a.headers)),n},oe=a=>a.reduce((n,r)=>{const{key:s,value:u}=r;return s!==""?{...n,[s]:u}:n},{});var K=le,ie=()=>{const{params:{id:a}}=(0,T.useRouteMatch)("/settings/webhooks/:id"),{replace:n}=(0,T.useHistory)(),{lockApp:r,unlockApp:s}=(0,o.useOverlayBlocker)(),u=(0,o.useNotification)(),p=(0,y.useQueryClient)(),{isLoading:d,collectionTypes:c}=(0,A.bP)(),{post:h}=(0,o.useFetchClient)(),f=a==="create",g=(0,e.useCallback)(async b=>{const[k,{data:pe}]=await(0,o.to)((0,o.request)(`/admin/webhooks/${b}`,{method:"GET"}));return k?(u({type:"warning",message:{id:"notification.error"}}),null):pe},[u]),{isLoading:E,data:m}=(0,y.useQuery)(["get-webhook",a],()=>g(a),{enabled:!f}),{isLoading:w,data:C,isIdle:R,mutate:de}=(0,y.useMutation)(()=>h(`/admin/webhooks/${a}/trigger`)),ue=()=>de(null,{onError(){u({type:"warning",message:{id:"notification.error"}})}}),ce=(0,y.useMutation)(b=>(0,o.request)("/admin/webhooks",{method:"POST",body:b})),me=(0,y.useMutation)(({id:b,body:k})=>(0,o.request)(`/admin/webhooks/${b}`,{method:"PUT",body:k})),ge=async b=>{f?(r(),ce.mutate(K(b),{onSuccess(k){u({type:"success",message:{id:"Settings.webhooks.created"}}),n(`/settings/webhooks/${k.data.id}`),s()},onError(k){u({type:"warning",message:{id:"notification.error"}}),console.log(k),s()}})):(r(),me.mutate({id:a,body:K(b)},{onSuccess(){p.invalidateQueries(["get-webhook",a]),u({type:"success",message:{id:"notification.form.success.fields"}}),s()},onError(k){u({type:"warning",message:{id:"notification.error"}}),console.log(k),s()}}))},he=(0,e.useMemo)(()=>c.some(b=>b.options.draftAndPublish===!0),[c]);return E||d?e.createElement(o.LoadingIndicatorPage,null):e.createElement(t.Main,null,e.createElement(o.SettingsPageTitle,{name:"Webhooks"}),e.createElement(re,{handleSubmit:ge,data:m,triggerWebhook:ue,isCreating:f,isTriggering:w,isTriggerIdle:R,triggerResponse:C?.data.data,isDraftAndPublishEvents:he}))}},33238:function(V,I,l){l.r(I);var e=l(32735),o=l(13478),t=l.n(o),y=l(72041),T=l(47272);const A=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.settings.webhooks.create},e.createElement(T.Z,null));I.default=A},59021:function(V,I,l){l.r(I);var e=l(32735),o=l(13478),t=l.n(o),y=l(72041),T=l(47272);const A=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.settings.webhooks.update},e.createElement(T.Z,null));I.default=A}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4121],{70791:function(ee,L,i){i.r(L),i.d(L,{default:function(){return V}});var e=i(32735),a=i(13478),C=i(72041),O=i(5141),P=i(5636),t=i(39161),E=i(57269),x=i(97889),H=i(3040),K=i.n(H);const I={webhooks:[],webhooksToDelete:[],webhookToDelete:null,loadingWebhooks:!0};var G=(r,s)=>(0,x.default)(r,l=>{switch(s.type){case"GET_DATA_SUCCEEDED":{l.webhooks=s.data,l.loadingWebhooks=!1;break}case"TOGGLE_LOADING":{l.loadingWebhooks=!r.loadingWebhooks;break}case"SET_WEBHOOK_ENABLED":{K()(l,["webhooks",...s.keys],s.value);break}case"SET_WEBHOOK_TO_DELETE":{l.webhookToDelete=s.id;break}case"SET_WEBHOOKS_TO_DELETE":{s.value?l.webhooksToDelete.push(s.id):l.webhooksToDelete=r.webhooksToDelete.filter(d=>d!==s.id);break}case"SET_ALL_WEBHOOKS_TO_DELETE":{r.webhooksToDelete.length===0?l.webhooksToDelete=r.webhooks.map(d=>d.id):l.webhooksToDelete=[];break}case"WEBHOOKS_DELETED":{l.webhooks=r.webhooks.filter(d=>!r.webhooksToDelete.includes(d.id)),l.webhooksToDelete=[];break}case"WEBHOOK_DELETED":{l.webhooks=r.webhooks.filter((d,g)=>g!==s.index),l.webhookToDelete=null;break}default:return l}}),N=()=>{const{isLoading:r,allowedActions:{canCreate:s,canRead:l,canUpdate:d,canDelete:g}}=(0,a.useRBAC)(C.Z.settings.webhooks),b=(0,a.useNotification)(),h=(0,e.useRef)(!0),{formatMessage:o}=(0,P.useIntl)(),[$,T]=(0,e.useState)(!1),[{webhooks:f,webhooksToDelete:y,webhookToDelete:D,loadingWebhooks:p},u]=(0,e.useReducer)(G,I),{notifyStatus:R}=(0,t.useNotifyAT)();(0,a.useFocusWhenNavigate)();const{push:U}=(0,O.useHistory)(),{pathname:S}=(0,O.useLocation)(),k=f.length,m=y.length,B=n=>f.findIndex(c=>c.id===n);(0,e.useEffect)(()=>(h.current=!0,()=>{h.current=!1}),[]),(0,e.useEffect)(()=>{l&&F()},[l]);const F=async()=>{try{const{data:n}=await(0,a.request)("/admin/webhooks",{method:"GET"});h.current&&(u({type:"GET_DATA_SUCCEEDED",data:n}),R("webhooks have been loaded"))}catch(n){console.log(n),h.current&&(n.code!==20&&b({type:"warning",message:{id:"notification.error"}}),u({type:"TOGGLE_LOADING"}))}},z=()=>{T(n=>!n)},Z=()=>{D?j():J()},j=async()=>{try{await(0,a.request)(`/admin/webhooks/${D}`,{method:"DELETE"}),u({type:"WEBHOOK_DELETED",index:B(D)})}catch(n){n.code!==20&&b({type:"warning",message:{id:"notification.error"}})}T(!1)},J=async()=>{const n={ids:y};try{await(0,a.request)("/admin/webhooks/batch-delete",{method:"POST",body:n}),h.current&&u({type:"WEBHOOKS_DELETED"})}catch(c){h.current&&c.code!==20&&b({type:"warning",message:{id:"notification.error"}})}T(!1)},v=n=>{T(!0),n!=="all"&&u({type:"SET_WEBHOOK_TO_DELETE",id:n})},Q=async(n,c)=>{const W=B(c),_=f[W],M=[W,"isEnabled"],A={..._,isEnabled:n};delete A.id;try{u({type:"SET_WEBHOOK_ENABLED",keys:M,value:n}),await(0,a.request)(`/admin/webhooks/${c}`,{method:"PUT",body:A})}catch(q){h.current&&(u({type:"SET_WEBHOOK_ENABLED",keys:M,value:!n}),q.code!==20&&b({type:"warning",message:{id:"notification.error"}}))}},X=()=>{u({type:"SET_ALL_WEBHOOKS_TO_DELETE"})},Y=(n,c)=>{u({type:"SET_WEBHOOKS_TO_DELETE",value:n,id:c})},w=n=>{U(`${S}/${n}`)};return e.createElement(t.Layout,null,e.createElement(a.SettingsPageTitle,{name:"Webhooks"}),e.createElement(t.Main,{"aria-busy":r||p},e.createElement(t.HeaderLayout,{title:o({id:"Settings.webhooks.title",defaultMessage:"Webhooks"}),subtitle:o({id:"Settings.webhooks.list.description",defaultMessage:"Get POST changes notifications"}),primaryAction:s&&!p&&e.createElement(a.LinkButton,{startIcon:e.createElement(E.Plus,null),variant:"default",to:`${S}/create`,size:"S"},o({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}),m>0&&g&&e.createElement(t.ActionLayout,{startActions:e.createElement(e.Fragment,null,e.createElement(t.Typography,{variant:"epsilon",textColor:"neutral600"},o({id:"Settings.webhooks.to.delete",defaultMessage:"{webhooksToDeleteLength, plural, one {# asset} other {# assets}} selected"},{webhooksToDeleteLength:m})),e.createElement(t.Button,{onClick:()=>v("all"),startIcon:e.createElement(E.Trash,null),size:"L",variant:"danger-light"},o({id:"global.delete",defaultMessage:"Delete"})))}),e.createElement(t.ContentLayout,null,r||p?e.createElement(t.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(a.LoadingIndicatorPage,null)):e.createElement(e.Fragment,null,k>0?e.createElement(t.Table,{colCount:5,rowCount:k+1,footer:e.createElement(t.TFooter,{onClick:()=>s?w("create"):{},icon:e.createElement(E.Plus,null)},o({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))},e.createElement(t.Thead,null,e.createElement(t.Tr,null,e.createElement(t.Th,null,e.createElement(t.BaseCheckbox,{"aria-label":o({id:"global.select-all-entries",defaultMessage:"Select all entries"}),indeterminate:m>0&&m<k,value:m===k,onValueChange:X})),e.createElement(t.Th,{width:"20%"},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},o({id:"global.name",defaultMessage:"Name"}))),e.createElement(t.Th,{width:"60%"},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},o({id:"Settings.webhooks.form.url",defaultMessage:"URL"}))),e.createElement(t.Th,{width:"20%"},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},o({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"}))),e.createElement(t.Th,null,e.createElement(t.VisuallyHidden,null,o({id:"Settings.webhooks.list.th.actions",defaultMessage:"Actions"}))))),e.createElement(t.Tbody,null,f.map(n=>e.createElement(t.Tr,{key:n.id,...(0,a.onRowClick)({fn:()=>w(n.id),condition:d})},e.createElement(t.Td,{...a.stopPropagation},e.createElement(t.BaseCheckbox,{"aria-label":`${o({id:"global.select",defaultMessage:"Select"})} ${n.name}`,value:y?.includes(n.id),onValueChange:c=>Y(c,n.id),id:"select",name:"select"})),e.createElement(t.Td,null,e.createElement(t.Typography,{fontWeight:"semiBold",textColor:"neutral800"},n.name)),e.createElement(t.Td,null,e.createElement(t.Typography,{textColor:"neutral800"},n.url)),e.createElement(t.Td,null,e.createElement(t.Flex,{...a.stopPropagation},e.createElement(t.Switch,{onLabel:o({id:"global.enabled",defaultMessage:"Enabled"}),offLabel:o({id:"global.disabled",defaultMessage:"Disabled"}),label:`${n.name} ${o({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"})}`,selected:n.isEnabled,onChange:()=>Q(!n.isEnabled,n.id),visibleLabels:!0}))),e.createElement(t.Td,null,e.createElement(t.Stack,{horizontal:!0,spacing:1,...a.stopPropagation},d&&e.createElement(t.IconButton,{onClick:()=>{w(n.id)},label:o({id:"Settings.webhooks.events.update",defaultMessage:"Update"}),icon:e.createElement(E.Pencil,null),noBorder:!0}),g&&e.createElement(t.IconButton,{onClick:()=>v(n.id),label:o({id:"global.delete",defaultMessage:"Delete"}),icon:e.createElement(E.Trash,null),noBorder:!0,id:`delete-${n.id}`}))))))):e.createElement(t.EmptyStateLayout,{icon:e.createElement(E.EmptyDocuments,{width:"160px"}),content:o({id:"Settings.webhooks.list.empty.description",defaultMessage:"No webhooks found"}),action:e.createElement(t.Button,{variant:"secondary",startIcon:e.createElement(E.Plus,null),onClick:()=>s?w("create"):{}},o({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))})))),e.createElement(a.ConfirmDialog,{isOpen:$,onToggleDialog:z,onConfirm:Z}))},V=()=>e.createElement(a.CheckPagePermissions,{permissions:C.Z.settings.webhooks.main},e.createElement(N,null))}}]);
|