<commit_before>- type = local_assigns.fetch(:type)
- board = local_assigns.fetch(:board, nil)
- block_css_class = type != :boards_modal ? 'row-content-block second-block' : ''
- user_can_admin_list = board && can?(current_user, :admin_list, board.parent)

.issues-filters{ class: ("w-100" if type == :boards_modal) }
  .issues-details-filters.filtered-search-block.d-flex.flex-column.flex-md-row{ class: block_css_class, "v-pre" => type == :boards_modal }
    - if type == :boards
      = render "shared/boards/switcher", board: board
    = form_tag page_filter_path, method: :get, class: 'filter-form js-filter-form w-100' do
      - if params[:search].present?
        = hidden_field_tag :search, params[:search]
      - if @can_bulk_update
        .check-all-holder.d-none.d-sm-block.hidden
          = check_box_tag "check-all-issues", nil, false, class: "check-all-issues left"
      .issues-other-filters.filtered-search-wrapper.d-flex.flex-column.flex-md-row
        .filtered-search-box
          - if type != :boards_modal && type != :boards
            = dropdown_tag(custom_icon('icon_history'),
              options: { wrapper_class: "filtered-search-history-dropdown-wrapper",
              toggle_class: "filtered-search-history-dropdown-toggle-button",
              dropdown_class: "filtered-search-history-dropdown",
              content_class: "filtered-search-history-dropdown-content",
              title: "Recent searches" }) do
              .js-filtered-search-history-dropdown{ data: { full_path: search_history_storage_prefix } }
          .filtered-search-box-input-container.droplab-dropdown
            .scroll-container
              %ul.tokens-container.list-unstyled
                %li.input-token
                  %input.form-control.filtered-search{ search_filter_input_options(type) }
            #js-dropdown-hint.filtered-search-input-dropdown-menu.dropdown-menu.hint-dropdown
              %ul{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { action: 'submit' } }
                  %button.btn.btn-link{ type: 'button' }
                    = sprite_icon('search')
                    %span
                      = _('Press Enter or click to search')
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                %li.filter-dropdown-item
                  %button.btn.btn-link{ type: 'button' }
                    -# Encapsulate static class name `{{icon}}` inside #{} to bypass
                    -# haml lint's ClassAttributeWithStaticValue
                    %svg
                      %use{ 'xlink:href': "#{'{{icon}}'}" }
                    %span.js-filter-hint
                      {{hint}}
                    %span.js-filter-tag.dropdown-light-content
                      {{tag}}
            #js-dropdown-author.filtered-search-input-dropdown-menu.dropdown-menu
              - if current_user
                %ul{ data: { dropdown: true } }
                  = render 'shared/issuable/user_dropdown_item',
                    user: current_user
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                = render 'shared/issuable/user_dropdown_item',
                  user: User.new(username: '{{username}}', name: '{{name}}'),
                  avatar: { lazy: true, url: '{{avatar_url}}' }
            #js-dropdown-assignee.filtered-search-input-dropdown-menu.dropdown-menu
              %ul{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { value: 'None' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('None')
                %li.filter-dropdown-item{ data: { value: 'Any' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Any')
                %li.divider.droplab-item-ignore
                - if current_user
                  = render 'shared/issuable/user_dropdown_item',
                    user: current_user
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                = render 'shared/issuable/user_dropdown_item',
                  user: User.new(username: '{{username}}', name: '{{name}}'),
                  avatar: { lazy: true, url: '{{avatar_url}}' }
            = render_if_exists 'shared/issuable/approver_dropdown'
            #js-dropdown-milestone.filtered-search-input-dropdown-menu.dropdown-menu
              %ul{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { value: 'None' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('None')
                %li.filter-dropdown-item{ data: { value: 'Any' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Any')
                %li.filter-dropdown-item{ data: { value: 'Upcoming' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Upcoming')
                %li.filter-dropdown-item{ data: { value: 'Started' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Started')
                %li.divider.droplab-item-ignore
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                %li.filter-dropdown-item
                  %button.btn.btn-link.js-data-value{ type: 'button' }
                    {{title}}
            #js-dropdown-label.filtered-search-input-dropdown-menu.dropdown-menu
              %ul{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { value: 'None' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('None')
                %li.filter-dropdown-item{ data: { value: 'Any' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Any')
                %li.divider.droplab-item-ignore
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                %li.filter-dropdown-item
                  %button.btn.btn-link{ type: 'button' }
                    %span.dropdown-label-box{ style: 'background: {{color}}' }
                    %span.label-title.js-data-value
                      {{title}}
            #js-dropdown-my-reaction.filtered-search-input-dropdown-menu.dropdown-menu
              %ul{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { value: 'None' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('None')
                %li.filter-dropdown-item{ data: { value: 'Any' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Any')
                %li.divider.droplab-item-ignore
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                %li.filter-dropdown-item
                  %button.btn.btn-link{ type: 'button' }
                    %gl-emoji
                    %span.js-data-value.prepend-left-10
                      {{name}}
            #js-dropdown-wip.filtered-search-input-dropdown-menu.dropdown-menu
              %ul.filter-dropdown{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { value: 'yes', capitalize: true } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Yes')
                %li.filter-dropdown-item{ data: { value: 'no', capitalize: true } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('No')
            #js-dropdown-confidential.filtered-search-input-dropdown-menu.dropdown-menu
              %ul.filter-dropdown{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { value: 'yes', capitalize: true } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Yes')
                %li.filter-dropdown-item{ data: { value: 'no', capitalize: true } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('No')
            #js-dropdown-target-branch.filtered-search-input-dropdown-menu.dropdown-menu
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                %li.filter-dropdown-item
                  %button.btn.btn-link.js-data-value.monospace
                    {{title}}

            = render_if_exists 'shared/issuable/filter_weight', type: type

          %button.clear-search.hidden{ type: 'button' }
            = icon('times')
        .filter-dropdown-container.d-flex.flex-column.flex-md-row
          - if type == :boards
            .js-board-config{ data: { can_admin_list: user_can_admin_list, has_scope: board.scoped? } }
            - if user_can_admin_list
              = render 'shared/issuable/board_create_list_dropdown', board: board
              - if @project
                #js-add-issues-btn.prepend-left-10{ data: { can_admin_list: can?(current_user, :admin_list, @project) } }
            #js-toggle-focus-btn
          - elsif type != :boards_modal
            = render 'shared/issuable/sort_dropdown'
<commit_msg>(CE Port) Add filters for Productivity Analytics<commit_after>- type = local_assigns.fetch(:type)
- board = local_assigns.fetch(:board, nil)
- is_not_boards_modal_or_productivity_analytics = type != :boards_modal && type != :productivity_analytics
- block_css_class = is_not_boards_modal_or_productivity_analytics ? 'row-content-block second-block' : ''
- user_can_admin_list = board && can?(current_user, :admin_list, board.parent)

.issues-filters{ class: ("w-100" if type == :boards_modal) }
  .issues-details-filters.filtered-search-block.d-flex.flex-column.flex-md-row{ class: block_css_class, "v-pre" => type == :boards_modal }
    - if type == :boards
      = render "shared/boards/switcher", board: board
    = form_tag page_filter_path, method: :get, class: 'filter-form js-filter-form w-100' do
      - if params[:search].present?
        = hidden_field_tag :search, params[:search]
      - if @can_bulk_update
        .check-all-holder.d-none.d-sm-block.hidden
          = check_box_tag "check-all-issues", nil, false, class: "check-all-issues left"
      .issues-other-filters.filtered-search-wrapper.d-flex.flex-column.flex-md-row
        .filtered-search-box
          - if type != :boards_modal && type != :boards
            = dropdown_tag(custom_icon('icon_history'),
              options: { wrapper_class: "filtered-search-history-dropdown-wrapper",
              toggle_class: "filtered-search-history-dropdown-toggle-button",
              dropdown_class: "filtered-search-history-dropdown",
              content_class: "filtered-search-history-dropdown-content",
              title: "Recent searches" }) do
              .js-filtered-search-history-dropdown{ data: { full_path: search_history_storage_prefix } }
          .filtered-search-box-input-container.droplab-dropdown
            .scroll-container
              %ul.tokens-container.list-unstyled
                %li.input-token
                  %input.form-control.filtered-search{ search_filter_input_options(type) }
            #js-dropdown-hint.filtered-search-input-dropdown-menu.dropdown-menu.hint-dropdown
              %ul{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { action: 'submit' } }
                  %button.btn.btn-link{ type: 'button' }
                    = sprite_icon('search')
                    %span
                      = _('Press Enter or click to search')
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                %li.filter-dropdown-item
                  %button.btn.btn-link{ type: 'button' }
                    -# Encapsulate static class name `{{icon}}` inside #{} to bypass
                    -# haml lint's ClassAttributeWithStaticValue
                    %svg
                      %use{ 'xlink:href': "#{'{{icon}}'}" }
                    %span.js-filter-hint
                      {{hint}}
                    %span.js-filter-tag.dropdown-light-content
                      {{tag}}
            #js-dropdown-author.filtered-search-input-dropdown-menu.dropdown-menu
              - if current_user
                %ul{ data: { dropdown: true } }
                  = render 'shared/issuable/user_dropdown_item',
                    user: current_user
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                = render 'shared/issuable/user_dropdown_item',
                  user: User.new(username: '{{username}}', name: '{{name}}'),
                  avatar: { lazy: true, url: '{{avatar_url}}' }
            #js-dropdown-assignee.filtered-search-input-dropdown-menu.dropdown-menu
              %ul{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { value: 'None' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('None')
                %li.filter-dropdown-item{ data: { value: 'Any' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Any')
                %li.divider.droplab-item-ignore
                - if current_user
                  = render 'shared/issuable/user_dropdown_item',
                    user: current_user
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                = render 'shared/issuable/user_dropdown_item',
                  user: User.new(username: '{{username}}', name: '{{name}}'),
                  avatar: { lazy: true, url: '{{avatar_url}}' }
            = render_if_exists 'shared/issuable/approver_dropdown'
            #js-dropdown-milestone.filtered-search-input-dropdown-menu.dropdown-menu
              %ul{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { value: 'None' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('None')
                %li.filter-dropdown-item{ data: { value: 'Any' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Any')
                %li.filter-dropdown-item{ data: { value: 'Upcoming' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Upcoming')
                %li.filter-dropdown-item{ data: { value: 'Started' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Started')
                %li.divider.droplab-item-ignore
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                %li.filter-dropdown-item
                  %button.btn.btn-link.js-data-value{ type: 'button' }
                    {{title}}
            #js-dropdown-label.filtered-search-input-dropdown-menu.dropdown-menu
              %ul{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { value: 'None' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('None')
                %li.filter-dropdown-item{ data: { value: 'Any' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Any')
                %li.divider.droplab-item-ignore
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                %li.filter-dropdown-item
                  %button.btn.btn-link{ type: 'button' }
                    %span.dropdown-label-box{ style: 'background: {{color}}' }
                    %span.label-title.js-data-value
                      {{title}}
            #js-dropdown-my-reaction.filtered-search-input-dropdown-menu.dropdown-menu
              %ul{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { value: 'None' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('None')
                %li.filter-dropdown-item{ data: { value: 'Any' } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Any')
                %li.divider.droplab-item-ignore
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                %li.filter-dropdown-item
                  %button.btn.btn-link{ type: 'button' }
                    %gl-emoji
                    %span.js-data-value.prepend-left-10
                      {{name}}
            #js-dropdown-wip.filtered-search-input-dropdown-menu.dropdown-menu
              %ul.filter-dropdown{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { value: 'yes', capitalize: true } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Yes')
                %li.filter-dropdown-item{ data: { value: 'no', capitalize: true } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('No')
            #js-dropdown-confidential.filtered-search-input-dropdown-menu.dropdown-menu
              %ul.filter-dropdown{ data: { dropdown: true } }
                %li.filter-dropdown-item{ data: { value: 'yes', capitalize: true } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('Yes')
                %li.filter-dropdown-item{ data: { value: 'no', capitalize: true } }
                  %button.btn.btn-link{ type: 'button' }
                    = _('No')
            #js-dropdown-target-branch.filtered-search-input-dropdown-menu.dropdown-menu
              %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
                %li.filter-dropdown-item
                  %button.btn.btn-link.js-data-value.monospace
                    {{title}}

            = render_if_exists 'shared/issuable/filter_weight', type: type

          %button.clear-search.hidden{ type: 'button' }
            = icon('times')
        .filter-dropdown-container.d-flex.flex-column.flex-md-row
          - if type == :boards
            .js-board-config{ data: { can_admin_list: user_can_admin_list, has_scope: board.scoped? } }
            - if user_can_admin_list
              = render 'shared/issuable/board_create_list_dropdown', board: board
              - if @project
                #js-add-issues-btn.prepend-left-10{ data: { can_admin_list: can?(current_user, :admin_list, @project) } }
            #js-toggle-focus-btn
          - elsif is_not_boards_modal_or_productivity_analytics
            = render 'shared/issuable/sort_dropdown'

{'fraction_non_alphanumeric': 0.13782508504334468, 'fraction_numerical': 0.001097333479644464, 'mean_word_length': 1.660875912408759, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '363040', 'n_tokens_mistral': 5413, 'n_tokens_neox': 5121, 'n_words': 881}