1
0
Fork 0
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:
James Allen 2014-06-16 15:06:58 +01:00
parent 802aae6148
commit 81ee0f4342
2 changed files with 78 additions and 23 deletions
services/web
app/views/project
public/coffee

View file

@ -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

View file

@ -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