From 085c2529d979f7cd7987c6ef276e859065218e1b Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Mon, 13 Aug 2018 12:13:44 +0100 Subject: [PATCH 1/6] Inject isOverleaf setting globally --- services/web/app/coffee/infrastructure/ExpressLocals.coffee | 4 ++++ services/web/app/views/layout.pug | 1 + 2 files changed, 5 insertions(+) diff --git a/services/web/app/coffee/infrastructure/ExpressLocals.coffee b/services/web/app/coffee/infrastructure/ExpressLocals.coffee index 5c71afbe5d..f31d94b8e2 100644 --- a/services/web/app/coffee/infrastructure/ExpressLocals.coffee +++ b/services/web/app/coffee/infrastructure/ExpressLocals.coffee @@ -333,3 +333,7 @@ module.exports = (app, webRouter, privateApiRouter, publicApiRouter)-> defaultLineHeight : if isOl then 'normal' else 'compact' renderAnnouncements : !isOl next() + + webRouter.use (req, res, next) -> + res.locals.exposedSettings = + isOverleaf: Settings.overleaf? diff --git a/services/web/app/views/layout.pug b/services/web/app/views/layout.pug index 9e633667eb..d820f2b4a1 100644 --- a/services/web/app/views/layout.pug +++ b/services/web/app/views/layout.pug @@ -70,6 +70,7 @@ html(itemscope, itemtype='http://schema.org/Product') window.systemMessages = !{JSON.stringify(systemMessages).replace(/\//g, '\\/')}; window.ab = {}; window.user_id = '#{getLoggedInUserId()}'; + window.exposedSettings = JSON.parse('!{JSON.stringify(exposedSettings).replace(/\//g, "\\/")}'); - if (typeof(settings.algolia) != "undefined") script. From db16fad6c9d8f56877a643df9f593697651087f4 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Mon, 13 Aug 2018 12:32:32 +0100 Subject: [PATCH 2/6] Fix --- services/web/app/coffee/infrastructure/ExpressLocals.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/web/app/coffee/infrastructure/ExpressLocals.coffee b/services/web/app/coffee/infrastructure/ExpressLocals.coffee index f31d94b8e2..d4444b3542 100644 --- a/services/web/app/coffee/infrastructure/ExpressLocals.coffee +++ b/services/web/app/coffee/infrastructure/ExpressLocals.coffee @@ -335,5 +335,6 @@ module.exports = (app, webRouter, privateApiRouter, publicApiRouter)-> next() webRouter.use (req, res, next) -> - res.locals.exposedSettings = + res.locals.ExposedSettings = isOverleaf: Settings.overleaf? + next() From 274ac8b1ba48be1c19b8826f9366eb23307d5f89 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Mon, 13 Aug 2018 12:32:49 +0100 Subject: [PATCH 3/6] Another fix --- services/web/app/views/layout.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/app/views/layout.pug b/services/web/app/views/layout.pug index d820f2b4a1..15d3150035 100644 --- a/services/web/app/views/layout.pug +++ b/services/web/app/views/layout.pug @@ -70,7 +70,7 @@ html(itemscope, itemtype='http://schema.org/Product') window.systemMessages = !{JSON.stringify(systemMessages).replace(/\//g, '\\/')}; window.ab = {}; window.user_id = '#{getLoggedInUserId()}'; - window.exposedSettings = JSON.parse('!{JSON.stringify(exposedSettings).replace(/\//g, "\\/")}'); + window.ExposedSettings = JSON.parse('!{JSON.stringify(ExposedSettings).replace(/\//g, "\\/")}'); - if (typeof(settings.algolia) != "undefined") script. From 5836c029c82e42eaea87f9cc43de8ba19e5ba03a Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Mon, 13 Aug 2018 12:33:31 +0100 Subject: [PATCH 4/6] Show archive heading if archiving and on OL --- services/web/app/views/project/list/modals.pug | 1 + .../coffee/main/project-list/modal-controllers.coffee | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/services/web/app/views/project/list/modals.pug b/services/web/app/views/project/list/modals.pug index aaacf660a6..9ac969b518 100644 --- a/services/web/app/views/project/list/modals.pug +++ b/services/web/app/views/project/list/modals.pug @@ -192,6 +192,7 @@ script(type='text/ng-template', id='deleteProjectsModalTemplate') ng-click="cancel()" ) × h3(ng-if="action == 'delete'") #{translate("delete_projects")} + h3(ng-if="action == 'archive'") #{translate("archive_projects")} h3(ng-if="action == 'leave'") #{translate("leave_projects")} h3(ng-if="action == 'delete-and-leave'") #{translate("delete_and_leave_projects")} .modal-body diff --git a/services/web/public/coffee/main/project-list/modal-controllers.coffee b/services/web/public/coffee/main/project-list/modal-controllers.coffee index 609a16cb77..a8e5d5ec8f 100644 --- a/services/web/public/coffee/main/project-list/modal-controllers.coffee +++ b/services/web/public/coffee/main/project-list/modal-controllers.coffee @@ -102,10 +102,15 @@ define [ $scope.projectsToDelete = projects.filter (project) -> project.accessLevel == "owner" $scope.projectsToLeave = projects.filter (project) -> project.accessLevel != "owner" + if $scope.projectsToLeave.length > 0 and $scope.projectsToDelete.length > 0 $scope.action = "delete-and-leave" else if $scope.projectsToLeave.length == 0 and $scope.projectsToDelete.length > 0 - $scope.action = "delete" + projectsToArchive = $scope.projectsToDelete.filter (project) -> !project.archived + if projectsToArchive.length > 0 and window.ExposedSettings.isOverleaf + $scope.action = "archive" + else + $scope.action = "delete" else $scope.action = "leave" From 009c5c363b1b5cca57cf22b5f054384115fef425 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Mon, 13 Aug 2018 13:52:21 +0100 Subject: [PATCH 5/6] Also fix modal body for archiving projects --- services/web/app/views/project/list/modals.pug | 3 ++- .../coffee/main/project-list/modal-controllers.coffee | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/services/web/app/views/project/list/modals.pug b/services/web/app/views/project/list/modals.pug index 9ac969b518..3fd8b5b1f6 100644 --- a/services/web/app/views/project/list/modals.pug +++ b/services/web/app/views/project/list/modals.pug @@ -197,7 +197,8 @@ script(type='text/ng-template', id='deleteProjectsModalTemplate') h3(ng-if="action == 'delete-and-leave'") #{translate("delete_and_leave_projects")} .modal-body div(ng-show="projectsToDelete.length > 0") - p #{translate("about_to_delete_projects")} + p(ng-if="action == 'delete'") #{translate("about_to_delete_projects")} + p(ng-if="action == 'archive'") #{translate("about_to_archive_projects")} ul li(ng-repeat="project in projectsToDelete | orderBy:'name'") strong {{project.name}} diff --git a/services/web/public/coffee/main/project-list/modal-controllers.coffee b/services/web/public/coffee/main/project-list/modal-controllers.coffee index a8e5d5ec8f..bec9a8efb4 100644 --- a/services/web/public/coffee/main/project-list/modal-controllers.coffee +++ b/services/web/public/coffee/main/project-list/modal-controllers.coffee @@ -101,13 +101,13 @@ define [ App.controller 'DeleteProjectsModalController', ($scope, $modalInstance, $timeout, projects) -> $scope.projectsToDelete = projects.filter (project) -> project.accessLevel == "owner" $scope.projectsToLeave = projects.filter (project) -> project.accessLevel != "owner" - + $scope.projectsToArchive = projects.filter (project) -> + project.accessLevel == "owner" and !project.archived if $scope.projectsToLeave.length > 0 and $scope.projectsToDelete.length > 0 $scope.action = "delete-and-leave" else if $scope.projectsToLeave.length == 0 and $scope.projectsToDelete.length > 0 - projectsToArchive = $scope.projectsToDelete.filter (project) -> !project.archived - if projectsToArchive.length > 0 and window.ExposedSettings.isOverleaf + if $scope.projectsToArchive.length > 0 and window.ExposedSettings.isOverleaf $scope.action = "archive" else $scope.action = "delete" From bd94e55ce912b773e483ec4ef8fcc2286df61e99 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Mon, 13 Aug 2018 13:59:35 +0100 Subject: [PATCH 6/6] Handle archive and leave action --- services/web/app/views/project/list/modals.pug | 5 +++-- .../public/coffee/main/project-list/modal-controllers.coffee | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/services/web/app/views/project/list/modals.pug b/services/web/app/views/project/list/modals.pug index 3fd8b5b1f6..d3d8e25f23 100644 --- a/services/web/app/views/project/list/modals.pug +++ b/services/web/app/views/project/list/modals.pug @@ -195,10 +195,11 @@ script(type='text/ng-template', id='deleteProjectsModalTemplate') h3(ng-if="action == 'archive'") #{translate("archive_projects")} h3(ng-if="action == 'leave'") #{translate("leave_projects")} h3(ng-if="action == 'delete-and-leave'") #{translate("delete_and_leave_projects")} + h3(ng-if="action == 'archive-and-leave'") #{translate("archive_and_leave_projects")} .modal-body div(ng-show="projectsToDelete.length > 0") - p(ng-if="action == 'delete'") #{translate("about_to_delete_projects")} - p(ng-if="action == 'archive'") #{translate("about_to_archive_projects")} + p(ng-if="action == 'delete' || action == 'delete-and-leave'") #{translate("about_to_delete_projects")} + p(ng-if="action == 'archive' || action == 'archive-and-leave'") #{translate("about_to_archive_projects")} ul li(ng-repeat="project in projectsToDelete | orderBy:'name'") strong {{project.name}} diff --git a/services/web/public/coffee/main/project-list/modal-controllers.coffee b/services/web/public/coffee/main/project-list/modal-controllers.coffee index bec9a8efb4..42a11500cf 100644 --- a/services/web/public/coffee/main/project-list/modal-controllers.coffee +++ b/services/web/public/coffee/main/project-list/modal-controllers.coffee @@ -105,7 +105,10 @@ define [ project.accessLevel == "owner" and !project.archived if $scope.projectsToLeave.length > 0 and $scope.projectsToDelete.length > 0 - $scope.action = "delete-and-leave" + if $scope.projectsToArchive.length > 0 and window.ExposedSettings.isOverleaf + $scope.action = "archive-and-leave" + else + $scope.action = "delete-and-leave" else if $scope.projectsToLeave.length == 0 and $scope.projectsToDelete.length > 0 if $scope.projectsToArchive.length > 0 and window.ExposedSettings.isOverleaf $scope.action = "archive"