Skip to content
Snippets Groups Projects
index.html.haml 4.41 KiB
Newer Older
  • Learn to ignore specific revisions
  • - page_title "Todos"
    - header_title "Todos", dashboard_todos_path
    
    
    .top-area
      %ul.nav-links
    
        - todo_pending_active = ('active' if params[:state].blank? || params[:state] == 'pending')
        %li{class: "todos-pending #{todo_pending_active}"}
    
          = link_to todos_filter_path(state: 'pending') do
    
              = number_with_delimiter(todos_pending_count)
    
        - todo_done_active = ('active' if params[:state] == 'done')
        %li{class: "todos-done #{todo_done_active}"}
    
          = link_to todos_filter_path(state: 'done') do
    
              = number_with_delimiter(todos_done_count)
    
      .nav-controls
        - if @todos.any?(&:pending?)
    
          = link_to destroy_all_dashboard_todos_path(todos_filter_params), class: 'btn btn-loading js-todos-mark-all', method: :delete do
            Mark all as done
            = icon('spinner spin')
    
    .todos-filters
    
    Annabel Dunstone's avatar
    Annabel Dunstone committed
      .row-content-block.second-block
    
        = form_tag todos_filter_path(without: [:project_id, :author_id, :type, :action_id]), method: :get, class: 'filter-form' do
    
            - if params[:project_id].present?
              = hidden_field_tag(:project_id, params[:project_id])
            = dropdown_tag(project_dropdown_label(params[:project_id], 'Project'), options: { toggle_class: 'js-project-search js-filter-submit', title: 'Filter by project', filter: true, filterInput: 'input#search', dropdown_class: 'dropdown-menu-selectable dropdown-menu-project js-filter-submit',
              placeholder: 'Search projects', data: { data: todo_projects_options, selected: params[:project_id], field_name: 'project_id', default_label: 'Project' } })
    
            - if params[:author_id].present?
              = hidden_field_tag(:author_id, params[:author_id])
            = dropdown_tag(user_dropdown_label(params[:author_id], 'Author'), options: { toggle_class: 'js-user-search js-filter-submit js-author-search', title: 'Filter by author', filter: true, filterInput: 'input#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), current_user: true, project_id: (@project.id if @project), selected: params[:author_id], field_name: 'author_id', default_label: 'Author' } })
    
            -# = select_tag('type', todo_types_options,
            -#   class: 'select2 trigger-submit', include_blank: true,
            -#   data: {placeholder: 'Type'})
    
            -# = select_tag('action_id', todo_actions_options,
            -#   class: 'select2 trigger-submit', include_blank: true,
            -#   data: {placeholder: 'Action'})
    
    Felipe Artur's avatar
    Felipe Artur committed
          .pull-right
            .dropdown.inline.prepend-left-10
              %button.dropdown-toggle.btn{type: 'button', 'data-toggle' => 'dropdown'}
                %span.light
                - if @sort.present?
                  = sort_options_hash[@sort]
                - else
                  = sort_title_recently_created
                %b.caret
              %ul.dropdown-menu.dropdown-menu-align-right.dropdown-menu-sort
                %li
                  = link_to todos_filter_path(sort: sort_value_priority) do
                    = sort_title_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
    
    
    
    .prepend-top-default
    
      - if @todos.any?
    
        .js-todos-options{ data: {per_page: @todos.limit_value, current_page: @todos.current_page, total_pages: @todos.total_pages} }
    
        - @todos.group_by(&:project).each do |group|
    
            - project = group[0]
            .panel-heading
              = link_to project.name_with_namespace, namespace_project_path(project.namespace, project)
    
    
            %ul.content-list.todos-list
    
              = render group[1]
    
        = paginate @todos, theme: "gitlab"
    
        .nothing-here-block You're all done!
    
      $projectDropdown = $('.js-project-search');
      $projectDropdown.glDropdown({
        filterable: true,
        selectable: true,
        fieldName: 'project_id',
        data: $projectDropdown.data('data')
      });
    
    
      $('form.filter-form').on('submit', function (event) {
        event.preventDefault();
        Turbolinks.visit(this.action + '&' + $(this).serialize());
      });