From e44368e1b2c37e55e4c3de239408023da263cb9b Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@enhancesoft.com>
Date: Thu, 22 Mar 2018 11:26:45 +0000
Subject: [PATCH] Teams: Members Management

---
 include/class.team.php     | 10 ++++++++--
 include/staff/team.inc.php |  2 +-
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/include/class.team.php b/include/class.team.php
index d6963eb92..a4fd4f8c7 100644
--- a/include/class.team.php
+++ b/include/class.team.php
@@ -208,13 +208,19 @@ implements TemplateVariable {
           }
           $member->setAlerts($alerts);
       }
-      if (!$errors && $dropped) {
+
+      if ($errors)
+          return false;
+
+      $this->members->saveAll();
+      if ($dropped) {
           $this->members
               ->filter(array('staff_id__in' => array_keys($dropped)))
               ->delete();
           $this->members->reset();
       }
-      return !$errors;
+
+      return true;
     }
 
     function save($refetch=false) {
diff --git a/include/staff/team.inc.php b/include/staff/team.inc.php
index 254d1559d..9362db27d 100644
--- a/include/staff/team.inc.php
+++ b/include/staff/team.inc.php
@@ -231,7 +231,7 @@ $(document).on('click', 'a.drop-membership', function() {
 });
 
 <?php
-if ($team) {
+if ($team && $team->members) {
     foreach ($team->members->sort(function($a) { return $a->staff->getName(); }) as $member) {
         echo sprintf('addMember(%d, %s, %d, %s);',
             $member->staff_id,
-- 
GitLab