Fix bug where unowned project would show archive quick action instead of leave

If the user does not own the project, the project can only be left, not
archived. Previously the quick action button was only showing the archive icon
but clicking the button would correctly leave the project. This is confusing,
so this commit corrects to show the leave icon for projects not owned by the
current user
This commit is contained in:
Alasdair Smith 2018-06-06 16:59:13 +01:00
parent 5681a76f4c
commit 8f71b104c5
2 changed files with 14 additions and 3 deletions

View file

@ -64,13 +64,21 @@ if settings.overleaf
) )
i.icon.fa.fa-cloud-download i.icon.fa.fa-cloud-download
button.btn.btn-link.action-btn( button.btn.btn-link.action-btn(
ng-if="!project.archived" ng-if="!project.archived && isOwner()"
tooltip=translate('archive'), tooltip=translate('archive'),
tooltip-placement="top", tooltip-placement="top",
tooltip-append-to-body="true", tooltip-append-to-body="true",
ng-click="archive($event)" ng-click="archiveOrLeave($event)"
) )
i.icon.fa.fa-inbox i.icon.fa.fa-inbox
button.btn.btn-link.action-btn(
ng-if="!project.archived && !isOwner()"
tooltip=translate('leave'),
tooltip-placement="top",
tooltip-append-to-body="true",
ng-click="archiveOrLeave($event)"
)
i.icon.fa.fa-sign-out
button.btn.btn-link.action-btn( button.btn.btn-link.action-btn(
ng-if="project.archived" ng-if="project.archived"
tooltip=translate('unarchive'), tooltip=translate('unarchive'),

View file

@ -490,6 +490,9 @@ define [
else else
return "None" return "None"
$scope.isOwner = () ->
window.user_id == $scope.project.owner._id
$scope.$watch "project.selected", (value) -> $scope.$watch "project.selected", (value) ->
if value? if value?
$scope.updateSelectedProjects() $scope.updateSelectedProjects()
@ -502,7 +505,7 @@ define [
e.stopPropagation() e.stopPropagation()
$scope.downloadProjectsById([$scope.project.id]) $scope.downloadProjectsById([$scope.project.id])
$scope.archive = (e) -> $scope.archiveOrLeave = (e) ->
e.stopPropagation() e.stopPropagation()
$scope.archiveOrLeaveProjects([$scope.project]) $scope.archiveOrLeaveProjects([$scope.project])