debian-mirror-gitlab/app/views/dashboard/todos/index.html.haml

114 lines
8.1 KiB
Text
Raw Normal View History

2017-09-10 17:25:29 +05:30
- @hide_top_links = true
2020-07-28 23:09:34 +05:30
- page_title _("To-Do List")
- header_title _("To-Do List"), dashboard_todos_path
2016-04-02 18:10:28 +05:30
2022-05-07 20:08:51 +05:30
= render_two_factor_auth_recovery_settings_check
2021-04-17 20:07:23 +05:30
= render_dashboard_ultimate_trial(current_user)
2021-01-03 14:25:43 +05:30
- add_page_specific_style 'page_bundles/todos'
2023-03-04 22:38:38 +05:30
- add_page_specific_style 'page_bundles/issuable'
2019-02-15 15:39:39 +05:30
2019-07-31 22:56:46 +05:30
.page-title-holder.d-flex.align-items-center
2022-07-23 23:45:48 +05:30
%h1.page-title.gl-font-size-h-display= _("To-Do List")
2018-12-05 23:21:45 +05:30
2017-08-17 22:00:37 +05:30
- if current_user.todos.any?
.top-area
2021-12-11 22:18:48 +05:30
= gl_tabs_nav({ class: 'gl-flex-grow-1 gl-border-0' }) do
= gl_tab_link_to todos_filter_path(state: 'pending'), item_active: params[:state].blank? || params[:state] == 'pending', class: "js-todos-pending" do
= _("To Do")
2022-03-02 08:16:31 +05:30
= gl_tab_counter_badge(number_with_delimiter(todos_pending_count), { class: 'js-todos-badge' })
2021-12-11 22:18:48 +05:30
= gl_tab_link_to todos_filter_path(state: 'done'), item_active: params[:state] == 'done', class: "js-todos-done" do
= _("Done")
2022-03-02 08:16:31 +05:30
= gl_tab_counter_badge(number_with_delimiter(todos_done_count), { class: 'js-todos-badge' })
2016-04-02 18:10:28 +05:30
2017-08-17 22:00:37 +05:30
.nav-controls
2021-08-04 16:29:09 +05:30
- if @allowed_todos.any?(&:pending?)
2020-07-28 23:09:34 +05:30
.gl-mr-3
2023-04-23 21:23:45 +05:30
= render Pajamas::ButtonComponent.new(button_options: { class: 'btn-loading gl-align-items-center js-todos-mark-all'}, method: :delete, href: destroy_all_dashboard_todos_path(todos_filter_params)) do
2022-05-07 20:08:51 +05:30
= gl_loading_icon(inline: true)
2022-03-02 08:16:31 +05:30
= s_("Todos|Mark all as done")
2023-04-23 21:23:45 +05:30
= render Pajamas::ButtonComponent.new(button_options: { class: 'btn-loading gl-align-items-center js-todos-undo-all hidden'}, method: :patch, href: bulk_restore_dashboard_todos_path(todos_filter_params)) do
2022-05-07 20:08:51 +05:30
= gl_loading_icon(inline: true)
2022-03-02 08:16:31 +05:30
= s_("Todos|Undo mark all as done")
2016-04-02 18:10:28 +05:30
2017-08-17 22:00:37 +05:30
.todos-filters
2019-09-04 21:01:54 +05:30
.issues-details-filters.row-content-block.second-block
2021-06-08 01:23:25 +05:30
= form_tag todos_filter_path(without: [:project_id, :author_id, :type, :action_id]), method: :get, class: 'filter-form gl-display-flex gl-flex-direction-column gl-sm-flex-direction-row' do
2021-09-04 01:27:46 +05:30
.filter-categories.gl-display-flex.gl-flex-direction-column.gl-md-flex-direction-row.gl-flex-grow-1.gl-flex-wrap.gl-mx-n2
2021-06-08 01:23:25 +05:30
.filter-item.gl-m-2
2018-11-18 11:00:15 +05:30
- if params[:group_id].present?
= hidden_field_tag(:group_id, params[:group_id])
2023-04-23 21:23:45 +05:30
= dropdown_tag(group_dropdown_label(params[:group_id], _("Group")), options: { toggle_class: 'js-group-search js-filter-submit gl-xs-w-full!', title: s_("Todos|Filter by group"), filter: true, filterInput: 'input#group-search', dropdown_class: 'dropdown-menu-selectable dropdown-menu-group js-filter-submit', placeholder: _("Search groups"), data: { default_label: _("Group"), display: 'static', qa_selector: 'group_dropdown' } })
2021-06-08 01:23:25 +05:30
.filter-item.gl-m-2
2018-11-18 11:00:15 +05:30
- if params[:project_id].present?
= hidden_field_tag(:project_id, params[:project_id])
2022-03-02 08:16:31 +05:30
= dropdown_tag(project_dropdown_label(params[:project_id], _("Project")), options: { toggle_class: 'js-project-search js-filter-submit gl-xs-w-full!', title: s_("Todos|Filter by project"), filter: true, filterInput: 'input#project-search', dropdown_class: 'dropdown-menu-selectable dropdown-menu-project js-filter-submit', placeholder: _("Search projects"), data: { default_label: _("Project"), display: 'static' } })
2021-06-08 01:23:25 +05:30
.filter-item.gl-m-2
2018-11-18 11:00:15 +05:30
- if params[:author_id].present?
= hidden_field_tag(:author_id, params[:author_id])
2022-03-02 08:16:31 +05:30
= dropdown_tag(user_dropdown_label(params[:author_id], _("Author")), options: { toggle_class: 'js-user-search js-filter-submit js-author-search gl-xs-w-full!', title: s_("Todos|Filter by author"), filter: true, filterInput: 'input#author-search', dropdown_class: 'dropdown-menu-user dropdown-menu-selectable dropdown-menu-author js-filter-submit', placeholder: _("Search authors"), data: { any_user: _("Any Author"), first_user: (current_user.username if current_user), project_id: (@project.id if @project), selected: params[:author_id], field_name: 'author_id', default_label: _("Author"), todo_filter: true, todo_state_filter: params[:state] || 'pending' } })
2021-06-08 01:23:25 +05:30
.filter-item.gl-m-2
2018-11-18 11:00:15 +05:30
- if params[:type].present?
= hidden_field_tag(:type, params[:type])
2022-03-02 08:16:31 +05:30
= dropdown_tag(todo_types_dropdown_label(params[:type], _("Type")), options: { toggle_class: 'js-type-search js-filter-submit gl-xs-w-full!', dropdown_class: 'dropdown-menu-selectable dropdown-menu-type js-filter-submit', data: { data: todo_types_options, default_label: _("Type") } })
2021-06-08 01:23:25 +05:30
.filter-item.actions-filter.gl-m-2
2018-11-18 11:00:15 +05:30
- if params[:action_id].present?
= hidden_field_tag(:action_id, params[:action_id])
2022-03-02 08:16:31 +05:30
= dropdown_tag(todo_actions_dropdown_label(params[:action_id], _("Action")), options: { toggle_class: 'js-action-search js-filter-submit gl-xs-w-full!', dropdown_class: 'dropdown-menu-selectable dropdown-menu-action js-filter-submit', data: { data: todo_actions_options, default_label: _("Action") } })
2021-06-08 01:23:25 +05:30
.filter-item.sort-filter.gl-mt-3.gl-sm-mt-0.gl-mb-0.gl-sm-mb-0
2017-08-17 22:00:37 +05:30
.dropdown
2021-03-08 18:12:59 +05:30
%button.dropdown-menu-toggle.dropdown-menu-toggle-sort{ type: 'button', class: 'gl-xs-w-full!', 'data-toggle' => 'dropdown' }
2017-08-17 22:00:37 +05:30
%span.light
- if @sort.present?
= sort_options_hash[@sort]
- else
2016-09-13 17:45:13 +05:30
= sort_title_recently_created
2023-05-27 22:25:52 +05:30
= sprite_icon('chevron-down', css_class: 'dropdown-menu-toggle-icon')
2018-11-08 19:23:39 +05:30
%ul.dropdown-menu.dropdown-menu-sort.dropdown-menu-right
2017-08-17 22:00:37 +05:30
%li
= link_to todos_filter_path(sort: sort_value_label_priority) do
= sort_title_label_priority
= link_to todos_filter_path(sort: sort_value_recently_created) do
= sort_title_recently_created
= link_to todos_filter_path(sort: sort_value_oldest_created) do
= sort_title_oldest_created
2022-07-16 23:28:13 +05:30
= link_to todos_filter_path(sort: sort_value_recently_updated) do
= sort_title_recently_updated
2016-09-13 17:45:13 +05:30
2021-06-08 01:23:25 +05:30
.row.js-todos-all
2021-08-04 16:29:09 +05:30
- if @allowed_todos.any?
2021-06-08 01:23:25 +05:30
.col.js-todos-list-container{ data: { qa_selector: "todos_list_container" } }
2021-08-04 16:29:09 +05:30
.js-todos-options{ data: { per_page: @allowed_todos.count, current_page: @todos.current_page, total_pages: @todos.total_pages } }
2021-02-22 17:27:13 +05:30
%ul.content-list.todos-list
2021-08-04 16:29:09 +05:30
= render @allowed_todos
2017-08-17 22:00:37 +05:30
= paginate @todos, theme: "gitlab"
2021-06-08 01:23:25 +05:30
.js-nothing-here-container.empty-state.hidden
2023-05-27 22:25:52 +05:30
.svg-content.svg-150
= image_tag 'illustrations/empty-todos-all-done-md.svg'
2022-03-02 08:16:31 +05:30
.text-content.gl-text-center
%h4
= s_("Todos|You're all done!")
2017-08-17 22:00:37 +05:30
- elsif current_user.todos.any?
2021-06-08 01:23:25 +05:30
.col.todos-all-done.empty-state
2023-05-27 22:25:52 +05:30
.svg-content.svg-150
= image_tag 'illustrations/empty-todos-all-done-md.svg'
2022-03-02 08:16:31 +05:30
.text-content.gl-text-center
2021-06-08 01:23:25 +05:30
- if todos_filter_empty?
2022-03-02 08:16:31 +05:30
%h4
2022-10-11 01:57:18 +05:30
= no_todos_messages.sample
2021-06-08 01:23:25 +05:30
%p
2022-03-02 08:16:31 +05:30
= (s_("Todos|Are you looking for things to do? Take a look at %{strongStart}%{openIssuesLinkStart}open issues%{openIssuesLinkEnd}%{strongEnd}, contribute to %{strongStart}%{mergeRequestLinkStart}a merge request%{mergeRequestLinkEnd}%{mergeRequestLinkEnd}%{strongEnd}, or mention someone in a comment to automatically assign them a new to-do item.") % { strongStart: '<strong>', strongEnd: '</strong>', openIssuesLinkStart: "<a href=\"#{issues_dashboard_path}\">", openIssuesLinkEnd: '</a>', mergeRequestLinkStart: "<a href=\"#{merge_requests_dashboard_path}\">", mergeRequestLinkEnd: '</a>' }).html_safe
2021-06-08 01:23:25 +05:30
- else
2022-03-02 08:16:31 +05:30
%h4
= s_("Todos|Nothing is on your to-do list. Nice work!")
2016-04-02 18:10:28 +05:30
- else
2021-06-08 01:23:25 +05:30
.col.empty-state
2023-05-27 22:25:52 +05:30
.svg-content.svg-150
= image_tag 'illustrations/empty-todos-md.svg'
2022-03-02 08:16:31 +05:30
.text-content.gl-text-center
%h4
= s_("Todos|Your To-Do List shows what to work on next")
2017-08-17 22:00:37 +05:30
%p
2022-03-02 08:16:31 +05:30
= (s_("Todos|When an issue or merge request is assigned to you, or when you receive a %{strongStart}@mention%{strongEnd} in a comment, this automatically triggers a new item in your To-Do List.") % { strongStart: '<strong>', strongEnd: '</strong>' }).html_safe
2017-08-17 22:00:37 +05:30
%p
2022-03-02 08:16:31 +05:30
= s_("Todos|It's how you always know what to work on next.")