* feat(review-workflows): adding required stage for publishing (#21380)
* feat(review-workflows): adding required stage for publishing
* fix(review-workflows): fixs on rw required stage
* fix(review-workflows): selected required stage when stage name changed
* fix(review-workflows): bug when creating new rw
* feat(review-workflows): check entry stage before publish (#21400)
* feat(content-releases): add stage check to releases details page (#21497)
* feat(content-releases): add stage check
* fix(content-releases): apply suggestions on releases x review workflows
* feat(content-releases): considered review stage when getting the action status (#21612)
* feat(content-releases): considered review stage when getting the action status
* fix: apply changes to reviewWorkflows on schema
* fix: add api test for review workflows publish stage
* fix: api tests
* fix: validation message errors (#21878)
* feat: add workflowId & hasRequiredStageToPublish to workflows metrics events (#21897)
* fix(content-releases): skip flaky test
* fix: update accessible name in history.spec.ts
---------
Co-authored-by: Mark Kaylor <mark.kaylor@strapi.io>
* chore: initiate moving CM to own package
* chore: refactor to handle routes
* chore: init review-workflows-package
* chore: fix build
* chore: refactor review-workflows fe
* chore: fix unit suite
* chore: spelling mistake
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
---------
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
* feat(content-manager): Rework findAvailable and findExisting (#19597)
* feat(content-manager): wip rework findAvailable and findExisting
* chore(strapi): simplify relations controller
* feat(content-manager): entity Id based find available
* feat(content-manager): entity Id based find existing
* fix(content-manager): build issues
* chore(content-manager): cleanup
* fix(content-manager): relations controllers unit tests
* fix(content-manager): improve error handling
* fix(content-manager): simplify findExisting relations logic
* fix(content-manager): clean up types
* fix(content-manager): extend available relation API tests
* fix(content-manager): pr feedback
* feat(content-manager): cover find existing test cases
* feat(content-manager): test that we can only find available relations in the same locale
* fix: wip fix unit tests
* chore(content-manager): pr feedback
* fix(content-manager): use db layer to find relations
fix(content-manager): failing relations tests
* fix(content-manager): find relations test
* fix(content-manager): build issues
* fix(content-manager): return latest status of relations in findAvailable (#19681)
* fix(content-manager): return latest status of relations in findAvailable
* fix(content-manager): share logic for findAvailable and findExisting
* fix(admin): relation tests
* fix(content-manager): clean up types
* fix(content-manager): support status for find exisiting
* fix(content-manager): add status and locale filters to subQuery
* fix(content-manager): ts front and skip relations unit tests
* fix(content-manager): request specific status or get latest using document-metadata
* chore(content-manager): use interface
* fix(content-manager): tidy up target relation subquery
* fix(content-manager): tidy up and skip TS for build issues
* fix(content-manager): return status when requested
* chore(content-manager): dont re type entity service response
* fix(content-manager): use document metadata getManyAvailableStatus
* chore(content-manager): remove mapAsync
* feat: implement relations in the cm (#19702)
* Fix: Relating i18n and non-i18n content types (#19731)
* chore: re-enable e2e relation tests
* fix: return undefined
---------
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
Co-authored-by: Jamie Howard <jamie.howard@strapi.io>
Co-authored-by: Marc-Roig <marc12info@gmail.com>
* chore: re-implement option in ctb
* chore: refactor CM & i18n to accomodate option D&P
* test(unit): add test to ensure status is not in EditView header when we dont pass the prop
* chore: remove unused import
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
---------
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
* feat: return metadata on content manager endpoints (#19361)
* feat: return metadata on content manager endpoints
* feat: return meta
* fix: cm tests
* feat: fix cm metadata api tests (#19375)
* feat: return metadata on content manager endpoints
* feat: return meta
* fix: cm tests
* fix: admin test
* chore(cm): refactor CM (#19341)
* chore(cm): refactor EditView
comes with a host of new re-usable APIs!
* feat(cm): add useDocument hook
* feat(cm): add useDocumentOperations hook
* feat(cm): initialise EditView header
* feat(cm): add useDocumentLayout hook
* fix: listView from layout refactor
* chore(cm): refactor editview form input renderer
* chore: fix lint & ts
* fix: re-add custom fields
* test: fix admin/CM unit tests
* docs(cm): add docs at a high level of how the CM works
* test: add useDocumentRBAC tests
* chore: pr amends
* feat: add addEditViewSidePanel API to strapi (#19398)
* feat: add addEditViewSidePanel API to strapi
fix: don't pass all the query params to the create route
* chore: pr amends
* fix: return available status when content type doesnt have i18n enabled (#19419)
* fix: return available status when content type doesnt have i18n enabled
* chore: remove comment
* fix(cm): list view & build process
* feat: save and publish
* feat: update contract
* feat: dp tests
* chore: use document from create and update
* feat: save and publish single types
* feat: return metadata on content manager endpoints (#19361)
* feat: return metadata on content manager endpoints
* feat: return meta
* fix: cm tests
* feat: fix cm metadata api tests (#19375)
* feat: return metadata on content manager endpoints
* feat: return meta
* fix: cm tests
* fix: admin test
* chore(cm): refactor CM (#19341)
* chore(cm): refactor EditView
comes with a host of new re-usable APIs!
* feat(cm): add useDocument hook
* feat(cm): add useDocumentOperations hook
* feat(cm): initialise EditView header
* feat(cm): add useDocumentLayout hook
* fix: listView from layout refactor
* chore(cm): refactor editview form input renderer
* chore: fix lint & ts
* fix: re-add custom fields
* test: fix admin/CM unit tests
* docs(cm): add docs at a high level of how the CM works
* test: add useDocumentRBAC tests
* chore: pr amends
* feat: add addEditViewSidePanel API to strapi (#19398)
* feat: add addEditViewSidePanel API to strapi
fix: don't pass all the query params to the create route
* chore: pr amends
* fix: return available status when content type doesnt have i18n enabled (#19419)
* fix: return available status when content type doesnt have i18n enabled
* chore: remove comment
* fix(cm): list view & build process
* feat: add publish & update action (#19423)
* feat: return metadata on content manager endpoints (#19361)
* feat: return metadata on content manager endpoints
* feat: return meta
* fix: cm tests
* feat: fix cm metadata api tests (#19375)
* feat: return metadata on content manager endpoints
* feat: return meta
* fix: cm tests
* fix: admin test
* chore(cm): refactor CM (#19341)
* chore(cm): refactor EditView
comes with a host of new re-usable APIs!
* feat(cm): add useDocument hook
* feat(cm): add useDocumentOperations hook
* feat(cm): initialise EditView header
* feat(cm): add useDocumentLayout hook
* fix: listView from layout refactor
* chore(cm): refactor editview form input renderer
* chore: fix lint & ts
* fix: re-add custom fields
* test: fix admin/CM unit tests
* docs(cm): add docs at a high level of how the CM works
* test: add useDocumentRBAC tests
* chore: pr amends
* feat: add addEditViewSidePanel API to strapi (#19398)
* feat: add addEditViewSidePanel API to strapi
fix: don't pass all the query params to the create route
* chore: pr amends
* fix: return available status when content type doesnt have i18n enabled (#19419)
* fix: return available status when content type doesnt have i18n enabled
* chore: remove comment
* feat: add publish & update action
* feat: add published disabled state
* test: fix suite
* test: add unit for Panels
* fix(cm): status not state for redirect
* fix(cm): list view status & component main field property
* chore: pr feedback
* chore: apply suggestions
Co-authored-by: markkaylor <mark.kaylor@strapi.io>
---------
Co-authored-by: Marc Roig <marc12info@gmail.com>
Co-authored-by: markkaylor <mark.kaylor@strapi.io>
* feat: test single types
* feat: wrap single type publish into a transaction
* feat(cm): add unpublish & delete actions, also re-enable single-types (#19459)
* fix: delete url was wrong way round
* feat: compute modified status
* fix(cm): reimplement ListSettingsView (#19432)
* chore: PR feedback
* feat: discard endpoint
* feat: discard draft api tests
* feat: unpublish and discard
* chore: pr comments
* chore: update sanitizer
* feat(cm): add publish and save (#19500)
* feat(cm): add publish and save
* test(cm): fix unit for useDocumentActions
* Update packages/core/content-manager/server/src/controllers/collection-types.ts
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
* Update packages/core/content-manager/shared/contracts/single-types-v5.ts
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
* feat(document-service): map document ID to entry ID (#19248)
* feat: use document service in content manager
* feat: update contracts with meta information
* chore: group metadata types into a single type
* feat: metadata information in single types
* chore: change meta contract to return documents instead of strings
* fix: remove unused type
* fix: ignore doc id if entry is null
* fix: update contract metadata
* feat: document metadata service
* feat: locale and status filtering
* chore: add comment
* chore: refactor metadata service
* chore: refactor entity manager exists to handle single types
* feat: refactor single type controllers to use documents
* feat: get locale param from in cm endpoints
* Revert "feat: get locale param from in cm endpoints"
This reverts commit 856c38588b8f8521cadd85c8c933f42a36a2178a.
* feat: get locale param from cm endpoints
* Update packages/plugins/i18n/server/src/controllers/validate-locale-creation.ts
Co-authored-by: Ben Irvin <ben@innerdvations.com>
* fix: entity manager unit tests
* chore: unit test document metadata
* feat: prevent empty string locale filtering
* fix: cm contract import
* chore: test new d&p cm features
* fix: search content manager api test
* fix: cm tests
* fix: cm tests
* fix: cm tests
* fix(content-manager): access to non default locale documents (#19190)
* fix(content-manager): access to non default locale documents
* chore(content-manager): revert route construction
* fix(content-manager): api tests for number of draft relations
* test(content-manager): counting number of draft relations for non default locales
* chore(content-manager): remove default locale from entity manager countDraftRelations
* chore: basic relations testing for document service
* chore(e2e): disable edit view tests (#19235)
* feat: get relation ids
* chore: clean functions into other folders
* chore: rename files
* fix: group document ids by its uid
* feat: id mapper
* chore: improve typings
* chore: rename transform functions
* fix: id-transform tests
* chore: simplify function return value
* chore: improve comments
* fix: api tests
* fix: single types unit test
* fix: skip relations test
* fix: exclude fields
* fix: short hand ifs
* fix: merge conflict
* fix: transform output of find one
* Update packages/core/core/src/services/document-service/transform/utils.ts
Co-authored-by: Ben Irvin <ben.irvin@strapi.io>
* feat[Document Service]: Param transformation (#19373)
* fix(core): wip param transformation
* feat(core): wip param transformation based on relational status
* feat(core): wip populate and filter transformation based on relational status
* chore(core): simplify fields and sort
* chore(core): clean up
* feat(core): wip filter transformation with traverseQueryFilters
* feat(core): reorganise and PR feedback
* fix(core): filters traversal logic
* feat(core): populate relational transformations
* chore(core): reintroduce populate transformation
* fix(core): enforce that fields must include id
* fix(core): enforce that fields must include id
* fix(core): filter and sort transformation
* chore(core): typos
* chore(core): further filters test cases
* feat(core): support object based sorts
* chore(core): fields test naming
* feat(core): handle logical operators in filters
* fix: skip conditions test
* fix(core): switchIdForDocumentId (#19497)
* fix: uniqueness test
* fix: available status should be an array
* fix: available statuses
* fix: skip uniqueness folder
* fix: skip uniqueness test errors
* fix: skip failing test
---------
Co-authored-by: Ben Irvin <ben@innerdvations.com>
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
Co-authored-by: Josh <37798644+joshuaellis@users.noreply.github.com>
Co-authored-by: Jamie Howard <jamie.howard@strapi.io>
Co-authored-by: Ben Irvin <ben.irvin@strapi.io>
* chore: re-implement edit configuration (#19488)
* chore: re-implement edit configuration
* chore: cleanups
* test: fix unit tests
* feat(cm): add discard changes action (#19509)
* feat(cm): add discard changes action
* feat(cm): add discard when unpublishing
* test(e2e): fix editview e2e
* test(e2e): fix uniqueness partially
* test(unit): fix unit tests for actions & add for discard
* chore: bump playwright
* fix(webkit): add shim for requestIdCallback
* chore: pr amends
* feat: return status on available locales
* feat: add document-actions to list-view (#19523)
* fix(cm): add gap and alignment for edit-view heading with super long names
* fix(cm): list view status'
* feat: add list-view actions
* fix: conditions for actions to be enabled
* fix: stay on draft tab when published
* fix: stop propogation on list-view row click
* test(e2e): fix editview tests
* chore: update spelling error
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
---------
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
* feat: test document metadata
* chore: remove unnecessary unit test
* fix: return modified on published documents
* chore: init split single-type collection-type in document service
* Fix/fields test case (#19481)
* Update packages/core/content-manager/server/src/services/document-metadata.ts
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
* fix: pretty
* chore: refactor middlewares
* feat: send empty object if locale does not exist on document
* feat: single types
* chore: add tests to middlewares
* feat: update locale using query params (#19546)
* feat: return available locales when not finding locale
* chore: update typings
* feat: add clone action (#19526)
* feat: add clone action
* test(e2e): add auto clone tests
* chore: pr amends
* feat: add information to header actions menu (#19548)
* feat: add information to header actions menu
* fix: dont use non-null-assertion
* feat: manage relations on publish (#19427)
---------
Co-authored-by: Ben Irvin <ben@innerdvations.com>
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
Co-authored-by: Josh <37798644+joshuaellis@users.noreply.github.com>
Co-authored-by: Jamie Howard <jamie.howard@strapi.io>
* feat: v5 i18n relations (#19504)
Co-authored-by: Ben Irvin <ben@innerdvations.com>
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
Co-authored-by: Josh <37798644+joshuaellis@users.noreply.github.com>
Co-authored-by: Jamie Howard <jamie.howard@strapi.io>
* fix: locale test api
* chore: refactor i18n (#19555)
* chore: remove types package, should be using strapi
* chore: refactor i18n settings page
* feat: add i18n to CM
* feat(i18n): add delete locale action (#19562)
* chore: pr amends
Co-authored-by: Simone <startae14@gmail.com>
---------
Co-authored-by: Simone <startae14@gmail.com>
* feat(cm): re-implement validation (#19578)
* feat: re-implement validation in the CM
feat: add blocker
feat: handle validation errors from the API
chore: reimplement useFieldHint
test(unit): fix fe tests
chore: fix bad logical operator
* chore: await notifications to leave before trying to go to other pages
* fix: validation issues & blocker showing up incorrectly
* fix: broken publish behaviour
* fix(content-manager): uid availability and generation (#19518)
* fix(content-manager): uid availability and generation
* fix(content-manager): pass locale as is from UID service
* fix(content-manager): match UIDs based on startsWith
---------
Co-authored-by: Marc Roig <marc12info@gmail.com>
Co-authored-by: markkaylor <mark.kaylor@strapi.io>
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
Co-authored-by: Ben Irvin <ben@innerdvations.com>
Co-authored-by: Jamie Howard <jamie.howard@strapi.io>
Co-authored-by: Ben Irvin <ben.irvin@strapi.io>
Co-authored-by: Alexandre Bodin <bodin.alex@gmail.com>
Co-authored-by: Alexandre BODIN <alexandrebodin@users.noreply.github.com>
Co-authored-by: Simone <startae14@gmail.com>
* feat: add vite
* fix: CheckPagePermissions was buggy
* fix: vite CJS warning & double print of experimental message
* chore: move to use plugins-workspace folder
* chore: update deps
---------
Co-authored-by: Paul <45032974+hide-me@users.noreply.github.com>
* fix(admin): import & pass user customisations for admin panel
* fix(admin): modules should be resolved with module paths not system paths
* fix(admin): ensure webpack config is a type of function before calling, warn otherwise
* fix: convert the pluginPath to a system path before trying to resolve relative
* chore: update documentation
* fix(admin): import & pass user customisations for admin panel
* fix(admin): modules should be resolved with module paths not system paths
* fix(admin): ensure webpack config is a type of function before calling, warn otherwise
* fix: convert the pluginPath to a system path before trying to resolve relative
* chore: update documentation
fix single type
fix query
sanitize pagination count params
add comments
Cleanup the params/filters sanitize helpers
sanitize association resolver
Sanitize sort
fix graphql single type
fix graphql types
fix addFindQuery
Sanitize fields
Update sanitize sort to handle all the different formats
Update fields sanitize to handle regular strings & wildcard
Fix non scalar recursion
Add a traverse factory
Add visitor to remove dz & morph relations
Replace the old traverse utils (sort, filters) by one created using the traverse factory
add sanitize populate
await args
fix async and duplicate sanitization
sanitize u&p params
Add traverse fields
Fix traverse & sanitize fields
add traverse fields to nested populate
sanitize admin api filter queries
Co-authored-by: Jean-Sébastien Herbaux <Convly@users.noreply.github.com>
sanitize sort params in admin API
todo
make token fields unsearchable with _q
sanitize delete mutation
Update packages/core/admin/server/services/permission/permissions-manager/sanitize.js
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
fix errors on queries without ctx
rename findParams to sanitizedParams
Sanitize queries everywhere in the content manager admin controllers
sanitize single type update and delete
Ignore non attribute keys in the sanitize sort
Fix the sanitize query sort for nested string sort
Fix permission check for the admin
typo
sanitize upload
sanitize admin media library
sanitize admin users
Add missing await
Co-authored-by: Jean-Sébastien Herbaux <Convly@users.noreply.github.com>
set U&P users fields to searchable:false
add token support to createContentAPIRequest
add searchable:false to getstarted U&P schema
remove comment
sanitize component resolver
remove await
add searchable false to the file's folder path
Fix admin query when the permission query is set to null
add basic tests for filtering private params
add tests for fields
add pagination tests
Fix admin user fields not being sanitized
Fix convert query params for the morph fragment on undefined value
Traverse dynamic zone on nested populate
Handle nested sort, filters & fields in populate queries + handle populate fragment for morphTo relations
Sanitize 'on' subpopulate
Co-authored-by: Jean-Sébastien Herbaux <Convly@users.noreply.github.com>
don't throw error on invalid attributes
check models for snake case column name instead of assuming they are operators
Add first batch of api tests for params sanitize
Fix sort traversal: handle object arrays
Put back removePassword for fields,sort,filters
Add schemas and fixtures for sanitize api tests
Add tests for relations (sanitize api tests)
Move constant to domain scope
Rename sanitize params to sanitize query
Fix typo
Cleanup fixtures file
Fix variable name conflict
Update packages/core/admin/server/services/permission/permissions-manager/sanitize.js
Co-authored-by: Alexandre BODIN <alexandrebodin@users.noreply.github.com>
Update comment for array filters
Rename sanitize test
Test implicit & explicit array operator for filter
Remove unused code