Organization projects list - add support for delayed project deletion
Background
When deleting a project from the organization projects list (/-/organizations/default/groups_and_projects?display=projects
) there is no indicator if the project will be deleted immediately or delayed.
Proposal
We need to support this flow outlined in https://docs.gitlab.com/ee/user/project/working_with_projects.html#delayed-project-deletion
When delayed project deletion is enabled
When delayed project deletion is not enabled
Implementation plan
-
1. Expose ee/app/models/ee/project.rb#L997 on ee/app/graphql/ee/types/project_type.rb as is_adjourned_deletion_enabled
-
2. If is_adjourned_deletion_enabled
istrue
expose ee/app/helpers/ee/projects_helper.rb#L124 on ee/app/graphql/ee/types/project_type.rb aspermanent_deletion_date
-
3. If is_adjourned_deletion_enabled
istrue
exposemarked_for_deletion_at
-
4. Add delete-modal-footer
slot to app/assets/javascripts/vue_shared/components/projects_list/projects_list_item.vue#L401 -
5. Create an ee
version of app/assets/javascripts/vue_shared/components/projects_list/projects_list_item.vue#L401 -
- Render the ce
version and use thedelete-modal-footer
slot to add ee/app/assets/javascripts/projects/components/project_delayed_delete_button.vue#L70 ifis_adjourned_deletion_enabled
istrue
-
6. Create a new util in app/assets/javascripts/organizations/shared/utils.js#L74 called renderProjectDeleteSuccessAlert
that callscreateAlert
with the message<project name> is in the process of being deleted.
-
7. Create a ce version of this util in ee/app/assets/javascripts/organizations/shared/utils.js
that checks -
- If is_adjourned_deletion_enabled
istrue
callcreateAlert
with the message<project name> will be deleted on <permanent_deletion_date>.
-
8. Create a new util in ee/app/assets/javascripts/organizations/shared/utils.js
calleddeleteProjectParams
. Ifmarked_for_deletion_at
is set then pass thepermanently_remove
param when calling theDELETE /projects/:id
API
Edited by Zack Cuddy