Commit 4de9e727 authored by Douwe Maan's avatar Douwe Maan

Merge branch 'shorten-task-status-phrase' into 'master'

Shorten task status phrase

## What does this MR do?
Shortens the task status phrase to make it easier to read

## Are there points in the code the reviewer needs to double check?
Shouldn't be any

## Why was this MR needed?
Improve readability/scan-ability of the issues table

## Screenshots (if relevant)
Before:
![Screen_Shot_2016-08-27_at_12.38.17_PM](/uploads/12d54e4ce24dea203e8f7189b32e3a43/Screen_Shot_2016-08-27_at_12.38.17_PM.png)

After:
![Screen_Shot_2016-08-27_at_12.38.05_PM](/uploads/7dfcc3284025b889f6afa09ca273d928/Screen_Shot_2016-08-27_at_12.38.05_PM.png)

## Does this MR meet the acceptance criteria?

- [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- Tests
  - [x] All builds are passing
- [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)

## What are the relevant issue numbers?
Closes #21543

See merge request !6062
parents 7f47dddc 2b33b24a
...@@ -10,6 +10,7 @@ v 8.12.0 (unreleased) ...@@ -10,6 +10,7 @@ v 8.12.0 (unreleased)
- Reduce contributions calendar data payload (ClemMakesApps) - Reduce contributions calendar data payload (ClemMakesApps)
- Add `web_url` field to issue, merge request, and snippet API objects (Ben Boeckel) - Add `web_url` field to issue, merge request, and snippet API objects (Ben Boeckel)
- Set path for all JavaScript cookies to honor GitLab's subdirectory setting !5627 (Mike Greiling) - Set path for all JavaScript cookies to honor GitLab's subdirectory setting !5627 (Mike Greiling)
- Shorten task status phrase (ClemMakesApps)
- Add hover color to emoji icon (ClemMakesApps) - Add hover color to emoji icon (ClemMakesApps)
- Fix branches page dropdown sort alignment (ClemMakesApps) - Fix branches page dropdown sort alignment (ClemMakesApps)
- Add white background for no readme container (ClemMakesApps) - Add white background for no readme container (ClemMakesApps)
......
...@@ -52,11 +52,11 @@ module Taskable ...@@ -52,11 +52,11 @@ module Taskable
end end
# Return a string that describes the current state of this Taskable's task # Return a string that describes the current state of this Taskable's task
# list items, e.g. "20 tasks (12 completed, 8 remaining)" # list items, e.g. "12 of 20 tasks completed"
def task_status def task_status
return '' if description.blank? return '' if description.blank?
sum = tasks.summary sum = tasks.summary
"#{sum.item_count} tasks (#{sum.complete_count} completed, #{sum.incomplete_count} remaining)" "#{sum.complete_count} of #{sum.item_count} #{'task'.pluralize(sum.item_count)} completed"
end end
end end
This diff is collapsed.
...@@ -3,30 +3,57 @@ ...@@ -3,30 +3,57 @@
# Requires a context containing: # Requires a context containing:
# subject { Issue or MergeRequest } # subject { Issue or MergeRequest }
shared_examples 'a Taskable' do shared_examples 'a Taskable' do
before do describe 'with multiple tasks' do
subject.description = <<-EOT.strip_heredoc before do
* [ ] Task 1 subject.description = <<-EOT.strip_heredoc
* [x] Task 2 * [ ] Task 1
* [x] Task 3 * [x] Task 2
* [ ] Task 4 * [x] Task 3
* [ ] Task 5 * [ ] Task 4
EOT * [ ] Task 5
EOT
end
it 'returns the correct task status' do
expect(subject.task_status).to match('2 of')
expect(subject.task_status).to match('5 tasks completed')
end
describe '#tasks?' do
it 'returns true when object has tasks' do
expect(subject.tasks?).to eq true
end
it 'returns false when object has no tasks' do
subject.description = 'Now I have no tasks'
expect(subject.tasks?).to eq false
end
end
end end
it 'returns the correct task status' do describe 'with an incomplete task' do
expect(subject.task_status).to match('5 tasks') before do
expect(subject.task_status).to match('2 completed') subject.description = <<-EOT.strip_heredoc
expect(subject.task_status).to match('3 remaining') * [ ] Task 1
EOT
end
it 'returns the correct task status' do
expect(subject.task_status).to match('0 of')
expect(subject.task_status).to match('1 task completed')
end
end end
describe '#tasks?' do describe 'with a complete task' do
it 'returns true when object has tasks' do before do
expect(subject.tasks?).to eq true subject.description = <<-EOT.strip_heredoc
* [x] Task 1
EOT
end end
it 'returns false when object has no tasks' do it 'returns the correct task status' do
subject.description = 'Now I have no tasks' expect(subject.task_status).to match('1 of')
expect(subject.tasks?).to eq false expect(subject.task_status).to match('1 task completed')
end end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment