Setting metada on epics dashboard

stable
Alejandro Alonso 2016-09-09 10:10:15 +02:00 committed by David Barragán Merino
parent c11082d4c1
commit 4fbe44d97e
3 changed files with 46 additions and 2 deletions

View File

@ -407,6 +407,8 @@
"TITLE": "EPICS", "TITLE": "EPICS",
"SECTION_NAME": "Epics", "SECTION_NAME": "Epics",
"EPIC": "EPIC", "EPIC": "EPIC",
"PAGE_TITLE": "Epics - {{projectName}}",
"PAGE_DESCRIPTION": "The epics list of the project {{projectName}}: {{projectDescription}}",
"DASHBOARD": { "DASHBOARD": {
"ADD": "+ ADD EPIC", "ADD": "+ ADD EPIC",
"UNASSIGNED": "Unassigned" "UNASSIGNED": "Unassigned"

View File

@ -28,17 +28,26 @@ class EpicsDashboardController
"lightboxService", "lightboxService",
"$tgConfirm", "$tgConfirm",
"tgProjectService", "tgProjectService",
"tgEpicsService" "tgEpicsService",
"tgAppMetaService",
"$translate"
] ]
constructor: (@params, @errorHandlingService, @lightboxFactory, @lightboxService, constructor: (@params, @errorHandlingService, @lightboxFactory, @lightboxService,
@confirm, @projectService, @epicsService) -> @confirm, @projectService, @epicsService, @appMetaService, @translate) ->
@.sectionName = "EPICS.SECTION_NAME" @.sectionName = "EPICS.SECTION_NAME"
taiga.defineImmutableProperty @, 'project', () => return @projectService.project taiga.defineImmutableProperty @, 'project', () => return @projectService.project
taiga.defineImmutableProperty @, 'epics', () => return @epicsService.epics 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: () -> loadInitialData: () ->
@epicsService.clear() @epicsService.clear()
return @projectService.setProjectBySlug(@params.pslug) return @projectService.setProjectBySlug(@params.pslug)

View File

@ -34,6 +34,10 @@ describe "EpicsDashboard", ->
setProjectBySlug: sinon.stub() setProjectBySlug: sinon.stub()
hasPermission: sinon.stub() hasPermission: sinon.stub()
isEpicsDashboardEnabled: sinon.stub() isEpicsDashboardEnabled: sinon.stub()
project: Immutable.Map({
"name": "testing name"
"description": "testing description"
})
} }
provide.value "tgProjectService", mocks.tgProjectService provide.value "tgProjectService", mocks.tgProjectService
@ -73,6 +77,20 @@ describe "EpicsDashboard", ->
provide.value "lightboxService", mocks.lightboxService 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 = () -> _mocks = () ->
module ($provide) -> module ($provide) ->
provide = $provide provide = $provide
@ -83,6 +101,8 @@ describe "EpicsDashboard", ->
_mockTgErrorHandlingService() _mockTgErrorHandlingService()
_mockTgLightboxFactory() _mockTgLightboxFactory()
_mockLightboxService() _mockLightboxService()
_mockTgAppMetaService()
_mockTranslate()
return null return null
@ -94,6 +114,19 @@ describe "EpicsDashboard", ->
inject ($controller) -> inject ($controller) ->
controller = $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) -> it "load data because epics panel is enabled and user has permissions", (done) ->
ctrl = controller("EpicsDashboardCtrl") ctrl = controller("EpicsDashboardCtrl")