Uses a publicly facing URL so that it allows labels & milestones to be visible when not logged in
This commit is contained in:
parent
730af55268
commit
dd35de1ad8
5 changed files with 40 additions and 40 deletions
|
@ -5,7 +5,6 @@
|
|||
group_projects_path: "/api/:version/groups/:id/projects.json"
|
||||
projects_path: "/api/:version/projects.json"
|
||||
labels_path: "/api/:version/projects/:id/labels"
|
||||
milestones_path: "/api/:version/projects/:id/milestones"
|
||||
|
||||
group: (group_id, callback) ->
|
||||
url = Api.buildUrl(Api.group_path)
|
||||
|
@ -63,18 +62,6 @@
|
|||
).done (projects) ->
|
||||
callback(projects)
|
||||
|
||||
projectLabels: (project_id, callback) ->
|
||||
url = Api.buildUrl(Api.labels_path)
|
||||
url = url.replace(':id', project_id)
|
||||
|
||||
$.ajax(
|
||||
url: url
|
||||
data:
|
||||
private_token: gon.api_token
|
||||
dataType: "json"
|
||||
).done (labels) ->
|
||||
callback(labels)
|
||||
|
||||
newLabel: (project_id, data, callback) ->
|
||||
url = Api.buildUrl(Api.labels_path)
|
||||
url = url.replace(':id', project_id)
|
||||
|
@ -88,19 +75,6 @@
|
|||
).done (label) ->
|
||||
callback(label)
|
||||
|
||||
|
||||
milestones: (project_id, callback) ->
|
||||
url = Api.buildUrl(Api.milestones_path)
|
||||
url = url.replace(':id', project_id)
|
||||
|
||||
$.ajax(
|
||||
url: url
|
||||
data:
|
||||
private_token: gon.api_token
|
||||
dataType: "json"
|
||||
).done (milestones) ->
|
||||
callback(milestones)
|
||||
|
||||
# Return group projects list. Filtered by query
|
||||
groupProjects: (group_id, query, callback) ->
|
||||
url = Api.buildUrl(Api.group_projects_path)
|
||||
|
|
|
@ -220,7 +220,6 @@ class GitLabDropdown
|
|||
if @renderedData
|
||||
selectedObject = @renderedData[selectedIndex]
|
||||
value = if @options.id then @options.id(selectedObject, el) else selectedObject.id
|
||||
console.log value
|
||||
|
||||
if @options.multiSelect
|
||||
fieldName = "#{fieldName}[]"
|
||||
|
|
|
@ -2,6 +2,7 @@ class @LabelsSelect
|
|||
constructor: ->
|
||||
$('.js-label-select').each (i, dropdown) ->
|
||||
projectId = $(dropdown).data('project-id')
|
||||
labelUrl = $(dropdown).data("labels")
|
||||
selectedLabel = $(dropdown).data('selected')
|
||||
newLabelField = $('#new_label_name')
|
||||
newColorField = $('#new_label_color')
|
||||
|
@ -32,13 +33,25 @@ class @LabelsSelect
|
|||
|
||||
$(dropdown).glDropdown(
|
||||
data: (term, callback) ->
|
||||
Api.projectLabels 8, callback
|
||||
# We have to fetch the JS version of the labels list because there is no
|
||||
# public facing JSON url for labels
|
||||
$.ajax(
|
||||
url: labelUrl
|
||||
).done (data) ->
|
||||
html = $(data)
|
||||
data = []
|
||||
html.find('.label-row a').each ->
|
||||
data.push(
|
||||
title: $(@).text().trim()
|
||||
)
|
||||
|
||||
callback data
|
||||
renderRow: (label) ->
|
||||
selected = if label.name is selectedLabel then "is-active" else ""
|
||||
selected = if label.title is selectedLabel then "is-active" else ""
|
||||
|
||||
"<li>
|
||||
<a href='#' class='#{selected}'>
|
||||
#{label.name}
|
||||
#{label.title}
|
||||
</a>
|
||||
</li>"
|
||||
filterable: true
|
||||
|
@ -47,7 +60,7 @@ class @LabelsSelect
|
|||
selectable: true
|
||||
fieldName: $(dropdown).data('field-name')
|
||||
id: (label) ->
|
||||
label.name
|
||||
label.title
|
||||
clicked: ->
|
||||
if $(dropdown).hasClass "js-filter-submit"
|
||||
$(dropdown).parents('form').submit()
|
||||
|
|
|
@ -2,18 +2,29 @@ class @MilestoneSelect
|
|||
constructor: ->
|
||||
$('.js-milestone-select').each (i, dropdown) ->
|
||||
projectId = $(dropdown).data('project-id')
|
||||
milestonesUrl = $(dropdown).data('milestones')
|
||||
selectedMilestone = $(dropdown).data('selected')
|
||||
showNo = $(dropdown).data('show-no')
|
||||
showAny = $(dropdown).data('show-any')
|
||||
useId = $(dropdown).data('use-id')
|
||||
|
||||
$(dropdown).glDropdown(
|
||||
data: (term, callback) ->
|
||||
Api.milestones projectId, (data) ->
|
||||
data = $.map data, (milestone) ->
|
||||
return milestone if milestone.state isnt "closed"
|
||||
$.ajax(
|
||||
url: milestonesUrl
|
||||
).done (data) ->
|
||||
html = $(data)
|
||||
data = []
|
||||
html.find('.milestone strong a').each ->
|
||||
link = $(@).attr("href").split("/")
|
||||
data.push(
|
||||
id: link[link.length - 1]
|
||||
title: $(@).text().trim()
|
||||
)
|
||||
|
||||
if showNo
|
||||
data.unshift(
|
||||
id: "0"
|
||||
title: 'No milestone'
|
||||
)
|
||||
|
||||
|
@ -34,10 +45,13 @@ class @MilestoneSelect
|
|||
text: (milestone) ->
|
||||
milestone.title
|
||||
id: (milestone) ->
|
||||
if milestone.title isnt "Any milestone"
|
||||
milestone.title
|
||||
if !useId
|
||||
if milestone.title isnt "Any milestone"
|
||||
milestone.title
|
||||
else
|
||||
""
|
||||
else
|
||||
""
|
||||
milestone.id
|
||||
isSelected: (milestone) ->
|
||||
milestone.title is selectedMilestone
|
||||
clicked: ->
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
- if params[:milestone_title]
|
||||
= hidden_field_tag(:milestone_title, params[:milestone_title])
|
||||
= dropdown_tag("Milestone", title: "Filter by milestone", toggle_class: 'js-milestone-select js-filter-submit', filter: true, dropdown_class: "dropdown-menu-selectable",
|
||||
placeholder: "Search milestones", footer_content: true, data: {show_no: true, show_any: true, field_name: "milestone_title", selected: params[:milestone_title], project_id: @project.id}) do
|
||||
placeholder: "Search milestones", footer_content: true, data: {show_no: true, show_any: true, field_name: "milestone_title", selected: params[:milestone_title], project_id: @project.id, milestones: namespace_project_milestones_path(@project.namespace, @project, :js)}) do
|
||||
%ul.dropdown-footer-list
|
||||
- if can? current_user, :admin_milestone, @project
|
||||
%li
|
||||
|
@ -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}}
|
||||
%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)}}
|
||||
%span.dropdown-toggle-text
|
||||
Label
|
||||
= icon('chevron-down')
|
||||
|
@ -106,7 +106,7 @@
|
|||
placeholder: "Search authors", data: {first_user: true, current_user: true, project_id: @project.id, field_name: "update[assignee_id]"})
|
||||
.filter-item.inline
|
||||
= dropdown_tag("Milestone", title: "Assign milestone", toggle_class: 'js-milestone-select', filter: true, dropdown_class: "dropdown-menu-selectable",
|
||||
placeholder: "Search milestones", data: {show_no: true, field_name: "update[milestone_id]", project_id: @project.id})
|
||||
placeholder: "Search milestones", data: {show_no: true, field_name: "update[milestone_id]", project_id: @project.id, milestones: namespace_project_milestones_path(@project.namespace, @project, :js), use_id: true})
|
||||
= hidden_field_tag 'update[issues_ids]', []
|
||||
= hidden_field_tag :state_event, params[:state_event]
|
||||
.filter-item.inline
|
||||
|
|
Loading…
Reference in a new issue