コード例 #1
0
 /**
  * @covers getTaskSubscribers
  */
 public function testGetTaskSubscribers()
 {
     $user = User::getByUsername('steven');
     $tasks = Task::getByName('MyTest');
     $task = $tasks[0];
     $subscribers = TasksUtil::getTaskSubscribers($task);
     $found = false;
     foreach ($subscribers as $subscriber) {
         if ($subscriber->id == $user->id) {
             $found = true;
         }
     }
     $this->assertTrue($found);
 }
コード例 #2
0
 /**
  * Gets notification subscribers
  * @param Task $task
  * @param $action
  * @param User $relatedUser
  * @return array
  */
 public static function resolvePeopleToSendNotification(Task $task, $action, User $relatedUser = null)
 {
     assert('is_string($action)');
     $peopleToSendNotification = array();
     if ($action == self::TASK_NEW || $action == self::TASK_OWNER_CHANGE || $action == self::TASK_STATUS_BECOMES_REJECTED) {
         $peopleToSendNotification[] = $task->owner;
     } elseif ($action == self::TASK_STATUS_BECOMES_AWAITING_ACCEPTANCE) {
         $peopleToSendNotification[] = $task->requestedByUser;
     } elseif ($action == self::TASK_STATUS_BECOMES_COMPLETED || $action == self::TASK_NEW_COMMENT) {
         $peopleToSendNotification = TasksUtil::getTaskSubscribers($task);
         if ($action == self::TASK_NEW_COMMENT && $relatedUser != null) {
             foreach ($peopleToSendNotification as $key => $person) {
                 if ($person->getClassId('Item') == $relatedUser->getClassId('Item')) {
                     unset($peopleToSendNotification[$key]);
                 }
             }
         }
         if ($action == self::TASK_STATUS_BECOMES_COMPLETED && Yii::app()->user->userModel->id == $task->owner->id) {
             foreach ($peopleToSendNotification as $key => $person) {
                 if ($person->getClassId('Item') == $task->owner->getClassId('Item')) {
                     unset($peopleToSendNotification[$key]);
                 }
             }
         }
     }
     return $peopleToSendNotification;
 }
コード例 #3
0
 /**
  * Resolve and render task card details subscribers content
  * @param Task $task
  * @return type
  */
 public static function resolveAndRenderTaskCardDetailsSubscribersContent(Task $task)
 {
     $content = null;
     $subscribedUsers = TasksUtil::getTaskSubscribers($task);
     foreach ($subscribedUsers as $user) {
         if ($user->isSame($task->owner)) {
             $content .= TasksUtil::renderSubscriberImageAndLinkContent($user, 20, 'task-owner');
             break;
         }
     }
     //To take care of the case of duplicates
     $addedSubscribers = array();
     foreach ($subscribedUsers as $user) {
         if (!$user->isSame($task->owner)) {
             if (!in_array($user->id, $addedSubscribers)) {
                 $content .= TasksUtil::renderSubscriberImageAndLinkContent($user, 20);
                 $addedSubscribers[] = $user->id;
             }
         }
     }
     return $content;
 }