From: Marcin Haba Date: Fri, 9 Dec 2022 12:24:18 +0000 (+0100) Subject: baculum: Add multiple jobids filter to jobs endpoint X-Git-Tag: Release-13.0.2~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb910baa407795c81acec1c7cb7f332471a393b2;p=thirdparty%2Fbacula.git baculum: Add multiple jobids filter to jobs endpoint --- diff --git a/gui/baculum/protected/API/Pages/API/Jobs.php b/gui/baculum/protected/API/Pages/API/Jobs.php index 6891c8c85..34161e647 100644 --- a/gui/baculum/protected/API/Pages/API/Jobs.php +++ b/gui/baculum/protected/API/Pages/API/Jobs.php @@ -35,6 +35,7 @@ class Jobs extends BaculumAPIServer { public function get() { $misc = $this->getModule('misc'); + $jobids = $this->Request->contains('jobids') && $misc->isValidIdsList($this->Request['jobids']) ? $this->Request['jobids'] : ''; $limit = $this->Request->contains('limit') && $misc->isValidInteger($this->Request['limit']) ? (int)$this->Request['limit'] : 0; $offset = $this->Request->contains('offset') && $misc->isValidInteger($this->Request['offset']) ? (int)$this->Request['offset'] : 0; $jobstatus = $this->Request->contains('jobstatus') ? $this->Request['jobstatus'] : ''; @@ -54,6 +55,27 @@ class Jobs extends BaculumAPIServer { $order_by = $this->Request->contains('order_by') && $misc->isValidColumn($this->Request['order_by']) ? $this->Request['order_by']: 'JobId'; $order_direction = $this->Request->contains('order_direction') && $misc->isValidOrderDirection($this->Request['order_direction']) ? $this->Request['order_direction']: 'DESC'; + if (!empty($jobids)) { + /** + * If jobids parameter provided, all other parameters are not used. + */ + $params['Job.JobId'] = []; + $params['Job.JobId'][] = [ + 'operator' => 'OR', + 'vals' => explode(',', $jobids) + ]; + $result = $this->getModule('job')->getJobs( + $params, + null, + 0, + $order_by, + $order_direction + ); + $this->output = $result; + $this->error = JobError::ERROR_NO_ERRORS; + return; + } + if (!empty($clientid) && !$misc->isValidId($clientid)) { $this->output = JobError::MSG_ERROR_CLIENT_DOES_NOT_EXISTS; $this->error = JobError::ERROR_CLIENT_DOES_NOT_EXISTS;