Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(app-trash-bin): add trash bin to app-headless-cms #4059

Merged
merged 76 commits into from
Apr 10, 2024

Conversation

leopuleo
Copy link
Contributor

@leopuleo leopuleo commented Mar 25, 2024

Changes

The Headless CMS now has basic trash bin functionalities. When an editor deletes an entry from the admin app, the entry will be moved to the trash bin instead of permanently deleted.

These are the available functionalities:

  • Move entries to the trash bin instead of deleting them.
  • List all items in the trash bin, with pagination.
  • Sort the items by name, deletedOn and createdOn fields.
  • Search for items in the trash bin.
  • Delete items in the trash bin.
  • Restore items in the trash bin.
  • Bulk delete items in the trash bin.
  • Bulk restore items in the trash bin.

Permissions

Users with full access to the content model (rwd) can interact with the trash bin.

Under the hood

Three new packages have been introduced:

  • app-trash-bin: contains both the domains and the presentation for the trash bin. It exposes the main TrashBin component that will be used by app-headless-cms.
  • app-trash-bin-common: includes gateway abstractions and models used by multiple applications, such as app-admin. A separate package is required to avoid circular dependencies.
  • app-utils: contains some essential domains, applicable across multiple applications such as: Sorting, Loading and Meta.

Code organisation

While working on this feature, we are experimenting with the First Test Architecture and Clean Architecture.

Opening the app-trash-bin package you will see 2 folders:

Domain

The folder contains relevant information at the domain level:

  • Models
  • Repositories
  • UseCases

Presentation

The folder contains components useful to present data. Together with the components, we find:

  • Controllers
  • Presenters

How Has This Been Tested?

Jest - Manually

@leopuleo leopuleo self-assigned this Mar 25, 2024
Copy link

Cypress E2E tests have been initiated (for more information, click here). ✨

Copy link

Cypress E2E tests have been initiated (for more information, click here). ✨

@leopuleo leopuleo merged commit 517c703 into next Apr 10, 2024
56 of 84 checks passed
@leopuleo leopuleo deleted the leo/feat/admin-soft-delete branch June 5, 2024 07:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants