Update the issue tracker attribute on issue tracker change.

This commit is contained in:
Marin Jankovski 2015-01-26 11:39:32 -08:00
parent c70dcd2907
commit 65e700472b
4 changed files with 15 additions and 13 deletions

View File

@ -17,6 +17,9 @@ class Projects::ServicesController < Projects::ApplicationController
def update
if @service.update_attributes(service_params)
if @service.activated? && @service.category == :issue_tracker
@project.update_attributes(issues_tracker: @service.to_param)
end
redirect_to edit_project_service_path(@project, @service.to_param),
notice: 'Successfully updated.'
else

View File

@ -16,7 +16,7 @@ module IssuesHelper
def url_for_project_issues(project = @project)
return '' if project.nil?
if project.using_issue_tracker?
if project.default_issues_tracker?
project_issues_path(project)
else
project.external_issue_tracker.project_url
@ -26,7 +26,7 @@ module IssuesHelper
def url_for_new_issue(project = @project)
return '' if project.nil?
if project.using_issue_tracker?
if project.default_issues_tracker?
url = new_project_issue_path project_id: project
else
project.external_issue_tracker.new_issue_url
@ -36,7 +36,7 @@ module IssuesHelper
def url_for_issue(issue_iid, project = @project)
return '' if project.nil?
if project.using_issue_tracker?
if project.default_issues_tracker?
url = project_issue_url project_id: project, id: issue_iid
else
url = project.external_issue_tracker.issues_url

View File

@ -308,11 +308,14 @@ class Project < ActiveRecord::Base
end
def default_issues_tracker?
self.issues_tracker == Project.issues_tracker.default_value
end
def external_issues_tracker_enabled?
external_issues_trackers.any?
if external_issue_tracker
false
else
unless self.issues_tracker == Project.issues_tracker.default_value
self.update_attributes(issues_tracker: Project.issues_tracker.default_value)
end
true
end
end
def external_issues_trackers
@ -323,10 +326,6 @@ class Project < ActiveRecord::Base
@external_issues_tracker ||= external_issues_trackers.select(&:activated?).first
end
def using_issue_tracker?
default_issues_tracker? || !external_issues_tracker_enabled?
end
def can_have_issues_tracker_id?
self.issues_enabled && !self.default_issues_tracker?
end

View File

@ -208,7 +208,7 @@ module Gitlab
end
def reference_issue(identifier, project = @project, prefix_text = nil)
if project.using_issue_tracker?
if project.default_issues_tracker?
if project.issue_exists? identifier
url = url_for_issue(identifier, project)
title = title_for_issue(identifier, project)