From 6d9d69e01df3eea61590bb1e7a00c222d2d8582f Mon Sep 17 00:00:00 2001 From: Emile NDAGIJIMANA Date: Mon, 30 Aug 2021 15:49:37 +0200 Subject: [PATCH] Fix bugs #3978 and #3979 --- client/components/boards/boardBody.jade | 43 +++++++++++++------------ client/components/boards/boardBody.js | 11 +++++++ client/components/boards/boardsList.js | 19 +++++++++-- 3 files changed, 50 insertions(+), 23 deletions(-) diff --git a/client/components/boards/boardBody.jade b/client/components/boards/boardBody.jade index c11d0bd22..195442619 100644 --- a/client/components/boards/boardBody.jade +++ b/client/components/boards/boardBody.jade @@ -13,26 +13,29 @@ template(name="board") +spinner template(name="boardBody") - .board-wrapper(class=currentBoard.colorClass) - +sidebar - .board-canvas.js-swimlanes( - class="{{#if Sidebar.isOpen}}is-sibling-sidebar-open{{/if}}" - class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}" - class="{{#if draggingActive.get}}is-dragging-active{{/if}}") - if showOverlay.get - .board-overlay - if currentBoard.isTemplatesBoard - each currentBoard.swimlanes - +swimlane(this) - else if isViewSwimlanes - each currentBoard.swimlanes - +swimlane(this) - else if isViewLists - +listsGroup(currentBoard) - else if isViewCalendar - +calendarView - else - +listsGroup(currentBoard) + if notDisplayThisBoard + {{_ 'tableVisibilityMode-allowPrivateOnly'}} + else + .board-wrapper(class=currentBoard.colorClass) + +sidebar + .board-canvas.js-swimlanes( + class="{{#if Sidebar.isOpen}}is-sibling-sidebar-open{{/if}}" + class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}" + class="{{#if draggingActive.get}}is-dragging-active{{/if}}") + if showOverlay.get + .board-overlay + if currentBoard.isTemplatesBoard + each currentBoard.swimlanes + +swimlane(this) + else if isViewSwimlanes + each currentBoard.swimlanes + +swimlane(this) + else if isViewLists + +listsGroup(currentBoard) + else if isViewCalendar + +calendarView + else + +listsGroup(currentBoard) template(name="calendarView") if isViewCalendar diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index 900931d05..40b081ff2 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -33,6 +33,7 @@ BlazeComponent.extendComponent({ BlazeComponent.extendComponent({ onCreated() { + Meteor.subscribe('tableVisibilityModeSettings'); this.showOverlay = new ReactiveVar(false); this.draggingActive = new ReactiveVar(false); this._isDragging = false; @@ -235,6 +236,16 @@ BlazeComponent.extendComponent({ } }, + notDisplayThisBoard(){ + let allowPrivateVisibilityOnly = TableVisibilityModeSettings.findOne('tableVisibilityMode-allowPrivateOnly'); + let currentBoard = Boards.findOne(Session.get('currentBoard')); + if(allowPrivateVisibilityOnly !== undefined && allowPrivateVisibilityOnly.booleanValue && currentBoard.permission == 'public'){ + return true; + } + + return false; + }, + isViewSwimlanes() { currentUser = Meteor.user(); if (currentUser) { diff --git a/client/components/boards/boardsList.js b/client/components/boards/boardsList.js index ce71eff08..b87c53b8e 100644 --- a/client/components/boards/boardsList.js +++ b/client/components/boards/boardsList.js @@ -22,6 +22,7 @@ Template.boardListHeaderBar.helpers({ BlazeComponent.extendComponent({ onCreated() { Meteor.subscribe('setting'); + Meteor.subscribe('tableVisibilityModeSettings'); let currUser = Meteor.user(); let userLanguage; if(currUser && currUser.profile){ @@ -140,7 +141,7 @@ BlazeComponent.extendComponent({ return (boolUserHasOrgs || boolUserHasTeams); }, boards() { - const query = { + let query = { //archived: false, ////type: { $in: ['board','template-container'] }, //type: 'board', @@ -150,9 +151,14 @@ BlazeComponent.extendComponent({ { $or:[] } ] }; + + let allowPrivateVisibilityOnly = TableVisibilityModeSettings.findOne('tableVisibilityMode-allowPrivateOnly'); + if (FlowRouter.getRouteName() === 'home'){ query.$and[2].$or.push({'members.userId': Meteor.userId()}); - + if(allowPrivateVisibilityOnly !== undefined && allowPrivateVisibilityOnly.booleanValue){ + query.$and.push({'permission': 'private'}); + } const currUser = Users.findOne(Meteor.userId()); // const currUser = Users.findOne(Meteor.userId(), { @@ -183,7 +189,14 @@ BlazeComponent.extendComponent({ query.$and[2].$or.push({'teams.teamId': {$in : teamsIds}}); } } - else query.permission = 'public'; + else if(allowPrivateVisibilityOnly !== undefined && !allowPrivateVisibilityOnly.booleanValue){ + query = { + archived: false, + //type: { $in: ['board','template-container'] }, + type: 'board', + permission: 'public', + }; + } return Boards.find(query, { sort: { sort: 1 /* boards default sorting */ },