Commit f41731047f20ceb184b9ceb96f4174943af7736d
Exists in
master
and in
4 other branches
Merge pull request #5507 from jojosch/project-issue-tracker-selection
Preselect the current issue tracker with selected="selected"
Showing
5 changed files
with
64 additions
and
3 deletions
Show diff stats
app/helpers/projects_helper.rb
@@ -83,7 +83,7 @@ module ProjectsHelper | @@ -83,7 +83,7 @@ module ProjectsHelper | ||
83 | @project.milestones.active.order("due_date, title ASC").all | 83 | @project.milestones.active.order("due_date, title ASC").all |
84 | end | 84 | end |
85 | 85 | ||
86 | - def project_issues_trackers | 86 | + def project_issues_trackers(current_tracker = nil) |
87 | values = Project.issues_tracker.values.map do |tracker_key| | 87 | values = Project.issues_tracker.values.map do |tracker_key| |
88 | if tracker_key.to_sym == :gitlab | 88 | if tracker_key.to_sym == :gitlab |
89 | ['GitLab', tracker_key] | 89 | ['GitLab', tracker_key] |
@@ -92,7 +92,7 @@ module ProjectsHelper | @@ -92,7 +92,7 @@ module ProjectsHelper | ||
92 | end | 92 | end |
93 | end | 93 | end |
94 | 94 | ||
95 | - options_for_select(values) | 95 | + options_for_select(values, current_tracker) |
96 | end | 96 | end |
97 | 97 | ||
98 | private | 98 | private |
app/views/projects/edit.html.haml
@@ -67,7 +67,7 @@ | @@ -67,7 +67,7 @@ | ||
67 | - if Project.issues_tracker.values.count > 1 | 67 | - if Project.issues_tracker.values.count > 1 |
68 | .control-group | 68 | .control-group |
69 | = f.label :issues_tracker, "Issues tracker", class: 'control-label' | 69 | = f.label :issues_tracker, "Issues tracker", class: 'control-label' |
70 | - .controls= f.select(:issues_tracker, project_issues_trackers, {}, { disabled: !@project.issues_enabled }) | 70 | + .controls= f.select(:issues_tracker, project_issues_trackers(@project.issues_tracker), {}, { disabled: !@project.issues_enabled }) |
71 | 71 | ||
72 | .control-group | 72 | .control-group |
73 | = f.label :issues_tracker_id, "Project name or id in issues tracker", class: 'control-label' | 73 | = f.label :issues_tracker_id, "Project name or id in issues tracker", class: 'control-label' |
@@ -0,0 +1,18 @@ | @@ -0,0 +1,18 @@ | ||
1 | +Feature: Project Issue Tracker | ||
2 | + Background: | ||
3 | + Given I sign in as a user | ||
4 | + And I own project "Shop" | ||
5 | + And project "Shop" has issues enabled | ||
6 | + And I visit project "Shop" page | ||
7 | + | ||
8 | + Scenario: I set the issue tracker to "GitLab" | ||
9 | + When I visit edit project "Shop" page | ||
10 | + And change the issue tracker to "GitLab" | ||
11 | + And I save project | ||
12 | + Then I the project should have "GitLab" as issue tracker | ||
13 | + | ||
14 | + Scenario: I set the issue tracker to "Redmine" | ||
15 | + When I visit edit project "Shop" page | ||
16 | + And change the issue tracker to "Redmine" | ||
17 | + And I save project | ||
18 | + Then I the project should have "Redmine" as issue tracker | ||
0 | \ No newline at end of file | 19 | \ No newline at end of file |
@@ -0,0 +1,31 @@ | @@ -0,0 +1,31 @@ | ||
1 | +class ProjectIssueTracker < Spinach::FeatureSteps | ||
2 | + include SharedAuthentication | ||
3 | + include SharedProject | ||
4 | + include SharedPaths | ||
5 | + | ||
6 | + step 'project "Shop" has issues enabled' do | ||
7 | + @project = Project.find_by_name "Shop" | ||
8 | + @project ||= create(:project_with_code, name: "Shop", namespace: @user.namespace) | ||
9 | + @project.issues_enabled = true | ||
10 | + end | ||
11 | + | ||
12 | + step 'change the issue tracker to "GitLab"' do | ||
13 | + select 'GitLab', from: 'project_issues_tracker' | ||
14 | + end | ||
15 | + | ||
16 | + step 'I the project should have "GitLab" as issue tracker' do | ||
17 | + find_field('project_issues_tracker').value.should == 'gitlab' | ||
18 | + end | ||
19 | + | ||
20 | + step 'change the issue tracker to "Redmine"' do | ||
21 | + select 'Redmine', from: 'project_issues_tracker' | ||
22 | + end | ||
23 | + | ||
24 | + step 'I the project should have "Redmine" as issue tracker' do | ||
25 | + find_field('project_issues_tracker').value.should == 'redmine' | ||
26 | + end | ||
27 | + | ||
28 | + And 'I save project' do | ||
29 | + click_button 'Save changes' | ||
30 | + end | ||
31 | +end |
spec/helpers/projects_helper_spec.rb
@@ -7,5 +7,17 @@ describe ProjectsHelper do | @@ -7,5 +7,17 @@ describe ProjectsHelper do | ||
7 | "<option value=\"redmine\">Redmine</option>\n" \ | 7 | "<option value=\"redmine\">Redmine</option>\n" \ |
8 | "<option value=\"gitlab\">GitLab</option>" | 8 | "<option value=\"gitlab\">GitLab</option>" |
9 | end | 9 | end |
10 | + | ||
11 | + it "returns the correct issues trackers available with current tracker 'gitlab' selected" do | ||
12 | + project_issues_trackers('gitlab').should == | ||
13 | + "<option value=\"redmine\">Redmine</option>\n" \ | ||
14 | + "<option value=\"gitlab\" selected=\"selected\">GitLab</option>" | ||
15 | + end | ||
16 | + | ||
17 | + it "returns the correct issues trackers available with current tracker 'redmine' selected" do | ||
18 | + project_issues_trackers('redmine').should == | ||
19 | + "<option value=\"redmine\" selected=\"selected\">Redmine</option>\n" \ | ||
20 | + "<option value=\"gitlab\">GitLab</option>" | ||
21 | + end | ||
10 | end | 22 | end |
11 | end | 23 | end |