mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-08 01:03:22 +00:00
show and restore archived projects
This commit is contained in:
parent
802aae6148
commit
81ee0f4342
2 changed files with 78 additions and 23 deletions
services/web
|
@ -52,11 +52,13 @@ block content
|
|||
.row-spaced
|
||||
ul.list-unstyled.folders-menu.js-folders-menu(ng-controller="TagListController")
|
||||
li(ng-class="{active: (filter == 'all')}")
|
||||
a.menu-indent(href, ng-click="selectAllProjects()") All projects
|
||||
a.menu-indent(href, ng-click="filterProjects('all')") All projects
|
||||
li(ng-class="{active: (filter == 'owned')}")
|
||||
a.menu-indent(href, ng-click="selectOwnedProjects()") Your projects
|
||||
a.menu-indent(href, ng-click="filterProjects('owned')") Your projects
|
||||
li(ng-class="{active: (filter == 'shared')}")
|
||||
a.menu-indent(href, ng-click="selectSharedProjects()") Shared projects
|
||||
a.menu-indent(href, ng-click="filterProjects('shared')") Shared projects
|
||||
li(ng-class="{active: (filter == 'archived')}")
|
||||
a.menu-indent(href, ng-click="filterProjects('archived')") Deleted projects
|
||||
li
|
||||
h2 Folders
|
||||
li(
|
||||
|
@ -74,13 +76,6 @@ block content
|
|||
| {{tag.name}}
|
||||
span.small ({{tag.project_ids.length}})
|
||||
|
||||
.row-spaced-small
|
||||
ul.list-unstyled.folders-menu
|
||||
li
|
||||
a.menu-indent(href="#")
|
||||
i.icon.fa.fa-plus
|
||||
| New Folder
|
||||
|
||||
-if (settings.enableSubscriptions)
|
||||
.row-spaced
|
||||
a(href="/user/bonus").btn.btn-info Upgrade Account
|
||||
|
@ -100,7 +95,7 @@ block content
|
|||
//- i.fa.fa-remove
|
||||
|
||||
.project-tools.js-toggle-tools
|
||||
.btn-toolbar
|
||||
.btn-toolbar(ng-show="filter != 'archived'")
|
||||
.btn-group(ng-hide="selectedProjects.length < 1")
|
||||
a.btn.btn-default(
|
||||
href='#',
|
||||
|
@ -115,7 +110,7 @@ block content
|
|||
data-original-title="Delete",
|
||||
data-toggle="tooltip",
|
||||
data-placement="bottom",
|
||||
ng-click="deleteSelectedProjects()"
|
||||
ng-click="archiveSelectedProjects()"
|
||||
)
|
||||
i.fa.fa-trash-o
|
||||
|
||||
|
@ -160,6 +155,26 @@ block content
|
|||
href='#',
|
||||
ng-click="openRenameProjectModal()"
|
||||
) Rename
|
||||
|
||||
.btn-toolbar(ng-show="filter == 'archived'")
|
||||
.btn-group(ng-hide="selectedProjects.length < 1")
|
||||
a.btn.btn-default(
|
||||
href='#',
|
||||
data-original-title="Restore",
|
||||
data-toggle="tooltip",
|
||||
data-placement="bottom",
|
||||
ng-click="restoreSelectedProjects()"
|
||||
) Restore
|
||||
|
||||
.btn-group(ng-hide="selectedProjects.length < 1")
|
||||
a.btn.btn-danger(
|
||||
href='#',
|
||||
data-original-title="Delete Forever",
|
||||
data-toggle="tooltip",
|
||||
data-placement="bottom",
|
||||
ng-click="deleteSelectedProjects()"
|
||||
) Delete Forever
|
||||
|
||||
.row.row-spaced
|
||||
.col-md-12
|
||||
.card.card-thin
|
||||
|
|
|
@ -105,11 +105,21 @@ ProjectPageApp.controller "ProjectPageController", ($scope, $modal, $http, $q) -
|
|||
if $scope.filter == "owned" and project.accessLevel != "owner"
|
||||
visible = false
|
||||
|
||||
if $scope.filter == "archived"
|
||||
# Only show archived projects
|
||||
if !project.archived
|
||||
visible = false
|
||||
else
|
||||
# Only show non-archived projects
|
||||
if project.archived
|
||||
visible = false
|
||||
|
||||
if visible
|
||||
$scope.visibleProjects.push project
|
||||
else
|
||||
# We don't want hidden selections
|
||||
project.selected = false
|
||||
$scope.updateSelectedProjects()
|
||||
|
||||
$scope.getSelectedTag = () ->
|
||||
for tag in $scope.tags
|
||||
|
@ -253,6 +263,27 @@ ProjectPageApp.controller "ProjectPageController", ($scope, $modal, $http, $q) -
|
|||
$scope.renameProject(project, newName)
|
||||
)
|
||||
|
||||
$scope.archiveSelectedProjects = () ->
|
||||
selected_projects = $scope.getSelectedProjects()
|
||||
selected_project_ids = $scope.getSelectedProjectIds()
|
||||
|
||||
for project in selected_projects
|
||||
project.archived = true
|
||||
|
||||
# Remove project from any tags
|
||||
for tag in $scope.tags
|
||||
$scope._removeProjectIdsFromTagArray(tag, selected_project_ids)
|
||||
|
||||
for project_id in selected_project_ids
|
||||
$http {
|
||||
method: "DELETE"
|
||||
url: "/project/#{project_id}"
|
||||
headers:
|
||||
"X-CSRF-Token": window.csrfToken
|
||||
}
|
||||
|
||||
$scope.updateVisibleProjects()
|
||||
|
||||
$scope.deleteSelectedProjects = () ->
|
||||
selected_projects = $scope.getSelectedProjects()
|
||||
selected_project_ids = $scope.getSelectedProjectIds()
|
||||
|
@ -270,7 +301,24 @@ ProjectPageApp.controller "ProjectPageController", ($scope, $modal, $http, $q) -
|
|||
for project_id in selected_project_ids
|
||||
$http {
|
||||
method: "DELETE"
|
||||
url: "/project/#{project_id}"
|
||||
url: "/project/#{project_id}?forever=true"
|
||||
headers:
|
||||
"X-CSRF-Token": window.csrfToken
|
||||
}
|
||||
|
||||
$scope.updateVisibleProjects()
|
||||
|
||||
$scope.restoreSelectedProjects = () ->
|
||||
selected_projects = $scope.getSelectedProjects()
|
||||
selected_project_ids = $scope.getSelectedProjectIds()
|
||||
|
||||
for project in selected_projects
|
||||
project.archived = false
|
||||
|
||||
for project_id in selected_project_ids
|
||||
$http {
|
||||
method: "POST"
|
||||
url: "/project/#{project_id}/restore"
|
||||
headers:
|
||||
"X-CSRF-Token": window.csrfToken
|
||||
}
|
||||
|
@ -296,17 +344,9 @@ ProjectPageApp.controller "ProjectListItemController", ($scope) ->
|
|||
return "?"
|
||||
|
||||
ProjectPageApp.controller "TagListController", ($scope) ->
|
||||
$scope.selectAllProjects = () ->
|
||||
$scope.filterProjects = (filter = "all") ->
|
||||
$scope._clearTags()
|
||||
$scope.setFilter("all")
|
||||
|
||||
$scope.selectOwnedProjects = () ->
|
||||
$scope._clearTags()
|
||||
$scope.setFilter("owned")
|
||||
|
||||
$scope.selectSharedProjects = () ->
|
||||
$scope._clearTags()
|
||||
$scope.setFilter("shared")
|
||||
$scope.setFilter(filter)
|
||||
|
||||
$scope._clearTags = () ->
|
||||
for tag in $scope.tags
|
||||
|
|
Loading…
Add table
Reference in a new issue