18
18
$this->fPassword = $password;
21
function ListLastRuns($date, $offset, $limit, &$total)
21
function ListRuns(array $filter, &$total)
27
$end = "$start + INTERVAL 1 DAY";
29
elseif ($date > 9999) {
31
$end = "$start + INTERVAL 1 MONTH";
34
$start = "${date}0101";
35
$end_date = $date + 1;
36
$end = "${end_date}0101";
25
$where = $this->BuildFilter($filter);
27
if (array_key_exists('limit', $filter)) {
28
if (array_key_exists('offset', $filter)) {
29
$limit = "{$filter['offset']}, {$filter['limit']}";
32
$limit = $filter['limit'];
39
36
$query = "SELECT SQL_CALC_FOUND_ROWS run.system AS system, ";
40
37
$query .= "run.number AS number, run.start AS start, ";
38
$query .= "run.end AS end, ";
41
39
$query .= "TIMEDIFF(run.end, run.start) AS duration, ";
42
40
$query .= "run.comment AS comment, run.data_types AS data, ";
43
$query .= "COUNT(*) AS subruns FROM run, subrun ";
44
$query .= "WHERE run.id = subrun.run AND ";
45
$query .= "run.start BETWEEN $start AND $end - INTERVAL 1 SECOND ";
46
$query .= "GROUP BY subrun.run ORDER BY run.start ";
47
$query .= "LIMIT $offset, $limit";
41
$query .= "COUNT(*) AS subruns FROM run, subrun";
43
$query .= ' WHERE subrun.run = run.id';
45
$query .= ' AND ' . implode(' AND ', $where);
47
$query .= ' GROUP BY subrun.run ORDER BY run.start';
49
$query .= " LIMIT $limit";
49
52
$result = mysql_query($query, $this->fMysql);
52
55
while ($row = mysql_fetch_assoc($result)) {
155
158
return $parameters;
161
function GetDates(array $filter)
160
163
$this->Connect();
162
$query = "SELECT UNIX_TIMESTAMP(CAST(start AS DATE)) AS d " .
163
"FROM run GROUP BY d ORDER BY d";
165
$where = $this->BuildFilter($filter);
167
$query = 'SELECT UNIX_TIMESTAMP(CAST(start AS DATE)) AS d FROM run';
169
$query .= ' WHERE ' . implode(' AND ', $where);
171
$query .= ' GROUP BY d ORDER BY d';
164
172
$result = mysql_query($query, $this->fMysql);
166
174
$dates = array();
269
277
return "FROM_UNIXTIME(" . $tstamp . ")";
280
private function BuildFilter($filter)
283
if (array_key_exists('date', $filter)) {
284
$date = $filter['date'];
285
if ($date != 0 && $date != "all") {
286
if ($date > 999999) {
288
$end = "$start + INTERVAL 1 DAY";
290
elseif ($date > 9999) {
291
$start = "${date}01";
292
$end = "$start + INTERVAL 1 MONTH";
295
$start = "${date}0101";
296
$end_date = $date + 1;
297
$end = "${end_date}0101";
300
"run.start BETWEEN $start AND $end - INTERVAL 1 SECOND";
304
if (array_key_exists('system', $filter)) {
305
$where[] = "run.system = {$filter['system']}";
308
$from = $filter['from'];
313
$where[] = "run.number BETWEEN $from AND $to";
316
$where[] = "run.number = $from";