瀏覽代碼

Merge branch 'Emile840-master'

Lauri Ojansivu 3 年之前
父節點
當前提交
76f4b8316b

+ 13 - 28
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'});
       }

+ 22 - 20
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'}}
-
-    .board-widget-content
-      +boardOrgGeneral
-      .clearfix
-  br
-  hr
-  .board-widget.board-widget-members
-    h3
-      i.fa.fa-users
-      | {{_ 'teams'}}
-
-    .board-widget-content
-      +boardTeamGeneral
-      .clearfix
-  br
-  hr
+  if AtLeastOneOrgWasCreated
+    .board-widget.board-widget-members
+      h3
+        i.fa.fa-users
+        | {{_ 'organizations'}}
+
+      .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.board-widget-members
     h3
       i.fa.fa-users

+ 52 - 0
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({

+ 10 - 8
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

+ 8 - 0
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({

+ 1 - 0
models/users.js

@@ -445,6 +445,7 @@ Users.safeFields = {
   'profile.initials': 1,
   orgs: 1,
   teams: 1,
+  authenticationMethod: 1,
 };
 
 if (Meteor.isClient) {

+ 1 - 0
server/publications/users.js

@@ -25,6 +25,7 @@ Meteor.publish('user-admin', function() {
       isAdmin: 1,
       teams: 1,
       orgs: 1,
+      authenticationMethod: 1,
     },
   });
 });