Send update instructions after project namespace id changed or namespace path changed
This commit is contained in:
parent
d188adfd97
commit
75dd704294
5 changed files with 47 additions and 2 deletions
|
@ -102,6 +102,12 @@ class Notify < ActionMailer::Base
|
|||
end
|
||||
|
||||
|
||||
def project_was_moved_email(user_project_id)
|
||||
@users_project = UsersProject.find user_project_id
|
||||
@project = @users_project.project
|
||||
mail(to: @users_project.user.email,
|
||||
subject: subject("project was moved"))
|
||||
end
|
||||
|
||||
#
|
||||
# User
|
||||
|
|
|
@ -59,7 +59,10 @@ class Namespace < ActiveRecord::Base
|
|||
if File.exists?(new_path)
|
||||
raise "Already exists"
|
||||
end
|
||||
system("mv #{old_path} #{new_path}")
|
||||
|
||||
if system("mv #{old_path} #{new_path}")
|
||||
send_update_instructions
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -67,4 +70,8 @@ class Namespace < ActiveRecord::Base
|
|||
dir_path = File.join(Gitlab.config.gitolite.repos_path, path)
|
||||
system("rm -rf #{dir_path}")
|
||||
end
|
||||
|
||||
def send_update_instructions
|
||||
projects.each(&:send_move_instructions)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -259,4 +259,10 @@ class Project < ActiveRecord::Base
|
|||
merge_requests
|
||||
end
|
||||
end
|
||||
|
||||
def send_move_instructions
|
||||
self.users_projects.each do |member|
|
||||
Notify.project_was_moved_email(member.id).deliver
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,7 +3,8 @@ class ProjectObserver < ActiveRecord::Observer
|
|||
project.update_repository
|
||||
end
|
||||
|
||||
def after_save(project)
|
||||
def after_update(project)
|
||||
project.send_move_instructions if project.namespace_id_changed?
|
||||
end
|
||||
|
||||
def after_destroy(project)
|
||||
|
|
25
app/views/notify/project_was_moved_email.html.haml
Normal file
25
app/views/notify/project_was_moved_email.html.haml
Normal file
|
@ -0,0 +1,25 @@
|
|||
%td.content{align: "left", style: "font-family: Helvetica, Arial, sans-serif; padding: 20px 0 0;", valign: "top", width: "600"}
|
||||
%table{border: "0", cellpadding: "0", cellspacing: "0", style: "color: #555; font: normal 11px Helvetica, Arial, sans-serif; margin: 0; padding: 0;", width: "600"}
|
||||
%tr
|
||||
%td{width: "21"}
|
||||
%td
|
||||
%h3
|
||||
= "Project was moved in another location"
|
||||
%td{width: "21"}
|
||||
%tr
|
||||
%td{width: "21"}
|
||||
%td
|
||||
%p
|
||||
Project is now accessible via next link
|
||||
= link_to project_url(@project) do
|
||||
= @project.name_with_namespace
|
||||
%p
|
||||
You may want to update your local repository with new remote:
|
||||
%br
|
||||
%table{border: "0", cellpadding: "0", cellspacing: "0", width: "558"}
|
||||
%tr
|
||||
%td{valign: "top"}
|
||||
%p{ style: "background:#f5f5f5; padding:10px; border:1px solid #ddd" }
|
||||
git remote set-url origin #{@project.ssh_url_to_repo}
|
||||
%br
|
||||
%td{ width: "21"}
|
Loading…
Reference in a new issue