Commit 0803a350 authored by Josep Llaneras's avatar Josep Llaneras

Issue #13823: random message when all Todos are Done

parent 0e1e4288
...@@ -55,6 +55,7 @@ entry. ...@@ -55,6 +55,7 @@ entry.
- Remove 'Edit' button from wiki edit view !7143 (Hiroyuki Sato) - Remove 'Edit' button from wiki edit view !7143 (Hiroyuki Sato)
- Cleaned up global namespace JS !19661 (Jose Ivan Vargas) - Cleaned up global namespace JS !19661 (Jose Ivan Vargas)
- Refactor Jira service to use jira-ruby gem - Refactor Jira service to use jira-ruby gem
- Show random messages when the To Do list is empty. !13823 (jllaneras)
- Improved todos empty state - Improved todos empty state
- Add hover to trash icon in notes !7008 (blackst0ne) - Add hover to trash icon in notes !7008 (blackst0ne)
- Hides project activity tabs when features are disabled - Hides project activity tabs when features are disabled
......
...@@ -4,6 +4,10 @@ class Dashboard::TodosController < Dashboard::ApplicationController ...@@ -4,6 +4,10 @@ class Dashboard::TodosController < Dashboard::ApplicationController
def index def index
@sort = params[:sort] @sort = params[:sort]
@todos = @todos.page(params[:page]) @todos = @todos.page(params[:page])
if @todos.empty? && current_user.todos.any?
@no_todos_message = Gitlab.config.gitlab.no_todos_messages.sample
end
end end
def destroy def destroy
......
...@@ -138,9 +138,20 @@ module TodosHelper ...@@ -138,9 +138,20 @@ module TodosHelper
end end
end end
def no_todos_message
message, author = @no_todos_message.values_at('message', 'author')
if author
message += " -- " + author
end
message
end
private private
def show_todo_state?(todo) def show_todo_state?(todo)
(todo.target.is_a?(MergeRequest) || todo.target.is_a?(Issue)) && ['closed', 'merged'].include?(todo.target.state) (todo.target.is_a?(MergeRequest) || todo.target.is_a?(Issue)) && ['closed', 'merged'].include?(todo.target.state)
end end
end end
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
= render "shared/empty_states/todos_all_done.svg" = render "shared/empty_states/todos_all_done.svg"
- if todos_filter_empty? - if todos_filter_empty?
%h4.text-center %h4.text-center
Good job! Looks like you don't have any todos left. = no_todos_message
%p.text-center %p.text-center
Are you looking for things to do? Take a look at Are you looking for things to do? Take a look at
= succeed "," do = succeed "," do
......
...@@ -215,6 +215,7 @@ Settings.gitlab.default_projects_features['visibility_level'] = Settings.send( ...@@ -215,6 +215,7 @@ Settings.gitlab.default_projects_features['visibility_level'] = Settings.send(
Settings.gitlab['domain_whitelist'] ||= [] Settings.gitlab['domain_whitelist'] ||= []
Settings.gitlab['import_sources'] ||= %w[github bitbucket gitlab google_code fogbugz git gitlab_project] Settings.gitlab['import_sources'] ||= %w[github bitbucket gitlab google_code fogbugz git gitlab_project]
Settings.gitlab['trusted_proxies'] ||= [] Settings.gitlab['trusted_proxies'] ||= []
Settings.gitlab['no_todos_messages'] ||= YAML.load_file(Rails.root.join('config', 'no_todos_messages.yml'))
# #
# CI # CI
......
# When the Todos list on the user's dashboard is empty, one of the messages below shows up randomly.
#
# If you come up with a fun one, please feel free to contribute it to GitLab!
# https://about.gitlab.com/contributing/
---
-
message: "Good job! Looks like you don't have any todos left."
-
message: "You're all done!"
-
message: "Coffee really tastes better without any todos left."
author: "Josep Llaneras"
-
message: "Isn't an empty To Do list beautiful?"
author: "Josep Llaneras"
...@@ -44,7 +44,7 @@ describe 'Dashboard Todos', feature: true do ...@@ -44,7 +44,7 @@ describe 'Dashboard Todos', feature: true do
end end
it 'shows "All done" message' do it 'shows "All done" message' do
expect(page).to have_content("Good job! Looks like you don't have any todos left.") expect(page).to have_selector('.todos-all-done', count: 1)
end end
end end
...@@ -64,7 +64,7 @@ describe 'Dashboard Todos', feature: true do ...@@ -64,7 +64,7 @@ describe 'Dashboard Todos', feature: true do
end end
it 'shows "All done" message' do it 'shows "All done" message' do
expect(page).to have_content("Good job! Looks like you don't have any todos left.") expect(page).to have_selector('.todos-all-done', count: 1)
end end
end end
end end
...@@ -152,7 +152,7 @@ describe 'Dashboard Todos', feature: true do ...@@ -152,7 +152,7 @@ describe 'Dashboard Todos', feature: true do
within('.todos-pending-count') { expect(page).to have_content '0' } within('.todos-pending-count') { expect(page).to have_content '0' }
expect(page).to have_content 'To do 0' expect(page).to have_content 'To do 0'
expect(page).to have_content 'Done 0' expect(page).to have_content 'Done 0'
expect(page).to have_content "Good job! Looks like you don't have any todos left." expect(page).to have_selector('.todos-all-done', count: 1)
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