diff --git a/client/components/boards/boardsList.js b/client/components/boards/boardsList.js index b87c53b8e..eda45850f 100644 --- a/client/components/boards/boardsList.js +++ b/client/components/boards/boardsList.js @@ -86,58 +86,42 @@ BlazeComponent.extendComponent({ }); }, userHasTeams(){ - if(Meteor.user().teams) - { + if(Meteor.user().teams && Meteor.user().teams.length > 0) return true; - } - else{ + else return false; - } }, teamsDatas() { if(Meteor.user().teams) - { return Meteor.user().teams; - } - else{ + else return []; - } }, userHasOrgs(){ - if(Meteor.user().orgs) - { + if(Meteor.user().orgs && Meteor.user().orgs.length > 0) return true; - } - else{ + else return false; - } }, orgsDatas() { if(Meteor.user().orgs) - { return Meteor.user().orgs; - } - else{ + else return []; - } }, userHasOrgsOrTeams(){ let boolUserHasOrgs; - if(Meteor.user().orgs) - { + if(Meteor.user().orgs && Meteor.user().orgs.length > 0) boolUserHasOrgs = true; - } - else{ + else boolUserHasOrgs = false; - } + let boolUserHasTeams; - if(Meteor.user().teams) - { + if(Meteor.user().teams && Meteor.user().teams.length > 0) boolUserHasTeams = true; - } - else{ + else boolUserHasTeams = false; - } + return (boolUserHasOrgs || boolUserHasTeams); }, boards() { @@ -156,6 +140,7 @@ BlazeComponent.extendComponent({ if (FlowRouter.getRouteName() === 'home'){ query.$and[2].$or.push({'members.userId': Meteor.userId()}); + if(allowPrivateVisibilityOnly !== undefined && allowPrivateVisibilityOnly.booleanValue){ query.$and.push({'permission': 'private'}); } diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade index 40b098e0c..ba62157fb 100644 --- a/client/components/sidebar/sidebar.jade +++ b/client/components/sidebar/sidebar.jade @@ -31,26 +31,28 @@ template(name='homeSidebar') +activities(mode="board") template(name="membersWidget") - .board-widget.board-widget-members - h3 - i.fa.fa-users - | {{_ 'organizations'}} + if AtLeastOneOrgWasCreated + .board-widget.board-widget-members + h3 + i.fa.fa-users + | {{_ 'organizations'}} - .board-widget-content - +boardOrgGeneral - .clearfix - br - hr - .board-widget.board-widget-members - h3 - i.fa.fa-users - | {{_ 'teams'}} + .board-widget-content + +boardOrgGeneral + .clearfix + br + hr + if AtLeastOneTeamWasCreated + .board-widget.board-widget-members + h3 + i.fa.fa-users + | {{_ 'teams'}} - .board-widget-content - +boardTeamGeneral - .clearfix - br - hr + .board-widget-content + +boardTeamGeneral + .clearfix + br + hr .board-widget.board-widget-members h3 i.fa.fa-users diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js index 11af15db6..ee705f146 100644 --- a/client/components/sidebar/sidebar.js +++ b/client/components/sidebar/sidebar.js @@ -183,6 +183,7 @@ Template.memberPopup.helpers({ }, }); + Template.boardMenuPopup.events({ 'click .js-rename-board': Popup.open('boardChangeTitle'), 'click .js-open-rules-view'() { @@ -290,6 +291,42 @@ Template.leaveBoardPopup.helpers({ return Boards.findOne(Session.get('currentBoard')); }, }); +BlazeComponent.extendComponent({ + onCreated() { + this.error = new ReactiveVar(''); + this.loading = new ReactiveVar(false); + this.findOrgsOptions = new ReactiveVar({}); + this.findTeamsOptions = new ReactiveVar({}); + + this.page = new ReactiveVar(1); + this.teamPage = new ReactiveVar(1); + this.autorun(() => { + const limitOrgs = this.page.get() * Number.MAX_SAFE_INTEGER; + this.subscribe('org', this.findOrgsOptions.get(), limitOrgs, () => {}); + }); + + this.autorun(() => { + const limitTeams = this.teamPage.get() * Number.MAX_SAFE_INTEGER; + this.subscribe('team', this.findTeamsOptions.get(), limitTeams, () => {}); + }); + }, + + onRendered() { + this.setLoading(false); + }, + + setError(error) { + this.error.set(error); + }, + + setLoading(w) { + this.loading.set(w); + }, + + isLoading() { + return this.loading.get(); + }, +}).register('membersWidget'); Template.membersWidget.helpers({ isInvited() { @@ -307,6 +344,21 @@ Template.membersWidget.helpers({ isBoardAdmin() { return Meteor.user().isBoardAdmin(); }, + AtLeastOneOrgWasCreated(){ + let orgs = Org.find({}, {sort: { createdAt: -1 }}); + if(orgs === undefined) + return false; + + return orgs.count() > 0; + }, + + AtLeastOneTeamWasCreated(){ + let teams = Team.find({}, {sort: { createdAt: -1 }}); + if(teams === undefined) + return false; + + return teams.count() > 0; + }, }); Template.membersWidget.events({ diff --git a/client/components/users/userHeader.jade b/client/components/users/userHeader.jade index 456a450e3..98e8c36b9 100644 --- a/client/components/users/userHeader.jade +++ b/client/components/users/userHeader.jade @@ -49,10 +49,11 @@ template(name="memberMenuPopup") i.fa.fa-lock | {{_ 'admin-panel'}} hr - li - a.js-edit-profile - i.fa.fa-user - | {{_ 'edit-profile'}} + if isNotOAuth2AuthenticationMethod + li + a.js-edit-profile + i.fa.fa-user + | {{_ 'edit-profile'}} li a.js-change-settings i.fa.fa-cog @@ -62,10 +63,11 @@ template(name="memberMenuPopup") i.fa.fa-picture-o | {{_ 'edit-avatar'}} unless isSandstorm - li - a.js-change-password - i.fa.fa-key - | {{_ 'changePasswordPopup-title'}} + if isNotOAuth2AuthenticationMethod + li + a.js-change-password + i.fa.fa-key + | {{_ 'changePasswordPopup-title'}} li a.js-change-language i.fa.fa-flag diff --git a/client/components/users/userHeader.js b/client/components/users/userHeader.js index 5fe2598db..f3b139d26 100644 --- a/client/components/users/userHeader.js +++ b/client/components/users/userHeader.js @@ -22,6 +22,14 @@ Template.memberMenuPopup.helpers({ return false; } }, + isNotOAuth2AuthenticationMethod(){ + currentUser = Meteor.user(); + if (currentUser) { + return currentUser.authenticationMethod != 'OAuth2'; + } else { + return true; + } + } }); Template.memberMenuPopup.events({ diff --git a/models/users.js b/models/users.js index 6796f7251..cd1c674c8 100644 --- a/models/users.js +++ b/models/users.js @@ -445,6 +445,7 @@ Users.safeFields = { 'profile.initials': 1, orgs: 1, teams: 1, + authenticationMethod: 1, }; if (Meteor.isClient) { diff --git a/server/publications/users.js b/server/publications/users.js index fd6147d13..df50f7be8 100644 --- a/server/publications/users.js +++ b/server/publications/users.js @@ -25,6 +25,7 @@ Meteor.publish('user-admin', function() { isAdmin: 1, teams: 1, orgs: 1, + authenticationMethod: 1, }, }); });