diff --git a/app/coffee/modules/base/navurls.coffee b/app/coffee/modules/base/navurls.coffee index 346971d6..81cc2af3 100644 --- a/app/coffee/modules/base/navurls.coffee +++ b/app/coffee/modules/base/navurls.coffee @@ -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]) diff --git a/app/coffee/modules/common.coffee b/app/coffee/modules/common.coffee index ed6b86e7..3405fd30 100644 --- a/app/coffee/modules/common.coffee +++ b/app/coffee/modules/common.coffee @@ -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 #############################################################################