From 7744b67f7518727dceb83682402772432870cdab Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Tue, 8 Mar 2016 15:18:01 +0000 Subject: [PATCH] Stops excute remote data fetcher when already recieved data --- app/assets/javascripts/gl_dropdown.js.coffee | 3 ++- app/assets/javascripts/labels_select.js.coffee | 18 +++++++++++++++++- app/views/shared/issuable/_filter.html.haml | 2 +- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/gl_dropdown.js.coffee b/app/assets/javascripts/gl_dropdown.js.coffee index a714ba3d675..591e0b6f41d 100644 --- a/app/assets/javascripts/gl_dropdown.js.coffee +++ b/app/assets/javascripts/gl_dropdown.js.coffee @@ -148,7 +148,8 @@ class GitLabDropdown @appendMenu(full_html) opened: => - if @remote + contentHtml = $('.dropdown-content', @dropdown).html() + if @remote && contentHtml is "" @remote.execute() if @options.filterable diff --git a/app/assets/javascripts/labels_select.js.coffee b/app/assets/javascripts/labels_select.js.coffee index 14ee529ba35..b4708f6537a 100644 --- a/app/assets/javascripts/labels_select.js.coffee +++ b/app/assets/javascripts/labels_select.js.coffee @@ -6,6 +6,8 @@ class @LabelsSelect selectedLabel = $(dropdown).data('selected') newLabelField = $('#new_label_name') newColorField = $('#new_label_color') + showNo = $(dropdown).data('show-no') + showAny = $(dropdown).data('show-any') if newLabelField.length $('.suggest-colors-dropdown a').on "click", (e) -> @@ -45,6 +47,20 @@ class @LabelsSelect title: $(@).text().trim() ) + if showNo + data.unshift( + id: "0" + title: 'No label' + ) + + if showAny + data.unshift( + title: 'Any label' + ) + + if data.length > 2 + data.splice 2, 0, "divider" + callback data renderRow: (label) -> selected = if label.title is selectedLabel then "is-active" else "" @@ -56,7 +72,7 @@ class @LabelsSelect " filterable: true search: - fields: ['name'] + fields: ['title'] selectable: true fieldName: $(dropdown).data('field-name') id: (label) -> diff --git a/app/views/shared/issuable/_filter.html.haml b/app/views/shared/issuable/_filter.html.haml index 0e023a68095..d7db2ed6e5f 100644 --- a/app/views/shared/issuable/_filter.html.haml +++ b/app/views/shared/issuable/_filter.html.haml @@ -39,7 +39,7 @@ - if params[:label_name] = hidden_field_tag(:label_name, params[:label_name]) .dropdown - %button.dropdown-menu-toggle.js-label-select.js-filter-submit{type: "button", data: {toggle: "dropdown", field_name: "label_name", selected: params[:label_name], project_id: @project.id, labels: namespace_project_labels_path(@project.namespace, @project, :js)}} + %button.dropdown-menu-toggle.js-label-select.js-filter-submit{type: "button", data: {toggle: "dropdown", field_name: "label_name", show_no: "true", show_any: "true", selected: params[:label_name], project_id: @project.id, labels: namespace_project_labels_path(@project.namespace, @project, :js)}} %span.dropdown-toggle-text Label = icon('chevron-down') -- GitLab