diff options
Diffstat (limited to 'app/assets/javascripts/project.js.coffee')
-rw-r--r-- | app/assets/javascripts/project.js.coffee | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/app/assets/javascripts/project.js.coffee b/app/assets/javascripts/project.js.coffee index d12bad97a05..3ef5fcc636c 100644 --- a/app/assets/javascripts/project.js.coffee +++ b/app/assets/javascripts/project.js.coffee @@ -19,6 +19,7 @@ class @Project $('.clone').text(url) # Ref switcher + @initRefSwitcher() $('.project-refs-select').on 'change', -> $(@).parents('form').submit() @@ -50,3 +51,37 @@ class @Project changeProject: (url) -> window.location = url + + initRefSwitcher: -> + $('.js-project-refs-dropdown').each -> + $dropdown = $(@) + selected = $dropdown.data('selected') + + $dropdown.glDropdown( + data: (term, callback) -> + $.ajax( + url: $dropdown.data('refs-url') + ).done (refs) -> + callback(refs) + selectable: true + filterable: true + filterByText: true + fieldName: 'ref' + renderRow: (ref) -> + if ref.header? + "<li class='dropdown-header'>#{ref.header}</li>" + else + isActiveClass = if ref is selected then 'is-active' else '' + + "<li> + <a href='#' data-ref='#{ref}' class='#{isActiveClass}'> + #{ref} + </a> + </li>" + id: (obj, $el) -> + $el.data('ref') + toggleLabel: (obj, $el) -> + $el.text().trim() + clicked: (e) -> + $dropdown.closest('form').submit() + ) |