diff options
author | Marin Jankovski <maxlazio@gmail.com> | 2015-02-11 17:34:41 -0800 |
---|---|---|
committer | Marin Jankovski <maxlazio@gmail.com> | 2015-02-11 17:55:33 -0800 |
commit | 6b4ddf2cc13eda5dd6df64bab6f95f88d64cd2fa (patch) | |
tree | 3b9b008d4528ce1dcd2b15ac144548a3f9f26ecd /app/models/service.rb | |
parent | 09d3d351a1a80032c4e9bf185a15ff95819a4da0 (diff) | |
download | gitlab-ce-6b4ddf2cc13eda5dd6df64bab6f95f88d64cd2fa.tar.gz |
Add admin services templates.
Diffstat (limited to 'app/models/service.rb')
-rw-r--r-- | app/models/service.rb | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/app/models/service.rb b/app/models/service.rb index 4c4fe085c22..0099dbe65c0 100644 --- a/app/models/service.rb +++ b/app/models/service.rb @@ -25,7 +25,7 @@ class Service < ActiveRecord::Base belongs_to :project has_one :service_hook - validates :project_id, presence: true + validates :project_id, presence: true, unless: Proc.new { |service| service.template? } scope :visible, -> { where.not(type: 'GitlabIssueTrackerService') } @@ -33,6 +33,10 @@ class Service < ActiveRecord::Base active end + def template? + template + end + def category :common end @@ -94,7 +98,10 @@ class Service < ActiveRecord::Base self.category == :issue_tracker end - def self.issue_tracker_service_list - Service.select(&:issue_tracker?).map{ |s| s.to_param } + def self.create_from_template(project_id, template) + service = template.dup + service.template = false + service.project_id = project_id + service if service.save end end |