コード例 #1
0
 /**
  * @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);
 }
コード例 #2
0
 /**
  * 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);
 }