Refactor NavUrlsService

stable
David Barragán Merino 2014-08-22 15:09:37 +02:00
parent bd78092e33
commit d65fe356f1
2 changed files with 28 additions and 18 deletions

View File

@ -19,11 +19,17 @@
# File: modules/base/navurl.coffee
###
taiga = @.taiga
trim = @.taiga.trim
bindOnce = @.taiga.bindOnce
module = angular.module("taigaBase")
#############################################################################
## Navigation Urls Service
#############################################################################
class NavigationUrlsService extends taiga.Service
constructor: ->
@.urls = {}
@ -37,10 +43,19 @@ class NavigationUrlsService extends taiga.Service
return ctx[match] or "undefined"
return url.replace(/(:\w+)/g, replacer)
resolve: (name) ->
resolve: (name, ctx={}) ->
if ctx
return @formatUrl(@.urls[name], ctx)
return @.urls[name]
module.service("$tgNavUrls", NavigationUrlsService)
#############################################################################
## Navigation Urls Directive
#############################################################################
NavigationUrlsDirective = ($navurls, $auth, $q, $location) ->
# Example:
# link(tg-nav="project-backlog:project='sss',")
@ -108,7 +123,4 @@ NavigationUrlsDirective = ($navurls, $auth, $q, $location) ->
return {link: link}
module = angular.module("taigaBase")
module.service("$tgNavUrls", NavigationUrlsService)
module.directive("tgNav", ["$tgNavUrls", "$tgAuth", "$q", "$location", NavigationUrlsDirective])

View File

@ -428,26 +428,24 @@ module.factory("$appTitle", AppTitle)
ProjectUrl = ($navurls) ->
get = (project) ->
if project.is_backlog_activated and project.my_permissions.indexOf("view_us")>-1
url = $navurls.resolve("project-backlog")
else if project.is_kanban_activated and project.my_permissions.indexOf("view_us")>-1
url = $navurls.resolve("project-kanban")
else if project.is_wiki_activated and project.my_permissions.indexOf("view_wiki_pages")>-1
url = $navurls.resolve("project-wiki")
else if project.is_issues_activated and project.my_permissions.indexOf("view_issues")>-1
url = $navurls.resolve("project-issues")
else
url = $navurls.resolve("project")
ctx = {project: project.slug}
return $navurls.formatUrl(url, {'project': project.slug})
if project.is_backlog_activated and project.my_permissions.indexOf("view_us") > -1
return $navurls.resolve("project-backlog", ctx)
if project.is_kanban_activated and project.my_permissions.indexOf("view_us") > -1
return $navurls.resolve("project-kanban", ctx)
if project.is_wiki_activated and project.my_permissions.indexOf("view_wiki_pages") > -1
return $navurls.resolve("project-wiki", ctx)
if project.is_issues_activated and project.my_permissions.indexOf("view_issues") > -1
return $navurls.resolve("project-issues", ctx)
return $navurls.resolve("project", ctx)
return {get: get}
module.factory("$projectUrl", ["$tgNavUrls", ProjectUrl])
#############################################################################
## Limite line size in a text area
#############################################################################