gitlab-org--gitlab-foss/app/assets/javascripts/line_comments/services/resolve.js.coffee

39 lines
1.1 KiB
CoffeeScript
Raw Normal View History

2016-07-13 12:48:21 +00:00
class ResolveService
constructor: ->
actions = {
resolve:
method: 'POST'
url: 'notes{/id}/resolve'
all:
method: 'POST'
url: 'notes/resolve_all'
}
Vue.http.headers.common['X-CSRF-Token'] = $.rails.csrfToken()
@resource = Vue.resource('notes{/id}', {}, actions)
resolve: (namespace, discussionId, noteId, resolve) ->
2016-07-13 12:48:21 +00:00
Vue.http.options.root = "/#{namespace}"
@resource
.resolve({ id: noteId }, { discussion: discussionId, resolved: resolve })
2016-07-13 12:48:21 +00:00
.then (response) ->
if response.status is 200
CommentsStore.update(discussionId, noteId, resolve)
2016-07-13 12:48:21 +00:00
resolveAll: (namespace, discussionId, allResolve) ->
2016-07-13 12:48:21 +00:00
Vue.http.options.root = "/#{namespace}"
ids = []
for noteId, resolved of CommentsStore.state[discussionId]
ids.push(noteId) if resolved is allResolve
2016-07-13 12:48:21 +00:00
@resource
.all({}, { ids: ids, discussion: discussionId, resolved: !allResolve })
2016-07-13 12:48:21 +00:00
.then (response) ->
if response.status is 200
for noteId in ids
CommentsStore.update(discussionId, noteId, !allResolve)
2016-07-13 12:48:21 +00:00
$ ->
@ResolveService = new ResolveService()