Send update instructions after project namespace id changed or namespace path changed

This commit is contained in:
Dmitriy Zaporozhets 2012-12-20 22:16:51 +02:00
parent d188adfd97
commit 75dd704294
5 changed files with 47 additions and 2 deletions

View file

@ -102,6 +102,12 @@ class Notify < ActionMailer::Base
end 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 # User

View file

@ -59,7 +59,10 @@ class Namespace < ActiveRecord::Base
if File.exists?(new_path) if File.exists?(new_path)
raise "Already exists" raise "Already exists"
end end
system("mv #{old_path} #{new_path}")
if system("mv #{old_path} #{new_path}")
send_update_instructions
end
end end
end end
@ -67,4 +70,8 @@ class Namespace < ActiveRecord::Base
dir_path = File.join(Gitlab.config.gitolite.repos_path, path) dir_path = File.join(Gitlab.config.gitolite.repos_path, path)
system("rm -rf #{dir_path}") system("rm -rf #{dir_path}")
end end
def send_update_instructions
projects.each(&:send_move_instructions)
end
end end

View file

@ -259,4 +259,10 @@ class Project < ActiveRecord::Base
merge_requests merge_requests
end end
end end
def send_move_instructions
self.users_projects.each do |member|
Notify.project_was_moved_email(member.id).deliver
end
end
end end

View file

@ -3,7 +3,8 @@ class ProjectObserver < ActiveRecord::Observer
project.update_repository project.update_repository
end end
def after_save(project) def after_update(project)
project.send_move_instructions if project.namespace_id_changed?
end end
def after_destroy(project) def after_destroy(project)

View 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"}