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'
|
|
|
|
}
|
|
|
|
|
|
|
|
@resource = Vue.resource('notes{/id}', {}, actions)
|
|
|
|
|
2016-07-15 14:32:56 +00:00
|
|
|
setCSRF: ->
|
|
|
|
Vue.http.headers.common['X-CSRF-Token'] = $.rails.csrfToken()
|
|
|
|
|
2016-07-14 13:28:58 +00:00
|
|
|
resolve: (namespace, discussionId, noteId, resolve) ->
|
2016-07-15 14:32:56 +00:00
|
|
|
@setCSRF()
|
2016-07-13 12:48:21 +00:00
|
|
|
Vue.http.options.root = "/#{namespace}"
|
2016-07-15 14:32:56 +00:00
|
|
|
|
2016-07-13 12:48:21 +00:00
|
|
|
@resource
|
2016-07-14 13:28:58 +00:00
|
|
|
.resolve({ id: noteId }, { discussion: discussionId, resolved: resolve })
|
2016-07-13 12:48:21 +00:00
|
|
|
.then (response) ->
|
|
|
|
if response.status is 200
|
2016-07-14 13:28:58 +00:00
|
|
|
CommentsStore.update(discussionId, noteId, resolve)
|
2016-07-13 12:48:21 +00:00
|
|
|
|
2016-07-14 13:28:58 +00:00
|
|
|
resolveAll: (namespace, discussionId, allResolve) ->
|
2016-07-15 14:32:56 +00:00
|
|
|
@setCSRF()
|
2016-07-13 12:48:21 +00:00
|
|
|
Vue.http.options.root = "/#{namespace}"
|
2016-07-14 13:28:58 +00:00
|
|
|
|
|
|
|
ids = []
|
|
|
|
for noteId, resolved of CommentsStore.state[discussionId]
|
|
|
|
ids.push(noteId) if resolved is allResolve
|
|
|
|
|
2016-07-15 15:02:48 +00:00
|
|
|
CommentsStore.loading[discussionId] = true
|
2016-07-13 12:48:21 +00:00
|
|
|
@resource
|
2016-07-14 13:28:58 +00:00
|
|
|
.all({}, { ids: ids, discussion: discussionId, resolved: !allResolve })
|
2016-07-13 12:48:21 +00:00
|
|
|
.then (response) ->
|
2016-07-14 13:28:58 +00:00
|
|
|
if response.status is 200
|
|
|
|
for noteId in ids
|
|
|
|
CommentsStore.update(discussionId, noteId, !allResolve)
|
2016-07-13 12:48:21 +00:00
|
|
|
|
2016-07-15 15:02:48 +00:00
|
|
|
CommentsStore.loading[discussionId] = false
|
2016-07-15 14:32:56 +00:00
|
|
|
|
|
|
|
@ResolveService = new ResolveService()
|