]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
baculum: Add joberrors filter to objects endpoint
authorMarcin Haba <marcin.haba@bacula.pl>
Tue, 25 Apr 2023 14:04:39 +0000 (16:04 +0200)
committerMarcin Haba <marcin.haba@bacula.pl>
Mon, 1 May 2023 11:18:25 +0000 (13:18 +0200)
gui/baculum/protected/API/Pages/API/Objects.php

index 82d9fc86a910d56dd3a49783e9e06e4215e8f8b7..dc393181d5bd0b5891939e0a6c6294dda00c7ff7 100644 (file)
@@ -45,6 +45,10 @@ class Objects extends BaculumAPIServer {
                $objectstatus = $this->Request->contains('objectstatus') && $misc->isValidState($this->Request['objectstatus']) ? $this->Request['objectstatus'] : null;
                $jobname = $this->Request->contains('jobname') && $misc->isValidName($this->Request['jobname']) ? $this->Request['jobname'] : null;
                $jobids = $this->Request->contains('jobids') && $misc->isValidIdsList($this->Request['jobids']) ? explode(',', $this->Request['jobids']) : [];
+               $joberrors = null;
+               if ($this->Request->contains('joberrors') && $misc->isValidBoolean($this->Request['joberrors'])) {
+                       $joberrors = $misc->isValidBooleanTrue($this->Request['joberrors']) ? true : false;
+               }
                $group_by = $this->Request->contains('groupby') && $misc->isValidColumn($this->Request['groupby']) ? strtolower($this->Request['groupby']) : null;
                $group_limit = $this->Request->contains('group_limit') ? intval($this->Request['group_limit']) : 0;
 
@@ -166,6 +170,20 @@ class Objects extends BaculumAPIServer {
                                'vals' => $jobids
                        ];
                }
+               if (!is_null($joberrors)) {
+                       if ($joberrors === true) {
+                               $params['Job.JobErrors'] = [];
+                               $params['Job.JobErrors'][] = [
+                                       'operator' => '>',
+                                       'vals' => 0
+                               ];
+                       } elseif ($joberrors === false) {
+                               $params['Job.JobErrors'] = [];
+                               $params['Job.JobErrors'][] = [
+                                       'vals' => 0
+                               ];
+                       }
+               }
 
                // Scheduled time range
                if (!empty($schedtime_from) || !empty($schedtime_to) || !empty($schedtime_from_date) || !empty($schedtime_to_date)) {