From 680d46a40efe8112d179ebdf5fe6ce6ce6ebb8bb Mon Sep 17 00:00:00 2001 From: Juanfran Date: Tue, 19 May 2015 11:45:21 +0200 Subject: [PATCH] fix bulk projects update --- .../sort-projects.directive.coffee | 5 +++-- .../projects-listing.coffee} | 0 .../projects-listing.controller.spec.coffee} | 0 app/modules/projects/projects.service.coffee | 3 +-- .../projects/projects.service.spec.coffee | 16 ++++------------ app/modules/services/current-user.service.coffee | 4 ++++ .../services/current-user.service.spec.coffee | 15 ++++++++++++++- 7 files changed, 26 insertions(+), 17 deletions(-) rename app/modules/projects/{sort-projects => components}/sort-projects.directive.coffee (86%) rename app/modules/projects/{sort-projects/sort-projects.controller.coffee => listing/projects-listing.coffee} (100%) rename app/modules/projects/{sort-projects/sort-projects.controller.spec.coffee => listing/projects-listing.controller.spec.coffee} (100%) diff --git a/app/modules/projects/sort-projects/sort-projects.directive.coffee b/app/modules/projects/components/sort-projects.directive.coffee similarity index 86% rename from app/modules/projects/sort-projects/sort-projects.directive.coffee rename to app/modules/projects/components/sort-projects.directive.coffee index cd5f90fa..17ed9261 100644 --- a/app/modules/projects/sort-projects/sort-projects.directive.coffee +++ b/app/modules/projects/components/sort-projects.directive.coffee @@ -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: { diff --git a/app/modules/projects/sort-projects/sort-projects.controller.coffee b/app/modules/projects/listing/projects-listing.coffee similarity index 100% rename from app/modules/projects/sort-projects/sort-projects.controller.coffee rename to app/modules/projects/listing/projects-listing.coffee diff --git a/app/modules/projects/sort-projects/sort-projects.controller.spec.coffee b/app/modules/projects/listing/projects-listing.controller.spec.coffee similarity index 100% rename from app/modules/projects/sort-projects/sort-projects.controller.spec.coffee rename to app/modules/projects/listing/projects-listing.controller.spec.coffee diff --git a/app/modules/projects/projects.service.coffee b/app/modules/projects/projects.service.coffee index 22cd4cc2..d9887f18 100644 --- a/app/modules/projects/projects.service.coffee +++ b/app/modules/projects/projects.service.coffee @@ -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) diff --git a/app/modules/projects/projects.service.spec.coffee b/app/modules/projects/projects.service.spec.coffee index e861574a..56911cd9 100644 --- a/app/modules/projects/projects.service.spec.coffee +++ b/app/modules/projects/projects.service.spec.coffee @@ -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" diff --git a/app/modules/services/current-user.service.coffee b/app/modules/services/current-user.service.coffee index a25110db..652e7d68 100644 --- a/app/modules/services/current-user.service.coffee +++ b/app/modules/services/current-user.service.coffee @@ -29,6 +29,10 @@ class CurrentUserService return @._loadUserInfo() + bulkUpdateProjectsOrder: (sortData) -> + @projectsService.bulkUpdateProjectsOrder(sortData).then () => + @._loadProjects() + _loadProjects: () -> return @projectsService.getProjectsByUserId(@._user.get("id")) .then (projects) => diff --git a/app/modules/services/current-user.service.spec.coffee b/app/modules/services/current-user.service.spec.coffee index a5fb23b4..200e1e12 100644 --- a/app/modules/services/current-user.service.spec.coffee +++ b/app/modules/services/current-user.service.spec.coffee @@ -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()