summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Schatz <jacobschatz@Jacobs-MBP.fios-router.home>2016-03-11 00:28:10 -0500
committerJacob Schatz <jacobschatz@Jacobs-MBP.fios-router.home>2016-03-25 08:03:16 -0400
commit16ba5eb4d89f903d89fbad33086013a2f69717dd (patch)
treefbd5d4e681f74b3b38e40e8cfc36cfd215654fcd
parent63c8a05bf7f18ac4093ece1f08b4b5fd8dba5fac (diff)
downloadgitlab-ce-16ba5eb4d89f903d89fbad33086013a2f69717dd.tar.gz
Updates sidebar milestone to use new dropdowns
-rw-r--r--app/assets/javascripts/api.js.coffee21
-rw-r--r--app/assets/javascripts/gl_dropdown.js.coffee3
-rw-r--r--app/assets/javascripts/milestone_select.js.coffee21
-rw-r--r--app/controllers/projects/issues_controller.rb1
-rw-r--r--app/views/projects/merge_requests/_show.html.haml2
-rw-r--r--app/views/shared/issuable/_filter.html.haml4
-rw-r--r--app/views/shared/issuable/_sidebar.html.haml6
-rw-r--r--config/environments/development.rb2
8 files changed, 44 insertions, 16 deletions
diff --git a/app/assets/javascripts/api.js.coffee b/app/assets/javascripts/api.js.coffee
index f3ed9a66715..b259c6556ae 100644
--- a/app/assets/javascripts/api.js.coffee
+++ b/app/assets/javascripts/api.js.coffee
@@ -5,6 +5,27 @@
group_projects_path: "/api/:version/groups/:id/projects.json"
projects_path: "/api/:version/projects.json"
labels_path: "/api/:version/projects/:id/labels"
+ issues_paths:
+ update : "/api/:version/projects/:id/issues/:issue_id"
+ merge_request_path: "/api/:version/issues/:id.json"
+
+ issues:
+ update: (project_id, issue_id, data, callback) ->
+ url = Api.buildUrl(Api.issues_paths.update)
+ url = url
+ .replace(":id", project_id)
+ .replace(":issue_id", issue_id)
+ if not data?
+ data = {}
+ data.private_token = gon.api_token
+ $.ajax(
+ url: url
+ type: "PUT"
+ data: data
+ dataType: "json"
+ ).done (issue) ->
+ if callback?
+ callback(issue)
group: (group_id, callback) ->
url = Api.buildUrl(Api.group_path)
diff --git a/app/assets/javascripts/gl_dropdown.js.coffee b/app/assets/javascripts/gl_dropdown.js.coffee
index 4b78bcde774..6cd39f5f0b9 100644
--- a/app/assets/javascripts/gl_dropdown.js.coffee
+++ b/app/assets/javascripts/gl_dropdown.js.coffee
@@ -143,10 +143,11 @@ class GitLabDropdown
selector = ".dropdown-page-one .dropdown-content a"
@dropdown.on "click", selector, (e) ->
+ e.preventDefault()
self.rowClicked $(@)
if self.options.clicked
- self.options.clicked()
+ self.options.clicked.call(@,e)
toggleLoading: ->
$('.dropdown-menu', @dropdown).toggleClass LOADING_CLASS
diff --git a/app/assets/javascripts/milestone_select.js.coffee b/app/assets/javascripts/milestone_select.js.coffee
index e17a1adb648..18647e25c55 100644
--- a/app/assets/javascripts/milestone_select.js.coffee
+++ b/app/assets/javascripts/milestone_select.js.coffee
@@ -1,5 +1,6 @@
class @MilestoneSelect
- constructor: ->
+ constructor: (@opts) ->
+ opts = @opts
$('.js-milestone-select').each (i, dropdown) ->
$dropdown = $(dropdown)
projectId = $dropdown.data('project-id')
@@ -9,6 +10,7 @@ class @MilestoneSelect
showAny = $dropdown.data('show-any')
useId = $dropdown.data('use-id')
defaultLabel = $dropdown.data('default-label')
+ issuableId = $dropdown.data('issuable-id')
$dropdown.glDropdown(
data: (term, callback) ->
@@ -53,13 +55,14 @@ class @MilestoneSelect
milestone.id
isSelected: (milestone) ->
milestone.title is selectedMilestone
- clicked: ->
- 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)
- Issues.filterResults $dropdown.closest('form')
- else if $dropdown.hasClass 'js-filter-submit'
- $dropdown.closest('form').submit()
+ clicked: (e) ->
+ if $(dropdown).hasClass "js-filter-submit" && opts.submitForm
+ $(dropdown).parents('form').submit()
+ else
+ milestoneVal = $(@)
+ .closest('.selectbox')
+ .find('input[type="hidden"]')
+ .val()
+ Api.issues.update(projectId, issuableId, milestone_id: milestoneVal, (data) => console.log 'data', data)
)
diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb
index 877b39c9b1b..b3b098c5153 100644
--- a/app/controllers/projects/issues_controller.rb
+++ b/app/controllers/projects/issues_controller.rb
@@ -58,6 +58,7 @@ class Projects::IssuesController < Projects::ApplicationController
end
def edit
+ puts params
respond_with(@issue)
end
diff --git a/app/views/projects/merge_requests/_show.html.haml b/app/views/projects/merge_requests/_show.html.haml
index ee5b9fd95a8..1dd8f721f7e 100644
--- a/app/views/projects/merge_requests/_show.html.haml
+++ b/app/views/projects/merge_requests/_show.html.haml
@@ -10,7 +10,7 @@
.merge-request{'data-url' => merge_request_path(@merge_request)}
= render "projects/merge_requests/show/mr_title"
- .merge-request-details.issuable-details
+ .merge-request-details.issuable-details{data: {id: @merge_request.project.id}}
= render "projects/merge_requests/show/mr_box"
.append-bottom-default.mr-source-target.prepend-top-default
- if @merge_request.open?
diff --git a/app/views/shared/issuable/_filter.html.haml b/app/views/shared/issuable/_filter.html.haml
index f91ff0e3694..6eb5e5f867e 100644
--- a/app/views/shared/issuable/_filter.html.haml
+++ b/app/views/shared/issuable/_filter.html.haml
@@ -55,7 +55,9 @@
:javascript
new UsersSelect();
new LabelsSelect();
- new MilestoneSelect();
+ new MilestoneSelect({
+ submitForm: true
+ });
new IssueStatusSelect();
$('form.filter-form').on('submit', function (event) {
event.preventDefault();
diff --git a/app/views/shared/issuable/_sidebar.html.haml b/app/views/shared/issuable/_sidebar.html.haml
index 0e20e86356d..4147eb613aa 100644
--- a/app/views/shared/issuable/_sidebar.html.haml
+++ b/app/views/shared/issuable/_sidebar.html.haml
@@ -62,10 +62,9 @@
= issuable.milestone.title
- else
.light None
+
.selectbox.hide-collapsed
- = f.select(:milestone_id, milestone_options(issuable), { include_blank: true }, { class: 'select2 select2-compact js-select2 js-milestone', data: { placeholder: 'Select milestone' }})
- = hidden_field_tag :issuable_context
- = f.submit class: 'btn hide'
+ = dropdown_tag("Milestone", options: { title: "Assign milestone", toggle_class: 'js-milestone-select', filter: true, dropdown_class: "dropdown-menu-selectable", placeholder: "Search milestones", data: { show_no: true, field_name: "milestone_id", project_id: @project.id, issuable_id: issuable.id, milestones: namespace_project_milestones_path(@project.namespace, @project, :js), use_id: true }})
- if issuable.project.labels.any?
.block.labels
@@ -117,4 +116,5 @@
:javascript
new Subscription('.subscription');
+ new MilestoneSelect();
new IssuableContext();
diff --git a/config/environments/development.rb b/config/environments/development.rb
index 689694a3480..78fc91bc3cc 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -36,7 +36,7 @@ Rails.application.configure do
# For having correct urls in mails
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
# Open sent mails in browser
- config.action_mailer.delivery_method = :letter_opener
+ config.action_mailer.delivery_method = :test
# Don't make a mess when bootstrapping a development environment
config.action_mailer.perform_deliveries = (ENV['BOOTSTRAP'] != '1')