count('job_tracking'); } else { $out['recordsTotal'] = $database->count('job_tracking', ['uid' => $managed_uids]); } $filter = false; // sort $order = null; $sortby = "DESC"; if ($VARS['order'][0]['dir'] == 'asc') { $sortby = "ASC"; } switch ($VARS['order'][0]['column']) { case 2: $order = ["jobname" => $sortby]; break; case 3: $order = ["start" => $sortby]; break; case 4: $order = ["end" => $sortby]; break; } // search if (!is_empty($VARS['search']['value'])) { $filter = true; $wherenolimit = [ "AND" => [ "OR" => [ "jobname[~]" => $VARS['search']['value'], "jobcode[~]" => $VARS['search']['value'], "start[~]" => $VARS['search']['value'], "end[~]" => $VARS['search']['value'], ], "uid" => $managed_uids ] ]; if ($managed_uids !== false) { $where["AND"]["uid"] = $managed_uids; } $where = $wherenolimit; $where["LIMIT"] = [$VARS['start'], $VARS['length']]; } else { $where = ["LIMIT" => [$VARS['start'], $VARS['length']]]; if ($managed_uids !== false) { $where["uid"] = $managed_uids; } } if (!is_null($order)) { $where["ORDER"] = $order; } $jobs = $database->select('job_tracking', ['[>]jobs' => ['jobid']], [ 'id', 'job_tracking.jobid', 'uid', 'start', 'end', 'jobname', 'jobcode', 'color', 'deleted' ], $where); $usercache = []; $editself = account_has_permission($_SESSION['username'], "QWIKCLOCK_EDITSELF"); for ($i = 0; $i < count($jobs); $i++) { // Get user info if (!isset($usercache[$jobs[$i]['uid']])) { $usercache[$jobs[$i]['uid']] = getUserByID($jobs[$i]['uid']); } $jobs[$i][0] = ""; if ($_SESSION['uid'] == $jobs[$i]['uid']) { if ($editself) { $jobs[$i][1] = ' ' . lang("edit", false) . ''; } else { $jobs[$i][1] = ""; } } else if ($showmanaged) { $jobs[$i][1] = ' ' . lang("edit", false) . ''; } else { $jobs[$i][1] = ""; } $jobs[$i][2] = '  ' . ($jobs[$i]['deleted'] == 1 ? "" : "") . $jobs[$i]['jobname'] . ($jobs[$i]['deleted'] == 1 ? "" : ""); $jobs[$i][3] = date(DATETIME_FORMAT, strtotime($jobs[$i]['start'])); if (is_null($jobs[$i]['end'])) { $jobs[$i][4] = lang("na", false); } else { $jobs[$i][4] = date(DATETIME_FORMAT, strtotime($jobs[$i]['end'])); } $jobs[$i][5] = $usercache[$jobs[$i]['uid']]['name']; } $out['status'] = "OK"; if ($filter) { $recordsFiltered = $database->count('job_tracking', ['[>]jobs' => ['jobid']], 'job_tracking.id', $wherenolimit); } else { $recordsFiltered = $out['recordsTotal']; } $out['recordsFiltered'] = $recordsFiltered; $out['data'] = $jobs; echo json_encode($out);