Просмотр исходного кода

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
Alasdair Smith 8 лет назад
Родитель
Сommit
8f71b104c5

+ 10 - 2
services/web/app/views/project/list/item.pug

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

+ 4 - 1
services/web/public/coffee/main/project-list/project-list.coffee

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