fix bulk projects update

stable
Juanfran 2015-05-19 11:45:21 +02:00
parent 739b40603f
commit 680d46a40e
7 changed files with 26 additions and 17 deletions

View File

@ -1,4 +1,4 @@
SortProjectsDirective = (projectsService) ->
SortProjectsDirective = (currentUserService) ->
link = (scope, el, attrs, ctrl) ->
itemEl = null
@ -8,6 +8,7 @@ SortProjectsDirective = (projectsService) ->
axis: "y"
opacity: .95
placeholder: 'placeholder'
containment: $(".master")
})
el.on "sortstop", (event, ui) ->
@ -24,7 +25,7 @@ SortProjectsDirective = (projectsService) ->
for value, index in sorted_project_ids
sortData.push({"project_id": value, "order":index})
projectsService.bulkUpdateProjectsOrder(sortData)
currentUserService.bulkUpdateProjectsOrder(sortData)
directive = {
scope: {

View File

@ -41,7 +41,6 @@ class ProjectsService extends taiga.Service
})
bulkUpdateProjectsOrder: (sortData) ->
@rs.projects.bulkUpdateOrder(sortData).then =>
@.fetchProjects()
return @rs.projects.bulkUpdateOrder(sortData)
angular.module("taigaProjects").service("tgProjectsService", ProjectsService)

View File

@ -1,4 +1,4 @@
describe "tgProjects", ->
describe "tgProjectsService", ->
projectsService = provide = $rootScope = null
$q = null
mocks = {}
@ -79,21 +79,13 @@ describe "tgProjects", ->
{"id": 12},
]
thenStub = sinon.stub()
mocks.resources.projects = {}
mocks.resources.projects.bulkUpdateOrder = sinon.stub()
mocks.resources.projects.bulkUpdateOrder.withArgs(projects_order).returns({
then: thenStub
})
mocks.resources.projects.bulkUpdateOrder.withArgs(projects_order).returns(true)
projectsService.fetchProjects = sinon.stub()
result = projectsService.bulkUpdateProjectsOrder(projects_order)
projectsService.bulkUpdateProjectsOrder(projects_order)
thenStub.callArg(0)
expect(projectsService.fetchProjects).to.have.been.calledOnce
expect(result).to.be.true
it "getProjectBySlug", () ->
projectSlug = "project-slug"

View File

@ -29,6 +29,10 @@ class CurrentUserService
return @._loadUserInfo()
bulkUpdateProjectsOrder: (sortData) ->
@projectsService.bulkUpdateProjectsOrder(sortData).then () =>
@._loadProjects()
_loadProjects: () ->
return @projectsService.getProjectsByUserId(@._user.get("id"))
.then (projects) =>

View File

@ -11,7 +11,8 @@ describe "tgCurrentUserService", ->
_mockProjectsService = () ->
mocks.projectsService = {
getProjectsByUserId: sinon.stub().promise()
getProjectsByUserId: sinon.stub().promise(),
bulkUpdateProjectsOrder: sinon.stub().promise()
}
provide.value "tgProjectsService", mocks.projectsService
@ -75,3 +76,15 @@ describe "tgCurrentUserService", ->
expect(currentUserService.projectsById.get("3").get("name")).to.be.equal("fake3")
done()
it "bulkUpdateProjectsOrder and reload projects", (done) ->
fakeData = [{id: 1, id: 2}]
currentUserService._loadProjects = sinon.spy()
mocks.projectsService.bulkUpdateProjectsOrder.withArgs(fakeData).resolve()
currentUserService.bulkUpdateProjectsOrder(fakeData).then () ->
expect(currentUserService._loadProjects).to.be.callOnce
done()