From: Marcin Haba Date: Wed, 19 Apr 2023 09:01:00 +0000 (+0200) Subject: baculum: Add priorjobname property to jobs endpoint X-Git-Tag: Release-13.0.3~70 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=961fadc0951e336711148d1b411eb52c230dbfec;p=thirdparty%2Fbacula.git baculum: Add priorjobname property to jobs endpoint --- diff --git a/gui/baculum/protected/API/Modules/JobManager.php b/gui/baculum/protected/API/Modules/JobManager.php index be5aa1683..c07f72d72 100644 --- a/gui/baculum/protected/API/Modules/JobManager.php +++ b/gui/baculum/protected/API/Modules/JobManager.php @@ -103,6 +103,7 @@ class JobManager extends APIModule { */ const JOB_RESULT_VIEW_BASIC = 'basic'; const JOB_RESULT_VIEW_FULL = 'full'; + const JOB_RESULT_VIEW_ADVANCED = 'advanced'; /** * Get job status groups. @@ -149,8 +150,12 @@ class JobManager extends APIModule { $where = Database::getWhere($criteria); $job_record = 'Job.*,'; + $join = ''; if ($view == self::JOB_RESULT_VIEW_BASIC) { $job_record = implode(',', $this->basic_mode_job_props) . ','; + } elseif ($view == self::JOB_RESULT_VIEW_ADVANCED) { + $job_record = 'Job.*, PriorJob.Name AS priorjobname,'; + $join = ' LEFT JOIN Job AS PriorJob ON (Job.PriorJobId = PriorJob.JobId) '; } $sql = 'SELECT ' . $job_record . ' @@ -161,7 +166,7 @@ FROM Job JOIN Client USING (ClientId) LEFT JOIN Pool USING (PoolId) LEFT JOIN FileSet USING (FilesetId)' -. $where['where'] . $order . $limit . $offset; +. $join . $where['where'] . $order . $limit . $offset; $statement = Database::runQuery($sql, $where['params']); $result = []; diff --git a/gui/baculum/protected/API/Pages/API/Jobs.php b/gui/baculum/protected/API/Pages/API/Jobs.php index 2845e1be7..9eaace6e4 100644 --- a/gui/baculum/protected/API/Pages/API/Jobs.php +++ b/gui/baculum/protected/API/Pages/API/Jobs.php @@ -59,6 +59,7 @@ 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'; $mode = ($this->Request->contains('overview') && $misc->isValidBooleanTrue($this->Request['overview'])) ? JobManager::JOB_RESULT_MODE_OVERVIEW : JobManager::JOB_RESULT_MODE_NORMAL; + $view = ($this->Request->contains('view') && $misc->isValidResultView($this->Request['view'])) ? $this->Request['view'] : JobManager::JOB_RESULT_VIEW_FULL; if (!empty($jobids)) { /** @@ -305,7 +306,8 @@ class Jobs extends BaculumAPIServer { $offset, $order_by, $order_direction, - $mode + $mode, + $view ); $this->output = $result; $this->error = JobError::ERROR_NO_ERRORS; diff --git a/gui/baculum/protected/Common/Modules/Miscellaneous.php b/gui/baculum/protected/Common/Modules/Miscellaneous.php index 767385561..5adc66499 100644 --- a/gui/baculum/protected/Common/Modules/Miscellaneous.php +++ b/gui/baculum/protected/Common/Modules/Miscellaneous.php @@ -318,7 +318,7 @@ class Miscellaneous extends TModule { } public function isValidResultView($view) { - return (preg_match('/^(basic|full)$/', $view) === 1); + return (preg_match('/^(basic|full|advanced)$/', $view) === 1); } public function isValidVolType($voltype) {