Commit ffe6cb57 authored by Luke Picciau's avatar Luke Picciau Committed by Robert Speicher

Redirect to admin projects index if project was deleted from admin page

parent 76471e2f
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
class Admin::ProjectsController < Admin::ApplicationController class Admin::ProjectsController < Admin::ApplicationController
include MembersPresentation include MembersPresentation
before_action :project, only: [:show, :transfer, :repository_check] before_action :project, only: [:show, :transfer, :repository_check, :destroy]
before_action :group, only: [:show, :transfer] before_action :group, only: [:show, :transfer]
def index def index
...@@ -35,6 +35,15 @@ class Admin::ProjectsController < Admin::ApplicationController ...@@ -35,6 +35,15 @@ class Admin::ProjectsController < Admin::ApplicationController
end end
# rubocop: enable CodeReuse/ActiveRecord # rubocop: enable CodeReuse/ActiveRecord
def destroy
::Projects::DestroyService.new(@project, current_user, {}).async_execute
flash[:notice] = _("Project '%{project_name}' is in the process of being deleted.") % { project_name: @project.full_name }
redirect_to admin_projects_path, status: :found
rescue Projects::DestroyService::DestroyError => ex
redirect_to admin_projects_path, status: 302, alert: ex.message
end
# rubocop: disable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord
def transfer def transfer
namespace = Namespace.find_by(id: params[:new_namespace_id]) namespace = Namespace.find_by(id: params[:new_namespace_id])
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
= link_to 'Edit', edit_project_path(project), id: "edit_#{dom_id(project)}", class: "btn" = link_to 'Edit', edit_project_path(project), id: "edit_#{dom_id(project)}", class: "btn"
%button.delete-project-button.btn.btn-danger{ data: { toggle: 'modal', %button.delete-project-button.btn.btn-danger{ data: { toggle: 'modal',
target: '#delete-project-modal', target: '#delete-project-modal',
delete_project_url: project_path(project), delete_project_url: admin_project_path(project),
project_name: project.name }, type: 'button' } project_name: project.name }, type: 'button' }
= s_('AdminProjects|Delete') = s_('AdminProjects|Delete')
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
- if project.archived - if project.archived
%span.badge.badge-warning archived %span.badge.badge-warning archived
.title .title
= link_to(admin_namespace_project_path(project.namespace, project)) do = link_to(admin_project_path(project)) do
.dash-project-avatar .dash-project-avatar
.avatar-container.rect-avatar.s40 .avatar-container.rect-avatar.s40
= project_icon(project, alt: '', class: 'avatar project-avatar s40', width: 40, height: 40) = project_icon(project, alt: '', class: 'avatar project-avatar s40', width: 40, height: 40)
......
...@@ -83,7 +83,7 @@ namespace :admin do ...@@ -83,7 +83,7 @@ namespace :admin do
resources(:projects, resources(:projects,
path: '/', path: '/',
constraints: { id: Gitlab::PathRegex.project_route_regex }, constraints: { id: Gitlab::PathRegex.project_route_regex },
only: [:show]) do only: [:show, :destroy]) do
member do member do
put :transfer put :transfer
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment