taiga-front/app/coffee/modules/projects/main.coffee

76 lines
2.7 KiB
CoffeeScript

taiga = @.taiga
module = angular.module("taigaProject")
class ProjectsController extends taiga.Controller
@.$inject = ["$scope", "$tgResources", "$rootScope", "$tgNavUrls", "$tgAuth", "$location", "$appTitle"]
constructor: (@scope, @rs, @rootscope, @navurls, $auth, $location, appTitle) ->
appTitle.set("Projects")
if !$auth.isAuthenticated()
$location.path("/login")
@scope.hideMenu = true
@.projects = []
@.loadInitialData()
loadInitialData: ->
return @rs.projects.list().then (projects) =>
@.projects = {'recents': projects.slice(0, 8), 'all': projects.slice(8)}
for project in projects
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")
project.url = @navurls.formatUrl(url, {'project': project.slug})
newProject: ->
@rootscope.$broadcast("projects:create")
module.controller("ProjectsController", ProjectsController)
class ProjectController extends taiga.Controller
@.$inject = ["$scope", "$tgResources", "$tgRepo", "$routeParams", "$q", "$rootScope", "$appTitle"]
constructor: (@scope, @rs, @repo, @params, @q, @rootscope, @appTitle) ->
@scope.hideMenu = false
@.loadInitialData()
.then () =>
@appTitle.set(@scope.project.name)
loadInitialData: ->
# Resolve project slug
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
@scope.projectId = data.project
return data
return promise
.then(=> @.loadPageData())
.then(=> @scope.$emit("project:loaded", @scope.project))
loadPageData: ->
return @q.all([
@.loadProjectStats(),
@.loadProject()])
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@scope.project = project
return project
loadProjectStats: ->
return @rs.projects.stats(@scope.projectId).then (stats) =>
@scope.stats = stats
return stats
module.controller("ProjectController", ProjectController)