/**
  * Update status for the task when dragging in the kanban view
  */
 public function actionUpdateStatusOnDragInKanbanView($type)
 {
     $getData = GetUtil::getData();
     $counter = 1;
     $response = array();
     if (count($getData['items']) > 0) {
         foreach ($getData['items'] as $taskId) {
             if ($taskId != '') {
                 $kanbanItem = KanbanItem::getByTask(intval($taskId));
                 $task = Task::getById(intval($taskId));
                 //if kanban type is completed
                 if ($type == KanbanItem::TYPE_COMPLETED) {
                     //kanban update has to be done first
                     $kanbanItem->sortOrder = TasksUtil::resolveAndGetSortOrderForTaskOnKanbanBoard($type, $task);
                     $kanbanItem->type = intval($type);
                     $kanbanItem->save();
                     //set the scenario
                     $task->setScenario('kanbanViewDrag');
                     $this->processStatusUpdateViaAjax($task, Task::STATUS_COMPLETED, false);
                     $response['button'] = '';
                     $response['status'] = Task::getStatusDisplayName($task->status);
                     $response['owner'] = $task->owner->getFullName();
                     $subscriptionContent = TasksUtil::resolveAndRenderTaskCardDetailsSubscribersContent($task);
                     $subscriptionContent .= TasksUtil::resolveSubscriptionLink($task, 'subscribe-task-link', 'unsubscribe-task-link');
                     $response['subscriptionContent'] = $subscriptionContent;
                 } else {
                     //When in the same column
                     if ($type == $kanbanItem->type) {
                         $kanbanItem->sortOrder = $counter;
                         $kanbanItem->save();
                     } else {
                         //This would be the one which is dragged across column
                         $targetStatus = TasksUtil::getDefaultTaskStatusForKanbanItemType(intval($type));
                         $this->processStatusUpdateViaAjax($task, $targetStatus, false);
                         $content = TasksUtil::resolveActionButtonForTaskByStatus($targetStatus, $this->getId(), $this->getModule()->getId(), intval($taskId));
                         $kanbanItem->sortOrder = $counter;
                         $kanbanItem->type = intval($type);
                         $kanbanItem->save();
                         $subscriptionContent = TasksUtil::resolveAndRenderTaskCardDetailsSubscribersContent($task);
                         $subscriptionContent .= TasksUtil::resolveSubscriptionLink($task, 'subscribe-task-link', 'unsubscribe-task-link');
                         $response['button'] = $content;
                         $response['status'] = Task::getStatusDisplayName($task->status);
                         $response['owner'] = $task->owner->getFullName();
                         $response['subscriptionContent'] = $subscriptionContent;
                     }
                 }
                 $counter++;
             }
         }
     }
     echo CJSON::encode($response);
 }