Refactor NavUrlsService
parent
bd78092e33
commit
d65fe356f1
|
@ -19,11 +19,17 @@
|
||||||
# File: modules/base/navurl.coffee
|
# File: modules/base/navurl.coffee
|
||||||
###
|
###
|
||||||
|
|
||||||
|
|
||||||
taiga = @.taiga
|
taiga = @.taiga
|
||||||
trim = @.taiga.trim
|
trim = @.taiga.trim
|
||||||
bindOnce = @.taiga.bindOnce
|
bindOnce = @.taiga.bindOnce
|
||||||
|
|
||||||
|
module = angular.module("taigaBase")
|
||||||
|
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
## Navigation Urls Service
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
class NavigationUrlsService extends taiga.Service
|
class NavigationUrlsService extends taiga.Service
|
||||||
constructor: ->
|
constructor: ->
|
||||||
@.urls = {}
|
@.urls = {}
|
||||||
|
@ -37,10 +43,19 @@ class NavigationUrlsService extends taiga.Service
|
||||||
return ctx[match] or "undefined"
|
return ctx[match] or "undefined"
|
||||||
return url.replace(/(:\w+)/g, replacer)
|
return url.replace(/(:\w+)/g, replacer)
|
||||||
|
|
||||||
resolve: (name) ->
|
resolve: (name, ctx={}) ->
|
||||||
|
if ctx
|
||||||
|
return @formatUrl(@.urls[name], ctx)
|
||||||
return @.urls[name]
|
return @.urls[name]
|
||||||
|
|
||||||
|
|
||||||
|
module.service("$tgNavUrls", NavigationUrlsService)
|
||||||
|
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
## Navigation Urls Directive
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
NavigationUrlsDirective = ($navurls, $auth, $q, $location) ->
|
NavigationUrlsDirective = ($navurls, $auth, $q, $location) ->
|
||||||
# Example:
|
# Example:
|
||||||
# link(tg-nav="project-backlog:project='sss',")
|
# link(tg-nav="project-backlog:project='sss',")
|
||||||
|
@ -108,7 +123,4 @@ NavigationUrlsDirective = ($navurls, $auth, $q, $location) ->
|
||||||
|
|
||||||
return {link: link}
|
return {link: link}
|
||||||
|
|
||||||
|
|
||||||
module = angular.module("taigaBase")
|
|
||||||
module.service("$tgNavUrls", NavigationUrlsService)
|
|
||||||
module.directive("tgNav", ["$tgNavUrls", "$tgAuth", "$q", "$location", NavigationUrlsDirective])
|
module.directive("tgNav", ["$tgNavUrls", "$tgAuth", "$q", "$location", NavigationUrlsDirective])
|
||||||
|
|
|
@ -428,26 +428,24 @@ module.factory("$appTitle", AppTitle)
|
||||||
|
|
||||||
ProjectUrl = ($navurls) ->
|
ProjectUrl = ($navurls) ->
|
||||||
get = (project) ->
|
get = (project) ->
|
||||||
if project.is_backlog_activated and project.my_permissions.indexOf("view_us")>-1
|
ctx = {project: project.slug}
|
||||||
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")
|
|
||||||
|
|
||||||
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}
|
return {get: get}
|
||||||
|
|
||||||
module.factory("$projectUrl", ["$tgNavUrls", ProjectUrl])
|
module.factory("$projectUrl", ["$tgNavUrls", ProjectUrl])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
## Limite line size in a text area
|
## Limite line size in a text area
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
Loading…
Reference in New Issue