new custom route page title

stable
Juanfran 2015-05-13 08:58:18 +02:00
parent 4e41ea5015
commit 408fc1b8e3
8 changed files with 73 additions and 87 deletions

View File

@ -44,10 +44,10 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven
access: {
requiresLogin: true
},
title: "PROJECT.WELCOME",
resolve: {
loader: tgLoaderProvider.add(true),
pageParams: -> {
"title": "PROJECT.WELCOME"
}
}
}
@ -59,25 +59,24 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven
access: {
requiresLogin: true
},
title: "PROJECT.SECTION_PROJECTS",
resolve: {
loader: tgLoaderProvider.add(true),
pageParams: -> {
"title": "PROJECT.SECTION_PROJECTS"
loader: tgLoaderProvider.add(true)
}
},
controller: "Page"
}
)
$routeProvider.when("/project/:pslug/",
{
templateUrl: "projects/project/project-page.html",
templateUrl: "projects/project/project.html",
access: {
requiresLogin: true
},
resolve: {
loader: tgLoaderProvider.add(true)
}
},
controller: "Project",
controllerAs: "vm"
}
)
@ -354,7 +353,7 @@ i18nInit = (lang, $translate) ->
checksley.updateMessages('default', messages)
init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $navUrls) ->
init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $navUrls, $appTitle) ->
$log.debug("Initialize application")
# Taiga Plugins
@ -378,6 +377,9 @@ init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $na
if !$auth.isAuthenticated()
$location.path($navUrls.resolve("login"))
if next.title
$translate(next.title).then (text) => $appTitle.set(text)
modules = [
# Main Global Modules
"taigaBase",
@ -412,7 +414,6 @@ modules = [
# new modules
"taigaProfile",
"taigaHome",
"taigaPage",
"taigaUserTimeline",
# template cache
@ -450,5 +451,6 @@ module.run([
"$translate",
"$tgLocation",
"$tgNavUrls",
"$appTitle",
init
])

View File

@ -1,12 +0,0 @@
class PageController extends taiga.Controller
@.$inject = [
"$appTitle",
"$translate",
"pageParams"
]
constructor: (@appTitle, @translate, @pageParams) ->
if @pageParams.title
@translate(@pageParams.title).then (text) => @appTitle.set(text)
angular.module("taigaPage").controller("Page", PageController)

View File

@ -1,62 +0,0 @@
describe "PageController", ->
pageCtrl = null
provide = null
controller = null
mocks = {}
_mockPageParams = () ->
mocks.pageParams = {}
provide.value "pageParams", mocks.pageParams
_mockAppTitle = () ->
mocks.appTitle = {
set: sinon.spy()
}
provide.value "$appTitle", mocks.appTitle
_mockTranslate = () ->
mocks.translate = sinon.stub()
provide.value "$translate", mocks.translate
_mocks = () ->
module ($provide) ->
provide = $provide
_mockAppTitle()
_mockPageParams()
_mockTranslate()
return null
beforeEach ->
module "taigaPage"
_mocks()
inject ($controller) ->
controller = $controller
describe "page title", () ->
it "if title is defined set it", () ->
thenStub = sinon.stub()
mocks.pageParams.title = "TITLE"
mocks.translate.withArgs("TITLE").returns({
then: thenStub
})
pageCtrl = controller "Page",
$scope: {}
thenStub.callArg(0, "TITLE")
expect(mocks.appTitle.set.withArgs("TITLE")).have.been.calledOnce
it "if title is not defined not call appTitle", () ->
pageCtrl = controller "Page",
$scope: {}
expect(mocks.translate).have.callCount(0)
expect(mocks.appTitle.set.withArgs("TITLE")).have.callCount(0)

View File

@ -1 +0,0 @@
module = angular.module("taigaPage", [])

View File

@ -0,0 +1,12 @@
class ProfilePageController extends taiga.Controller
@.$inject = [
"$appTitle",
"$tgAuth"
]
constructor: (@appTitle, @auth) ->
user = @auth.getUser()
@appTitle.set(user.username)
angular.module("taigaProfile").controller("ProfilePage", ProfilePageController)

View File

@ -0,0 +1,47 @@
describe "PageController", ->
pageCtrl = null
provide = null
controller = null
mocks = {}
_mockAuth = () ->
mocks.authService = {
getUser: sinon.stub()
}
provide.value "$tgAuth", mocks.authService
_mockAppTitle = () ->
mocks.appTitle = {
set: sinon.spy()
}
provide.value "$appTitle", mocks.appTitle
_mocks = () ->
module ($provide) ->
provide = $provide
_mockAppTitle()
_mockAuth()
return null
beforeEach ->
module "taigaProfile"
_mocks()
inject ($controller) ->
controller = $controller
it "set the username as title", () ->
user = {
username: 'UserName'
}
mocks.authService.getUser.returns(user)
pageCtrl = controller "ProfilePage",
$scope: {}
expect(mocks.appTitle.set.withArgs(user.username)).have.been.calledOnce

View File

@ -11,7 +11,7 @@ div.wrapper
div.project-data
section.timeline
span TODO. Missing the amazing timeline around!!dfdfdf
div(tg-user-timeline)
section.involved-data
h2.title Team
ul.involved-team