diff options
| author | Andrew8xx8 <avk@8xx8.ru> | 2013-01-23 18:13:28 +0400 |
|---|---|---|
| committer | Andrew8xx8 <avk@8xx8.ru> | 2013-02-28 16:10:00 +0400 |
| commit | e6d2e5696186cc81b7d9a12af25e00528ca2cc30 (patch) | |
| tree | 03143c6f52988ee4740105f015c641b068c37548 /app | |
| parent | 8f621c9e064afe1465728143d71f0658053d55ad (diff) | |
| download | gitlab-ce-e6d2e5696186cc81b7d9a12af25e00528ca2cc30.tar.gz | |
Issue tracker field added to projects
Diffstat (limited to 'app')
| -rw-r--r-- | app/helpers/issues_helper.rb | 27 | ||||
| -rw-r--r-- | app/models/project.rb | 6 | ||||
| -rw-r--r-- | app/views/projects/_form.html.haml | 4 |
3 files changed, 36 insertions, 1 deletions
diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index ed7e3e869c0..030f9af3697 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -40,4 +40,31 @@ module IssuesHelper def issues_active_milestones @project.milestones.active.order("id desc").all end + + def url_for_issue(issue_id) + if @project.issues_tracker == Project.issues_tracker.default_value + url = project_issue_url project_id: @project, id: issue_id + else + url = Settings[:issues_tracker][@project.issues_tracker]["issues_url"] + url.gsub(':id', issue_id.to_s).gsub(':project_id', @project.id.to_s) + end + end + + def title_for_issue(issue_id) + if issue = @project.issues.where(id: issue_id).first + issue.title + else + "" + end + end + + def issue_exists?(issue_id) + return false if @project.nil? + + if @project.issues_tracker == Project.issues_tracker.default_value + @project.issues.where(id: issue_id).first.present? + else + true + end + end end diff --git a/app/models/project.rb b/app/models/project.rb index 6ff2a3698df..9ba3080cb14 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -11,6 +11,7 @@ # creator_id :integer # default_branch :string(255) # issues_enabled :boolean default(TRUE), not null +# issues_tracker :string not null # wall_enabled :boolean default(TRUE), not null # merge_requests_enabled :boolean default(TRUE), not null # wiki_enabled :boolean default(TRUE), not null @@ -22,10 +23,11 @@ require "grit" class Project < ActiveRecord::Base include Gitolited + extend Enumerize class TransferError < StandardError; end - attr_accessible :name, :path, :description, :default_branch, + attr_accessible :name, :path, :description, :default_branch, :issues_tracker, :issues_enabled, :wall_enabled, :merge_requests_enabled, :wiki_enabled, :public, :import_url, as: [:default, :admin] @@ -93,6 +95,8 @@ class Project < ActiveRecord::Base scope :joined, ->(user) { where("namespace_id != ?", user.namespace_id) } scope :public_only, -> { where(public: true) } + enumerize :issues_tracker, :in => (Settings[:issues_tracker].keys).append(:gitlab), :default => :gitlab + class << self def abandoned project_ids = Event.select('max(created_at) as latest_date, project_id'). diff --git a/app/views/projects/_form.html.haml b/app/views/projects/_form.html.haml index 0336654dc69..7072d78d3ef 100644 --- a/app/views/projects/_form.html.haml +++ b/app/views/projects/_form.html.haml @@ -25,6 +25,10 @@ %span.descr Lightweight issue tracking system for this project .control-group + = f.label :issues_tracker, "Issues tracker", class: 'control-label' + .input= f.select(:issues_tracker, Project.issues_tracker.values, {}, { disabled: !@project.issues_enabled }) + + .control-group = f.label :merge_requests_enabled, "Merge Requests", class: 'control-label' .controls = f.check_box :merge_requests_enabled |
