strapi-plugin-navigation 2.3.2 → 2.5.0
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/LICENSE.md +7 -0
- package/README.md +855 -0
- package/admin/src/components/AdditionalFieldInput/index.d.ts +2 -2
- package/admin/src/components/AdditionalFieldInput/index.js +36 -8
- package/admin/src/components/AdditionalFieldInput/types.d.ts +1 -1
- package/admin/src/components/DragButton/index.d.ts +3 -1
- package/admin/src/components/DragButton/index.js +2 -1
- package/admin/src/components/Item/ItemCardHeader/index.d.ts +1 -0
- package/admin/src/components/Item/ItemCardHeader/index.js +10 -5
- package/admin/src/components/Item/index.js +24 -4
- package/admin/src/components/NavigationItemList/index.js +1 -1
- package/admin/src/components/Search/index.d.ts +10 -4
- package/admin/src/components/Search/index.js +45 -6
- package/admin/src/components/TextArrayInput/index.d.ts +2 -1
- package/admin/src/pages/DataManagerProvider/actions.d.ts +2 -0
- package/admin/src/pages/DataManagerProvider/actions.js +3 -1
- package/admin/src/pages/DataManagerProvider/index.js +28 -0
- package/admin/src/pages/DataManagerProvider/reducer.js +8 -0
- package/admin/src/pages/SettingsPage/common/const.d.ts +2 -0
- package/admin/src/pages/SettingsPage/common/const.js +5 -0
- package/admin/src/pages/SettingsPage/common/index.d.ts +2 -0
- package/admin/src/pages/SettingsPage/common/index.js +18 -0
- package/admin/src/pages/SettingsPage/components/CustomFieldForm/index.js +27 -12
- package/admin/src/pages/SettingsPage/components/CustomFieldTable/index.js +1 -1
- package/admin/src/pages/SettingsPage/components/DisableI18nModal/index.d.ts +2 -3
- package/admin/src/pages/SettingsPage/components/DisableI18nModal/index.js +12 -14
- package/admin/src/pages/SettingsPage/index.js +22 -9
- package/admin/src/pages/SettingsPage/types.d.ts +2 -1
- package/admin/src/pages/SettingsPage/utils/form.js +2 -1
- package/admin/src/pages/View/components/NavigationHeader/index.d.ts +2 -1
- package/admin/src/pages/View/components/NavigationHeader/index.js +5 -3
- package/admin/src/pages/View/components/NavigationItemForm/index.js +49 -19
- package/admin/src/pages/View/components/NavigationItemForm/types.d.ts +2 -1
- package/admin/src/pages/View/components/NavigationItemForm/utils/form.js +2 -0
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/icons.d.ts +1 -0
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/icons.js +2 -1
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/index.js +16 -4
- package/admin/src/pages/View/components/NavigationManager/PurgeCacheConfirm/index.d.ts +8 -0
- package/admin/src/pages/View/components/NavigationManager/PurgeCacheConfirm/index.js +34 -0
- package/admin/src/pages/View/components/NavigationManager/index.js +15 -2
- package/admin/src/pages/View/components/NavigationManager/types.d.ts +5 -1
- package/admin/src/pages/View/index.js +25 -12
- package/admin/src/pages/View/utils/form.d.ts +1 -1
- package/admin/src/pages/View/utils/types.d.ts +3 -0
- package/admin/src/pages/View/utils/types.js +3 -0
- package/admin/src/translations/ca.json +1 -0
- package/admin/src/translations/en.json +10 -0
- package/admin/src/translations/fr.json +1 -0
- package/admin/src/utils/api.js +1 -1
- package/package.json +76 -101
- package/server/bootstrap/index.js +3 -0
- package/server/cache/index.d.ts +2 -0
- package/server/cache/index.js +18 -0
- package/server/cache/serviceEnhancers.d.ts +3 -0
- package/server/cache/serviceEnhancers.js +16 -0
- package/server/cache/setupStrategy.d.ts +3 -0
- package/server/cache/setupStrategy.js +38 -0
- package/server/cache/types.d.ts +11 -0
- package/server/cache/types.js +3 -0
- package/server/cache/utils.d.ts +11 -0
- package/server/cache/utils.js +19 -0
- package/server/config/index.js +1 -0
- package/server/config/setupStrategy.js +1 -0
- package/server/content-types/index.d.ts +2 -0
- package/server/content-types/navigation/index.d.ts +1 -0
- package/server/content-types/navigation/index.js +3 -1
- package/server/content-types/navigation/lifecycles.d.ts +3 -0
- package/server/content-types/navigation/lifecycles.js +7 -0
- package/server/content-types/navigation-item/index.d.ts +1 -0
- package/server/content-types/navigation-item/index.js +3 -1
- package/server/content-types/navigation-item/lifecycles.d.ts +3 -0
- package/server/content-types/navigation-item/lifecycles.js +7 -0
- package/server/controllers/admin.js +37 -16
- package/server/controllers/client.js +2 -2
- package/server/graphql/queries/render-navigation-child.d.ts +1 -1
- package/server/graphql/queries/render-navigation.d.ts +1 -1
- package/server/graphql/types/index.js +1 -0
- package/server/graphql/types/navigation-item-additional-field-media.d.ts +5 -0
- package/server/graphql/types/navigation-item-additional-field-media.js +13 -0
- package/server/graphql/types/navigation-item.js +3 -0
- package/server/i18n/navigationSetupStrategy.js +1 -1
- package/server/i18n/utils.d.ts +1 -0
- package/server/i18n/utils.js +4 -0
- package/server/index.d.ts +2 -0
- package/server/routes/admin.js +20 -0
- package/server/services/admin.js +59 -15
- package/server/services/client.js +42 -11
- package/server/services/common.js +16 -0
- package/server/utils/constant.d.ts +3 -0
- package/server/utils/constant.js +21 -1
- package/server/utils/functions.d.ts +11 -3
- package/server/utils/functions.js +21 -3
- package/strapi-server.d.ts +2 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/types/bootstrap.d.ts +3 -0
- package/types/config.d.ts +1 -0
- package/types/contentTypes.d.ts +7 -2
- package/types/controllers.d.ts +14 -3
- package/types/index.d.ts +1 -0
- package/types/index.js +1 -0
- package/types/lifecycle.d.ts +22 -0
- package/types/lifecycle.js +3 -0
- package/types/services.d.ts +20 -2
- package/__mocks__/strapi.d.ts +0 -3
- package/__mocks__/strapi.d.ts.map +0 -1
- package/__mocks__/strapi.js +0 -206
- package/__mocks__/strapi.js.map +0 -1
- package/admin/src/components/AdditionalFieldInput/index.d.ts.map +0 -1
- package/admin/src/components/AdditionalFieldInput/index.js.map +0 -1
- package/admin/src/components/AdditionalFieldInput/types.d.ts.map +0 -1
- package/admin/src/components/AdditionalFieldInput/types.js.map +0 -1
- package/admin/src/components/Alert/styles.d.ts.map +0 -1
- package/admin/src/components/Alert/styles.js.map +0 -1
- package/admin/src/components/CollapseButton/index.d.ts.map +0 -1
- package/admin/src/components/CollapseButton/index.js.map +0 -1
- package/admin/src/components/ConfirmationDialog/index.d.ts.map +0 -1
- package/admin/src/components/ConfirmationDialog/index.js.map +0 -1
- package/admin/src/components/DragButton/index.d.ts.map +0 -1
- package/admin/src/components/DragButton/index.js.map +0 -1
- package/admin/src/components/EmptyView/index.d.ts.map +0 -1
- package/admin/src/components/EmptyView/index.js.map +0 -1
- package/admin/src/components/Item/ItemCardBadge/index.d.ts.map +0 -1
- package/admin/src/components/Item/ItemCardBadge/index.js.map +0 -1
- package/admin/src/components/Item/ItemCardHeader/Wrapper.d.ts.map +0 -1
- package/admin/src/components/Item/ItemCardHeader/Wrapper.js.map +0 -1
- package/admin/src/components/Item/ItemCardHeader/icons.d.ts.map +0 -1
- package/admin/src/components/Item/ItemCardHeader/icons.js.map +0 -1
- package/admin/src/components/Item/ItemCardHeader/index.d.ts.map +0 -1
- package/admin/src/components/Item/ItemCardHeader/index.js.map +0 -1
- package/admin/src/components/Item/ItemCardRemovedOverlay/index.d.ts.map +0 -1
- package/admin/src/components/Item/ItemCardRemovedOverlay/index.js.map +0 -1
- package/admin/src/components/Item/Wrapper.d.ts.map +0 -1
- package/admin/src/components/Item/Wrapper.js.map +0 -1
- package/admin/src/components/Item/index.d.ts.map +0 -1
- package/admin/src/components/Item/index.js.map +0 -1
- package/admin/src/components/NavigationItemList/Wrapper.d.ts.map +0 -1
- package/admin/src/components/NavigationItemList/Wrapper.js.map +0 -1
- package/admin/src/components/NavigationItemList/index.d.ts.map +0 -1
- package/admin/src/components/NavigationItemList/index.js.map +0 -1
- package/admin/src/components/RestartAlert/index.d.ts.map +0 -1
- package/admin/src/components/RestartAlert/index.js.map +0 -1
- package/admin/src/components/Search/index.d.ts.map +0 -1
- package/admin/src/components/Search/index.js.map +0 -1
- package/admin/src/components/TextArrayInput/index.d.ts.map +0 -1
- package/admin/src/components/TextArrayInput/index.js.map +0 -1
- package/admin/src/components/icons/navigation.d.ts.map +0 -1
- package/admin/src/components/icons/navigation.js.map +0 -1
- package/admin/src/contexts/DataManagerContext.d.ts.map +0 -1
- package/admin/src/contexts/DataManagerContext.js.map +0 -1
- package/admin/src/hooks/useAllContentTypes.d.ts.map +0 -1
- package/admin/src/hooks/useAllContentTypes.js.map +0 -1
- package/admin/src/hooks/useDataManager.d.ts.map +0 -1
- package/admin/src/hooks/useDataManager.js.map +0 -1
- package/admin/src/hooks/useI18nCopyNavigationItemsModal.d.ts.map +0 -1
- package/admin/src/hooks/useI18nCopyNavigationItemsModal.js.map +0 -1
- package/admin/src/hooks/useNavigationConfig.d.ts.map +0 -1
- package/admin/src/hooks/useNavigationConfig.js.map +0 -1
- package/admin/src/hooks/useNavigationManager.d.ts.map +0 -1
- package/admin/src/hooks/useNavigationManager.js.map +0 -1
- package/admin/src/index.d.ts.map +0 -1
- package/admin/src/index.js.map +0 -1
- package/admin/src/pages/App/index.d.ts.map +0 -1
- package/admin/src/pages/App/index.js.map +0 -1
- package/admin/src/pages/DataManagerProvider/actions.d.ts.map +0 -1
- package/admin/src/pages/DataManagerProvider/actions.js.map +0 -1
- package/admin/src/pages/DataManagerProvider/index.d.ts.map +0 -1
- package/admin/src/pages/DataManagerProvider/index.js.map +0 -1
- package/admin/src/pages/DataManagerProvider/init.d.ts.map +0 -1
- package/admin/src/pages/DataManagerProvider/init.js.map +0 -1
- package/admin/src/pages/DataManagerProvider/reducer.d.ts.map +0 -1
- package/admin/src/pages/DataManagerProvider/reducer.js.map +0 -1
- package/admin/src/pages/NoAccessPage/index.d.ts.map +0 -1
- package/admin/src/pages/NoAccessPage/index.js.map +0 -1
- package/admin/src/pages/SettingsPage/components/CustomFieldForm/index.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/components/CustomFieldForm/index.js.map +0 -1
- package/admin/src/pages/SettingsPage/components/CustomFieldModal/index.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/components/CustomFieldModal/index.js.map +0 -1
- package/admin/src/pages/SettingsPage/components/CustomFieldTable/index.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/components/CustomFieldTable/index.js.map +0 -1
- package/admin/src/pages/SettingsPage/components/DisableI18nModal/index.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/components/DisableI18nModal/index.js.map +0 -1
- package/admin/src/pages/SettingsPage/index.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/index.js.map +0 -1
- package/admin/src/pages/SettingsPage/types.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/types.js.map +0 -1
- package/admin/src/pages/SettingsPage/utils/form.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/utils/form.js.map +0 -1
- package/admin/src/pages/SettingsPage/utils/functions.d.ts.map +0 -1
- package/admin/src/pages/SettingsPage/utils/functions.js.map +0 -1
- package/admin/src/pages/View/components/I18nCopyNavigationItems/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/I18nCopyNavigationItems/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationContentHeader/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationContentHeader/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationHeader/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationHeader/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationHeader/styles.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationHeader/styles.js.map +0 -1
- package/admin/src/pages/View/components/NavigationItemForm/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationItemForm/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationItemForm/types.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationItemForm/types.js.map +0 -1
- package/admin/src/pages/View/components/NavigationItemForm/utils/form.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationItemForm/utils/form.js.map +0 -1
- package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupFooter.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupFooter.js.map +0 -1
- package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupHeader.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupHeader.js.map +0 -1
- package/admin/src/pages/View/components/NavigationItemPopup/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationItemPopup/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/icons.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/icons.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/AllNavigations/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/DeletionConfirm/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/DeletionConfirm/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/ErrorDetails/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/ErrorDetails/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/Footer/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/Footer/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/Form/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/Form/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/NavigationUpdate/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/NavigationUpdate/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/NewNavigation/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/NewNavigation/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/index.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/index.js.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/types.d.ts.map +0 -1
- package/admin/src/pages/View/components/NavigationManager/types.js.map +0 -1
- package/admin/src/pages/View/index.d.ts.map +0 -1
- package/admin/src/pages/View/index.js.map +0 -1
- package/admin/src/pages/View/utils/form.d.ts.map +0 -1
- package/admin/src/pages/View/utils/form.js.map +0 -1
- package/admin/src/pages/View/utils/index.d.ts.map +0 -1
- package/admin/src/pages/View/utils/index.js.map +0 -1
- package/admin/src/pages/View/utils/parsers.d.ts.map +0 -1
- package/admin/src/pages/View/utils/parsers.js.map +0 -1
- package/admin/src/permissions.d.ts.map +0 -1
- package/admin/src/permissions.js.map +0 -1
- package/admin/src/pluginId.d.ts.map +0 -1
- package/admin/src/pluginId.js.map +0 -1
- package/admin/src/translations/index.d.ts.map +0 -1
- package/admin/src/translations/index.js.map +0 -1
- package/admin/src/utils/api.d.ts.map +0 -1
- package/admin/src/utils/api.js.map +0 -1
- package/admin/src/utils/enums.d.ts.map +0 -1
- package/admin/src/utils/enums.js.map +0 -1
- package/admin/src/utils/functions.d.ts.map +0 -1
- package/admin/src/utils/functions.js.map +0 -1
- package/admin/src/utils/index.d.ts.map +0 -1
- package/admin/src/utils/index.js.map +0 -1
- package/permissions.d.ts.map +0 -1
- package/permissions.js.map +0 -1
- package/server/bootstrap/index.d.ts.map +0 -1
- package/server/bootstrap/index.js.map +0 -1
- package/server/config/index.d.ts.map +0 -1
- package/server/config/index.js.map +0 -1
- package/server/config/setupStrategy.d.ts.map +0 -1
- package/server/config/setupStrategy.js.map +0 -1
- package/server/content-types/audience/index.d.ts.map +0 -1
- package/server/content-types/audience/index.js.map +0 -1
- package/server/content-types/audience/schema.d.ts.map +0 -1
- package/server/content-types/audience/schema.js.map +0 -1
- package/server/content-types/index.d.ts.map +0 -1
- package/server/content-types/index.js.map +0 -1
- package/server/content-types/navigation/index.d.ts.map +0 -1
- package/server/content-types/navigation/index.js.map +0 -1
- package/server/content-types/navigation/schema.d.ts.map +0 -1
- package/server/content-types/navigation/schema.js.map +0 -1
- package/server/content-types/navigation-item/index.d.ts.map +0 -1
- package/server/content-types/navigation-item/index.js.map +0 -1
- package/server/content-types/navigation-item/schema.d.ts.map +0 -1
- package/server/content-types/navigation-item/schema.js.map +0 -1
- package/server/content-types/navigations-items-related/index.d.ts.map +0 -1
- package/server/content-types/navigations-items-related/index.js.map +0 -1
- package/server/content-types/navigations-items-related/schema.d.ts.map +0 -1
- package/server/content-types/navigations-items-related/schema.js.map +0 -1
- package/server/controllers/admin.d.ts.map +0 -1
- package/server/controllers/admin.js.map +0 -1
- package/server/controllers/client.d.ts.map +0 -1
- package/server/controllers/client.js.map +0 -1
- package/server/controllers/index.d.ts.map +0 -1
- package/server/controllers/index.js.map +0 -1
- package/server/destroy.d.ts.map +0 -1
- package/server/destroy.js.map +0 -1
- package/server/graphql/config.d.ts.map +0 -1
- package/server/graphql/config.js.map +0 -1
- package/server/graphql/index.d.ts.map +0 -1
- package/server/graphql/index.js.map +0 -1
- package/server/graphql/queries/index.d.ts.map +0 -1
- package/server/graphql/queries/index.js.map +0 -1
- package/server/graphql/queries/render-navigation-child.d.ts.map +0 -1
- package/server/graphql/queries/render-navigation-child.js.map +0 -1
- package/server/graphql/queries/render-navigation.d.ts.map +0 -1
- package/server/graphql/queries/render-navigation.js.map +0 -1
- package/server/graphql/resolvers-config.d.ts.map +0 -1
- package/server/graphql/resolvers-config.js.map +0 -1
- package/server/graphql/setupStrategy.d.ts.map +0 -1
- package/server/graphql/setupStrategy.js.map +0 -1
- package/server/graphql/types/content-types-name-fields.d.ts.map +0 -1
- package/server/graphql/types/content-types-name-fields.js.map +0 -1
- package/server/graphql/types/content-types.d.ts.map +0 -1
- package/server/graphql/types/content-types.js.map +0 -1
- package/server/graphql/types/create-navigation-item.d.ts.map +0 -1
- package/server/graphql/types/create-navigation-item.js.map +0 -1
- package/server/graphql/types/create-navigation-related.d.ts.map +0 -1
- package/server/graphql/types/create-navigation-related.js.map +0 -1
- package/server/graphql/types/create-navigation.d.ts.map +0 -1
- package/server/graphql/types/create-navigation.js.map +0 -1
- package/server/graphql/types/index.d.ts.map +0 -1
- package/server/graphql/types/index.js.map +0 -1
- package/server/graphql/types/navigation-config.d.ts.map +0 -1
- package/server/graphql/types/navigation-config.js.map +0 -1
- package/server/graphql/types/navigation-details.d.ts.map +0 -1
- package/server/graphql/types/navigation-details.js.map +0 -1
- package/server/graphql/types/navigation-item-related-data.d.ts.map +0 -1
- package/server/graphql/types/navigation-item-related-data.js.map +0 -1
- package/server/graphql/types/navigation-item-related.d.ts.map +0 -1
- package/server/graphql/types/navigation-item-related.js.map +0 -1
- package/server/graphql/types/navigation-item.d.ts.map +0 -1
- package/server/graphql/types/navigation-item.js.map +0 -1
- package/server/graphql/types/navigation-render-type.d.ts.map +0 -1
- package/server/graphql/types/navigation-render-type.js.map +0 -1
- package/server/graphql/types/navigation.d.ts.map +0 -1
- package/server/graphql/types/navigation.js.map +0 -1
- package/server/i18n/constant.d.ts.map +0 -1
- package/server/i18n/constant.js.map +0 -1
- package/server/i18n/errors.d.ts.map +0 -1
- package/server/i18n/errors.js.map +0 -1
- package/server/i18n/graphQLEnhancers.d.ts.map +0 -1
- package/server/i18n/graphQLEnhancers.js.map +0 -1
- package/server/i18n/index.d.ts.map +0 -1
- package/server/i18n/index.js.map +0 -1
- package/server/i18n/navigationSetupStrategy.d.ts.map +0 -1
- package/server/i18n/navigationSetupStrategy.js.map +0 -1
- package/server/i18n/serviceEnhancers.d.ts.map +0 -1
- package/server/i18n/serviceEnhancers.js.map +0 -1
- package/server/i18n/types.d.ts.map +0 -1
- package/server/i18n/types.js.map +0 -1
- package/server/i18n/utils.d.ts.map +0 -1
- package/server/i18n/utils.js.map +0 -1
- package/server/index.d.ts.map +0 -1
- package/server/index.js.map +0 -1
- package/server/navigation/index.d.ts.map +0 -1
- package/server/navigation/index.js.map +0 -1
- package/server/navigation/setupStrategy.d.ts.map +0 -1
- package/server/navigation/setupStrategy.js.map +0 -1
- package/server/register/index.d.ts.map +0 -1
- package/server/register/index.js.map +0 -1
- package/server/routes/admin.d.ts.map +0 -1
- package/server/routes/admin.js.map +0 -1
- package/server/routes/client.d.ts.map +0 -1
- package/server/routes/client.js.map +0 -1
- package/server/routes/index.d.ts.map +0 -1
- package/server/routes/index.js.map +0 -1
- package/server/services/__tests__/service.test.d.ts +0 -2
- package/server/services/__tests__/service.test.d.ts.map +0 -1
- package/server/services/__tests__/service.test.js +0 -131
- package/server/services/__tests__/service.test.js.map +0 -1
- package/server/services/admin.d.ts.map +0 -1
- package/server/services/admin.js.map +0 -1
- package/server/services/client.d.ts.map +0 -1
- package/server/services/client.js.map +0 -1
- package/server/services/common.d.ts.map +0 -1
- package/server/services/common.js.map +0 -1
- package/server/services/index.d.ts.map +0 -1
- package/server/services/index.js.map +0 -1
- package/server/utils/__tests__/functions.test.d.ts +0 -2
- package/server/utils/__tests__/functions.test.d.ts.map +0 -1
- package/server/utils/__tests__/functions.test.js +0 -153
- package/server/utils/__tests__/functions.test.js.map +0 -1
- package/server/utils/constant.d.ts.map +0 -1
- package/server/utils/constant.js.map +0 -1
- package/server/utils/functions.d.ts.map +0 -1
- package/server/utils/functions.js.map +0 -1
- package/server/utils/index.d.ts.map +0 -1
- package/server/utils/index.js.map +0 -1
- package/setup-package.d.ts +0 -2
- package/setup-package.d.ts.map +0 -1
- package/setup-package.js +0 -19
- package/setup-package.js.map +0 -1
- package/strapi-admin.d.ts.map +0 -1
- package/strapi-admin.js.map +0 -1
- package/strapi-server.d.ts.map +0 -1
- package/strapi-server.js.map +0 -1
- package/types/bootstrap.d.ts.map +0 -1
- package/types/bootstrap.js.map +0 -1
- package/types/config.d.ts.map +0 -1
- package/types/config.js.map +0 -1
- package/types/contentTypes.d.ts.map +0 -1
- package/types/contentTypes.js.map +0 -1
- package/types/controllers.d.ts.map +0 -1
- package/types/controllers.js.map +0 -1
- package/types/graphQL.d.ts.map +0 -1
- package/types/graphQL.js.map +0 -1
- package/types/i18n.d.ts.map +0 -1
- package/types/i18n.js.map +0 -1
- package/types/index.d.ts.map +0 -1
- package/types/index.js.map +0 -1
- package/types/services.d.ts.map +0 -1
- package/types/services.js.map +0 -1
- package/types/utils.d.ts.map +0 -1
- package/types/utils.js.map +0 -1
- package/utils/InvalidParamNavigationError.d.ts.map +0 -1
- package/utils/InvalidParamNavigationError.js.map +0 -1
- package/utils/NavigationError.d.ts.map +0 -1
- package/utils/NavigationError.js.map +0 -1
|
@@ -6,30 +6,34 @@ const utils_2 = require("../utils");
|
|
|
6
6
|
const utils_3 = require("../utils");
|
|
7
7
|
const InvalidParamNavigationError_1 = require("../../utils/InvalidParamNavigationError");
|
|
8
8
|
const NavigationError_1 = require("../../utils/NavigationError");
|
|
9
|
+
const utils_4 = require("../cache/utils");
|
|
9
10
|
const adminControllers = {
|
|
10
|
-
|
|
11
|
-
return (0, utils_2.getPluginService)(
|
|
11
|
+
getAdminService() {
|
|
12
|
+
return (0, utils_2.getPluginService)("admin");
|
|
13
|
+
},
|
|
14
|
+
getCommonService() {
|
|
15
|
+
return (0, utils_2.getPluginService)("common");
|
|
12
16
|
},
|
|
13
17
|
async get() {
|
|
14
|
-
return await this.
|
|
18
|
+
return await this.getAdminService().get();
|
|
15
19
|
},
|
|
16
20
|
post(ctx) {
|
|
17
21
|
const { auditLog } = ctx;
|
|
18
22
|
const { body = {} } = ctx.request;
|
|
19
|
-
return this.
|
|
23
|
+
return this.getAdminService().post(body, auditLog);
|
|
20
24
|
},
|
|
21
25
|
put(ctx) {
|
|
22
26
|
const { params, auditLog } = ctx;
|
|
23
27
|
const { id } = (0, utils_2.parseParams)(params);
|
|
24
28
|
const { body = {} } = ctx.request;
|
|
25
|
-
return this.
|
|
29
|
+
return this.getAdminService().put(id, body, auditLog).catch((0, utils_3.errorHandler)(ctx));
|
|
26
30
|
},
|
|
27
31
|
async delete(ctx) {
|
|
28
32
|
const { params, auditLog } = ctx;
|
|
29
33
|
const { id } = (0, utils_2.parseParams)(params);
|
|
30
34
|
try {
|
|
31
35
|
(0, types_1.assertNotEmpty)(id, new InvalidParamNavigationError_1.InvalidParamNavigationError("Navigation's id is not a id"));
|
|
32
|
-
await this.
|
|
36
|
+
await this.getAdminService().delete(id, auditLog);
|
|
33
37
|
return {};
|
|
34
38
|
}
|
|
35
39
|
catch (error) {
|
|
@@ -41,11 +45,11 @@ const adminControllers = {
|
|
|
41
45
|
}
|
|
42
46
|
},
|
|
43
47
|
async config() {
|
|
44
|
-
return this.
|
|
48
|
+
return this.getAdminService().config();
|
|
45
49
|
},
|
|
46
50
|
async updateConfig(ctx) {
|
|
47
51
|
try {
|
|
48
|
-
await this.
|
|
52
|
+
await this.getAdminService().updateConfig(ctx.request.body);
|
|
49
53
|
}
|
|
50
54
|
catch (e) {
|
|
51
55
|
(0, utils_3.errorHandler)(ctx)(e);
|
|
@@ -54,7 +58,7 @@ const adminControllers = {
|
|
|
54
58
|
},
|
|
55
59
|
async restoreConfig(ctx) {
|
|
56
60
|
try {
|
|
57
|
-
await this.
|
|
61
|
+
await this.getAdminService().restoreConfig();
|
|
58
62
|
}
|
|
59
63
|
catch (e) {
|
|
60
64
|
(0, utils_3.errorHandler)(ctx)(e);
|
|
@@ -62,11 +66,11 @@ const adminControllers = {
|
|
|
62
66
|
return ctx.send({ status: 200 });
|
|
63
67
|
},
|
|
64
68
|
async settingsConfig() {
|
|
65
|
-
return this.
|
|
69
|
+
return this.getAdminService().config(true);
|
|
66
70
|
},
|
|
67
71
|
async settingsRestart(ctx) {
|
|
68
72
|
try {
|
|
69
|
-
await this.
|
|
73
|
+
await this.getAdminService().restart();
|
|
70
74
|
return ctx.send({ status: 200 });
|
|
71
75
|
}
|
|
72
76
|
catch (e) {
|
|
@@ -76,19 +80,19 @@ const adminControllers = {
|
|
|
76
80
|
async getById(ctx) {
|
|
77
81
|
const { params } = ctx;
|
|
78
82
|
const { id } = (0, utils_2.parseParams)(params);
|
|
79
|
-
return this.
|
|
83
|
+
return this.getAdminService().getById(id);
|
|
80
84
|
},
|
|
81
85
|
async getContentTypeItems(ctx) {
|
|
82
86
|
const { params, query = {} } = ctx;
|
|
83
87
|
const { model } = (0, utils_2.parseParams)(params);
|
|
84
|
-
return this.
|
|
88
|
+
return this.getCommonService().getContentTypeItems(model, query);
|
|
85
89
|
},
|
|
86
90
|
fillFromOtherLocale(ctx) {
|
|
87
91
|
const { params, auditLog } = ctx;
|
|
88
92
|
const { source, target } = (0, utils_2.parseParams)(params);
|
|
89
93
|
try {
|
|
90
94
|
assertCopyParams(source, target);
|
|
91
|
-
return this.
|
|
95
|
+
return this.getAdminService().fillFromOtherLocale({ source, target, auditLog });
|
|
92
96
|
}
|
|
93
97
|
catch (error) {
|
|
94
98
|
if (error instanceof Error) {
|
|
@@ -103,7 +107,7 @@ const adminControllers = {
|
|
|
103
107
|
try {
|
|
104
108
|
assertCopyParams(source, target);
|
|
105
109
|
(0, types_1.assertNotEmpty)(path, new InvalidParamNavigationError_1.InvalidParamNavigationError("Path is missing"));
|
|
106
|
-
return await this.
|
|
110
|
+
return await this.getAdminService().readNavigationItemFromLocale({
|
|
107
111
|
path,
|
|
108
112
|
source,
|
|
109
113
|
target,
|
|
@@ -125,7 +129,7 @@ const adminControllers = {
|
|
|
125
129
|
const { query: { q } } = ctx;
|
|
126
130
|
try {
|
|
127
131
|
(0, types_1.assertNotEmpty)(q);
|
|
128
|
-
return this.
|
|
132
|
+
return this.getCommonService().getSlug(q).then((slug) => ({ slug }));
|
|
129
133
|
}
|
|
130
134
|
catch (error) {
|
|
131
135
|
if (error instanceof Error) {
|
|
@@ -134,6 +138,23 @@ const adminControllers = {
|
|
|
134
138
|
throw error;
|
|
135
139
|
}
|
|
136
140
|
},
|
|
141
|
+
async purgeNavigationsCache() {
|
|
142
|
+
const mappedStrapi = strapi;
|
|
143
|
+
const { enabled } = await (0, utils_4.getCacheStatus)({ strapi: mappedStrapi });
|
|
144
|
+
if (!enabled) {
|
|
145
|
+
return { success: false };
|
|
146
|
+
}
|
|
147
|
+
return await this.getAdminService().purgeNavigationsCache();
|
|
148
|
+
},
|
|
149
|
+
async purgeNavigationCache(ctx) {
|
|
150
|
+
const { params: { id }, query: { clearLocalisations = 'false' } } = ctx;
|
|
151
|
+
const mappedStrapi = strapi;
|
|
152
|
+
const { enabled } = await (0, utils_4.getCacheStatus)({ strapi: mappedStrapi });
|
|
153
|
+
if (!enabled) {
|
|
154
|
+
return { success: false };
|
|
155
|
+
}
|
|
156
|
+
return await this.getAdminService().purgeNavigationCache(id, JSON.parse(clearLocalisations));
|
|
157
|
+
}
|
|
137
158
|
};
|
|
138
159
|
const assertCopyParams = (source, target) => {
|
|
139
160
|
(0, types_1.assertIsNumber)(source, new InvalidParamNavigationError_1.InvalidParamNavigationError("Source's id is not a number"));
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const utils_1 = require("@strapi/utils");
|
|
4
4
|
const utils_2 = require("../utils");
|
|
5
5
|
const clientControllers = {
|
|
6
|
-
getService(
|
|
7
|
-
return (0, utils_2.getPluginService)(
|
|
6
|
+
getService() {
|
|
7
|
+
return (0, utils_2.getPluginService)("client");
|
|
8
8
|
},
|
|
9
9
|
async readAll(ctx) {
|
|
10
10
|
const { query = {} } = ctx;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
module.exports = ({ nexus }) => nexus.objectType({
|
|
3
|
+
name: "NavigationItemAdditionalFieldMedia",
|
|
4
|
+
definition(t) {
|
|
5
|
+
t.nonNull.string("name");
|
|
6
|
+
t.nonNull.string("url");
|
|
7
|
+
t.nonNull.string("mime");
|
|
8
|
+
t.nonNull.int("width");
|
|
9
|
+
t.nonNull.int("height");
|
|
10
|
+
t.string("previewUrl");
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=navigation-item-additional-field-media.js.map
|
|
@@ -26,6 +26,9 @@ module.exports = ({ nexus, config }) => nexus.objectType({
|
|
|
26
26
|
if (field !== 'audience') {
|
|
27
27
|
if (field.enabled) {
|
|
28
28
|
switch (field.type) {
|
|
29
|
+
case 'media':
|
|
30
|
+
t.field(field.name, { type: "NavigationItemAdditionalFieldMedia" });
|
|
31
|
+
break;
|
|
29
32
|
case 'string':
|
|
30
33
|
t.string(field.name);
|
|
31
34
|
break;
|
|
@@ -104,7 +104,7 @@ const i18nNavigationSetupStrategy = async ({ strapi, }) => {
|
|
|
104
104
|
return getCurrentNavigations(strapi);
|
|
105
105
|
};
|
|
106
106
|
exports.i18nNavigationSetupStrategy = i18nNavigationSetupStrategy;
|
|
107
|
-
const getCurrentNavigations = (strapi, ids) => strapi.plugin("navigation").service("admin").get(ids);
|
|
107
|
+
const getCurrentNavigations = (strapi, ids) => strapi.plugin("navigation").service("admin").get(ids, true);
|
|
108
108
|
const createNavigation = ({ strapi, payload, populate, }) => strapi.query("plugin::navigation.navigation").create({
|
|
109
109
|
data: {
|
|
110
110
|
...payload,
|
package/server/i18n/utils.d.ts
CHANGED
package/server/i18n/utils.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getI18nStatus = void 0;
|
|
4
|
+
const fp_1 = require("lodash/fp");
|
|
4
5
|
const getI18nStatus = async ({ strapi, }) => {
|
|
5
6
|
const i18nPlugin = strapi.plugin("i18n");
|
|
6
7
|
const hasI18NPlugin = !!i18nPlugin;
|
|
@@ -13,16 +14,19 @@ const getI18nStatus = async ({ strapi, }) => {
|
|
|
13
14
|
});
|
|
14
15
|
const localeService = i18nPlugin ? i18nPlugin.service("locales") : null;
|
|
15
16
|
const defaultLocale = await localeService?.getDefaultLocale();
|
|
17
|
+
const locales = (await localeService?.find({}))?.map((0, fp_1.prop)("code"));
|
|
16
18
|
return hasI18NPlugin
|
|
17
19
|
? {
|
|
18
20
|
hasI18NPlugin,
|
|
19
21
|
enabled: config.i18nEnabled,
|
|
20
22
|
defaultLocale,
|
|
23
|
+
locales,
|
|
21
24
|
}
|
|
22
25
|
: {
|
|
23
26
|
hasI18NPlugin,
|
|
24
27
|
enabled: false,
|
|
25
28
|
defaultLocale: undefined,
|
|
29
|
+
locales: undefined
|
|
26
30
|
};
|
|
27
31
|
};
|
|
28
32
|
exports.getI18nStatus = getI18nStatus;
|
package/server/index.d.ts
CHANGED
|
@@ -82,6 +82,7 @@ declare const _default: {
|
|
|
82
82
|
};
|
|
83
83
|
};
|
|
84
84
|
};
|
|
85
|
+
lifecycles: Record<import("../types").LifeCycleHookName, import("../types").Effect<import("../types").LifeCycleEvent<import("../types").LifeCycleHookName, unknown, Record<string, unknown>>>>;
|
|
85
86
|
};
|
|
86
87
|
"navigation-item": {
|
|
87
88
|
schema: {
|
|
@@ -185,6 +186,7 @@ declare const _default: {
|
|
|
185
186
|
};
|
|
186
187
|
};
|
|
187
188
|
};
|
|
189
|
+
lifecycles: Record<import("../types").LifeCycleHookName, import("../types").Effect<import("../types").LifeCycleEvent<import("../types").LifeCycleHookName, unknown, Record<string, unknown>>>>;
|
|
188
190
|
};
|
|
189
191
|
"navigations-items-related": {
|
|
190
192
|
schema: {
|
package/server/routes/admin.js
CHANGED
|
@@ -72,6 +72,26 @@ const routes = {
|
|
|
72
72
|
}]
|
|
73
73
|
}
|
|
74
74
|
},
|
|
75
|
+
{
|
|
76
|
+
method: 'DELETE',
|
|
77
|
+
path: '/cache/purge/:id',
|
|
78
|
+
handler: 'admin.purgeNavigationCache',
|
|
79
|
+
config: {
|
|
80
|
+
policies: [
|
|
81
|
+
'admin::isAuthenticatedAdmin'
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
method: 'DELETE',
|
|
87
|
+
path: '/cache/purge',
|
|
88
|
+
handler: 'admin.purgeNavigationsCache',
|
|
89
|
+
config: {
|
|
90
|
+
policies: [
|
|
91
|
+
'admin::isAuthenticatedAdmin'
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
},
|
|
75
95
|
{
|
|
76
96
|
method: 'GET',
|
|
77
97
|
path: '/slug',
|
package/server/services/admin.js
CHANGED
|
@@ -5,6 +5,7 @@ const lodash_1 = require("lodash");
|
|
|
5
5
|
const utils_2 = require("../utils");
|
|
6
6
|
const i18n_1 = require("../i18n");
|
|
7
7
|
const NavigationError_1 = require("../../utils/NavigationError");
|
|
8
|
+
const serviceEnhancers_1 = require("../cache/serviceEnhancers");
|
|
8
9
|
const adminService = ({ strapi, }) => ({
|
|
9
10
|
async config(viaSettingsPage = false) {
|
|
10
11
|
const commonService = (0, utils_2.getPluginService)("common");
|
|
@@ -50,6 +51,7 @@ const adminService = ({ strapi, }) => ({
|
|
|
50
51
|
viaSettingsPage,
|
|
51
52
|
previousConfig: {},
|
|
52
53
|
});
|
|
54
|
+
const cacheConfig = await (0, serviceEnhancers_1.addCacheConfigFields)({ strapi, previousConfig: {} });
|
|
53
55
|
if (additionalFields.includes("audience")) {
|
|
54
56
|
const audienceItems = await strapi
|
|
55
57
|
.query(audienceModel.uid)
|
|
@@ -65,21 +67,32 @@ const adminService = ({ strapi, }) => ({
|
|
|
65
67
|
...result,
|
|
66
68
|
...extendedResult,
|
|
67
69
|
...i18nConfig,
|
|
70
|
+
...cacheConfig,
|
|
68
71
|
};
|
|
69
72
|
},
|
|
70
|
-
async get(ids) {
|
|
73
|
+
async get(ids, ignoreLocale = false) {
|
|
71
74
|
const { masterModel } = (0, utils_2.getPluginModels)();
|
|
72
|
-
const
|
|
75
|
+
const { enabled: i18nEnabled, locales } = await (0, i18n_1.getI18nStatus)({ strapi });
|
|
76
|
+
const whereClause = {};
|
|
77
|
+
if (ids) {
|
|
78
|
+
whereClause.id = { $in: ids };
|
|
79
|
+
}
|
|
80
|
+
let entities = await strapi.query(masterModel.uid).findMany({
|
|
73
81
|
limit: Number.MAX_SAFE_INTEGER,
|
|
74
82
|
populate: utils_2.DEFAULT_POPULATE,
|
|
75
|
-
where:
|
|
76
|
-
? {
|
|
77
|
-
id: {
|
|
78
|
-
$in: ids,
|
|
79
|
-
},
|
|
80
|
-
}
|
|
81
|
-
: undefined,
|
|
83
|
+
where: whereClause,
|
|
82
84
|
});
|
|
85
|
+
if (i18nEnabled && !ignoreLocale) {
|
|
86
|
+
entities = entities.reduce((acc, entity) => {
|
|
87
|
+
if (entity.localeCode && locales?.includes(entity.localeCode)) {
|
|
88
|
+
acc.push({
|
|
89
|
+
...entity,
|
|
90
|
+
localizations: entity.localizations?.filter(({ localeCode }) => localeCode && locales?.includes(localeCode)),
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return acc;
|
|
94
|
+
}, []);
|
|
95
|
+
}
|
|
83
96
|
return entities;
|
|
84
97
|
},
|
|
85
98
|
async getById(id) {
|
|
@@ -116,11 +129,12 @@ const adminService = ({ strapi, }) => ({
|
|
|
116
129
|
name,
|
|
117
130
|
slug: await commonService.getSlug(name),
|
|
118
131
|
visible,
|
|
132
|
+
localeCode: i18nEnabled && defaultLocale ? defaultLocale : null
|
|
119
133
|
};
|
|
120
134
|
const existingEntity = await strapi
|
|
121
135
|
.query(masterModel.uid)
|
|
122
136
|
.create({ data });
|
|
123
|
-
const result = commonService
|
|
137
|
+
const result = await commonService
|
|
124
138
|
.createBranch(payload.items, existingEntity, null, {})
|
|
125
139
|
.then(() => adminService.getById(existingEntity.id))
|
|
126
140
|
.then((newEntity) => {
|
|
@@ -197,19 +211,21 @@ const adminService = ({ strapi, }) => ({
|
|
|
197
211
|
},
|
|
198
212
|
async delete(id, auditLog) {
|
|
199
213
|
const { masterModel, itemModel } = (0, utils_2.getPluginModels)();
|
|
200
|
-
const
|
|
201
|
-
const entity = await adminService.getById(id);
|
|
214
|
+
const entity = await this.getById(id);
|
|
202
215
|
const { enabled: i18nEnabled } = await (0, i18n_1.getI18nStatus)({ strapi });
|
|
203
216
|
const cleanNavigationItems = async (masterIds) => {
|
|
217
|
+
if (masterIds.length < 1) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
204
220
|
const navigationItems = await strapi.query(itemModel.uid).findMany({
|
|
205
221
|
where: {
|
|
206
|
-
$or: masterIds.map((id) => ({ master: id }))
|
|
222
|
+
$or: masterIds.map((id) => ({ master: id })),
|
|
207
223
|
},
|
|
208
224
|
limit: Number.MAX_SAFE_INTEGER,
|
|
209
225
|
});
|
|
210
226
|
await strapi.query(itemModel.uid).deleteMany({
|
|
211
227
|
where: {
|
|
212
|
-
|
|
228
|
+
id: navigationItems.map(({ id }) => (id)),
|
|
213
229
|
},
|
|
214
230
|
});
|
|
215
231
|
};
|
|
@@ -238,7 +254,7 @@ const adminService = ({ strapi, }) => ({
|
|
|
238
254
|
setImmediate(() => strapi.reload());
|
|
239
255
|
},
|
|
240
256
|
async restoreConfig() {
|
|
241
|
-
const commonService = (0, utils_2.getPluginService)("common");
|
|
257
|
+
const commonService = (0, utils_2.getPluginService)("common", strapi);
|
|
242
258
|
const pluginStore = await commonService.getPluginStore();
|
|
243
259
|
await pluginStore.delete({ key: "config" });
|
|
244
260
|
await commonService.setDefaultConfig();
|
|
@@ -296,6 +312,34 @@ const adminService = ({ strapi, }) => ({
|
|
|
296
312
|
strapi,
|
|
297
313
|
});
|
|
298
314
|
},
|
|
315
|
+
async purgeNavigationCache(id, clearLocalisations) {
|
|
316
|
+
const entity = await this.getById(id);
|
|
317
|
+
const regexps = [];
|
|
318
|
+
const mapToRegExp = (id) => new RegExp(`/api/navigation/render/${id}`);
|
|
319
|
+
if (!entity) {
|
|
320
|
+
throw new utils_1.errors.NotFoundError("Navigation is not defined");
|
|
321
|
+
}
|
|
322
|
+
if (clearLocalisations) {
|
|
323
|
+
const { enabled: isI18nEnabled } = await (0, i18n_1.getI18nStatus)({ strapi });
|
|
324
|
+
if (isI18nEnabled) {
|
|
325
|
+
entity.localizations?.forEach((navigation) => {
|
|
326
|
+
regexps.push(mapToRegExp(navigation.id));
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
const restCachePlugin = strapi.plugin("rest-cache");
|
|
331
|
+
const cacheStore = restCachePlugin.service("cacheStore");
|
|
332
|
+
regexps.push(mapToRegExp(id));
|
|
333
|
+
await cacheStore.clearByRegexp(regexps);
|
|
334
|
+
return { success: true };
|
|
335
|
+
},
|
|
336
|
+
async purgeNavigationsCache() {
|
|
337
|
+
const restCachePlugin = strapi.plugin("rest-cache");
|
|
338
|
+
const cacheStore = restCachePlugin.service("cacheStore");
|
|
339
|
+
const regex = new RegExp("/api/navigation/render(.*)");
|
|
340
|
+
await cacheStore.clearByRegexp([regex]);
|
|
341
|
+
return { success: true };
|
|
342
|
+
}
|
|
299
343
|
});
|
|
300
344
|
exports.default = adminService;
|
|
301
345
|
//# sourceMappingURL=admin.js.map
|
|
@@ -7,10 +7,12 @@ const utils_1 = require("../utils");
|
|
|
7
7
|
const utils_2 = require("@strapi/utils");
|
|
8
8
|
const i18n_1 = require("../i18n");
|
|
9
9
|
const NavigationError_1 = require("../../utils/NavigationError");
|
|
10
|
+
const fp_1 = require("lodash/fp");
|
|
10
11
|
const clientService = ({ strapi }) => ({
|
|
11
12
|
async readAll({ locale, orderBy = 'createdAt', orderDirection = "DESC" }) {
|
|
12
13
|
const { masterModel } = (0, utils_1.getPluginModels)();
|
|
13
|
-
const
|
|
14
|
+
const { enabled: i18nEnabled, locales } = await (0, i18n_1.getI18nStatus)({ strapi });
|
|
15
|
+
let navigations = await strapi
|
|
14
16
|
.query(masterModel.uid)
|
|
15
17
|
.findMany({
|
|
16
18
|
where: locale
|
|
@@ -22,6 +24,17 @@ const clientService = ({ strapi }) => ({
|
|
|
22
24
|
limit: Number.MAX_SAFE_INTEGER,
|
|
23
25
|
populate: false
|
|
24
26
|
});
|
|
27
|
+
if (i18nEnabled) {
|
|
28
|
+
navigations = navigations.reduce((acc, navigation) => {
|
|
29
|
+
if (navigation.localeCode && locales?.includes(navigation.localeCode)) {
|
|
30
|
+
acc.push({
|
|
31
|
+
...navigation,
|
|
32
|
+
localizations: navigation.localizations?.filter(({ localeCode }) => localeCode && locales?.includes(localeCode)),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return acc;
|
|
36
|
+
}, []);
|
|
37
|
+
}
|
|
25
38
|
return navigations;
|
|
26
39
|
},
|
|
27
40
|
async render({ idOrSlug, type = utils_1.RENDER_TYPES.FLAT, menuOnly = false, rootPath = null, wrapRelated = false, locale, populate, }) {
|
|
@@ -223,6 +236,8 @@ const clientService = ({ strapi }) => ({
|
|
|
223
236
|
id: itemContentType.id,
|
|
224
237
|
attributes: { ...itemContentType }
|
|
225
238
|
} : itemContentType;
|
|
239
|
+
const pickMediaFields = (0, fp_1.pick)(["name", "url", "mime", "width", "height", "previewUrl"]);
|
|
240
|
+
const customFieldsDefinitions = additionalFields.filter(_ => typeof _ !== "string");
|
|
226
241
|
switch (type) {
|
|
227
242
|
case utils_1.RENDER_TYPES.TREE:
|
|
228
243
|
case utils_1.RENDER_TYPES.RFR:
|
|
@@ -235,6 +250,13 @@ const clientService = ({ strapi }) => ({
|
|
|
235
250
|
const slug = (0, lodash_1.isString)(parentPath) ? await commonService.getSlug(((0, lodash_1.first)(parentPath) === '/' ? parentPath.substring(1) : parentPath).replace(/\//g, '-')) : undefined;
|
|
236
251
|
const lastRelated = (0, lodash_1.isArray)(item.related) ? (0, lodash_1.last)(item.related) : item.related;
|
|
237
252
|
const relatedContentType = wrapContentType(lastRelated);
|
|
253
|
+
const customFields = enabledCustomFieldsNames.reduce((acc, field) => {
|
|
254
|
+
const mapper = customFieldsDefinitions.find(({ name }) => name === field)?.type === "media"
|
|
255
|
+
? (_) => pickMediaFields(JSON.parse(_))
|
|
256
|
+
: fp_1.identity;
|
|
257
|
+
const content = (0, lodash_1.get)(item, `additionalFields.${field}`);
|
|
258
|
+
return { ...acc, [field]: content ? mapper(content) : content };
|
|
259
|
+
}, {});
|
|
238
260
|
return {
|
|
239
261
|
id: item.id,
|
|
240
262
|
title: (0, utils_1.composeItemTitle)(item, contentTypesNameFields, contentTypes),
|
|
@@ -251,11 +273,11 @@ const clientService = ({ strapi }) => ({
|
|
|
251
273
|
},
|
|
252
274
|
audience: !(0, lodash_1.isEmpty)(item.audience) ? item.audience.map(({ key }) => key) : undefined,
|
|
253
275
|
items: isExternal ? undefined : await clientService.renderTree(items, item.id, field, parentPath, itemParser),
|
|
254
|
-
...
|
|
276
|
+
...customFields
|
|
255
277
|
};
|
|
256
278
|
};
|
|
257
279
|
const { items: itemsFilteredByPath, root: rootElement, } = (0, utils_1.filterByPath)(items, rootPath);
|
|
258
|
-
const treeStructure = await clientService.renderTree((0, lodash_1.isNil)(rootPath) ? items : itemsFilteredByPath, (0, lodash_1.get)(rootElement, 'parent.id'), 'parent', (0, lodash_1.get)(rootElement, 'parent.path'), itemParser);
|
|
280
|
+
const treeStructure = await clientService.renderTree((0, lodash_1.isNil)(rootPath) ? items : itemsFilteredByPath, (0, lodash_1.get)(rootElement, 'parent.id') ?? null, 'parent', (0, lodash_1.get)(rootElement, 'parent.path'), itemParser);
|
|
259
281
|
const filteredStructure = filter
|
|
260
282
|
? treeStructure.filter((item) => item.uiRouterKey === filter)
|
|
261
283
|
: treeStructure;
|
|
@@ -286,14 +308,23 @@ const clientService = ({ strapi }) => ({
|
|
|
286
308
|
return nestedOrders;
|
|
287
309
|
};
|
|
288
310
|
return result
|
|
289
|
-
.map(({ additionalFields, ...item }) =>
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
311
|
+
.map(({ additionalFields, ...item }) => {
|
|
312
|
+
const customFields = enabledCustomFieldsNames.reduce((acc, field) => {
|
|
313
|
+
const mapper = customFieldsDefinitions.find(({ name }) => name === field)?.type === "media"
|
|
314
|
+
? (_) => pickMediaFields(JSON.parse(_.toString()))
|
|
315
|
+
: fp_1.identity;
|
|
316
|
+
const content = (0, lodash_1.get)(additionalFields, field);
|
|
317
|
+
return { ...acc, [field]: content ? mapper(content) : content };
|
|
318
|
+
}, {});
|
|
319
|
+
return ({
|
|
320
|
+
...item,
|
|
321
|
+
audience: item.audience?.map(_ => (_).key),
|
|
322
|
+
title: (0, utils_1.composeItemTitle)({ ...item, additionalFields }, contentTypesNameFields, contentTypes) || '',
|
|
323
|
+
related: wrapContentType(item.related),
|
|
324
|
+
items: null,
|
|
325
|
+
...customFields,
|
|
326
|
+
});
|
|
327
|
+
})
|
|
297
328
|
.sort((a, b) => (0, utils_1.compareArraysOfNumbers)(getNestedOrders(a.id), getNestedOrders(b.id)));
|
|
298
329
|
}
|
|
299
330
|
}
|
|
@@ -10,6 +10,10 @@ const config_1 = require("../config");
|
|
|
10
10
|
const i18n_1 = require("../i18n");
|
|
11
11
|
const utils_2 = require("../utils");
|
|
12
12
|
const slugify_1 = __importDefault(require("@sindresorhus/slugify"));
|
|
13
|
+
const lifecycleHookListeners = {
|
|
14
|
+
navigation: {},
|
|
15
|
+
"navigation-item": {}
|
|
16
|
+
};
|
|
13
17
|
const commonService = ({ strapi }) => ({
|
|
14
18
|
analyzeBranch(items = [], masterEntity = null, parentItem = null, prevOperations = {}) {
|
|
15
19
|
const commonService = (0, utils_2.getPluginService)('common');
|
|
@@ -364,6 +368,18 @@ const commonService = ({ strapi }) => ({
|
|
|
364
368
|
}
|
|
365
369
|
return slug.toLowerCase();
|
|
366
370
|
},
|
|
371
|
+
registerLifecycleHook({ callback, contentTypeName, hookName }) {
|
|
372
|
+
if (!lifecycleHookListeners[contentTypeName][hookName]) {
|
|
373
|
+
lifecycleHookListeners[contentTypeName][hookName] = [];
|
|
374
|
+
}
|
|
375
|
+
lifecycleHookListeners[contentTypeName][hookName]?.push(callback);
|
|
376
|
+
},
|
|
377
|
+
async runLifecycleHook({ contentTypeName, event, hookName }) {
|
|
378
|
+
const hookListeners = lifecycleHookListeners[contentTypeName][hookName] ?? [];
|
|
379
|
+
for (const listener of hookListeners) {
|
|
380
|
+
await listener(event);
|
|
381
|
+
}
|
|
382
|
+
},
|
|
367
383
|
});
|
|
368
384
|
exports.default = commonService;
|
|
369
385
|
//# sourceMappingURL=common.js.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { LifeCycleHookName } from "../../types";
|
|
1
2
|
export declare const TEMPLATE_DEFAULT: "Generic";
|
|
2
3
|
export declare const MODEL_TYPES: {
|
|
3
4
|
readonly CONTENT_TYPE: "contentType";
|
|
@@ -21,4 +22,6 @@ export declare const RENDER_TYPES: Readonly<{
|
|
|
21
22
|
TREE: "TREE";
|
|
22
23
|
RFR: "RFR";
|
|
23
24
|
}>;
|
|
25
|
+
export type ContentType = "navigation" | "navigation-item";
|
|
26
|
+
export declare const allLifecycleHooks: ReadonlyArray<LifeCycleHookName>;
|
|
24
27
|
//# sourceMappingURL=constant.d.ts.map
|
package/server/utils/constant.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RENDER_TYPES = exports.DEFAULT_NAVIGATION_ITEM = exports.DEFAULT_POPULATE = exports.CONTENT_TYPES_NAME_FIELDS_DEFAULTS = exports.EXCLUDED_CONTENT_TYPES = exports.RESTRICTED_CONTENT_TYPES = exports.ALLOWED_CONTENT_TYPES = exports.KIND_TYPES = exports.MODEL_TYPES = exports.TEMPLATE_DEFAULT = void 0;
|
|
3
|
+
exports.allLifecycleHooks = exports.RENDER_TYPES = exports.DEFAULT_NAVIGATION_ITEM = exports.DEFAULT_POPULATE = exports.CONTENT_TYPES_NAME_FIELDS_DEFAULTS = exports.EXCLUDED_CONTENT_TYPES = exports.RESTRICTED_CONTENT_TYPES = exports.ALLOWED_CONTENT_TYPES = exports.KIND_TYPES = exports.MODEL_TYPES = exports.TEMPLATE_DEFAULT = void 0;
|
|
4
4
|
const i18n_1 = require("../i18n");
|
|
5
5
|
exports.TEMPLATE_DEFAULT = 'Generic';
|
|
6
6
|
exports.MODEL_TYPES = { CONTENT_TYPE: 'contentType' };
|
|
@@ -20,4 +20,24 @@ exports.RENDER_TYPES = {
|
|
|
20
20
|
TREE: 'TREE',
|
|
21
21
|
RFR: 'RFR'
|
|
22
22
|
};
|
|
23
|
+
exports.allLifecycleHooks = [
|
|
24
|
+
"beforeCreate",
|
|
25
|
+
"beforeCreateMany",
|
|
26
|
+
"afterCreate",
|
|
27
|
+
"afterCreateMany",
|
|
28
|
+
"beforeUpdate",
|
|
29
|
+
"beforeUpdateMany",
|
|
30
|
+
"afterUpdate",
|
|
31
|
+
"afterUpdateMany",
|
|
32
|
+
"beforeDelete",
|
|
33
|
+
"beforeDeleteMany",
|
|
34
|
+
"afterDelete",
|
|
35
|
+
"afterDeleteMany",
|
|
36
|
+
"beforeCount",
|
|
37
|
+
"afterCount",
|
|
38
|
+
"beforeFindOne",
|
|
39
|
+
"afterFindOne",
|
|
40
|
+
"beforeFindMany",
|
|
41
|
+
"afterFindMany",
|
|
42
|
+
];
|
|
23
43
|
//# sourceMappingURL=constant.js.map
|