36 lines
1.1 KiB
CoffeeScript
36 lines
1.1 KiB
CoffeeScript
class ProjectsService extends taiga.Service
|
|
@.$inject = ["$q", "$tgResources", "$rootScope", "$projectUrl"]
|
|
|
|
constructor: (@q, @rs, @rootScope, @projectUrl) ->
|
|
@.projects = {all: [], recent: []}
|
|
@.inProgress = false
|
|
@.projectsPromise = null
|
|
@.fetchProjects()
|
|
@.emiter = new EventEmitter2()
|
|
|
|
fetchProjects: ->
|
|
if not @.inProgress
|
|
@.inProgress = true
|
|
@.projectsPromise = @rs.projects.listByMember(@rootScope.user?.id).then (projects) =>
|
|
for project in projects
|
|
project.url = @projectUrl.get(project)
|
|
|
|
@.projects.recents = projects.slice(0, 8)
|
|
@.projects.all = projects
|
|
|
|
return @.projects
|
|
|
|
@.projectsPromise.then () =>
|
|
@.inProgress = false
|
|
|
|
return @.projectsPromise
|
|
|
|
newProject: ->
|
|
@.emiter.emit("create")
|
|
|
|
bulkUpdateProjectsOrder: (sortData) ->
|
|
@rs.projects.bulkUpdateOrder(sortData).then =>
|
|
@.fetchProjects()
|
|
|
|
angular.module("taigaProjects").service("tgProjects", ProjectsService)
|