/** * Update task status in kanban view * @param int $targetStatus * @param int $taskId */ public function actionUpdateStatusInKanbanView($targetStatus, $taskId, $sourceKanbanType) { $response = array(); //Run update queries for update task staus and update type and sort order in kanban column $task = Task::getById(intval($taskId)); //set the scenario $task->setScenario('kanbanViewButtonClick'); $this->processStatusUpdateViaAjax($task, $targetStatus, false); TasksUtil::processKanbanItemUpdateOnButtonAction(intval($targetStatus), intval($taskId), intval($sourceKanbanType)); $subscriptionContent = TasksUtil::resolveAndRenderTaskCardDetailsSubscribersContent($task); $subscriptionContent .= TasksUtil::resolveSubscriptionLink($task, 'subscribe-task-link', 'unsubscribe-task-link'); $response['subscriptionContent'] = $subscriptionContent; echo CJSON::encode($response); }
/** * @covers resolveAndRenderTaskCardDetailsSubscribersContent */ public function testResolveAndRenderTaskCardDetailsSubscribersContent() { $hellodear = UserTestHelper::createBasicUser('hellodear'); $task = new Task(); $task->name = 'MyCardTest'; $task->owner = $hellodear; $this->assertTrue($task->save()); $task = Task::getById($task->id); $user = Yii::app()->user->userModel; TasksUtil::addSubscriber($hellodear, $task); $this->assertTrue($task->save()); $content = TasksUtil::resolveAndRenderTaskCardDetailsSubscribersContent($task); $this->assertContains('gravatar', $content); $this->assertContains('users/default/details', $content); $this->assertContains('hellodear', $content); $this->assertContains('task-owner', $content); }
/** * @param Task $task * @param $row * @return string */ protected function renderTaskCardDetailsContent(Task $task, $row) { $statusClass = 'status-' . $task->status; $content = $this->renderCardDataContent($this->cardColumns['completionBar'], $task, $row); $content .= ZurmoHtml::openTag('div', array('class' => 'task-details clearfix ' . $statusClass)); $content .= ZurmoHtml::tag('span', array('class' => 'task-status'), Task::getStatusDisplayName($task->status)); $content .= $this->resolveAndRenderTaskCardDetailsDueDateContent($task); $content .= ZurmoHtml::closeTag('div'); $content .= ZurmoHtml::openTag('div', array('class' => 'task-content clearfix')); $content .= $this->resolveAndRenderTaskCardDetailsStatusContent($task, $row); $content .= Yii::app()->custom->renderExtraAttributesWithNameInKanbanCard($this->cardColumns, $task, $row); $content .= ZurmoHtml::openTag('h4'); $content .= $this->renderCardDataContent($this->cardColumns['name'], $task, $row); $content .= ZurmoHtml::closeTag('h4'); if ($task->description != null) { $description = $task->description; if (strlen($description) > TaskKanbanBoard::TASK_DESCRIPTION_LENGTH) { $description = substr($description, 0, TaskKanbanBoard::TASK_DESCRIPTION_LENGTH) . '...'; } $content .= ZurmoHtml::tag('p', array(), $description); } $content .= ZurmoHtml::closeTag('div'); $content .= ZurmoHtml::openTag('div', array('class' => 'task-subscribers')); $content .= TasksUtil::resolveAndRenderTaskCardDetailsSubscribersContent($task); $content .= $this->renderCardDataContent($this->cardColumns['subscribe'], $task, $row); $content .= ZurmoHtml::closeTag('div'); return $content; }