diff options
-rw-r--r-- | app/helpers/application_helper.rb | 15 | ||||
-rw-r--r-- | db/schema.rb | 9 | ||||
-rw-r--r-- | doc/update/8.11-to-8.12.md | 2 | ||||
-rw-r--r-- | doc/user/project/merge_requests/img/versions-compare.png | bin | 0 -> 68722 bytes | |||
-rw-r--r-- | doc/user/project/merge_requests/img/versions-dropdown.png | bin | 0 -> 60587 bytes | |||
-rw-r--r-- | doc/user/project/merge_requests/img/versions.png | bin | 35001 -> 171413 bytes | |||
-rw-r--r-- | doc/user/project/merge_requests/versions.md | 6 | ||||
-rw-r--r-- | spec/features/issues/filter_by_labels_spec.rb | 20 |
8 files changed, 37 insertions, 15 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index ed41bf04fc0..2163a437c48 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -286,8 +286,19 @@ module ApplicationHelper } state_title = titles[state] || state.to_s.humanize - count = records.public_send(state).size - html = content_tag :span, state_title + records_with_state = records.public_send(state) + + # When filtering by multiple labels, the result of query.count is a Hash + # of the form { issuable_id1 => N, issuable_id2 => N }, where N is the + # number of labels selected. The ugly "trick" is to load the issuables + # as an array and get the size of the array... + # We should probably try to solve this properly in the future. + # See https://gitlab.com/gitlab-org/gitlab-ce/issues/22414 + label_names = Array(params.fetch(:label_name, [])) + records_with_state = records_with_state.to_a if label_names.many? + + count = records_with_state.size + html = content_tag :span, state_title if count.present? html += " " diff --git a/db/schema.rb b/db/schema.rb index fc98694e2eb..59b3e237707 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20160915081353) do +ActiveRecord::Schema.define(version: 20160915042921) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -158,9 +158,9 @@ ActiveRecord::Schema.define(version: 20160915081353) do t.text "commands" t.integer "job_id" t.string "name" - t.boolean "deploy", default: false + t.boolean "deploy", default: false t.text "options" - t.boolean "allow_failure", default: false, null: false + t.boolean "allow_failure", default: false, null: false t.string "stage" t.integer "trigger_request_id" t.integer "stage_idx" @@ -441,11 +441,11 @@ ActiveRecord::Schema.define(version: 20160915081353) do create_table "issue_metrics", force: :cascade do |t| t.integer "issue_id", null: false + t.datetime "first_mentioned_in_commit_at" t.datetime "first_associated_with_milestone_at" t.datetime "first_added_to_board_at" t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.datetime "first_mentioned_in_commit_at" end add_index "issue_metrics", ["issue_id"], name: "index_issue_metrics", using: :btree @@ -602,6 +602,7 @@ ActiveRecord::Schema.define(version: 20160915081353) do t.datetime "updated_at", null: false end + add_index "merge_request_metrics", ["first_deployed_to_production_at"], name: "index_merge_request_metrics_on_first_deployed_to_production_at", using: :btree add_index "merge_request_metrics", ["merge_request_id"], name: "index_merge_request_metrics", using: :btree create_table "merge_requests", force: :cascade do |t| diff --git a/doc/update/8.11-to-8.12.md b/doc/update/8.11-to-8.12.md index 686c7e8e7b5..076696f565b 100644 --- a/doc/update/8.11-to-8.12.md +++ b/doc/update/8.11-to-8.12.md @@ -70,7 +70,7 @@ sudo -u git -H git checkout 8-12-stable-ee ```bash cd /home/git/gitlab-shell sudo -u git -H git fetch --all --tags -sudo -u git -H git checkout v3.5.0 +sudo -u git -H git checkout v3.6.0 ``` ### 6. Update gitlab-workhorse diff --git a/doc/user/project/merge_requests/img/versions-compare.png b/doc/user/project/merge_requests/img/versions-compare.png Binary files differnew file mode 100644 index 00000000000..890cae7768c --- /dev/null +++ b/doc/user/project/merge_requests/img/versions-compare.png diff --git a/doc/user/project/merge_requests/img/versions-dropdown.png b/doc/user/project/merge_requests/img/versions-dropdown.png Binary files differnew file mode 100644 index 00000000000..9bab9304e14 --- /dev/null +++ b/doc/user/project/merge_requests/img/versions-dropdown.png diff --git a/doc/user/project/merge_requests/img/versions.png b/doc/user/project/merge_requests/img/versions.png Binary files differindex f279ccd7ce3..6c86f2c68ac 100644 --- a/doc/user/project/merge_requests/img/versions.png +++ b/doc/user/project/merge_requests/img/versions.png diff --git a/doc/user/project/merge_requests/versions.md b/doc/user/project/merge_requests/versions.md index a6aa4b47835..2805fdf635c 100644 --- a/doc/user/project/merge_requests/versions.md +++ b/doc/user/project/merge_requests/versions.md @@ -7,14 +7,18 @@ of merge request diff is created. When you visit a merge request that contains more than one pushes, you can select and compare the versions of those merge request diffs. +![Merge Request Versions](img/versions.png) + By default, the latest version of changes is shown. However, you can select an older one from version dropdown. -![Merge Request Versions](img/versions.png) +![Merge Request Versions](img/versions-dropdown.png) You can also compare the merge request version with older one to see what is changed since then. +![Merge Request Versions](img/versions-compare.png) + Please note that comments are disabled while viewing outdated merge versions or comparing to versions other than base. diff --git a/spec/features/issues/filter_by_labels_spec.rb b/spec/features/issues/filter_by_labels_spec.rb index 908b18e5339..7e2abd759e1 100644 --- a/spec/features/issues/filter_by_labels_spec.rb +++ b/spec/features/issues/filter_by_labels_spec.rb @@ -6,20 +6,19 @@ feature 'Issue filtering by Labels', feature: true do let(:project) { create(:project, :public) } let!(:user) { create(:user)} let!(:label) { create(:label, project: project) } + let(:bug) { create(:label, project: project, title: 'bug') } + let(:feature) { create(:label, project: project, title: 'feature') } + let(:enhancement) { create(:label, project: project, title: 'enhancement') } + let(:issue1) { create(:issue, title: "Bugfix1", project: project) } + let(:issue2) { create(:issue, title: "Bugfix2", project: project) } + let(:issue3) { create(:issue, title: "Feature1", project: project) } before do - bug = create(:label, project: project, title: 'bug') - feature = create(:label, project: project, title: 'feature') - enhancement = create(:label, project: project, title: 'enhancement') - - issue1 = create(:issue, title: "Bugfix1", project: project) issue1.labels << bug - issue2 = create(:issue, title: "Bugfix2", project: project) issue2.labels << bug issue2.labels << enhancement - issue3 = create(:issue, title: "Feature1", project: project) issue3.labels << feature project.team << [user, :master] @@ -159,6 +158,13 @@ feature 'Issue filtering by Labels', feature: true do wait_for_ajax end + it 'shows a correct "Open" counter' do + page.within '.issues-state-filters' do + expect(page).not_to have_content "{#{issue2.id} => 1}" + expect(page).to have_content "Open 1" + end + end + it 'shows issue "Bugfix2" in issues list' do expect(page).to have_content "Bugfix2" end |