$userfullname == "" ? $username : $userfullname, 'href' => "{$baseurl_short}pages/user/user_home.php", 'menu' => true], ['title' => $pagetitle]]; } else { $pagetitle = $lang["manage_jobs_title"]; $breadcrumbs = [ ['title' => $lang['systemsetup'], 'href' => "{$baseurl_short}pages/admin/admin_home.php", 'menu' => true], ['title' => $pagetitle]]; } $deletejob = getval("delete_job", 0, true); $resetjob = getval("reset_job", 0, true); if ($deletejob > 0 && enforcePostRequest(true)) { $deletejobdetail = job_queue_get_job($deletejob); if (checkperm('a') || $deletejobdetail["user"] == $userref) { job_queue_delete($deletejob); } } elseif ($resetjob > 0 && enforcePostRequest(true)) { $resetjobdetail = job_queue_get_job($resetjob); if (checkperm('a') || $resetjobdetail["user"] == $userref) { clear_process_lock("job_{$resetjob}"); job_queue_update($resetjob, array(), 1, date('Y-m-d H:i:s'), get_job_type_priority($resetjobdetail["type"])); } } elseif ($job_boost > 0 && enforcePostRequest(true) && checkperm('a')) { clear_process_lock("job_{$job_boost}"); job_queue_update($job_boost, array(), 1, date('Y-m-d H:i:s'), JOB_PRIORITY_IMMEDIATE); } elseif (getval("purge_jobs", '') != '' && enforcePostRequest(true) && checkperm('a')) { job_queue_purge(STATUS_COMPLETE); job_queue_purge(STATUS_ERROR); } $jobs = job_queue_get_jobs($job_type, $job_status, $job_user, '', $job_orderby, $job_sort, $job_find); $endedjobs = 0; $per_page = getval("per_page", $default_perpage_list, true); $per_page = (!in_array($per_page, array_merge($list_display_array, [99999]))) ? $default_perpage_list : $per_page; rs_setcookie('per_page', $per_page); $jobcount = count($jobs); $totalpages = ceil($jobcount / $per_page); $offset = getval("offset", 0, true); if ($offset > $jobcount) { $offset = 0; } $curpage = floor($offset / $per_page) + 1; $curparams = array( "job_user" => $job_user, "job_status" => $job_status, "job_type" => $job_type, "job_orderby" => $job_orderby, "job_sort" => $job_sort, "job_find" => $job_find ); $url = generateURL($baseurl . "/pages/manage_jobs.php", $curparams); $tabledata = array( "class" => "JobTable", "headers" => array( "ref" => array("name" => $lang["property-reference"],"sortable" => true), "type" => array("name" => $lang["job_queue_type"],"sortable" => true), "fullname" => array("name" => $lang["user"],"sortable" => true), "status" => array("name" => $lang["status"],"sortable" => true), "start_date" => array("name" => $lang["date"],"sortable" => true), "tools" => array("name" => $lang["tools"],"sortable" => false) ), "orderbyname" => "job_orderby", "orderby" => $job_orderby, "sortname" => "job_sort", "sort" => $job_sort, "defaulturl" => $baseurl . "/pages/manage_jobs.php", "params" => $curparams, "pager" => array("current" => $curpage,"total" => $totalpages, "per_page" => $per_page, "break" => false), "data" => array() ); if (checkperm('a')) { $priorityheader = array("name" => $lang["job_priority"],"sortable" => true,"html" => true, "width" => "40px"); $tabledata["headers"] = array_merge(array("priority" => $priorityheader), $tabledata["headers"]); } if (!checkperm('a')) { unset($tabledata["headers"]["fullname"]); } for ($n = 0; $n < $jobcount; $n++) { if (in_array($jobs[$n]["status"], array(STATUS_ERROR,STATUS_COMPLETE))) { $endedjobs++; } if ($n >= $offset && ($n < $offset + $per_page)) { $tablejob = array(); $tablejob["ref"] = $jobs[$n]["ref"]; $tablejob["type"] = $jobs[$n]["type"]; if (checkperm('a')) { // Only required if can see jobs for different users $tablejob["fullname"] = $jobs[$n]["fullname"]; // Add priority column switch ($jobs[$n]["priority"]) { case JOB_PRIORITY_IMMEDIATE: $priorityicon = "fas fa-fw fa-bolt"; $prioritytitle = $lang["job_priority_immediate"]; break; case JOB_PRIORITY_USER: $priorityicon = "fa fa-fw fa-arrow-circle-up"; $prioritytitle = $lang["job_priority_user"]; break; case JOB_PRIORITY_SYSTEM: $priorityicon = "fa fa-fw fa-arrow-circle-right"; $prioritytitle = $lang["job_priority_system"]; break; case JOB_PRIORITY_COMPLETED: default: $priorityicon = "fa fa-fw fa-arrow-circle-down"; $prioritytitle = $lang["job_priority_completed"]; break; } $tablejob["priority"] = ""; } $tablejob["status"] = isset($lang["job_status_" . $jobs[$n]["status"]]) ? $lang["job_status_" . $jobs[$n]["status"]] : $jobs[$n]["status"]; $tablejob["start_date"] = nicedate($jobs[$n]["start_date"], true, true, true); if ( $jobs[$n]["status"] == STATUS_ERROR || ( !in_array($jobs[$n]["status"], array(STATUS_COMPLETE,STATUS_INPROGRESS)) && $jobs[$n]["start_date"] < date("Y-m-d H:i:s", time() - 24 * 60 * 60) ) ) { $tablejob["alerticon"] = "fas fa-exclamation-triangle"; $tablejob["alerticontitle"] = $lang["job_status_error"]; } $tablejob["tools"] = array(); $tablejob["tools"][] = array( "icon" => "fa fa-fw fa-trash", "text" => $lang["action-delete"], "url" => "#", "modal" => false, "onclick" => "update_job(\"" . $jobs[$n]["ref"] . "\",\"delete_job\");return false;" ); if (checkperm('a')) { $tablejob["tools"][] = array( "icon" => "fa fa-fw fa-info", "text" => $lang["job_details"], "url" => generateURL($baseurl . "/pages/job_details.php", array("job" => $jobs[$n]["ref"])), "modal" => true, ); $tablejob["tools"][] = array( "icon" => "fa fa-fw fa-rocket", "text" => $lang["job_boost"], "url" => "#", "onclick" => "update_job(\"" . $jobs[$n]["ref"] . "\",\"job_boost\");return false;", "modal" => true, ); } if (checkperm('a') && $jobs[$n]["status"] != STATUS_ACTIVE) { $tablejob["tools"][] = array( "icon" => "fas fa-fw fa-undo", "text" => $lang["job_reset"], "url" => "#", "modal" => false, "onclick" => "update_job(\"" . $jobs[$n]["ref"] . "\",\"reset_job\");return false;" ); } $tabledata["data"][] = $tablejob; } } include '../include/header.php'; ?>
" . LINK_CARET . escape($lang["jobs_action_purge_complete"]) . "
"; } ?>