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

View File

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

View File

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

View File

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

View File

@ -11,7 +11,8 @@ describe "tgCurrentUserService", ->
_mockProjectsService = () -> _mockProjectsService = () ->
mocks.projectsService = { mocks.projectsService = {
getProjectsByUserId: sinon.stub().promise() getProjectsByUserId: sinon.stub().promise(),
bulkUpdateProjectsOrder: sinon.stub().promise()
} }
provide.value "tgProjectsService", mocks.projectsService provide.value "tgProjectsService", mocks.projectsService
@ -75,3 +76,15 @@ describe "tgCurrentUserService", ->
expect(currentUserService.projectsById.get("3").get("name")).to.be.equal("fake3") expect(currentUserService.projectsById.get("3").get("name")).to.be.equal("fake3")
done() 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()