Remove some unneeded api calls
parent
3b26cf12b2
commit
63a0a78eac
|
@ -7,6 +7,7 @@
|
|||
- Show the reference of entities in search results (thanks to [@artlepool](https://github.com/artlepool))
|
||||
|
||||
### Misc
|
||||
- Improve performance: remove some unnecessary calls to the api.
|
||||
- Lots of small and not so small bugfixes.
|
||||
|
||||
|
||||
|
|
|
@ -65,10 +65,11 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
|
|||
@analytics.trackEvent("membership", "create", "create memberships on admin", 1)
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||
if not project.i_am_owner
|
||||
@location.path(@navUrls.resolve("permission-denied"))
|
||||
|
||||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
@scope.$emit('project:loaded', project)
|
||||
return project
|
||||
|
@ -76,20 +77,20 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
|
|||
loadMembers: ->
|
||||
httpFilters = @.getUrlFilters()
|
||||
return @rs.memberships.list(@scope.projectId, httpFilters).then (data) =>
|
||||
@scope.memberships = _.filter(data.models, (membership) -> membership.user == null or membership.is_user_active)
|
||||
@scope.memberships = _.filter(data.models, (membership) ->
|
||||
membership.user == null or membership.is_user_active)
|
||||
@scope.page = data.current
|
||||
@scope.count = data.count
|
||||
@scope.paginatedBy = data.paginatedBy
|
||||
return data
|
||||
|
||||
loadInitialData: ->
|
||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
||||
@scope.projectId = data.project
|
||||
return data
|
||||
promise = @.loadProject()
|
||||
promise.then =>
|
||||
@.loadUsersAndRoles()
|
||||
@.loadMembers()
|
||||
|
||||
return promise.then(=> @.loadProject())
|
||||
.then(=> @.loadUsersAndRoles())
|
||||
.then(=> @.loadMembers())
|
||||
return promise
|
||||
|
||||
getUrlFilters: ->
|
||||
filters = _.pick(@location.search(), "page")
|
||||
|
|
|
@ -71,10 +71,11 @@ class ProjectProfileController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
@appTitle.set(appTitle)
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||
if not project.i_am_owner
|
||||
@location.path(@navUrls.resolve("permission-denied"))
|
||||
|
||||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
@scope.pointsList = _.sortBy(project.points, "order")
|
||||
@scope.usStatusList = _.sortBy(project.us_statuses, "order")
|
||||
|
@ -90,18 +91,10 @@ class ProjectProfileController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
return @rs.projects.tagsColors(@scope.projectId).then (tags_colors) =>
|
||||
@scope.project.tags_colors = tags_colors
|
||||
|
||||
loadProjectProfile: ->
|
||||
return @q.all([
|
||||
@.loadProject(),
|
||||
@.loadTagsColors()
|
||||
])
|
||||
|
||||
loadInitialData: ->
|
||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
||||
@scope.projectId = data.project
|
||||
return data
|
||||
|
||||
return promise.then(=> @.loadProjectProfile())
|
||||
promise = @.loadProject()
|
||||
promise.then => @.loadTagsColors()
|
||||
return promise
|
||||
|
||||
openDeleteLightbox: ->
|
||||
@rootscope.$broadcast("deletelightbox:new", @scope.project)
|
||||
|
|
|
@ -68,20 +68,18 @@ class ProjectValuesSectionController extends mixOf(taiga.Controller, taiga.PageM
|
|||
promise.then null, @.onInitialDataError.bind(@)
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||
if not project.i_am_owner
|
||||
@location.path(@navUrls.resolve("permission-denied"))
|
||||
|
||||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
@scope.$emit('project:loaded', project)
|
||||
return project
|
||||
|
||||
loadInitialData: ->
|
||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
||||
@scope.projectId = data.project
|
||||
return data
|
||||
|
||||
return promise.then => @.loadProject()
|
||||
promise = @.loadProject()
|
||||
return promise
|
||||
|
||||
|
||||
module.controller("ProjectValuesSectionController", ProjectValuesSectionController)
|
||||
|
|
|
@ -65,10 +65,11 @@ class RolesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fil
|
|||
promise.then null, @.onInitialDataError.bind(@)
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||
if not project.i_am_owner
|
||||
@location.path(@navUrls.resolve("permission-denied"))
|
||||
|
||||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
|
||||
@scope.$emit('project:loaded', project)
|
||||
|
@ -76,39 +77,29 @@ class RolesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fil
|
|||
|
||||
return project
|
||||
|
||||
loadExternalUserRole: (roles) ->
|
||||
roles = roles.map (role) ->
|
||||
role.external_user = false
|
||||
|
||||
return role
|
||||
|
||||
public_permission = {
|
||||
"name": @translate.instant("ADMIN.ROLES.EXTERNAL_USER"),
|
||||
"permissions": @scope.project.public_permissions,
|
||||
"external_user": true
|
||||
}
|
||||
|
||||
roles.push(public_permission)
|
||||
|
||||
return roles
|
||||
|
||||
loadRoles: ->
|
||||
return @rs.roles.list(@scope.projectId)
|
||||
.then @loadExternalUserRole
|
||||
.then (roles) =>
|
||||
@scope.roles = roles
|
||||
@scope.role = @scope.roles[0]
|
||||
return @rs.roles.list(@scope.projectId).then (roles) =>
|
||||
roles = roles.map (role) ->
|
||||
role.external_user = false
|
||||
|
||||
return roles
|
||||
return role
|
||||
|
||||
public_permission = {
|
||||
"name": @translate.instant("ADMIN.ROLES.EXTERNAL_USER"),
|
||||
"permissions": @scope.project.public_permissions,
|
||||
"external_user": true
|
||||
}
|
||||
|
||||
roles.push(public_permission)
|
||||
|
||||
@scope.roles = roles
|
||||
@scope.role = @scope.roles[0]
|
||||
return roles
|
||||
|
||||
loadInitialData: ->
|
||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
||||
@scope.projectId = data.project
|
||||
return data
|
||||
|
||||
return promise.then(=> @.loadProject())
|
||||
.then(=> @.loadUsersAndRoles())
|
||||
.then(=> @.loadRoles())
|
||||
promise = @.loadProject()
|
||||
promise.then(=> @.loadRoles())
|
||||
return promise
|
||||
|
||||
setRole: (role) ->
|
||||
@scope.role = role
|
||||
|
|
|
@ -28,6 +28,7 @@ timeout = @.taiga.timeout
|
|||
|
||||
module = angular.module("taigaAdmin")
|
||||
|
||||
|
||||
#############################################################################
|
||||
## Webhooks
|
||||
#############################################################################
|
||||
|
@ -65,24 +66,25 @@ class WebhooksController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.
|
|||
@scope.webhooks = webhooks
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||
if not project.i_am_owner
|
||||
@location.path(@navUrls.resolve("permission-denied"))
|
||||
|
||||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
@scope.$emit('project:loaded', project)
|
||||
return project
|
||||
|
||||
loadInitialData: ->
|
||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
||||
@scope.projectId = data.project
|
||||
return data
|
||||
promise = @.loadProject()
|
||||
promise.then =>
|
||||
@.loadWebhooks()
|
||||
|
||||
return promise.then(=> @.loadProject())
|
||||
.then(=> @.loadWebhooks())
|
||||
return promise
|
||||
|
||||
module.controller("WebhooksController", WebhooksController)
|
||||
|
||||
|
||||
#############################################################################
|
||||
## Webhook Directive
|
||||
#############################################################################
|
||||
|
@ -213,7 +215,8 @@ WebhookDirective = ($rs, $repo, $confirm, $loading, $translate) ->
|
|||
|
||||
return {link:link}
|
||||
|
||||
module.directive("tgWebhook", ["$tgResources", "$tgRepo", "$tgConfirm", "$tgLoading", "$translate", WebhookDirective])
|
||||
module.directive("tgWebhook", ["$tgResources", "$tgRepo", "$tgConfirm", "$tgLoading", "$translate",
|
||||
WebhookDirective])
|
||||
|
||||
|
||||
#############################################################################
|
||||
|
@ -312,19 +315,16 @@ class GithubController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
|||
@scope.github = github
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
@scope.$emit('project:loaded', project)
|
||||
return project
|
||||
|
||||
loadInitialData: ->
|
||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
||||
@scope.projectId = data.project
|
||||
return data
|
||||
|
||||
return promise.then(=> @.loadProject())
|
||||
.then(=> @.loadModules())
|
||||
|
||||
promise = @.loadProject()
|
||||
promise.then(=> @.loadModules())
|
||||
return promise
|
||||
|
||||
module.controller("GithubController", GithubController)
|
||||
|
||||
|
@ -364,19 +364,16 @@ class GitlabController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
|||
@scope.gitlab = gitlab
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
@scope.$emit('project:loaded', project)
|
||||
return project
|
||||
|
||||
loadInitialData: ->
|
||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
||||
@scope.projectId = data.project
|
||||
return data
|
||||
|
||||
return promise.then(=> @.loadProject())
|
||||
.then(=> @.loadModules())
|
||||
|
||||
promise = @.loadProject()
|
||||
promise.then(=> @.loadModules())
|
||||
return promise
|
||||
|
||||
module.controller("GitlabController", GitlabController)
|
||||
|
||||
|
@ -416,18 +413,16 @@ class BitbucketController extends mixOf(taiga.Controller, taiga.PageMixin, taiga
|
|||
@scope.bitbucket = bitbucket
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
@scope.$emit('project:loaded', project)
|
||||
return project
|
||||
|
||||
loadInitialData: ->
|
||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
||||
@scope.projectId = data.project
|
||||
return data
|
||||
|
||||
return promise.then(=> @.loadProject())
|
||||
.then(=> @.loadModules())
|
||||
promise = @.loadProject()
|
||||
promise.then(=> @.loadModules())
|
||||
return promise
|
||||
|
||||
module.controller("BitbucketController", BitbucketController)
|
||||
|
||||
|
@ -552,12 +547,12 @@ module.directive("tgBitbucketWebhooks", ["$tgRepo", "$tgConfirm", "$tgLoading",
|
|||
#############################################################################
|
||||
ValidOriginIpsDirective = ->
|
||||
link = ($scope, $el, $attrs, $ngModel) ->
|
||||
$ngModel.$parsers.push (value) ->
|
||||
value = $.trim(value)
|
||||
if value == ""
|
||||
return []
|
||||
$ngModel.$parsers.push (value) ->
|
||||
value = $.trim(value)
|
||||
if value == ""
|
||||
return []
|
||||
|
||||
return value.split(",")
|
||||
return value.split(",")
|
||||
|
||||
return {
|
||||
link: link
|
||||
|
|
|
@ -39,18 +39,15 @@ class ContribController extends taiga.Controller
|
|||
@confirm.notify("error")
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
@scope.$emit('project:loaded', project)
|
||||
@scope.$broadcast('project:loaded', project)
|
||||
return project
|
||||
|
||||
loadInitialData: ->
|
||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
||||
@scope.projectId = data.project
|
||||
return data
|
||||
|
||||
return promise.then(=> @.loadProject())
|
||||
return @.loadProject()
|
||||
|
||||
module = angular.module("taigaBase")
|
||||
module.controller("ContribController", ContribController)
|
||||
|
|
|
@ -98,22 +98,15 @@ class ProjectController extends taiga.Controller
|
|||
promise.then null, @.onInitialDataError.bind(@)
|
||||
|
||||
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()])
|
||||
promise = @.loadProject()
|
||||
promise.then(=> @.loadProjectStats())
|
||||
return promise
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
@scope.$emit("project:loaded", @scope.project)
|
||||
return project
|
||||
|
||||
loadProjectStats: ->
|
||||
|
|
|
@ -136,7 +136,7 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
@scope.stats.remainingPointsSum = remainingPointsSum
|
||||
@scope.stats.remainingTasks = remainingTasks
|
||||
if stats.totalPointsSum
|
||||
@scope.stats.completedPercentage = Math.round(100 * stats.completedPointsSum / stats.totalPointsSum)
|
||||
@scope.stats.completedPercentage = Math.round(100*stats.completedPointsSum/stats.totalPointsSum)
|
||||
else
|
||||
@scope.stats.completedPercentage = 0
|
||||
|
||||
|
|
|
@ -46,7 +46,8 @@ class UserChangePasswordController extends mixOf(taiga.Controller, taiga.PageMix
|
|||
"$translate"
|
||||
]
|
||||
|
||||
constructor: (@scope, @rootscope, @repo, @confirm, @rs, @params, @q, @location, @navUrls, @auth, @translate) ->
|
||||
constructor: (@scope, @rootscope, @repo, @confirm, @rs, @params, @q, @location, @navUrls,
|
||||
@auth, @translate) ->
|
||||
@scope.sectionName = @translate.instant("CHANGE_PASSWORD.SECTION_NAME")
|
||||
@scope.project = {}
|
||||
@scope.user = @auth.getUser()
|
||||
|
@ -56,17 +57,14 @@ class UserChangePasswordController extends mixOf(taiga.Controller, taiga.PageMix
|
|||
promise.then null, @.onInitialDataError.bind(@)
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
@scope.$emit('project:loaded', project)
|
||||
return project
|
||||
|
||||
loadInitialData: ->
|
||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
||||
@scope.projectId = data.project
|
||||
return data
|
||||
|
||||
return promise.then(=> @.loadProject())
|
||||
return @.loadProject()
|
||||
|
||||
module.controller("UserChangePasswordController", UserChangePasswordController)
|
||||
|
||||
|
|
|
@ -45,7 +45,8 @@ class UserSettingsController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
"$translate"
|
||||
]
|
||||
|
||||
constructor: (@scope, @rootscope, @config, @repo, @confirm, @rs, @params, @q, @location, @navUrls, @auth, @translate) ->
|
||||
constructor: (@scope, @rootscope, @config, @repo, @confirm, @rs, @params, @q, @location, @navUrls,
|
||||
@auth, @translate) ->
|
||||
@scope.sectionName = "USER_SETTINGS.MENU.SECTION_TITLE"
|
||||
|
||||
@scope.project = {}
|
||||
|
@ -62,7 +63,8 @@ class UserSettingsController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
promise.then null, @.onInitialDataError.bind(@)
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
@scope.$emit('project:loaded', project)
|
||||
return project
|
||||
|
@ -73,12 +75,9 @@ class UserSettingsController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
return locales
|
||||
|
||||
loadInitialData: ->
|
||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
||||
@scope.projectId = data.project
|
||||
return data
|
||||
|
||||
return @q.all([promise.then(=> @.loadProject()),
|
||||
@.loadLocales()])
|
||||
promise = @.loadProject()
|
||||
promise.then => @.loadLocales()
|
||||
return promise
|
||||
|
||||
openDeleteLightbox: ->
|
||||
@rootscope.$broadcast("deletelightbox:new", @scope.user)
|
||||
|
|
|
@ -54,7 +54,8 @@ class UserNotificationsController extends mixOf(taiga.Controller, taiga.PageMixi
|
|||
promise.then null, @.onInitialDataError.bind(@)
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||
@scope.projectId = project.id
|
||||
@scope.project = project
|
||||
@scope.$emit('project:loaded', project)
|
||||
return project
|
||||
|
@ -65,13 +66,9 @@ class UserNotificationsController extends mixOf(taiga.Controller, taiga.PageMixi
|
|||
return notifyPolicies
|
||||
|
||||
loadInitialData: ->
|
||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
||||
@scope.projectId = data.project
|
||||
return data
|
||||
|
||||
return promise.then(=> @.loadProject())
|
||||
.then(=> @.loadNotifyPolicies())
|
||||
|
||||
promise = @.loadProject()
|
||||
promise.then(=> @.loadNotifyPolicies())
|
||||
return promise
|
||||
|
||||
module.controller("UserNotificationsController", UserNotificationsController)
|
||||
|
||||
|
|
Loading…
Reference in New Issue