diff --git a/app/models/message_template/issue_assigned.rb b/app/models/message_template/issue_assigned.rb
index 23632c3ef..10ad5eb2d 100644
--- a/app/models/message_template/issue_assigned.rb
+++ b/app/models/message_template/issue_assigned.rb
@@ -36,26 +36,28 @@ class MessageTemplate::IssueAssigned < MessageTemplate
def self.get_email_message_content(receiver, operator, issue)
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["Normal::IssueAssigned"]
+ project = issue&.project
+ owner = project&.owner
+ title = email_title
+ title.gsub!('{nickname1}', operator&.real_name)
+ title.gsub!('{nickname2}', owner&.real_name)
+ title.gsub!('{repository}', project&.name)
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{nickname1}', operator&.real_name)
+ content.gsub!('{login1}', operator&.login)
+ content.gsub!('{nickname2}', owner&.real_name)
+ content.gsub!('{login2}', owner&.login)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{repository}', project&.name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{title}', issue&.subject)
+ content.gsub!('{id}', issue&.id.to_s)
+
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
end
- project = issue&.project
- owner = project&.owner
- title = email_title
- title.gsub!('{nickname1}', operator&.real_name)
- title.gsub!('{nickname2}', owner&.real_name)
- title.gsub!('{repository}', project&.name)
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{nickname1}', operator&.real_name)
- content.gsub!('{login1}', operator&.login)
- content.gsub!('{nickname2}', owner&.real_name)
- content.gsub!('{login2}', owner&.login)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{repository}', project&.name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{title}', issue&.subject)
- content.gsub!('{id}', issue&.id.to_s)
-
- return receiver&.mail, title, content
rescue => e
Rails.logger.info("MessageTemplate::IssueAssigned.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/issue_changed.rb b/app/models/message_template/issue_changed.rb
index 90a72d1a0..10007cfb0 100644
--- a/app/models/message_template/issue_changed.rb
+++ b/app/models/message_template/issue_changed.rb
@@ -191,177 +191,180 @@ class MessageTemplate::IssueChanged < MessageTemplate
return '', '', '' if change_params.blank?
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["CreateOrAssign::IssueChanged"]
- end
- project = issue&.project
- owner = project&.owner
- title = email_title
- title.gsub!('{title}', issue&.subject)
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{login1}', operator&.login)
- content.gsub!('{nickname1}', operator&.real_name)
- content.gsub!('{login2}', owner&.login)
- content.gsub!('{nickname2}', owner&.real_name)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{repository}', project&.name)
- content.gsub!('{title}', issue&.subject)
- content.gsub!('{id}', issue&.id.to_s)
- change_count = change_params.keys.size
- # 易修负责人修改
- if change_params[:assigned_to_id].present?
- assigner1 = User.find_by_id(change_params[:assigned_to_id][0])
- assigner2 = User.find_by_id(change_params[:assigned_to_id][1])
- if change_count > 1
- content.sub!('{ifassigner}', '
')
+ project = issue&.project
+ owner = project&.owner
+ title = email_title
+ title.gsub!('{title}', issue&.subject)
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{login1}', operator&.login)
+ content.gsub!('{nickname1}', operator&.real_name)
+ content.gsub!('{login2}', owner&.login)
+ content.gsub!('{nickname2}', owner&.real_name)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{repository}', project&.name)
+ content.gsub!('{title}', issue&.subject)
+ content.gsub!('{id}', issue&.id.to_s)
+ change_count = change_params.keys.size
+ # 易修负责人修改
+ if change_params[:assigned_to_id].present?
+ assigner1 = User.find_by_id(change_params[:assigned_to_id][0])
+ assigner2 = User.find_by_id(change_params[:assigned_to_id][1])
+ if change_count > 1
+ content.sub!('{ifassigner}', '
')
+ else
+ content.sub!('{ifassigner}', '')
+ end
+ content.sub!('{endassigner}', '')
+ content.gsub!('{assigner1}', assigner1.present? ? assigner1&.real_name : '未指派成员')
+ content.gsub!('{assigner2}', assigner2.present? ? assigner2&.real_name : '未指派成员')
else
- content.sub!('{ifassigner}', '')
+ content.gsub!(/({ifassigner})(.*)({endassigner})/, '')
end
- content.sub!('{endassigner}', '')
- content.gsub!('{assigner1}', assigner1.present? ? assigner1&.real_name : '未指派成员')
- content.gsub!('{assigner2}', assigner2.present? ? assigner2&.real_name : '未指派成员')
- else
- content.gsub!(/({ifassigner})(.*)({endassigner})/, '')
- end
- # 易修状态修改
- if change_params[:status_id].present?
- status1 = IssueStatus.find_by_id(change_params[:status_id][0])
- status2 = IssueStatus.find_by_id(change_params[:status_id][1])
- if change_count > 1
- content.sub!('{ifstatus}', '
')
+ # 易修状态修改
+ if change_params[:status_id].present?
+ status1 = IssueStatus.find_by_id(change_params[:status_id][0])
+ status2 = IssueStatus.find_by_id(change_params[:status_id][1])
+ if change_count > 1
+ content.sub!('{ifstatus}', '
')
+ else
+ content.sub!('{ifstatus}', '')
+ end
+ content.sub!('{endstatus}', '')
+ content.gsub!('{status1}', status1&.name)
+ content.gsub!('{status2}', status2&.name)
else
- content.sub!('{ifstatus}', '')
+ content.gsub!(/({ifstatus})(.*)({endstatus})/, '')
end
- content.sub!('{endstatus}', '')
- content.gsub!('{status1}', status1&.name)
- content.gsub!('{status2}', status2&.name)
- else
- content.gsub!(/({ifstatus})(.*)({endstatus})/, '')
- end
- # 易修类型修改
- if change_params[:tracker_id].present?
- tracker1 = Tracker.find_by_id(change_params[:tracker_id][0])
- tracker2 = Tracker.find_by_id(change_params[:tracker_id][1])
- if change_count > 1
- content.sub!('{iftracker}', '
')
+ # 易修类型修改
+ if change_params[:tracker_id].present?
+ tracker1 = Tracker.find_by_id(change_params[:tracker_id][0])
+ tracker2 = Tracker.find_by_id(change_params[:tracker_id][1])
+ if change_count > 1
+ content.sub!('{iftracker}', '
')
+ else
+ content.sub!('{iftracker}', '')
+ end
+ content.sub!('{endtracker}', '')
+ content.gsub!('{tracker1}', tracker1&.name)
+ content.gsub!('{tracker2}', tracker2&.name)
else
- content.sub!('{iftracker}', '')
+ content.gsub!(/({iftracker})(.*)({endtracker})/, '')
end
- content.sub!('{endtracker}', '')
- content.gsub!('{tracker1}', tracker1&.name)
- content.gsub!('{tracker2}', tracker2&.name)
- else
- content.gsub!(/({iftracker})(.*)({endtracker})/, '')
- end
- # 易修里程碑修改
- if change_params[:fixed_version_id].present?
- fix_version1 = Version.find_by_id(change_params[:fixed_version_id][0])
- fix_version2 = Version.find_by_id(change_params[:fixed_version_id][1])
- if change_count > 1
- content.sub!('{ifmilestone}', '
')
+ # 易修里程碑修改
+ if change_params[:fixed_version_id].present?
+ fix_version1 = Version.find_by_id(change_params[:fixed_version_id][0])
+ fix_version2 = Version.find_by_id(change_params[:fixed_version_id][1])
+ if change_count > 1
+ content.sub!('{ifmilestone}', '
')
+ else
+ content.sub!('{ifmilestone}', '')
+ end
+ content.sub!('{endmilestone}', '')
+ content.gsub!('{milestone1}', fix_version1.present? ? fix_version1&.name : '未选择里程碑')
+ content.gsub!('{milestone2}', fix_version2.present? ? fix_version2&.name : '未选择里程碑')
else
- content.sub!('{ifmilestone}', '')
+ content.gsub!(/({ifmilestone})(.*)({endmilestone})/, '')
end
- content.sub!('{endmilestone}', '')
- content.gsub!('{milestone1}', fix_version1.present? ? fix_version1&.name : '未选择里程碑')
- content.gsub!('{milestone2}', fix_version2.present? ? fix_version2&.name : '未选择里程碑')
- else
- content.gsub!(/({ifmilestone})(.*)({endmilestone})/, '')
- end
- # 易修标记修改
- if change_params[:issue_tags_value].present?
- issue_tags1 = IssueTag.where(id: change_params[:issue_tags_value][0]).distinct
- issue_tags2 = IssueTag.where(id: change_params[:issue_tags_value][1]).distinct
- tag1 = issue_tags1.pluck(:name).join(",").blank? ? '未选择标记' : issue_tags1.pluck(:name).join(",")
- tag2 = issue_tags2.pluck(:name).join(",").blank? ? '未选择标记' : issue_tags2.pluck(:name).join(",")
- if change_count > 1
- content.sub!('{iftag}', '
')
+ # 易修标记修改
+ if change_params[:issue_tags_value].present?
+ issue_tags1 = IssueTag.where(id: change_params[:issue_tags_value][0]).distinct
+ issue_tags2 = IssueTag.where(id: change_params[:issue_tags_value][1]).distinct
+ tag1 = issue_tags1.pluck(:name).join(",").blank? ? '未选择标记' : issue_tags1.pluck(:name).join(",")
+ tag2 = issue_tags2.pluck(:name).join(",").blank? ? '未选择标记' : issue_tags2.pluck(:name).join(",")
+ if change_count > 1
+ content.sub!('{iftag}', '
')
+ else
+ content.sub!('{iftag}', '')
+ end
+ content.sub!('{endtag}', '')
+ content.gsub!('{tag1}', tag1)
+ content.gsub!('{tag2}', tag2)
else
- content.sub!('{iftag}', '')
+ content.gsub!(/({iftag})(.*)({endtag})()/, '')
end
- content.sub!('{endtag}', '')
- content.gsub!('{tag1}', tag1)
- content.gsub!('{tag2}', tag2)
- else
- content.gsub!(/({iftag})(.*)({endtag})()/, '')
- end
- # 易修优先级修改
- if change_params[:priority_id].present?
- priority1 = IssuePriority.find_by_id(change_params[:priority_id][0])
- priority2 = IssuePriority.find_by_id(change_params[:priority_id][1])
- if change_count > 1
- content.sub!('{ifpriority}', '
')
+ # 易修优先级修改
+ if change_params[:priority_id].present?
+ priority1 = IssuePriority.find_by_id(change_params[:priority_id][0])
+ priority2 = IssuePriority.find_by_id(change_params[:priority_id][1])
+ if change_count > 1
+ content.sub!('{ifpriority}', '
')
+ else
+ content.sub!('{ifpriority}', '')
+ end
+ content.sub!('{endpriority}', '')
+ content.gsub!('{priority1}', priority1&.name)
+ content.gsub!('{priority2}', priority2&.name)
else
- content.sub!('{ifpriority}', '')
+ content.gsub!(/({ifpriority})(.*)({endpriority})/, '')
end
- content.sub!('{endpriority}', '')
- content.gsub!('{priority1}', priority1&.name)
- content.gsub!('{priority2}', priority2&.name)
- else
- content.gsub!(/({ifpriority})(.*)({endpriority})/, '')
- end
- # 易修完成度修改
- if change_params[:done_ratio].present?
- doneratio1 = change_params[:done_ratio][0]
- doneratio2 = change_params[:done_ratio][1]
- if change_count > 1
- content.sub!('{ifdoneratio}', '
')
+ # 易修完成度修改
+ if change_params[:done_ratio].present?
+ doneratio1 = change_params[:done_ratio][0]
+ doneratio2 = change_params[:done_ratio][1]
+ if change_count > 1
+ content.sub!('{ifdoneratio}', '
')
+ else
+ content.sub!('{ifdoneratio}', '')
+ end
+ content.sub!('{enddoneratio}', '')
+ content.gsub!('{doneratio1}', "#{doneratio1}%")
+ content.gsub!('{doneratio2}', "#{doneratio2}%")
else
- content.sub!('{ifdoneratio}', '')
+ content.gsub!(/({ifdoneratio})(.*)({enddoneratio})/, '')
end
- content.sub!('{enddoneratio}', '')
- content.gsub!('{doneratio1}', "#{doneratio1}%")
- content.gsub!('{doneratio2}', "#{doneratio2}%")
- else
- content.gsub!(/({ifdoneratio})(.*)({enddoneratio})/, '')
- end
- # 易修指定分支修改
- if change_params[:branch_name].present?
- branch1 = change_params[:branch_name][0].blank? ? '分支未指定' : change_params[:branch_name][0]
- branch2 = change_params[:branch_name][1].blank? ? '分支未指定' : change_params[:branch_name][1]
- if change_count > 1
- content.sub!('{ifbranch}', '
')
+ # 易修指定分支修改
+ if change_params[:branch_name].present?
+ branch1 = change_params[:branch_name][0].blank? ? '分支未指定' : change_params[:branch_name][0]
+ branch2 = change_params[:branch_name][1].blank? ? '分支未指定' : change_params[:branch_name][1]
+ if change_count > 1
+ content.sub!('{ifbranch}', '
')
+ else
+ content.sub!('{ifbranch}', '')
+ end
+ content.sub!('{endbranch}', '')
+ content.gsub!('{branch1}', branch1)
+ content.gsub!('{branch2}', branch2)
else
- content.sub!('{ifbranch}', '')
+ content.gsub!(/({ifbranch})(.*)({endbranch})/, '')
end
- content.sub!('{endbranch}', '')
- content.gsub!('{branch1}', branch1)
- content.gsub!('{branch2}', branch2)
- else
- content.gsub!(/({ifbranch})(.*)({endbranch})/, '')
- end
- # 易修开始日期修改
- if change_params[:start_date].present?
- startdate1 = change_params[:start_date][0].blank? ? "未选择开始日期" : change_params[:start_date][0]
- startdate2 = change_params[:start_date][1].blank? ? "未选择开始日期" : change_params[:start_date][1]
- if change_count > 1
- content.sub!('{ifstartdate}', '
')
+ # 易修开始日期修改
+ if change_params[:start_date].present?
+ startdate1 = change_params[:start_date][0].blank? ? "未选择开始日期" : change_params[:start_date][0]
+ startdate2 = change_params[:start_date][1].blank? ? "未选择开始日期" : change_params[:start_date][1]
+ if change_count > 1
+ content.sub!('{ifstartdate}', '
')
+ else
+ content.sub!('{ifstartdate}', '')
+ end
+ content.sub!('{endstartdate}', '')
+ content.gsub!('{startdate1}', startdate1 )
+ content.gsub!('{startdate2}', startdate2)
else
- content.sub!('{ifstartdate}', '')
+ content.gsub!(/({ifstartdate})(.*)({endstartdate})/, '')
end
- content.sub!('{endstartdate}', '')
- content.gsub!('{startdate1}', startdate1 )
- content.gsub!('{startdate2}', startdate2)
- else
- content.gsub!(/({ifstartdate})(.*)({endstartdate})/, '')
- end
- # 易修结束日期修改
- if change_params[:due_date].present?
- duedate1 = change_params[:due_date][0].blank? ? '未选择结束日期' : change_params[:due_date][0]
- duedate2 = change_params[:due_date][1].blank? ? '未选择结束日期' : change_params[:due_date][1]
- if change_count > 1
- content.sub!('{ifduedate}', '
')
+ # 易修结束日期修改
+ if change_params[:due_date].present?
+ duedate1 = change_params[:due_date][0].blank? ? '未选择结束日期' : change_params[:due_date][0]
+ duedate2 = change_params[:due_date][1].blank? ? '未选择结束日期' : change_params[:due_date][1]
+ if change_count > 1
+ content.sub!('{ifduedate}', '
')
+ else
+ content.sub!('{ifduedate}', '')
+ end
+ content.sub!('{endduedate}', '')
+ content.gsub!('{duedate1}', duedate1)
+ content.gsub!('{duedate2}', duedate2)
else
- content.sub!('{ifduedate}', '')
+ content.gsub!(/({ifduedate})(.*)({endduedate})/, '')
end
- content.sub!('{endduedate}', '')
- content.gsub!('{duedate1}', duedate1)
- content.gsub!('{duedate2}', duedate2)
- else
- content.gsub!(/({ifduedate})(.*)({endduedate})/, '')
- end
- return receiver&.mail, title, content
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
+ end
+
rescue => e
Rails.logger.info("MessageTemplate::IssueChanged.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/issue_deleted.rb b/app/models/message_template/issue_deleted.rb
index c08ee0439..d51782cf1 100644
--- a/app/models/message_template/issue_deleted.rb
+++ b/app/models/message_template/issue_deleted.rb
@@ -33,17 +33,19 @@ class MessageTemplate::IssueDeleted < MessageTemplate
def self.get_email_message_content(receiver, operator, issue_title)
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["CreateOrAssign::IssueChanged"]
- end
- title = email_title
- title.gsub!('{title}', issue_title)
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{nickname}', operator&.real_name)
- content.gsub!('{login}', operator&.login)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{title}', issue_title)
+ title = email_title
+ title.gsub!('{title}', issue_title)
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{nickname}', operator&.real_name)
+ content.gsub!('{login}', operator&.login)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{title}', issue_title)
- return receiver&.mail, title, content
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
+ end
rescue => e
Rails.logger.info("MessageTemplate::IssueDeleted.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/organization_joined.rb b/app/models/message_template/organization_joined.rb
index 22cfb48d0..30f91ac98 100644
--- a/app/models/message_template/organization_joined.rb
+++ b/app/models/message_template/organization_joined.rb
@@ -34,16 +34,19 @@ class MessageTemplate::OrganizationJoined < MessageTemplate
def self.get_email_message_content(receiver, organization)
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["Normal::Organization"]
+ title = email_title
+ title.gsub!('{organization}', organization&.real_name)
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{login}', organization&.login)
+ content.gsub!('{organization}', organization&.real_name)
+
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
end
- title = email_title
- title.gsub!('{organization}', organization&.real_name)
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{login}', organization&.login)
- content.gsub!('{organization}', organization&.real_name)
-
- return receiver&.mail, title, content
+
rescue => e
Rails.logger.info("MessageTemplate::OrganizationJoined.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/organization_left.rb b/app/models/message_template/organization_left.rb
index eee752f05..50a771385 100644
--- a/app/models/message_template/organization_left.rb
+++ b/app/models/message_template/organization_left.rb
@@ -34,16 +34,19 @@ class MessageTemplate::OrganizationLeft < MessageTemplate
def self.get_email_message_content(receiver, organization)
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["Normal::Organization"]
+ title = email_title
+ title.gsub!('{organization}', organization&.real_name)
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{login}', organization&.login)
+ content.gsub!('{organization}', organization&.real_name)
+
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
end
- title = email_title
- title.gsub!('{organization}', organization&.real_name)
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{login}', organization&.login)
- content.gsub!('{organization}', organization&.real_name)
- return receiver&.mail, title, content
rescue => e
Rails.logger.info("MessageTemplate::OrganizationLeft.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/organization_role.rb b/app/models/message_template/organization_role.rb
index b6024f614..207712956 100644
--- a/app/models/message_template/organization_role.rb
+++ b/app/models/message_template/organization_role.rb
@@ -34,18 +34,21 @@ class MessageTemplate::OrganizationRole < MessageTemplate
def self.get_email_message_content(receiver, organization, role)
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["Normal::Permission"]
+ title = email_title
+ title.gsub!('{organization}', organization&.real_name)
+ title.gsub!('{role}', role)
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{login}', organization&.login)
+ content.gsub!('{organization}', organization&.real_name)
+ content.gsub!('{role}', role)
+
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
end
- title = email_title
- title.gsub!('{organization}', organization&.real_name)
- title.gsub!('{role}', role)
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{login}', organization&.login)
- content.gsub!('{organization}', organization&.real_name)
- content.gsub!('{role}', role)
- return receiver&.mail, title, content
rescue => e
Rails.logger.info("MessageTemplate::OrganizationRole.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/project_issue.rb b/app/models/message_template/project_issue.rb
index 9106bcc8f..8d7d99aa7 100644
--- a/app/models/message_template/project_issue.rb
+++ b/app/models/message_template/project_issue.rb
@@ -38,27 +38,30 @@ class MessageTemplate::ProjectIssue < MessageTemplate
def self.get_email_message_content(receiver, is_manager, operator, issue)
if receiver.user_template_message_setting.present? && is_manager
return '', '', '' unless receiver.user_template_message_setting.email_body["ManageProject::Issue"]
+ project = issue&.project
+ owner = project&.owner
+ title = email_title
+ title.gsub!('{nickname1}', operator&.real_name)
+ title.gsub!('{nickname2}', owner&.real_name)
+ title.gsub!('{repository}', project&.name)
+
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{login1}', operator&.login)
+ content.gsub!('{nickname1}', operator&.real_name)
+ content.gsub!('{nickname2}', owner&.real_name)
+ content.gsub!('{repository}', project&.name)
+ content.gsub!('{login2}', owner&.login)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{id}', issue&.id.to_s)
+ content.gsub!('{title}', issue&.subject)
+
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
end
- project = issue&.project
- owner = project&.owner
- title = email_title
- title.gsub!('{nickname1}', operator&.real_name)
- title.gsub!('{nickname2}', owner&.real_name)
- title.gsub!('{repository}', project&.name)
-
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{login1}', operator&.login)
- content.gsub!('{nickname1}', operator&.real_name)
- content.gsub!('{nickname2}', owner&.real_name)
- content.gsub!('{repository}', project&.name)
- content.gsub!('{login2}', owner&.login)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{id}', issue&.id.to_s)
- content.gsub!('{title}', issue&.subject)
-
- return receiver&.mail, title, content
+
rescue => e
Rails.logger.info("MessageTemplate::ProjectIssue.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/project_joined.rb b/app/models/message_template/project_joined.rb
index b46dc51a7..c2d23fbd2 100644
--- a/app/models/message_template/project_joined.rb
+++ b/app/models/message_template/project_joined.rb
@@ -34,19 +34,22 @@ class MessageTemplate::ProjectJoined < MessageTemplate
def self.get_email_message_content(receiver, project)
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["Normal::Project"]
- end
- title = email_title
- title.gsub!('{repository}', project&.name)
-
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{login}', project&.owner&.login)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{nickname}', project&.owner&.real_name)
- content.gsub!('{repository}', project&.name)
+ title = email_title
+ title.gsub!('{repository}', project&.name)
+
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{login}', project&.owner&.login)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{nickname}', project&.owner&.real_name)
+ content.gsub!('{repository}', project&.name)
- return receiver&.mail, title, content
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
+ end
+
rescue => e
Rails.logger.info("MessageTemplate::ProjectJoined.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/project_left.rb b/app/models/message_template/project_left.rb
index 3dfa7bb61..6f5bafa02 100644
--- a/app/models/message_template/project_left.rb
+++ b/app/models/message_template/project_left.rb
@@ -33,19 +33,22 @@ class MessageTemplate::ProjectLeft < MessageTemplate
def self.get_email_message_content(receiver, project)
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["Normal::Project"]
- end
- title = email_title
- title.gsub!('{repository}', project&.name)
-
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{login}', project&.owner&.login)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{nickname}', project&.owner&.real_name)
- content.gsub!('{repository}', project&.name)
+ title = email_title
+ title.gsub!('{repository}', project&.name)
+
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{login}', project&.owner&.login)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{nickname}', project&.owner&.real_name)
+ content.gsub!('{repository}', project&.name)
- return receiver&.mail, title, content
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
+ end
+
rescue => e
Rails.logger.info("MessageTemplate::ProjectLeft.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/project_member_joined.rb b/app/models/message_template/project_member_joined.rb
index 7a781750c..e9b6b5d51 100644
--- a/app/models/message_template/project_member_joined.rb
+++ b/app/models/message_template/project_member_joined.rb
@@ -34,23 +34,25 @@ class MessageTemplate::ProjectMemberJoined < MessageTemplate
def self.get_email_message_content(receiver, user, project)
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["ManageProject::Member"]
- end
- title = email_title
- title.gsub!('{nickname1}', user&.real_name)
- title.gsub!('{nickname2}', project&.owner&.real_name)
- title.gsub!('{repository}', project&.name)
-
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{login1}', user&.login)
- content.gsub!('{login2}', project&.owner&.login)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{nickname1}', user&.real_name)
- content.gsub!('{nickname2}', project&.owner&.real_name)
- content.gsub!('{repository}', project&.name)
+ title = email_title
+ title.gsub!('{nickname1}', user&.real_name)
+ title.gsub!('{nickname2}', project&.owner&.real_name)
+ title.gsub!('{repository}', project&.name)
+
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{login1}', user&.login)
+ content.gsub!('{login2}', project&.owner&.login)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{nickname1}', user&.real_name)
+ content.gsub!('{nickname2}', project&.owner&.real_name)
+ content.gsub!('{repository}', project&.name)
- return receiver&.mail, title, content
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
+ end
rescue => e
Rails.logger.info("MessageTemplate::ProjectMemberJoined.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/project_member_left.rb b/app/models/message_template/project_member_left.rb
index f41791233..23d4ef5f3 100644
--- a/app/models/message_template/project_member_left.rb
+++ b/app/models/message_template/project_member_left.rb
@@ -34,23 +34,26 @@ class MessageTemplate::ProjectMemberLeft < MessageTemplate
def self.get_email_message_content(receiver, user, project)
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["ManageProject::Member"]
+ title = email_title
+ title.gsub!('{nickname1}', user&.real_name)
+ title.gsub!('{nickname2}', project&.owner&.real_name)
+ title.gsub!('{repository}', project&.name)
+
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{login1}', user&.login)
+ content.gsub!('{login2}', project&.owner&.login)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{nickname1}', user&.real_name)
+ content.gsub!('{nickname2}', project&.owner&.real_name)
+ content.gsub!('{repository}', project&.name)
+
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
end
- title = email_title
- title.gsub!('{nickname1}', user&.real_name)
- title.gsub!('{nickname2}', project&.owner&.real_name)
- title.gsub!('{repository}', project&.name)
-
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{login1}', user&.login)
- content.gsub!('{login2}', project&.owner&.login)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{nickname1}', user&.real_name)
- content.gsub!('{nickname2}', project&.owner&.real_name)
- content.gsub!('{repository}', project&.name)
- return receiver&.mail, title, content
rescue => e
Rails.logger.info("MessageTemplate::ProjectMemberLeft.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/project_pull_request.rb b/app/models/message_template/project_pull_request.rb
index ac04651ef..40c700b29 100644
--- a/app/models/message_template/project_pull_request.rb
+++ b/app/models/message_template/project_pull_request.rb
@@ -38,27 +38,29 @@ class MessageTemplate::ProjectPullRequest < MessageTemplate
def self.get_email_message_content(receiver, is_manager, operator, pull_request)
if receiver.user_template_message_setting.present? && is_manager
return '', '', '' unless receiver.user_template_message_setting.email_body["ManageProject::PullRequest"]
+ project = pull_request&.project
+ owner = project&.owner
+ title = email_title
+ title.gsub!('{nickname1}', operator&.real_name)
+ title.gsub!('{nickname2}', owner&.real_name)
+ title.gsub!('{repository}', project&.name)
+
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{login1}', operator&.login)
+ content.gsub!('{nickname1}', operator&.real_name)
+ content.gsub!('{nickname2}', owner&.real_name)
+ content.gsub!('{repository}', project&.name)
+ content.gsub!('{login2}', owner&.login)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{id}', pull_request&.id.to_s)
+ content.gsub!('{title}', pull_request&.title)
+
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
end
- project = pull_request&.project
- owner = project&.owner
- title = email_title
- title.gsub!('{nickname1}', operator&.real_name)
- title.gsub!('{nickname2}', owner&.real_name)
- title.gsub!('{repository}', project&.name)
-
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{login1}', operator&.login)
- content.gsub!('{nickname1}', operator&.real_name)
- content.gsub!('{nickname2}', owner&.real_name)
- content.gsub!('{repository}', project&.name)
- content.gsub!('{login2}', owner&.login)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{id}', pull_request&.id.to_s)
- content.gsub!('{title}', pull_request&.title)
-
- return receiver&.mail, title, content
rescue => e
Rails.logger.info("MessageTemplate::ProjectPullRequest.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/project_role.rb b/app/models/message_template/project_role.rb
index e306f5c02..f7f4940df 100644
--- a/app/models/message_template/project_role.rb
+++ b/app/models/message_template/project_role.rb
@@ -34,21 +34,24 @@ class MessageTemplate::ProjectRole < MessageTemplate
def self.get_email_message_content(receiver, project, role)
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["Normal::Permission"]
+ title = email_title
+ title.gsub!('{repository}', project&.name)
+ title.gsub!('{role}', role)
+ title.gsub!('{nickname}', project&.owner&.real_name)
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{login}', project&.owner&.login)
+ content.gsub!('{nickname}', project&.owner&.real_name)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{repository}', project&.name)
+ content.gsub!('{role}', role)
+
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
end
- title = email_title
- title.gsub!('{repository}', project&.name)
- title.gsub!('{role}', role)
- title.gsub!('{nickname}', project&.owner&.real_name)
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{login}', project&.owner&.login)
- content.gsub!('{nickname}', project&.owner&.real_name)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{repository}', project&.name)
- content.gsub!('{role}', role)
- return receiver&.mail, title, content
rescue => e
Rails.logger.info("MessageTemplate::ProjectRole.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/project_setting_changed.rb b/app/models/message_template/project_setting_changed.rb
index 457ab9207..3ce17433d 100644
--- a/app/models/message_template/project_setting_changed.rb
+++ b/app/models/message_template/project_setting_changed.rb
@@ -159,150 +159,152 @@ class MessageTemplate::ProjectSettingChanged < MessageTemplate
end
def self.get_email_message_content(receiver, operator, project, change_params)
+ return '', '', '' if change_params.blank?
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["ManageProject::SettingChanged"]
- end
- return '', '', '' if change_params.blank?
- owner = project&.owner
- title = email_title
- title.gsub!('{nickname2}', owner&.real_name)
- title.gsub!('{repository}', project&.name)
-
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{login1}', operator&.login)
- content.gsub!('{nickname1}', operator&.real_name)
- content.gsub!('{login2}', owner&.login)
- content.gsub!('{nickname2}', owner&.real_name)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{repository}', project&.name)
- change_count = change_params.keys.size
- # 项目名称更改
- if change_params[:name].present?
- if change_count > 1
- content.sub!('{ifname}', '
')
- else
- content.sub!('{ifname}', '')
- end
- content.sub!('{endname}', '')
- content.gsub!('{name}', change_params[:name][1])
- else
- content.gsub!(/({ifname})(.*)({endname})/, '')
- end
- # 项目标识更改
- if change_params[:identifier].present?
- if change_count > 1
- content.sub!('{ifidentifier}', '
')
- else
- content.sub!('{ifidentifier}', '')
- end
- content.sub!('{endidentifier}', '')
- content.gsub!('{identifier}', change_params[:identifier][1])
- else
- content.gsub!(/({ifidentifier})(.*)({endidentifier})/, '')
- end
- # 项目简介更改
- if change_params[:description].present?
- if change_params[:description][1].blank?
+ owner = project&.owner
+ title = email_title
+ title.gsub!('{nickname2}', owner&.real_name)
+ title.gsub!('{repository}', project&.name)
+
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{login1}', operator&.login)
+ content.gsub!('{nickname1}', operator&.real_name)
+ content.gsub!('{login2}', owner&.login)
+ content.gsub!('{nickname2}', owner&.real_name)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{repository}', project&.name)
+ change_count = change_params.keys.size
+ # 项目名称更改
+ if change_params[:name].present?
if change_count > 1
- content.gsub!(/({ifdescription})(.*)({enddescription})/, '
删除了项目简介')
+ content.sub!('{ifname}', '
')
else
- content.gsub!(/({ifdescription})(.*)({enddescription})/, '删除了项目简介')
+ content.sub!('{ifname}', '')
end
+ content.sub!('{endname}', '')
+ content.gsub!('{name}', change_params[:name][1])
else
- if change_count > 1
- content.sub!('{ifdescription}', '
')
- else
- content.sub!('{ifdescription}', '')
- end
- content.sub!('{enddescription}', '')
- content.gsub!('{description}', change_params[:description][1])
+ content.gsub!(/({ifname})(.*)({endname})/, '')
end
- else
- content.gsub!(/({ifdescription})(.*)({enddescription})/, '')
- end
- # 项目类别更改
- if change_params[:project_category_id].present?
- category = ProjectCategory.find_by_id(change_params[:project_category_id][1])
- if category.present?
+ # 项目标识更改
+ if change_params[:identifier].present?
if change_count > 1
- content.sub!('{ifcategory}', '
')
+ content.sub!('{ifidentifier}', '
')
else
- content.sub!('{ifcategory}', '')
+ content.sub!('{ifidentifier}', '')
+ end
+ content.sub!('{endidentifier}', '')
+ content.gsub!('{identifier}', change_params[:identifier][1])
+ else
+ content.gsub!(/({ifidentifier})(.*)({endidentifier})/, '')
+ end
+ # 项目简介更改
+ if change_params[:description].present?
+ if change_params[:description][1].blank?
+ if change_count > 1
+ content.gsub!(/({ifdescription})(.*)({enddescription})/, '
删除了项目简介')
+ else
+ content.gsub!(/({ifdescription})(.*)({enddescription})/, '删除了项目简介')
+ end
+ else
+ if change_count > 1
+ content.sub!('{ifdescription}', '
')
+ else
+ content.sub!('{ifdescription}', '')
+ end
+ content.sub!('{enddescription}', '')
+ content.gsub!('{description}', change_params[:description][1])
end
- content.sub!('{endcategory}', '')
- content.gsub!('{category}', category&.name)
else
- if change_count > 1
- content.gsub!(/({ifcategory})(.*)({endcategory})/, '
删除了项目类别')
- else
- content.gsub!(/({ifcategory})(.*)({endcategory})/, '删除了项目类别')
+ content.gsub!(/({ifdescription})(.*)({enddescription})/, '')
+ end
+ # 项目类别更改
+ if change_params[:project_category_id].present?
+ category = ProjectCategory.find_by_id(change_params[:project_category_id][1])
+ if category.present?
+ if change_count > 1
+ content.sub!('{ifcategory}', '
')
+ else
+ content.sub!('{ifcategory}', '')
+ end
+ content.sub!('{endcategory}', '')
+ content.gsub!('{category}', category&.name)
+ else
+ if change_count > 1
+ content.gsub!(/({ifcategory})(.*)({endcategory})/, '
删除了项目类别')
+ else
+ content.gsub!(/({ifcategory})(.*)({endcategory})/, '删除了项目类别')
+ end
end
+ else
+ content.gsub!(/({ifcategory})(.*)({endcategory})/, '')
end
- else
- content.gsub!(/({ifcategory})(.*)({endcategory})/, '')
- end
- # 项目语言更改
- if change_params[:project_language_id].present?
- language = ProjectLanguage.find_by_id(change_params[:project_language_id][1])
- if language.present?
- if change_count > 1
- content.sub!('{iflanguage}', '
')
+ # 项目语言更改
+ if change_params[:project_language_id].present?
+ language = ProjectLanguage.find_by_id(change_params[:project_language_id][1])
+ if language.present?
+ if change_count > 1
+ content.sub!('{iflanguage}', '
')
+ else
+ content.sub!('{iflanguage}', '')
+ end
+ content.sub!('{endlanguage}', '')
+ content.gsub!('{language}', language&.name)
else
- content.sub!('{iflanguage}', '')
+ if change_count > 1
+ content.gsub!(/({iflanguage})(.*)({endlanguage})/, '
删除了项目语言')
+ else
+ content.gsub!(/({iflanguage})(.*)({endlanguage})/, '删除了项目语言')
+ end
end
- content.sub!('{endlanguage}', '')
- content.gsub!('{language}', language&.name)
else
+ content.gsub!(/({iflanguage})(.*)({endlanguage})/, '')
+ end
+ # 项目公私有更改
+ if change_params[:is_public].present?
+ permission = change_params[:is_public][1] ? '公有' : '私有'
if change_count > 1
- content.gsub!(/({iflanguage})(.*)({endlanguage})/, '
删除了项目语言')
+ content.sub!('{ifpermission}', '
')
else
- content.gsub!(/({iflanguage})(.*)({endlanguage})/, '删除了项目语言')
+ content.sub!('{ifpermission}', '')
end
- end
- else
- content.gsub!(/({iflanguage})(.*)({endlanguage})/, '')
- end
- # 项目公私有更改
- if change_params[:is_public].present?
- permission = change_params[:is_public][1] ? '公有' : '私有'
- if change_count > 1
- content.sub!('{ifpermission}', '
')
+ content.sub!('{endpermission}', '')
+ content.gsub!('{permission}', permission)
else
- content.sub!('{ifpermission}', '')
+ content.gsub!(/({ifpermission})(.*)({endpermission})/, '')
end
- content.sub!('{endpermission}', '')
- content.gsub!('{permission}', permission)
- else
- content.gsub!(/({ifpermission})(.*)({endpermission})/, '')
- end
- # 项目导航更改
- if change_params[:navbar].present?
- unit_types = project.project_units.order(unit_type: :asc).pluck(:unit_type)
- unit_types.delete('code')
- unit_types.unshift('代码库')
- unit_types.unshift('主页')
- unit_types.append('动态')
- navbar = unit_types.join(',')
- navbar.gsub!('issues', '易修')
- navbar.gsub!('pulls', '合并请求')
- navbar.gsub!('wiki', 'Wiki')
- navbar.gsub!('devops', '工作流')
- navbar.gsub!('versions', '里程碑')
- navbar.gsub!('resources', '资源库')
- if change_count > 1
- content.sub!('{ifnavbar}', '
')
+ # 项目导航更改
+ if change_params[:navbar].present?
+ unit_types = project.project_units.order(unit_type: :asc).pluck(:unit_type)
+ unit_types.delete('code')
+ unit_types.unshift('代码库')
+ unit_types.unshift('主页')
+ unit_types.append('动态')
+ navbar = unit_types.join(',')
+ navbar.gsub!('issues', '易修')
+ navbar.gsub!('pulls', '合并请求')
+ navbar.gsub!('wiki', 'Wiki')
+ navbar.gsub!('devops', '工作流')
+ navbar.gsub!('versions', '里程碑')
+ navbar.gsub!('resources', '资源库')
+ if change_count > 1
+ content.sub!('{ifnavbar}', '
')
+ else
+ content.sub!('{ifnavbar}', '')
+ end
+ content.sub!('{endnavbar}', '')
+ content.gsub!('{navbar}', navbar)
else
- content.sub!('{ifnavbar}', '')
+ content.gsub!(/({ifnavbar})(.*)({endnavbar})/, '')
end
- content.sub!('{endnavbar}', '')
- content.gsub!('{navbar}', navbar)
+
+ return receiver&.mail, title, content
else
- content.gsub!(/({ifnavbar})(.*)({endnavbar})/, '')
+ return '', '', ''
end
-
- return receiver&.mail, title, content
rescue => e
Rails.logger.info("MessageTemplate::ProjectSettingChanged.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/pull_request_assigned.rb b/app/models/message_template/pull_request_assigned.rb
index 1101ca46b..bca37151a 100644
--- a/app/models/message_template/pull_request_assigned.rb
+++ b/app/models/message_template/pull_request_assigned.rb
@@ -36,26 +36,28 @@ class MessageTemplate::PullRequestAssigned < MessageTemplate
def self.get_email_message_content(receiver, operator, pull_request)
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["Normal::PullRequestAssigned"]
- end
- project = pull_request&.project
- owner = project&.owner
- title = email_title
- title.gsub!('{nickname1}', operator&.real_name)
- title.gsub!('{nickname2}', owner&.real_name)
- title.gsub!('{repository}', project&.name)
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{nickname1}', operator&.real_name)
- content.gsub!('{login1}', operator&.login)
- content.gsub!('{nickname2}', owner&.real_name)
- content.gsub!('{login2}', owner&.login)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{repository}', project&.name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{title}', pull_request&.title)
- content.gsub!('{id}', pull_request&.id.to_s)
+ project = pull_request&.project
+ owner = project&.owner
+ title = email_title
+ title.gsub!('{nickname1}', operator&.real_name)
+ title.gsub!('{nickname2}', owner&.real_name)
+ title.gsub!('{repository}', project&.name)
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{nickname1}', operator&.real_name)
+ content.gsub!('{login1}', operator&.login)
+ content.gsub!('{nickname2}', owner&.real_name)
+ content.gsub!('{login2}', owner&.login)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{repository}', project&.name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{title}', pull_request&.title)
+ content.gsub!('{id}', pull_request&.id.to_s)
- return receiver&.mail, title, content
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
+ end
rescue => e
Rails.logger.info("MessageTemplate::PullRequestAssigned.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/pull_request_changed.rb b/app/models/message_template/pull_request_changed.rb
index fc4457f37..ab2c73b6b 100644
--- a/app/models/message_template/pull_request_changed.rb
+++ b/app/models/message_template/pull_request_changed.rb
@@ -103,89 +103,92 @@ class MessageTemplate::PullRequestChanged < MessageTemplate
return '', '', '' if change_params.blank?
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["CreateOrAssign::PullRequestChanged"]
- end
- project = pull_request&.project
- owner = project&.owner
- title = email_title
- title.gsub!('{title}', pull_request&.title)
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{nickname1}', operator&.real_name)
- content.gsub!('{login1}', operator&.login)
- content.gsub!('{nickname2}', owner&.real_name)
- content.gsub!('{login2}', owner&.login)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{repository}', project&.name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{title}', pull_request&.title)
- content.gsub!('{id}', pull_request&.id.to_s)
-
- change_count = change_params.keys.size
- # 合并请求审查成员修改
- if change_params[:assigned_to_id].present?
- assigner1 = User.find_by_id(change_params[:assigned_to_id][0])
- assigner2 = User.find_by_id(change_params[:assigned_to_id][1])
- if change_count > 1
- content.sub!('{ifassigner}', '
')
+ project = pull_request&.project
+ owner = project&.owner
+ title = email_title
+ title.gsub!('{title}', pull_request&.title)
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{nickname1}', operator&.real_name)
+ content.gsub!('{login1}', operator&.login)
+ content.gsub!('{nickname2}', owner&.real_name)
+ content.gsub!('{login2}', owner&.login)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{repository}', project&.name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{title}', pull_request&.title)
+ content.gsub!('{id}', pull_request&.id.to_s)
+
+ change_count = change_params.keys.size
+ # 合并请求审查成员修改
+ if change_params[:assigned_to_id].present?
+ assigner1 = User.find_by_id(change_params[:assigned_to_id][0])
+ assigner2 = User.find_by_id(change_params[:assigned_to_id][1])
+ if change_count > 1
+ content.sub!('{ifassigner}', '
')
+ else
+ content.sub!('{ifassigner}', '')
+ end
+ content.sub!('{endassigner}', '')
+ content.gsub!('{assigner1}', assigner1.present? ? assigner1&.real_name : '未指派成员')
+ content.gsub!('{assigner2}', assigner2.present? ? assigner2&.real_name : '未指派成员')
else
- content.sub!('{ifassigner}', '')
+ content.gsub!(/({ifassigner})(.*)({endassigner})/, '')
end
- content.sub!('{endassigner}', '')
- content.gsub!('{assigner1}', assigner1.present? ? assigner1&.real_name : '未指派成员')
- content.gsub!('{assigner2}', assigner2.present? ? assigner2&.real_name : '未指派成员')
- else
- content.gsub!(/({ifassigner})(.*)({endassigner})/, '')
- end
- # 合并请求里程碑修改
- if change_params[:fixed_version_id].present?
- fix_version1 = Version.find_by_id(change_params[:fixed_version_id][0])
- fix_version2 = Version.find_by_id(change_params[:fixed_version_id][1])
- if change_count > 1
- content.sub!('{ifmilestone}', '
')
+ # 合并请求里程碑修改
+ if change_params[:fixed_version_id].present?
+ fix_version1 = Version.find_by_id(change_params[:fixed_version_id][0])
+ fix_version2 = Version.find_by_id(change_params[:fixed_version_id][1])
+ if change_count > 1
+ content.sub!('{ifmilestone}', '
')
+ else
+ content.sub!('{ifmilestone}', '')
+ end
+ content.sub!('{endmilestone}', '')
+ content.gsub!('{milestone1}', fix_version1.present? ? fix_version1&.name : '未选择里程碑')
+ content.gsub!('{milestone2}', fix_version2.present? ? fix_version2&.name : '未选择里程碑')
else
- content.sub!('{ifmilestone}', '')
+ content.gsub!(/({ifmilestone})(.*)({endmilestone})/, '')
end
- content.sub!('{endmilestone}', '')
- content.gsub!('{milestone1}', fix_version1.present? ? fix_version1&.name : '未选择里程碑')
- content.gsub!('{milestone2}', fix_version2.present? ? fix_version2&.name : '未选择里程碑')
- else
- content.gsub!(/({ifmilestone})(.*)({endmilestone})/, '')
- end
- # 合并请求标记修改
- if change_params[:issue_tags_value].present?
- issue_tags1 = IssueTag.where(id: change_params[:issue_tags_value][0]).distinct
- issue_tags2 = IssueTag.where(id: change_params[:issue_tags_value][1]).distinct
- tag1 = issue_tags1.pluck(:name).join(",").blank? ? '未选择标记' : issue_tags1.pluck(:name).join(",")
- tag2 = issue_tags2.pluck(:name).join(",").blank? ? '未选择标记' : issue_tags2.pluck(:name).join(",")
- if change_count > 1
- content.sub!('{iftag}', '
')
+ # 合并请求标记修改
+ if change_params[:issue_tags_value].present?
+ issue_tags1 = IssueTag.where(id: change_params[:issue_tags_value][0]).distinct
+ issue_tags2 = IssueTag.where(id: change_params[:issue_tags_value][1]).distinct
+ tag1 = issue_tags1.pluck(:name).join(",").blank? ? '未选择标记' : issue_tags1.pluck(:name).join(",")
+ tag2 = issue_tags2.pluck(:name).join(",").blank? ? '未选择标记' : issue_tags2.pluck(:name).join(",")
+ if change_count > 1
+ content.sub!('{iftag}', '
')
+ else
+ content.sub!('{iftag}', '')
+ end
+ content.sub!('{endtag}', '')
+ content.gsub!('{tag1}', tag1)
+ content.gsub!('{tag2}', tag2)
else
- content.sub!('{iftag}', '')
+ content.gsub!(/({iftag})(.*)({endtag})()/, '')
end
- content.sub!('{endtag}', '')
- content.gsub!('{tag1}', tag1)
- content.gsub!('{tag2}', tag2)
- else
- content.gsub!(/({iftag})(.*)({endtag})()/, '')
- end
- # 合并请求优先级修改
- if change_params[:priority_id].present?
- priority1 = IssuePriority.find_by_id(change_params[:priority_id][0])
- priority2 = IssuePriority.find_by_id(change_params[:priority_id][1])
- if change_count > 1
- content.sub!('{ifpriority}', '
')
+ # 合并请求优先级修改
+ if change_params[:priority_id].present?
+ priority1 = IssuePriority.find_by_id(change_params[:priority_id][0])
+ priority2 = IssuePriority.find_by_id(change_params[:priority_id][1])
+ if change_count > 1
+ content.sub!('{ifpriority}', '
')
+ else
+ content.sub!('{ifpriority}', '')
+ end
+ content.sub!('{ifpriority}', '')
+ content.sub!('{endpriority}', '')
+ content.gsub!('{priority1}', priority1&.name)
+ content.gsub!('{priority2}', priority2&.name)
else
- content.sub!('{ifpriority}', '')
+ content.gsub!(/({ifpriority})(.*)({endpriority})/, '')
end
- content.sub!('{ifpriority}', '')
- content.sub!('{endpriority}', '')
- content.gsub!('{priority1}', priority1&.name)
- content.gsub!('{priority2}', priority2&.name)
+
+ return receiver&.mail, title, content
else
- content.gsub!(/({ifpriority})(.*)({endpriority})/, '')
+ return '', '', ''
end
- return receiver&.mail, title, content
rescue => e
Rails.logger.info("MessageTemplate::PullRequestChanged.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/pull_request_closed.rb b/app/models/message_template/pull_request_closed.rb
index f160ebf20..ea1ffabcb 100644
--- a/app/models/message_template/pull_request_closed.rb
+++ b/app/models/message_template/pull_request_closed.rb
@@ -36,24 +36,27 @@ class MessageTemplate::PullRequestClosed < MessageTemplate
def self.get_email_message_content(receiver, operator, pull_request)
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["CreateOrAssign::PullRequestChanged"]
+ project = pull_request&.project
+ owner = project&.owner
+ title = email_title
+ title.gsub!('{title}', pull_request&.title)
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{nickname1}', operator&.real_name)
+ content.gsub!('{login1}', operator&.login)
+ content.gsub!('{nickname2}', owner&.real_name)
+ content.gsub!('{login2}', owner&.login)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{repository}', project&.name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{title}', pull_request&.title)
+ content.gsub!('{id}', pull_request&.id.to_s)
+
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
end
- project = pull_request&.project
- owner = project&.owner
- title = email_title
- title.gsub!('{title}', pull_request&.title)
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{nickname1}', operator&.real_name)
- content.gsub!('{login1}', operator&.login)
- content.gsub!('{nickname2}', owner&.real_name)
- content.gsub!('{login2}', owner&.login)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{repository}', project&.name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{title}', pull_request&.title)
- content.gsub!('{id}', pull_request&.id.to_s)
- return receiver&.mail, title, content
rescue => e
Rails.logger.info("MessageTemplate::PullRequestClosed.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/message_template/pull_request_merged.rb b/app/models/message_template/pull_request_merged.rb
index 3dccffdd7..eb4bb5e17 100644
--- a/app/models/message_template/pull_request_merged.rb
+++ b/app/models/message_template/pull_request_merged.rb
@@ -36,24 +36,26 @@ class MessageTemplate::PullRequestMerged < MessageTemplate
def self.get_email_message_content(receiver, operator, pull_request)
if receiver.user_template_message_setting.present?
return '', '', '' unless receiver.user_template_message_setting.email_body["CreateOrAssign::PullRequestChanged"]
+ project = pull_request&.project
+ owner = project&.owner
+ title = email_title
+ title.gsub!('{title}', pull_request&.title)
+ content = email
+ content.gsub!('{receiver}', receiver&.real_name)
+ content.gsub!('{nickname1}', operator&.real_name)
+ content.gsub!('{login1}', operator&.login)
+ content.gsub!('{nickname2}', owner&.real_name)
+ content.gsub!('{login2}', owner&.login)
+ content.gsub!('{identifier}', project&.identifier)
+ content.gsub!('{repository}', project&.name)
+ content.gsub!('{baseurl}', base_url)
+ content.gsub!('{title}', pull_request&.title)
+ content.gsub!('{id}', pull_request&.id.to_s)
+
+ return receiver&.mail, title, content
+ else
+ return '', '', ''
end
- project = pull_request&.project
- owner = project&.owner
- title = email_title
- title.gsub!('{title}', pull_request&.title)
- content = email
- content.gsub!('{receiver}', receiver&.real_name)
- content.gsub!('{nickname1}', operator&.real_name)
- content.gsub!('{login1}', operator&.login)
- content.gsub!('{nickname2}', owner&.real_name)
- content.gsub!('{login2}', owner&.login)
- content.gsub!('{identifier}', project&.identifier)
- content.gsub!('{repository}', project&.name)
- content.gsub!('{baseurl}', base_url)
- content.gsub!('{title}', pull_request&.title)
- content.gsub!('{id}', pull_request&.id.to_s)
-
- return receiver&.mail, title, content
rescue => e
Rails.logger.info("MessageTemplate::PullRequestMerged.get_email_message_content [ERROR] #{e}")
return '', '', ''
diff --git a/app/models/user_template_message_setting.rb b/app/models/user_template_message_setting.rb
index c581e626e..3a3416ee3 100644
--- a/app/models/user_template_message_setting.rb
+++ b/app/models/user_template_message_setting.rb
@@ -44,17 +44,17 @@ class UserTemplateMessageSetting < ApplicationRecord
def self.init_email_body
{
- "Normal::Permission": true,
- "Normal::Project": true,
- "Normal::Organization": true,
- "Normal::IssueAssigned": true,
- "Normal::PullRequestAssigned": true,
- "CreateOrAssign::IssueChanged": true,
- "CreateOrAssign::PullRequestChanged": true,
- "ManageProject::Issue": true,
- "ManageProject::PullRequest": true,
- "ManageProject::Member": true,
- "ManageProject::SettingChanged": true,
+ "Normal::Permission": false,
+ "Normal::Project": false,
+ "Normal::Organization": false,
+ "Normal::IssueAssigned": false,
+ "Normal::PullRequestAssigned": false,
+ "CreateOrAssign::IssueChanged": false,
+ "CreateOrAssign::PullRequestChanged": false,
+ "ManageProject::Issue": false,
+ "ManageProject::PullRequest": false,
+ "ManageProject::Member": false,
+ "ManageProject::SettingChanged": false,
}.stringify_keys!
end
diff --git a/app/services/cache/v2/project_common_service.rb b/app/services/cache/v2/project_common_service.rb
index 760c6d05b..8ed0a0636 100644
--- a/app/services/cache/v2/project_common_service.rb
+++ b/app/services/cache/v2/project_common_service.rb
@@ -196,6 +196,7 @@ class Cache::V2::ProjectCommonService < ApplicationService
def reset_project_common
load_project
+ return unless @project.present?
return unless @project.is_full_public
$redis_cache.del(project_common_key)
reset_project_owner_id