diff options
Diffstat (limited to 'app/assets')
-rw-r--r-- | app/assets/javascripts/gl_dropdown.js.coffee | 23 | ||||
-rw-r--r-- | app/assets/javascripts/issues.js.coffee | 10 | ||||
-rw-r--r-- | app/assets/javascripts/labels_select.js.coffee | 5 | ||||
-rw-r--r-- | app/assets/javascripts/milestone_select.js.coffee | 60 | ||||
-rw-r--r-- | app/assets/javascripts/users_select.js.coffee | 3 |
5 files changed, 53 insertions, 48 deletions
diff --git a/app/assets/javascripts/gl_dropdown.js.coffee b/app/assets/javascripts/gl_dropdown.js.coffee index 2b56ab2e6de..dd0465b9358 100644 --- a/app/assets/javascripts/gl_dropdown.js.coffee +++ b/app/assets/javascripts/gl_dropdown.js.coffee @@ -145,11 +145,10 @@ class GitLabDropdown selector = ".dropdown-page-one .dropdown-content a" @dropdown.on "click", selector, (e) -> - e.preventDefault() - self.rowClicked $(@) + selected = self.rowClicked $(@) if self.options.clicked - self.options.clicked.call(@,e) + self.options.clicked(selected) toggleLoading: -> $('.dropdown-menu', @dropdown).toggleClass LOADING_CLASS @@ -285,17 +284,15 @@ class GitLabDropdown selectedObject = @renderedData[selectedIndex] value = if @options.id then @options.id(selectedObject, el) else selectedObject.id field = @dropdown.parent().find("input[name='#{fieldName}'][value='#{value}']") + if el.hasClass(ACTIVE_CLASS) el.removeClass(ACTIVE_CLASS) field.remove() - else - fieldName = @options.fieldName - selectedIndex = el.parent().index() - if @renderedData - selectedObject = @renderedData[selectedIndex] - selectedObject.selected = true - value = if @options.id then @options.id(selectedObject, el) else selectedObject.id + # Toggle the dropdown label + if @options.toggleLabel + $(@el).find(".dropdown-toggle-text").text @options.toggleLabel + else if !value? field.remove() @@ -304,7 +301,7 @@ class GitLabDropdown @dropdown.parent().find("input[name='#{fieldName}']").remove() # Toggle active class for the tick mark - el.toggleClass "is-active" + el.addClass ACTIVE_CLASS # Toggle the dropdown label if @options.toggleLabel @@ -313,11 +310,13 @@ class GitLabDropdown if !field.length # Create hidden input for form input = "<input type='hidden' name='#{fieldName}' value='#{value}' />" - if @options.inputId? + if @options.inputId? input = $(input) .attr('id', @options.inputId) @dropdown.before input + return selectedObject + selectFirstRow: -> selector = '.dropdown-content li:first-child a' if @dropdown.find(".dropdown-toggle-page").length diff --git a/app/assets/javascripts/issues.js.coffee b/app/assets/javascripts/issues.js.coffee index 1127b289264..b1479bfb449 100644 --- a/app/assets/javascripts/issues.js.coffee +++ b/app/assets/javascripts/issues.js.coffee @@ -1,7 +1,6 @@ @Issues = init: -> Issues.initSearch() - Issues.initSelects() Issues.initChecks() $("body").on "ajax:success", ".close_issue, .reopen_issue", -> @@ -17,18 +16,9 @@ $(this).html totalIssues - 1 reload: -> - Issues.initSelects() Issues.initChecks() $('#filter_issue_search').val($('#issue_search').val()) - initSelects: -> - $("select#update_state_event").select2(width: 'resolve', dropdownAutoWidth: true) - $("select#update_assignee_id").select2(width: 'resolve', dropdownAutoWidth: true) - $("select#update_milestone_id").select2(width: 'resolve', dropdownAutoWidth: true) - $("select#label_name").select2(width: 'resolve', dropdownAutoWidth: true) - $("#milestone_id, #assignee_id, #label_name").on "change", -> - $(this).closest("form").submit() - initChecks: -> $(".check_all_issues").click -> $(".selected_issue").prop("checked", @checked) diff --git a/app/assets/javascripts/labels_select.js.coffee b/app/assets/javascripts/labels_select.js.coffee index b5c7af9a8ad..e69a9e3e4b1 100644 --- a/app/assets/javascripts/labels_select.js.coffee +++ b/app/assets/javascripts/labels_select.js.coffee @@ -231,13 +231,14 @@ class @LabelsSelect saveLabelData() multiSelect: $dropdown.hasClass 'js-multiselect' - - clicked: -> + clicked: (label) -> page = $('body').data 'page' isIssueIndex = page is 'projects:issues:index' isMRIndex = page is page is 'projects:merge_requests:index' if $dropdown.hasClass('js-filter-submit') and (isIssueIndex or isMRIndex) + selectedLabel = label.title + Issues.filterResults $dropdown.closest('form') else if $dropdown.hasClass 'js-filter-submit' $dropdown.closest('form').submit() diff --git a/app/assets/javascripts/milestone_select.js.coffee b/app/assets/javascripts/milestone_select.js.coffee index d1746c38e74..d61d03791fa 100644 --- a/app/assets/javascripts/milestone_select.js.coffee +++ b/app/assets/javascripts/milestone_select.js.coffee @@ -11,6 +11,7 @@ class @MilestoneSelect selectedMilestone = $dropdown.data('selected') showNo = $dropdown.data('show-no') showAny = $dropdown.data('show-any') + showUpcoming = $dropdown.data('show-upcoming') useId = $dropdown.data('use-id') defaultLabel = $dropdown.data('default-label') issuableId = $dropdown.data('issuable-id') @@ -32,22 +33,32 @@ class @MilestoneSelect $.ajax( url: milestonesUrl ).done (data) -> - if $dropdown.hasClass "js-extra-options" - if showNo - data.unshift( - id: '0' - title: 'No Milestone' - ) + extraOptions = [] + if showAny + extraOptions.push( + id: 0 + name: '' + title: 'Any Milestone' + ) - if showAny - data.unshift( - isAny: true - title: 'Any Milestone' - ) + if showNo + extraOptions.push( + id: -1 + name: 'No Milestone' + title: 'No Milestone' + ) - if data.length > 2 - data.splice 2, 0, 'divider' - callback(data) + if showUpcoming + extraOptions.push( + id: -2 + name: '#upcoming' + title: 'Upcoming' + ) + + if extraOptions.length > 2 + extraOptions.push 'divider' + + callback(extraOptions.concat(data)) filterable: true search: fields: ['title'] @@ -62,22 +73,25 @@ class @MilestoneSelect milestone.title id: (milestone) -> if !useId - if !milestone.isAny? - milestone.title - else - '' + milestone.name else milestone.id isSelected: (milestone) -> - milestone.title is selectedMilestone + milestone.name is selectedMilestone hidden: -> $selectbox.hide() $value.show() - clicked: (e) -> + clicked: (selected) -> if $dropdown.hasClass 'js-filter-bulk-update' return - - if $dropdown.hasClass 'js-filter-submit' + + if $dropdown.hasClass('js-filter-submit') + if selected.name? + selectedMilestone = selected.name + else if selected.title? + selectedMilestone = selected.title + else + selectedMilestone = '' $dropdown.parents('form').submit() else selected = $selectbox @@ -104,4 +118,4 @@ class @MilestoneSelect $value.html(milestoneLinkTemplate(data.milestone)) else $value.html(milestoneLinkNoneTemplate) - )
\ No newline at end of file + ) diff --git a/app/assets/javascripts/users_select.js.coffee b/app/assets/javascripts/users_select.js.coffee index 3262d8b8c90..aec13e54c98 100644 --- a/app/assets/javascripts/users_select.js.coffee +++ b/app/assets/javascripts/users_select.js.coffee @@ -133,7 +133,7 @@ class @UsersSelect $selectbox.hide() $value.show() - clicked: -> + clicked: (user) -> page = $('body').data 'page' isIssueIndex = page is 'projects:issues:index' isMRIndex = page is page is 'projects:merge_requests:index' @@ -141,6 +141,7 @@ class @UsersSelect return if $dropdown.hasClass('js-filter-submit') and (isIssueIndex or isMRIndex) + selectedId = user.id Issues.filterResults $dropdown.closest('form') else if $dropdown.hasClass 'js-filter-submit' $dropdown.closest('form').submit() |