From 4fbe44d97ed4bb21844013d9eff140d5a0eeeefb Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Fri, 9 Sep 2016 10:10:15 +0200 Subject: [PATCH] Setting metada on epics dashboard --- app/locales/taiga/locale-en.json | 2 ++ .../epics-dashboard.controller.coffee | 13 ++++++-- .../epics-dashboard.controller.spec.coffee | 33 +++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/app/locales/taiga/locale-en.json b/app/locales/taiga/locale-en.json index 097fcf39..22ce0317 100644 --- a/app/locales/taiga/locale-en.json +++ b/app/locales/taiga/locale-en.json @@ -407,6 +407,8 @@ "TITLE": "EPICS", "SECTION_NAME": "Epics", "EPIC": "EPIC", + "PAGE_TITLE": "Epics - {{projectName}}", + "PAGE_DESCRIPTION": "The epics list of the project {{projectName}}: {{projectDescription}}", "DASHBOARD": { "ADD": "+ ADD EPIC", "UNASSIGNED": "Unassigned" diff --git a/app/modules/epics/dashboard/epics-dashboard.controller.coffee b/app/modules/epics/dashboard/epics-dashboard.controller.coffee index 043d8e92..f5e5de26 100644 --- a/app/modules/epics/dashboard/epics-dashboard.controller.coffee +++ b/app/modules/epics/dashboard/epics-dashboard.controller.coffee @@ -28,17 +28,26 @@ class EpicsDashboardController "lightboxService", "$tgConfirm", "tgProjectService", - "tgEpicsService" + "tgEpicsService", + "tgAppMetaService", + "$translate" ] constructor: (@params, @errorHandlingService, @lightboxFactory, @lightboxService, - @confirm, @projectService, @epicsService) -> + @confirm, @projectService, @epicsService, @appMetaService, @translate) -> @.sectionName = "EPICS.SECTION_NAME" taiga.defineImmutableProperty @, 'project', () => return @projectService.project taiga.defineImmutableProperty @, 'epics', () => return @epicsService.epics + title = @translate.instant("EPICS.PAGE_TITLE", {projectName: @.project.get('name')}) + description = @translate.instant("EPICS.PAGE_DESCRIPTION", { + projectName: @.project.get("name"), + projectDescription: @.project.get("description") + }) + @appMetaService.setAll(title, description) + loadInitialData: () -> @epicsService.clear() return @projectService.setProjectBySlug(@params.pslug) diff --git a/app/modules/epics/dashboard/epics-dashboard.controller.spec.coffee b/app/modules/epics/dashboard/epics-dashboard.controller.spec.coffee index a18b7c4a..c4025018 100644 --- a/app/modules/epics/dashboard/epics-dashboard.controller.spec.coffee +++ b/app/modules/epics/dashboard/epics-dashboard.controller.spec.coffee @@ -34,6 +34,10 @@ describe "EpicsDashboard", -> setProjectBySlug: sinon.stub() hasPermission: sinon.stub() isEpicsDashboardEnabled: sinon.stub() + project: Immutable.Map({ + "name": "testing name" + "description": "testing description" + }) } provide.value "tgProjectService", mocks.tgProjectService @@ -73,6 +77,20 @@ describe "EpicsDashboard", -> provide.value "lightboxService", mocks.lightboxService + _mockTgAppMetaService = () -> + mocks.tgAppMetaService = { + setAll: sinon.stub() + } + + provide.value "tgAppMetaService", mocks.tgAppMetaService + + _mockTranslate = () -> + mocks.translate = { + instant: sinon.stub() + } + + provide.value "$translate", mocks.translate + _mocks = () -> module ($provide) -> provide = $provide @@ -83,6 +101,8 @@ describe "EpicsDashboard", -> _mockTgErrorHandlingService() _mockTgLightboxFactory() _mockLightboxService() + _mockTgAppMetaService() + _mockTranslate() return null @@ -94,6 +114,19 @@ describe "EpicsDashboard", -> inject ($controller) -> controller = $controller + it "metada is set", (done) -> + mocks.translate.instant.withArgs("EPICS.PAGE_TITLE", { + projectName: "testing name" + }).returns("TITLE") + mocks.translate.instant.withArgs("EPICS.PAGE_DESCRIPTION", { + projectName: "testing name" + projectDescription: "testing description" + }).returns("DESCRIPTION") + + ctrl = controller("EpicsDashboardCtrl") + expect(mocks.tgAppMetaService.setAll).have.been.calledWith("TITLE", "DESCRIPTION") + done() + it "load data because epics panel is enabled and user has permissions", (done) -> ctrl = controller("EpicsDashboardCtrl")