diff --git a/app/coffee/modules/admin/memberships.coffee b/app/coffee/modules/admin/memberships.coffee
index 519c9977..1cc1c767 100644
--- a/app/coffee/modules/admin/memberships.coffee
+++ b/app/coffee/modules/admin/memberships.coffee
@@ -58,6 +58,7 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
return project
loadMembers: ->
diff --git a/app/coffee/modules/admin/project-profile.coffee b/app/coffee/modules/admin/project-profile.coffee
index 85f729af..5a6283ab 100644
--- a/app/coffee/modules/admin/project-profile.coffee
+++ b/app/coffee/modules/admin/project-profile.coffee
@@ -57,6 +57,7 @@ class ProjectProfileController extends mixOf(taiga.Controller, taiga.PageMixin)
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
@scope.pointsList = _.sortBy(project.points, "order")
@scope.usStatusList = _.sortBy(project.us_statuses, "order")
@scope.taskStatusList = _.sortBy(project.task_statuses, "order")
diff --git a/app/coffee/modules/admin/project-values.coffee b/app/coffee/modules/admin/project-values.coffee
index b8a937a6..e74a0c9b 100644
--- a/app/coffee/modules/admin/project-values.coffee
+++ b/app/coffee/modules/admin/project-values.coffee
@@ -58,6 +58,7 @@ class ProjectValuesController extends mixOf(taiga.Controller, taiga.PageMixin)
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
return project
loadValues: =>
diff --git a/app/coffee/modules/admin/roles.coffee b/app/coffee/modules/admin/roles.coffee
index 131dc695..fc7a115b 100644
--- a/app/coffee/modules/admin/roles.coffee
+++ b/app/coffee/modules/admin/roles.coffee
@@ -56,6 +56,7 @@ class RolesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fil
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
return project
loadRoles: ->
diff --git a/app/coffee/modules/backlog/main.coffee b/app/coffee/modules/backlog/main.coffee
index 0054943b..f2ca4102 100644
--- a/app/coffee/modules/backlog/main.coffee
+++ b/app/coffee/modules/backlog/main.coffee
@@ -120,6 +120,7 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
@scope.points = _.sortBy(project.points, "order")
@scope.pointsById = groupBy(project.points, (x) -> x.id)
@scope.usStatusById = groupBy(project.us_statuses, (x) -> x.id)
diff --git a/app/coffee/modules/issues/detail.coffee b/app/coffee/modules/issues/detail.coffee
index 7c64f7f2..5cbfac06 100644
--- a/app/coffee/modules/issues/detail.coffee
+++ b/app/coffee/modules/issues/detail.coffee
@@ -60,6 +60,7 @@ class IssueDetailController extends mixOf(taiga.Controller, taiga.PageMixin, tai
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
@scope.statusList = project.issue_statuses
@scope.statusById = groupBy(project.issue_statuses, (x) -> x.id)
@scope.severityList = project.severities
diff --git a/app/coffee/modules/issues/list.coffee b/app/coffee/modules/issues/list.coffee
index cf52b0cd..b60c59cf 100644
--- a/app/coffee/modules/issues/list.coffee
+++ b/app/coffee/modules/issues/list.coffee
@@ -64,6 +64,7 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
# TODO: add issueTypeList and issueTypeById
@scope.issueStatusById = groupBy(project.issue_statuses, (x) -> x.id)
diff --git a/app/coffee/modules/kanban/main.coffee b/app/coffee/modules/kanban/main.coffee
index 5c8d9d03..975e1def 100644
--- a/app/coffee/modules/kanban/main.coffee
+++ b/app/coffee/modules/kanban/main.coffee
@@ -133,6 +133,7 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
@scope.points = _.sortBy(project.points, "order")
@scope.pointsById = groupBy(project.points, (x) -> x.id)
@scope.usStatusById = groupBy(project.us_statuses, (x) -> x.id)
diff --git a/app/coffee/modules/nav.coffee b/app/coffee/modules/nav.coffee
index 48b7eae7..da342c69 100644
--- a/app/coffee/modules/nav.coffee
+++ b/app/coffee/modules/nav.coffee
@@ -105,34 +105,44 @@ ProjectMenuDirective = ($log, $compile, $auth, $rootscope, $tgAuth, $location) -
Search
+ <% if (project.is_backlog_activated) { %>
Backlog
+ <% } %>
+ <% if (project.is_kanban_activated) { %>
Kanban
+ <% } %>
+ <% if (project.is_issues_activated) { %>
Issues
+ <% } %>
+ <% if (project.is_wiki_activated) { %>
Wiki
+ <% } %>
+ <% if (project.videoconferences) { %>
Video
+ <% } %>
@@ -171,10 +181,10 @@ ProjectMenuDirective = ($log, $compile, $auth, $rootscope, $tgAuth, $location) -
# WARNING: this code has traces of slighty hacky parts
# This rerenders and compiles the navigation when ng-view
# content loaded signal is raised using inner scope.
- renderMenuEntries = ($el, targetScope) ->
+ renderMenuEntries = ($el, targetScope, project={}) ->
container = $el.find(".menu-container")
sectionName = targetScope.section
- dom = $compile(menuEntriesTemplate({user: $auth.getUser()}))(targetScope)
+ dom = $compile(menuEntriesTemplate({user: $auth.getUser(), project: project}))(targetScope)
dom.find("a.active").removeClass("active")
dom.find("#nav-#{sectionName} > a").addClass("active")
@@ -203,16 +213,11 @@ ProjectMenuDirective = ($log, $compile, $auth, $rootscope, $tgAuth, $location) -
$scope.$apply ->
$location.path("/login")
- $scope.$on "$viewContentLoaded", (ctx) ->
- if ctx.targetScope.$$childHead is null || ctx.targetScope.$$childHead.hideMenu
- $el.addClass("hidden")
- $log.error "No scope found for render menu."
- return
-
+ $scope.$on "project:loaded", (ctx, project) ->
if $el.hasClass("hidden")
$el.removeClass("hidden")
- renderMenuEntries($el, ctx.targetScope.$$childHead)
+ renderMenuEntries($el, ctx.targetScope, project)
return {link: link}
diff --git a/app/coffee/modules/projects/main.coffee b/app/coffee/modules/projects/main.coffee
index cd54d45e..36f2e6ed 100644
--- a/app/coffee/modules/projects/main.coffee
+++ b/app/coffee/modules/projects/main.coffee
@@ -43,7 +43,7 @@ class ProjectController extends taiga.Controller
return promise
.then(=> @.loadPageData())
- .then(=> @rootscope.$broadcast("project:loaded"))
+ .then(=> @scope.$emit("project:loaded", @scope.project))
loadPageData: ->
return @q.all([
diff --git a/app/coffee/modules/search.coffee b/app/coffee/modules/search.coffee
index 4586804f..4ffbab0a 100644
--- a/app/coffee/modules/search.coffee
+++ b/app/coffee/modules/search.coffee
@@ -66,6 +66,7 @@ class SearchController extends mixOf(taiga.Controller, taiga.PageMixin)
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
@scope.issueStatusById = groupBy(project.issue_statuses, (x) -> x.id)
@scope.taskStatusById = groupBy(project.task_statuses, (x) -> x.id)
@scope.severityById = groupBy(project.severities, (x) -> x.id)
diff --git a/app/coffee/modules/taskboard/main.coffee b/app/coffee/modules/taskboard/main.coffee
index f26c2757..549b0db6 100644
--- a/app/coffee/modules/taskboard/main.coffee
+++ b/app/coffee/modules/taskboard/main.coffee
@@ -106,6 +106,7 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin)
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
# Not used at this momment
@scope.pointsList = _.sortBy(project.points, "order")
# @scope.roleList = _.sortBy(project.roles, "order")
diff --git a/app/coffee/modules/tasks/detail.coffee b/app/coffee/modules/tasks/detail.coffee
index 9003b81e..945ddd27 100644
--- a/app/coffee/modules/tasks/detail.coffee
+++ b/app/coffee/modules/tasks/detail.coffee
@@ -56,6 +56,7 @@ class TaskDetailController extends mixOf(taiga.Controller, taiga.PageMixin, taig
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
@scope.statusList = project.task_statuses
@scope.statusById = groupBy(project.task_statuses, (x) -> x.id)
@scope.membersById = groupBy(project.memberships, (x) -> x.user)
diff --git a/app/coffee/modules/user-settings/main.coffee b/app/coffee/modules/user-settings/main.coffee
index a40c5bc5..b6c8b527 100644
--- a/app/coffee/modules/user-settings/main.coffee
+++ b/app/coffee/modules/user-settings/main.coffee
@@ -55,6 +55,7 @@ class UserSettingsController extends mixOf(taiga.Controller, taiga.PageMixin)
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
return project
loadInitialData: ->
diff --git a/app/coffee/modules/userstories/detail.coffee b/app/coffee/modules/userstories/detail.coffee
index d69f8779..bb0acfc0 100644
--- a/app/coffee/modules/userstories/detail.coffee
+++ b/app/coffee/modules/userstories/detail.coffee
@@ -57,6 +57,7 @@ class UserStoryDetailController extends mixOf(taiga.Controller, taiga.PageMixin,
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
@scope.statusList = project.us_statuses
@scope.statusById = groupBy(project.us_statuses, (x) -> x.id)
@scope.taskStatusById = groupBy(project.task_statuses, (x) -> x.id)
diff --git a/app/coffee/modules/wiki/main.coffee b/app/coffee/modules/wiki/main.coffee
index e078bde7..04bad07f 100644
--- a/app/coffee/modules/wiki/main.coffee
+++ b/app/coffee/modules/wiki/main.coffee
@@ -60,6 +60,7 @@ class WikiDetailController extends mixOf(taiga.Controller, taiga.PageMixin, taig
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
+ @scope.$emit('project:loaded', project)
@scope.membersById = groupBy(project.memberships, (x) -> x.user)
return project