/** * @covers processKanbanItemUpdateOnButtonAction */ public function testProcessKanbanItemUpdateWithSourceKanbanTypeAsInProgress() { $tasks = Task::getByName('MyFirstKanbanTask'); $task = $tasks[0]; $tasks = Task::getByName('MySecondKanbanTask'); $task2 = $tasks[0]; $tasks = Task::getByName('MyThirdKanbanTask'); $task3 = $tasks[0]; $kanbanItem2 = KanbanItem::getByTask($task2->id); $task2->setScenario('kanbanViewButtonClick'); //Check for target status waiting for acceptance(should not change sort order) TasksUtil::processKanbanItemUpdateOnButtonAction(Task::STATUS_AWAITING_ACCEPTANCE, $task2->id, $kanbanItem2->type); $kanbanItem = KanbanItem::getByTask($task->id); $kanbanItem2 = KanbanItem::getByTask($task2->id); $kanbanItem3 = KanbanItem::getByTask($task3->id); $this->assertEquals($task->id, $kanbanItem->task->id); $this->assertEquals(3, $kanbanItem->sortOrder); $this->assertEquals($task2->id, $kanbanItem2->task->id); $this->assertEquals(1, $kanbanItem2->sortOrder); $this->assertEquals($task3->id, $kanbanItem3->task->id); $this->assertEquals(2, $kanbanItem3->sortOrder); $task2->setScenario('kanbanViewButtonClick'); //Check for target status rejected(should not change sort order) TasksUtil::processKanbanItemUpdateOnButtonAction(Task::STATUS_REJECTED, $task2->id, $kanbanItem2->type); $kanbanItem = KanbanItem::getByTask($task->id); $kanbanItem2 = KanbanItem::getByTask($task2->id); $kanbanItem3 = KanbanItem::getByTask($task3->id); $this->assertEquals($task->id, $kanbanItem->task->id); $this->assertEquals(3, $kanbanItem->sortOrder); $this->assertEquals($task2->id, $kanbanItem2->task->id); $this->assertEquals(1, $kanbanItem2->sortOrder); $this->assertEquals($task3->id, $kanbanItem3->task->id); $this->assertEquals(2, $kanbanItem3->sortOrder); $task2->setScenario('kanbanViewButtonClick'); //Check for target status in progress(should not change sort order) TasksUtil::processKanbanItemUpdateOnButtonAction(Task::STATUS_IN_PROGRESS, $task2->id, $kanbanItem2->type); $kanbanItem = KanbanItem::getByTask($task->id); $kanbanItem2 = KanbanItem::getByTask($task2->id); $kanbanItem3 = KanbanItem::getByTask($task3->id); $this->assertEquals($task->id, $kanbanItem->task->id); $this->assertEquals(3, $kanbanItem->sortOrder); $this->assertEquals($task2->id, $kanbanItem2->task->id); $this->assertEquals(1, $kanbanItem2->sortOrder); $this->assertEquals($task3->id, $kanbanItem3->task->id); $this->assertEquals(2, $kanbanItem3->sortOrder); $task2->setScenario('kanbanViewButtonClick'); //Check for target status completed(should change sort order) TasksUtil::processKanbanItemUpdateOnButtonAction(Task::STATUS_COMPLETED, $task2->id, $kanbanItem2->type); $kanbanItem = KanbanItem::getByTask($task->id); $kanbanItem2 = KanbanItem::getByTask($task2->id); $kanbanItem3 = KanbanItem::getByTask($task3->id); $this->assertEquals($task->id, $kanbanItem->task->id); $this->assertEquals(2, $kanbanItem->sortOrder); $this->assertEquals($task2->id, $kanbanItem2->task->id); $this->assertEquals(KanbanItem::TYPE_COMPLETED, $kanbanItem2->type); $this->assertEquals(1, $kanbanItem2->sortOrder); $this->assertEquals($task3->id, $kanbanItem3->task->id); $this->assertEquals(1, $kanbanItem3->sortOrder); }
/** * 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); }