Mixing resolve, get project, get user and roles in the same request
parent
a0f5f8d982
commit
a0db93a053
|
@ -200,7 +200,7 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
|
||||||
])
|
])
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
@scope.project = project
|
@scope.project = project
|
||||||
@scope.$emit('project:loaded', project)
|
@scope.$emit('project:loaded', project)
|
||||||
@scope.points = _.sortBy(project.points, "order")
|
@scope.points = _.sortBy(project.points, "order")
|
||||||
|
@ -210,15 +210,13 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
|
||||||
return project
|
return project
|
||||||
|
|
||||||
loadInitialData: ->
|
loadInitialData: ->
|
||||||
# Resolve project slug
|
promise = @.loadProject()
|
||||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
promise.then (project) =>
|
||||||
@scope.projectId = data.project
|
@scope.projectId = project.id
|
||||||
|
@.fillUsersAndRoles(project.users, project.roles)
|
||||||
@.initializeSubscription()
|
@.initializeSubscription()
|
||||||
return data
|
|
||||||
|
|
||||||
return promise.then(=> @.loadProject())
|
return promise.then(=> @.loadBacklog())
|
||||||
.then(=> @.loadUsersAndRoles())
|
|
||||||
.then(=> @.loadBacklog())
|
|
||||||
|
|
||||||
filterVisibleUserstories: ->
|
filterVisibleUserstories: ->
|
||||||
@scope.visibleUserstories = []
|
@scope.visibleUserstories = []
|
||||||
|
|
|
@ -32,6 +32,15 @@ toString = @.taiga.toString
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
class PageMixin
|
class PageMixin
|
||||||
|
fillUsersAndRoles: (users, roles) ->
|
||||||
|
@scope.users = _.sortBy(users, "full_name_display")
|
||||||
|
@scope.usersById = groupBy(@scope.users, (e) -> e.id)
|
||||||
|
|
||||||
|
@scope.roles = _.sortBy(roles, "order")
|
||||||
|
availableRoles = _(@scope.project.memberships).map("role").uniq().value()
|
||||||
|
@scope.computableRoles = _(roles).filter("computable")
|
||||||
|
.filter((x) -> _.contains(availableRoles, x.id))
|
||||||
|
.value()
|
||||||
loadUsersAndRoles: ->
|
loadUsersAndRoles: ->
|
||||||
promise = @q.all([
|
promise = @q.all([
|
||||||
@rs.projects.usersList(@scope.projectId),
|
@rs.projects.usersList(@scope.projectId),
|
||||||
|
@ -40,16 +49,7 @@ class PageMixin
|
||||||
|
|
||||||
return promise.then (results) =>
|
return promise.then (results) =>
|
||||||
[users, roles] = results
|
[users, roles] = results
|
||||||
|
@.fillUsersAndRoles(users, roles)
|
||||||
@scope.users = _.sortBy(users, "full_name_display")
|
|
||||||
@scope.usersById = groupBy(@scope.users, (e) -> e.id)
|
|
||||||
|
|
||||||
@scope.roles = _.sortBy(roles, "order")
|
|
||||||
availableRoles = _(@scope.project.memberships).map("role").uniq().value()
|
|
||||||
@scope.computableRoles = _(roles).filter("computable")
|
|
||||||
.filter((x) -> _.contains(availableRoles, x.id))
|
|
||||||
.value()
|
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
||||||
taiga.PageMixin = PageMixin
|
taiga.PageMixin = PageMixin
|
||||||
|
|
|
@ -91,7 +91,7 @@ class IssueDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
@scope.onDeleteGoToUrl = @navUrls.resolve("project", ctx)
|
@scope.onDeleteGoToUrl = @navUrls.resolve("project", ctx)
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
@scope.project = project
|
@scope.project = project
|
||||||
@scope.$emit('project:loaded', project)
|
@scope.$emit('project:loaded', project)
|
||||||
@scope.statusList = project.issue_statuses
|
@scope.statusList = project.issue_statuses
|
||||||
|
@ -106,8 +106,9 @@ class IssueDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
return project
|
return project
|
||||||
|
|
||||||
loadIssue: ->
|
loadIssue: ->
|
||||||
return @rs.issues.get(@scope.projectId, @scope.issueId).then (issue) =>
|
return @rs.issues.getByRef(@scope.projectId, @params.issueref).then (issue) =>
|
||||||
@scope.issue = issue
|
@scope.issue = issue
|
||||||
|
@scope.issueId = issue.id
|
||||||
@scope.commentModel = issue
|
@scope.commentModel = issue
|
||||||
|
|
||||||
if @scope.issue.neighbors.previous.ref?
|
if @scope.issue.neighbors.previous.ref?
|
||||||
|
@ -125,19 +126,12 @@ class IssueDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
@scope.nextUrl = @navUrls.resolve("project-issues-detail", ctx)
|
@scope.nextUrl = @navUrls.resolve("project-issues-detail", ctx)
|
||||||
|
|
||||||
loadInitialData: ->
|
loadInitialData: ->
|
||||||
params = {
|
promise = @.loadProject()
|
||||||
pslug: @params.pslug
|
return promise.then (project) =>
|
||||||
issueref: @params.issueref
|
@scope.projectId = project.id
|
||||||
}
|
@.fillUsersAndRoles(project.users, project.roles)
|
||||||
|
@.loadIssue()
|
||||||
|
|
||||||
promise = @repo.resolve(params).then (data) =>
|
|
||||||
@scope.projectId = data.project
|
|
||||||
@scope.issueId = data.issue
|
|
||||||
return data
|
|
||||||
|
|
||||||
return promise.then(=> @.loadProject())
|
|
||||||
.then(=> @.loadUsersAndRoles())
|
|
||||||
.then(=> @.loadIssue())
|
|
||||||
|
|
||||||
module.controller("IssueDetailController", IssueDetailController)
|
module.controller("IssueDetailController", IssueDetailController)
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,7 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
||||||
@rs.issues.storeFilters(@params.pslug, @location.search())
|
@rs.issues.storeFilters(@params.pslug, @location.search())
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
@scope.project = project
|
@scope.project = project
|
||||||
@scope.$emit('project:loaded', project)
|
@scope.$emit('project:loaded', project)
|
||||||
|
|
||||||
|
@ -268,15 +268,12 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
||||||
return data
|
return data
|
||||||
|
|
||||||
loadInitialData: ->
|
loadInitialData: ->
|
||||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
promise = @.loadProject()
|
||||||
@scope.projectId = data.project
|
return promise.then (project) =>
|
||||||
|
@scope.projectId = project.id
|
||||||
|
@.fillUsersAndRoles(project.users, project.roles)
|
||||||
@.initializeSubscription()
|
@.initializeSubscription()
|
||||||
return data
|
return @q.all([@.loadFilters(), @.loadIssues()])
|
||||||
|
|
||||||
return promise.then(=> @.loadProject())
|
|
||||||
.then(=> @.loadUsersAndRoles())
|
|
||||||
.then(=> @q.all([@.loadFilters(),
|
|
||||||
@.loadIssues()]))
|
|
||||||
|
|
||||||
saveCurrentFiltersTo: (newFilter) ->
|
saveCurrentFiltersTo: (newFilter) ->
|
||||||
deferred = @q.defer()
|
deferred = @q.defer()
|
||||||
|
|
|
@ -148,7 +148,7 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
||||||
])
|
])
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
@scope.project = project
|
@scope.project = project
|
||||||
@scope.points = _.sortBy(project.points, "order")
|
@scope.points = _.sortBy(project.points, "order")
|
||||||
@scope.pointsById = groupBy(project.points, (x) -> x.id)
|
@scope.pointsById = groupBy(project.points, (x) -> x.id)
|
||||||
|
@ -166,16 +166,13 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
||||||
@.loadUserstories()
|
@.loadUserstories()
|
||||||
|
|
||||||
loadInitialData: ->
|
loadInitialData: ->
|
||||||
# Resolve project slug
|
promise = @.loadProject()
|
||||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
return promise.then (project) =>
|
||||||
@scope.projectId = data.project
|
@scope.projectId = project.id
|
||||||
|
@.fillUsersAndRoles(project.users, project.roles)
|
||||||
@.initializeSubscription()
|
@.initializeSubscription()
|
||||||
return data
|
@.loadKanban().then( => @scope.$broadcast("redraw:wip"))
|
||||||
|
|
||||||
return promise.then(=> @.loadProject())
|
|
||||||
.then(=> @.loadUsersAndRoles())
|
|
||||||
.then(=> @.loadKanban())
|
|
||||||
.then(=> @scope.$broadcast("redraw:wip"))
|
|
||||||
|
|
||||||
## View Mode methods
|
## View Mode methods
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,9 @@ resourceProvider = ($repo, $http, $urls, $storage, $q) ->
|
||||||
params.project = projectId
|
params.project = projectId
|
||||||
return $repo.queryOne("issues", issueId, params)
|
return $repo.queryOne("issues", issueId, params)
|
||||||
|
|
||||||
|
service.getByRef = (projectId, ref) ->
|
||||||
|
return $repo.queryOneRaw("issues", "by_ref?project=#{projectId}&ref=#{ref}")
|
||||||
|
|
||||||
service.list = (projectId, filters, options) ->
|
service.list = (projectId, filters, options) ->
|
||||||
params = {project: projectId}
|
params = {project: projectId}
|
||||||
params = _.extend({}, params, filters or {})
|
params = _.extend({}, params, filters or {})
|
||||||
|
|
|
@ -28,6 +28,9 @@ resourceProvider = ($repo, $http, $urls) ->
|
||||||
service.get = (id) ->
|
service.get = (id) ->
|
||||||
return $repo.queryOne("projects", id)
|
return $repo.queryOne("projects", id)
|
||||||
|
|
||||||
|
service.getBySlug = (slug) ->
|
||||||
|
return $repo.queryOneRaw("projects", "by_slug?slug=#{slug}")
|
||||||
|
|
||||||
service.list = ->
|
service.list = ->
|
||||||
return $repo.queryMany("projects")
|
return $repo.queryMany("projects")
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,9 @@ resourceProvider = ($repo, $http, $urls, $storage) ->
|
||||||
params.project = projectId
|
params.project = projectId
|
||||||
return $repo.queryOne("tasks", taskId, params)
|
return $repo.queryOne("tasks", taskId, params)
|
||||||
|
|
||||||
|
service.getByRef = (projectId, ref) ->
|
||||||
|
return $repo.queryOneRaw("tasks", "by_ref?project=#{projectId}&ref=#{ref}")
|
||||||
|
|
||||||
service.list = (projectId, sprintId=null, userStoryId=null) ->
|
service.list = (projectId, sprintId=null, userStoryId=null) ->
|
||||||
params = {project: projectId}
|
params = {project: projectId}
|
||||||
params.milestone = sprintId if sprintId
|
params.milestone = sprintId if sprintId
|
||||||
|
|
|
@ -32,6 +32,9 @@ resourceProvider = ($repo, $http, $urls, $storage) ->
|
||||||
params.project = projectId
|
params.project = projectId
|
||||||
return $repo.queryOne("userstories", usId, params)
|
return $repo.queryOne("userstories", usId, params)
|
||||||
|
|
||||||
|
service.getByRef = (projectId, ref) ->
|
||||||
|
return $repo.queryOneRaw("userstories", "by_ref?project=#{projectId}&ref=#{ref}")
|
||||||
|
|
||||||
service.listUnassigned = (projectId, filters) ->
|
service.listUnassigned = (projectId, filters) ->
|
||||||
params = {"project": projectId, "milestone": "null"}
|
params = {"project": projectId, "milestone": "null"}
|
||||||
params = _.extend({}, params, filters or {})
|
params = _.extend({}, params, filters or {})
|
||||||
|
|
|
@ -28,6 +28,9 @@ resourceProvider = ($repo, $http, $urls) ->
|
||||||
service.get = (wikiId) ->
|
service.get = (wikiId) ->
|
||||||
return $repo.queryOne("wiki", wikiId)
|
return $repo.queryOne("wiki", wikiId)
|
||||||
|
|
||||||
|
service.getBySlug = (projectId, slug) ->
|
||||||
|
return $repo.queryOneRaw("wiki", "by_slug?project=#{projectId}&slug=#{slug}")
|
||||||
|
|
||||||
service.listLinks = (projectId) ->
|
service.listLinks = (projectId) ->
|
||||||
return $repo.queryMany("wiki-links", {project: projectId})
|
return $repo.queryMany("wiki-links", {project: projectId})
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ class SearchController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
return defered.promise
|
return defered.promise
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
@scope.project = project
|
@scope.project = project
|
||||||
@scope.$emit('project:loaded', project)
|
@scope.$emit('project:loaded', project)
|
||||||
@scope.issueStatusById = groupBy(project.issue_statuses, (x) -> x.id)
|
@scope.issueStatusById = groupBy(project.issue_statuses, (x) -> x.id)
|
||||||
|
@ -94,12 +94,9 @@ class SearchController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
return promise
|
return promise
|
||||||
|
|
||||||
loadInitialData: ->
|
loadInitialData: ->
|
||||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
return @.loadProject().then (project) =>
|
||||||
@scope.projectId = data.project
|
@scope.projectId = project.id
|
||||||
return data
|
@.fillUsersAndRoles(project.users, project.roles)
|
||||||
|
|
||||||
return promise.then(=> @.loadProject())
|
|
||||||
.then(=> @.loadUsersAndRoles())
|
|
||||||
|
|
||||||
module.controller("SearchController", SearchController)
|
module.controller("SearchController", SearchController)
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,7 @@ class TaskDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
@scope.onDeleteGoToUrl = @navUrls.resolve("project-userstories-detail", ctx)
|
@scope.onDeleteGoToUrl = @navUrls.resolve("project-userstories-detail", ctx)
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
@scope.project = project
|
@scope.project = project
|
||||||
@scope.$emit('project:loaded', project)
|
@scope.$emit('project:loaded', project)
|
||||||
@scope.statusList = project.task_statuses
|
@scope.statusList = project.task_statuses
|
||||||
|
@ -96,8 +96,9 @@ class TaskDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
return project
|
return project
|
||||||
|
|
||||||
loadTask: ->
|
loadTask: ->
|
||||||
return @rs.tasks.get(@scope.projectId, @scope.taskId).then (task) =>
|
return @rs.tasks.getByRef(@scope.projectId, @params.taskref).then (task) =>
|
||||||
@scope.task = task
|
@scope.task = task
|
||||||
|
@scope.taskId = task.id
|
||||||
@scope.commentModel = task
|
@scope.commentModel = task
|
||||||
|
|
||||||
if @scope.task.neighbors.previous.ref?
|
if @scope.task.neighbors.previous.ref?
|
||||||
|
@ -128,6 +129,7 @@ class TaskDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
return us
|
return us
|
||||||
|
|
||||||
loadInitialData: ->
|
loadInitialData: ->
|
||||||
|
###
|
||||||
params = {
|
params = {
|
||||||
pslug: @params.pslug
|
pslug: @params.pslug
|
||||||
taskref: @params.taskref
|
taskref: @params.taskref
|
||||||
|
@ -142,6 +144,12 @@ class TaskDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
.then(=> @.loadUsersAndRoles())
|
.then(=> @.loadUsersAndRoles())
|
||||||
.then(=> @.loadTask().then(=> @q.all([@.loadUserStory(),
|
.then(=> @.loadTask().then(=> @q.all([@.loadUserStory(),
|
||||||
@.loadSprint()])))
|
@.loadSprint()])))
|
||||||
|
###
|
||||||
|
promise = @.loadProject()
|
||||||
|
return promise.then (project) =>
|
||||||
|
@scope.projectId = project.id
|
||||||
|
@.fillUsersAndRoles(project.users, project.roles)
|
||||||
|
@.loadTask().then(=> @q.all([@.loadSprint(), @.loadUserStory()]))
|
||||||
|
|
||||||
module.controller("TaskDetailController", TaskDetailController)
|
module.controller("TaskDetailController", TaskDetailController)
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ class TeamController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
@scope.project = project
|
@scope.project = project
|
||||||
@scope.$emit('project:loaded', project)
|
@scope.$emit('project:loaded', project)
|
||||||
|
|
||||||
|
@ -127,14 +127,11 @@ class TeamController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
return stats
|
return stats
|
||||||
|
|
||||||
loadInitialData: ->
|
loadInitialData: ->
|
||||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
promise = @.loadProject()
|
||||||
@scope.projectId = data.project
|
return promise.then (project) =>
|
||||||
return data
|
@scope.projectId = project.id
|
||||||
|
@.fillUsersAndRoles(project.users, project.roles)
|
||||||
return promise.then(=> @.loadProject())
|
return @.loadMembers().then(=> @.loadMemberStats())
|
||||||
.then(=> @.loadUsersAndRoles())
|
|
||||||
.then(=> @.loadMembers())
|
|
||||||
.then(=> @.loadMemberStats())
|
|
||||||
|
|
||||||
module.controller("TeamController", TeamController)
|
module.controller("TeamController", TeamController)
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,7 @@ class UserStoryDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
@scope.onDeleteGoToUrl = @navUrls.resolve("project-kanban", ctx)
|
@scope.onDeleteGoToUrl = @navUrls.resolve("project-kanban", ctx)
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
@scope.project = project
|
@scope.project = project
|
||||||
@scope.$emit('project:loaded', project)
|
@scope.$emit('project:loaded', project)
|
||||||
@scope.statusList = project.us_statuses
|
@scope.statusList = project.us_statuses
|
||||||
|
@ -105,8 +105,9 @@ class UserStoryDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
return project
|
return project
|
||||||
|
|
||||||
loadUs: ->
|
loadUs: ->
|
||||||
return @rs.userstories.get(@scope.projectId, @scope.usId).then (us) =>
|
return @rs.userstories.getByRef(@scope.projectId, @params.usref).then (us) =>
|
||||||
@scope.us = us
|
@scope.us = us
|
||||||
|
@scope.usId = us.id
|
||||||
@scope.commentModel = us
|
@scope.commentModel = us
|
||||||
|
|
||||||
if @scope.us.neighbors.previous.ref?
|
if @scope.us.neighbors.previous.ref?
|
||||||
|
@ -137,20 +138,11 @@ class UserStoryDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
return tasks
|
return tasks
|
||||||
|
|
||||||
loadInitialData: ->
|
loadInitialData: ->
|
||||||
params = {
|
promise = @.loadProject()
|
||||||
pslug: @params.pslug
|
return promise.then (project) =>
|
||||||
usref: @params.usref
|
@scope.projectId = project.id
|
||||||
}
|
@.fillUsersAndRoles(project.users, project.roles)
|
||||||
|
@.loadUs().then(=> @q.all([@.loadSprint(), @.loadTasks()]))
|
||||||
promise = @repo.resolve(params).then (data) =>
|
|
||||||
@scope.projectId = data.project
|
|
||||||
@scope.usId = data.us
|
|
||||||
return data
|
|
||||||
|
|
||||||
return promise.then(=> @.loadProject())
|
|
||||||
.then(=> @.loadUsersAndRoles())
|
|
||||||
.then(=> @q.all([@.loadUs().then(=> @.loadSprint()),
|
|
||||||
@.loadTasks()]))
|
|
||||||
|
|
||||||
module.controller("UserStoryDetailController", UserStoryDetailController)
|
module.controller("UserStoryDetailController", UserStoryDetailController)
|
||||||
|
|
||||||
|
|
|
@ -69,61 +69,43 @@ class WikiDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
promise.then null, @.onInitialDataError.bind(@)
|
promise.then null, @.onInitialDataError.bind(@)
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
@scope.project = project
|
@scope.project = project
|
||||||
@scope.$emit('project:loaded', project)
|
@scope.$emit('project:loaded', project)
|
||||||
@scope.membersById = groupBy(project.memberships, (x) -> x.user)
|
@scope.membersById = groupBy(project.memberships, (x) -> x.user)
|
||||||
return project
|
return project
|
||||||
|
|
||||||
loadWiki: ->
|
loadWiki: ->
|
||||||
if @scope.wikiId
|
promise = @rs.wiki.getBySlug(@scope.projectId, @params.slug)
|
||||||
return @rs.wiki.get(@scope.wikiId).then (wiki) =>
|
promise.then (wiki) =>
|
||||||
@scope.wiki = wiki
|
@scope.wiki = wiki
|
||||||
return wiki
|
@scope.wikiId = wiki.id
|
||||||
|
return @scope.wiki
|
||||||
|
|
||||||
if @scope.project.my_permissions.indexOf("add_wiki_page") == -1
|
promise.then null, (xhr) =>
|
||||||
return null
|
@scope.wikiId = null
|
||||||
|
|
||||||
data = {
|
if @scope.project.my_permissions.indexOf("add_wiki_page") == -1
|
||||||
project: @scope.projectId
|
return null
|
||||||
slug: @scope.wikiSlug
|
|
||||||
content: ""
|
data = {
|
||||||
}
|
project: @scope.projectId
|
||||||
@scope.wiki = @model.make_model("wiki", data)
|
slug: @scope.wikiSlug
|
||||||
return @scope.wiki
|
content: ""
|
||||||
|
}
|
||||||
|
@scope.wiki = @model.make_model("wiki", data)
|
||||||
|
return @scope.wiki
|
||||||
|
|
||||||
loadWikiLinks: ->
|
loadWikiLinks: ->
|
||||||
return @rs.wiki.listLinks(@scope.projectId).then (wikiLinks) =>
|
return @rs.wiki.listLinks(@scope.projectId).then (wikiLinks) =>
|
||||||
@scope.wikiLinks = wikiLinks
|
@scope.wikiLinks = wikiLinks
|
||||||
|
|
||||||
loadInitialData: ->
|
loadInitialData: ->
|
||||||
params = {
|
promise = @.loadProject()
|
||||||
pslug: @params.pslug
|
return promise.then (project) =>
|
||||||
wikipage: @params.slug
|
@scope.projectId = project.id
|
||||||
}
|
@.fillUsersAndRoles(project.users, project.roles)
|
||||||
|
@q.all([@.loadWikiLinks(), @.loadWiki()])
|
||||||
# Resolve project slug
|
|
||||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
|
||||||
@scope.projectId = data.project
|
|
||||||
return data
|
|
||||||
|
|
||||||
# Resolve wiki slug
|
|
||||||
# This should be done in two steps because is not same thing
|
|
||||||
# not found response for project and not found for wiki page
|
|
||||||
# and they should be hendled separately.
|
|
||||||
promise = promise.then =>
|
|
||||||
prom = @repo.resolve({wikipage: @params.slug, pslug: @params.pslug})
|
|
||||||
|
|
||||||
prom = prom.then (data) =>
|
|
||||||
@scope.wikiId = data.wikipage
|
|
||||||
|
|
||||||
return prom.then null, (xhr) =>
|
|
||||||
@scope.wikiId = null
|
|
||||||
|
|
||||||
return promise.then(=> @.loadProject())
|
|
||||||
.then(=> @.loadUsersAndRoles())
|
|
||||||
.then(=> @q.all([@.loadWikiLinks(),
|
|
||||||
@.loadWiki()]))
|
|
||||||
|
|
||||||
delete: ->
|
delete: ->
|
||||||
# TODO: i18n
|
# TODO: i18n
|
||||||
|
|
Loading…
Reference in New Issue