File size: 4,244 Bytes
07c3cdd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<?php

function mktimeDate ($date)
{
    $arrayAux = getdate( strtotime( $date ) );

    $mktDate = mktime( $arrayAux["hours"], $arrayAux["minutes"], $arrayAux["seconds"], $arrayAux["mon"], $arrayAux["mday"], $arrayAux["year"] );

    return $mktDate;
}

function cronArraySet ($str, $filter)
{
    $arrayAux = explode( "|", $str );

    $date = "";
    $workspace = "";
    $action = "";
    $status = "";
    $description = trim( $arrayAux[0] );

    if (count( $arrayAux ) > 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, "ACTION" => $action, "STATUS" => $status, "DESCRIPTION" => $description
        );
    }

    return $arrayData;
}

function cronDataGet ($filter, $r, $i)
{
    $i = $i + 1;

    $arrayData = array ();
    $strAux = null;
    $numRec = 0;
    $cont = 0;

    $file = PATH_DATA . "log" . PATH_SEP . "cron.log";

    if (file_exists($file)) {
        $arrayFileData = file($file);

        for ($k = 0; $k <= count($arrayFileData) - 1; $k++) {
            $strAux = $arrayFileData[$k];

            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;

    return array($numRec, $arrayData);
}

$option = (isset( $_REQUEST["option"] )) ? $_REQUEST["option"] : null;

$response = array ();

switch ($option) {
    case "LST":
        $pageSize = $_REQUEST["pageSize"];
        $workspace = config("system.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";
            G::auditLog("ClearCron");
        } catch (Exception $e) {
            $response["message"] = $e->getMessage();
            $status = 0;
        }

        if ($status == 0) {
            $response["status"] = "ERROR";
        }
        break;
}

echo G::json_encode( $response );