Example #1
0
 /**
  * Add a new elapsed time record to a specified task
  */
 public function add(array $data, array $parameters = array())
 {
     global $USER;
     $result = array();
     if ($taskId = $this->checkTaskId($data['TASK_ID'])) {
         $task = \CTaskItem::getInstanceFromPool($taskId, $USER->GetId());
         // or directly, new \CTaskItem($taskId, $USER->GetId());
         list($task, $id) = \CTaskElapsedItem::add($task, $data);
         $result['DATA']['ELAPSEDTIME']['ID'] = $id;
     }
     return $result;
 }
Example #2
0
 public static function add($userId, $taskId, array $data, array $parameters = array('PUBLIC_MODE' => false))
 {
     $errors = static::ensureHaveErrorCollection($parameters);
     if ($parameters['PUBLIC_MODE']) {
         $data = static::filterData($data, $errors);
     }
     $rData = array();
     $rCan = array();
     if ($errors->checkNoFatals()) {
         $task = static::getTask($userId, $taskId);
         $item = \CTaskElapsedItem::add($task, $data);
         $rData['ID'] = $item->getId();
     }
     return array('TASK' => $task, 'ERRORS' => $errors, 'DATA' => $rData, 'CAN' => $rCan);
 }
Example #3
0
 if ($arTask) {
     $action = $_REQUEST['ACTION'];
     $taskID = $arTask["ID"];
     $redirectTo = null;
     try {
         if ($action == "delete") {
             if ($_REQUEST["back_url"]) {
                 $redirectTo = $_REQUEST["back_url"];
             } else {
                 $redirectTo = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_TASKS"]);
             }
             $oTask->delete();
         } elseif ($action == "elapsed_add") {
             $redirectTo = $APPLICATION->GetCurPageParam(RandString(8), array("ACTION", "sessid")) . "#elapsed";
             $minutes = (int) $_POST['HOURS'] * 60 + (int) $_POST['MINUTES'];
             CTaskElapsedItem::add($oTask, array('MINUTES' => $minutes, 'COMMENT_TEXT' => trim($_POST["COMMENT_TEXT"])));
         } elseif ($action === 'elapsed_update') {
             $seconds = (int) $_POST['HOURS'] * 3600 + (int) $_POST['MINUTES'] * 60;
             if (isset($_POST['SECONDS']) && $_POST['SECONDS'] > 0) {
                 $seconds += (int) $_POST['SECONDS'];
             }
             $redirectTo = $APPLICATION->GetCurPageParam("", array("ACTION", "sessid")) . "#elapsed";
             $oElapsedItem = new CTaskElapsedItem($oTask, (int) $_POST['ELAPSED_ID']);
             $oElapsedItem->update(array('SECONDS' => $seconds, 'COMMENT_TEXT' => trim($_POST["COMMENT_TEXT"])));
         } elseif ($action === 'elapsed_delete') {
             $redirectTo = $APPLICATION->GetCurPageParam("", array("ACTION", "sessid", "ELAPSED_ID")) . "#elapsed";
             $oElapsedItem = new CTaskElapsedItem($oTask, (int) $_GET['ELAPSED_ID']);
             $oElapsedItem->delete();
         } else {
             $arMap = array('close' => 'complete', 'start' => 'startExecution', 'accept' => 'accept', 'renew' => 'renew', 'defer' => 'defer', 'decline' => 'decline', 'delegate' => 'delegate', 'approve' => 'approve', 'disapprove' => 'disapprove');
             if (isset($arMap[$action])) {