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))); } }
/** * 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; }