public static function getActivityItemsModels($data, $isLink = false)
 {
     $text = '';
     foreach ($data->activityItems as $activityItem) {
         $model = TasksUtil::castDownActivityItem($activityItem);
         $modelClassName = get_class($model);
         if ($isLink) {
             $moduleClassName = $modelClassName::getModuleClassName();
             $moduleId = $moduleClassName::getDirectoryName();
             if (null != ($stateAdapterClassName = $moduleClassName::getStateMetadataAdapterClassName())) {
                 $moduleClassName = $stateAdapterClassName::getModuleClassNameByModel($model);
                 $moduleId = $moduleClassName::getDirectoryName();
             }
             $linkRoute = '/' . $moduleId . '/default/details/';
             $text .= static::getLinkStringForActivityItem($model, $linkRoute, $moduleClassName);
         } else {
             $text .= static::getNameForActivityItem(strval($model), $modelClassName);
         }
     }
     return trim($text, ';');
 }
 public function actionEdit($id, $redirectUrl = null)
 {
     $task = Task::getById(intval($id));
     ControllerSecurityUtil::resolveAccessCanCurrentUserWriteModel($task);
     if ($task->project->id > 0) {
         $this->redirect(Yii::app()->createUrl('projects/default/details', array('id' => $task->project->id, 'openToTaskId' => $task->id)));
     } elseif ($task->activityItems->count() > 0) {
         try {
             $castedDownModel = TasksUtil::castDownActivityItem($task->activityItems[0]);
             $moduleClassName = StateMetadataAdapter::resolveModuleClassNameByModel($castedDownModel);
             $this->redirect(Yii::app()->createUrl($moduleClassName::getDirectoryName() . '/default/details', array('id' => $castedDownModel->id, 'kanbanBoard' => true, 'openToTaskId' => $task->id)));
         } catch (NotFoundException $e) {
             //Something is missing or deleted. Fallback to home page
             $this->redirect(Yii::app()->createUrl('home/default/index'));
         }
     } else {
         $this->redirect(Yii::app()->createUrl('tasks/default/list', array('openToTaskId' => $id)));
     }
 }
示例#3
0
 /**
  * Resolves the related project or first related activityItem model
  * @param Task $task
  * @return null|RedBeanModel $model
  */
 public static function resolveFirstRelatedModel(Task $task)
 {
     if ($task->project->id > 0) {
         return $task->project;
     } elseif ($task->activityItems->count() > 0) {
         try {
             $castedDownModel = TasksUtil::castDownActivityItem($task->activityItems[0]);
             return $castedDownModel;
         } catch (NotFoundException $e) {
         }
     }
     return null;
 }