3 * Bacula(R) - The Network Backup Solution
4 * Baculum - Bacula web interface
6 * Copyright (C) 2013-2015 Marcin Haba
8 * The main author of Baculum is Marcin Haba.
9 * The original author of Bacula is Kern Sibbald, with contributions
10 * from many others, a complete list can be found in the file AUTHORS.
12 * You may use this file and others of this release according to the
13 * license defined in the LICENSE file, which includes the Affero General
14 * Public License, v3.0 ("AGPLv3") and some additional permissions and
15 * terms pursuant to its AGPLv3 Section 7.
17 * This notice must be preserved when any source code is
18 * conveyed and/or propagated.
20 * Bacula(R) is a registered trademark of Kern Sibbald.
23 class JobManager extends TModule {
25 public function getJobs($limit) {
26 $criteria = new TActiveRecordCriteria;
28 $cfg = $this->Application->getModule('configuration');
29 $appCfg = $cfg->getApplicationConfig();
30 if($cfg->isPostgreSQLType($appCfg['db']['type'])) {
31 $order = strtolower($order);
33 $criteria->OrdersBy[$order] = 'desc';
34 if(is_int($limit) && $limit > 0) {
35 $criteria->Limit = $limit;
37 return JobRecord::finder()->findAll($criteria);
40 public function getJobById($id) {
41 return JobRecord::finder()->findByjobid($id);
44 public function getJobByName($name) {
45 return JobRecord::finder()->findByname($name);
48 public function deleteJobById($id) {
49 return JobRecord::finder()->deleteByjobid($id);
52 public function getRecentJobids($jobname, $clientid) {
53 $sql = "name='$jobname' AND clientid='$clientid' AND jobstatus IN ('T', 'W') AND level IN ('F', 'I', 'D') ORDER BY endtime DESC";
54 $finder = JobRecord::finder();
55 $jobs = $finder->findAll($sql);
60 foreach($jobs as $job) {
61 if($job->level == 'F') {
62 $jobids[] = $job->jobid;
64 } elseif($job->level == 'D' && $waitForFull === false) {
65 $jobids[] = $job->jobid;
67 } elseif($job->level == 'I' && $waitForFull === false) {
68 $jobids[] = $job->jobid;