1) { $date = (isset($arrayAux[0]))? trim($arrayAux[0]) : ""; $workspace = (isset($arrayAux[1]))? trim($arrayAux[1]) : ""; $action = (isset($arrayAux[2]))? trim($arrayAux[2]) : ""; $status = (isset($arrayAux[3]))? trim($arrayAux[3]) : ""; $description = (isset($arrayAux[4]))? trim($arrayAux[4]) : ""; } $mktDate = (!empty($date))? mktimeDate($date) : 0; //Filter $sw = 1; if ($filter["workspace"] != "ALL" && $workspace != $filter["workspace"]) { $sw = 0; } if ($filter["status"] != "ALL") { switch ($filter["status"]) { case "COMPLETED": if ($status != "action") { $sw = 0; } break; case "FAILED": if ($status == "action") { $sw = 0; } break; } } if (!empty($filter["dateFrom"]) && $mktDate > 0) { if (!(mktimeDate($filter["dateFrom"]) <= $mktDate)) { $sw = 0; } } if (!empty($filter["dateTo"]) && $mktDate > 0) { if (!($mktDate <= mktimeDate($filter["dateTo"] . " 23:59:59"))) { $sw = 0; } } $arrayData = array(); if ($sw == 1) { $arrayData = array( "DATE" => $date, "WORKSPACE" => $workspace, "ACTION" => $action, "STATUS" => $status, "DESCRIPTION" => $description ); } return $arrayData; } function cronDataGet($filter, $r, $i) { $r = $r + 1; //+ 1, to determine the next page $i = $i + 1; $arrayData = array(); $strAux = null; $numRec = 0; $cont = 0; $file = PATH_DATA . "log" . PATH_SEP . "cron.log"; if (file_exists($file)) { $fh = fopen($file, "r"); for($pos = 0; fseek($fh, $pos, SEEK_END) !== -1; $pos--) { $char = fgetc($fh); if ($char == "\n") { $strAux = trim($strAux); if (!empty($strAux)) { $arrayAux = cronArraySet($strAux, $filter); if (count($arrayAux) > 0) { $cont = $cont + 1; if ($cont >= $i && count($arrayData) + 1 <= $r) { $arrayData[] = $arrayAux; $numRec = $cont; } } } if (count($arrayData) == $r) { break; } $strAux = null; $char = null; } $strAux = $char . $strAux; } $strAux = trim($strAux); if (!empty($strAux)) { $arrayAux = cronArraySet($strAux, $filter); if (count($arrayAux) > 0) { $cont = $cont + 1; if ($cont >= $i && count($arrayData) + 1 <= $r) { $arrayData[] = $arrayAux; $numRec = $cont; } } } fclose($fh); } //Delete element $r = $r - 1; if (count($arrayData) > $r) { $arrayAux = array_pop($arrayData); } return array($numRec, $arrayData); } $option = (isset($_REQUEST["option"]))? $_REQUEST["option"] : null; $response = array(); switch ($option) { case "LST": $pageSize = $_REQUEST["pageSize"]; $workspace = $_REQUEST["workspace"]; $status = $_REQUEST["status"]; $dateFrom = $_REQUEST["dateFrom"]; $dateTo = $_REQUEST["dateTo"]; $arrayFilter = array( "workspace" => $workspace, "status" => $status, "dateFrom" => str_replace("T00:00:00", null, $dateFrom), "dateTo" => str_replace("T00:00:00", null, $dateTo) ); $limit = isset($_REQUEST["limit"])? $_REQUEST["limit"] : $pageSize; $start = isset($_REQUEST["start"])? $_REQUEST["start"] : 0; list($numRec, $data) = cronDataGet($arrayFilter, $limit, $start); $response = array("success" => true, "resultTotal" => $numRec, "resultRoot" => $data); break; case "EMPTY": $status = 1; try { $file = PATH_DATA . "log" . PATH_SEP . "cron.log"; if (file_exists($file)) { //file_put_contents($file, null); unlink($file); } $response["status"] = "OK"; } catch (Exception $e) { $response["message"] = $e->getMessage(); $status = 0; } if ($status == 0) { $response["status"] = "ERROR"; } break; } echo G::json_encode($response);