Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Schatz <jschatz@gitlab.com>2016-06-24 00:40:51 +0300
committerRobert Speicher <robert@gitlab.com>2016-06-24 01:08:52 +0300
commit3f7537195669bcc94d3adf44a26ca12586d1a258 (patch)
tree683d75925c47e03646bb333e212f8edfd99e5b70
parent066ea4bd1f72bae00986d5ec564db2291a21b20e (diff)
Merge branch 'ref-dropdown-jquery-objects' into 'master'
Use jQuery objects in ref dropdown ## What does this MR do? Keeps the behaviour the same as the ref dropdown, however it now uses jQuery objects to handle the HTML creation instead of passing strings around. It pretty much worked out the box so not much was changed in the dropdowns themselves. Will be easy to transfer this over to other dropdown menus as well. cc. @jschatz1 @rspeicher @DouweM Do we want this to go into a patch release? See merge request !4850
-rw-r--r--app/assets/javascripts/gl_dropdown.js.coffee9
-rw-r--r--app/assets/javascripts/project.js.coffee21
2 files changed, 18 insertions, 12 deletions
diff --git a/app/assets/javascripts/gl_dropdown.js.coffee b/app/assets/javascripts/gl_dropdown.js.coffee
index 2a7bf0bc306..deaed6c11e8 100644
--- a/app/assets/javascripts/gl_dropdown.js.coffee
+++ b/app/assets/javascripts/gl_dropdown.js.coffee
@@ -280,7 +280,7 @@ class GitLabDropdown
html = @renderData(data)
# Render the full menu
- full_html = @renderMenu(html.join(""))
+ full_html = @renderMenu(html)
@appendMenu(full_html)
@@ -351,7 +351,8 @@ class GitLabDropdown
if @options.renderMenu
menu_html = @options.renderMenu(html)
else
- menu_html = "<ul>#{html}</ul>"
+ menu_html = $('<ul />')
+ .append(html)
return menu_html
@@ -360,7 +361,9 @@ class GitLabDropdown
selector = '.dropdown-content'
if @dropdown.find(".dropdown-toggle-page").length
selector = ".dropdown-page-one .dropdown-content"
- $(selector, @dropdown).html html
+ $(selector, @dropdown)
+ .empty()
+ .append(html)
# Render the row
renderItem: (data, group = false, index = false) ->
diff --git a/app/assets/javascripts/project.js.coffee b/app/assets/javascripts/project.js.coffee
index 96e10dd7e8a..3288c801388 100644
--- a/app/assets/javascripts/project.js.coffee
+++ b/app/assets/javascripts/project.js.coffee
@@ -70,17 +70,20 @@ class @Project
fieldName: 'ref'
renderRow: (ref) ->
if ref.header?
- "<li class='dropdown-header'>#{ref.header}</li>"
+ $('<li />')
+ .addClass('dropdown-header')
+ .text(ref.header)
else
- isActiveClass = if ref is selected then 'is-active' else ''
-
- "<li>
- <a href='#' data-ref='#{escape(ref)}' class='#{isActiveClass}'>
- #{ref}
- </a>
- </li>"
+ link = $('<a />')
+ .attr('href', '#')
+ .addClass(if ref is selected then 'is-active' else '')
+ .text(ref)
+ .attr('data-ref', escape(ref))
+
+ $('<li />')
+ .append(link)
id: (obj, $el) ->
- $el.data('ref')
+ $el.attr('data-ref')
toggleLabel: (obj, $el) ->
$el.text().trim()
clicked: (e) ->