]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
baculum: Add fileset filter to objects overview endpoint
authorMarcin Haba <marcin.haba@bacula.pl>
Thu, 9 Nov 2023 15:21:24 +0000 (16:21 +0100)
committerMarcin Haba <marcin.haba@bacula.pl>
Thu, 9 Nov 2023 15:21:24 +0000 (16:21 +0100)
gui/baculum/protected/API/Modules/ObjectManager.php
gui/baculum/protected/API/Pages/API/ObjectsOverview.php

index ee2964ead4d46f09b1814a1004c4df433cee7ba2..4566bbfc47355bc2634319b5d483f74eb6f400d0 100644 (file)
@@ -312,6 +312,7 @@ LEFT JOIN FileSet USING (FileSetId) '
                                        Job.JobStatus   AS jobstatus
                                FROM Object
                                JOIN Job USING (JobId)
+                               JOIN FileSet USING (FileSetId)
                                JOIN Client USING (ClientId)
                                ' . $object_where['where'] . $obj_order;
 
@@ -373,6 +374,7 @@ LEFT JOIN FileSet USING (FileSetId) '
                                                Path            AS path,
                                                JobStatus       AS jobstatus
                                        FROM Object
+                                       JOIN FileSet USING (FileSetId)
                                        JOIN Job USING (JobId)
                                        JOIN Client USING (ClientId)' . $object_where['where'] . $obj_order;
 
index 6c11c6b00fc6cb8ef31c13b2ffca861da6dc301b..a24d18f904d04cf38a7eef5993dfdeb2f84e364c 100644 (file)
@@ -47,6 +47,7 @@ class ObjectsOverview extends BaculumAPIServer {
                $jobids = $this->Request->contains('jobids') && $misc->isValidIdsList($this->Request['jobids']) ? explode(',', $this->Request['jobids']) : [];
                $jobstatus = $this->Request->contains('jobstatus') && $misc->isValidState($this->Request['jobstatus']) ? $this->Request['jobstatus'] : null;
                $client = $this->Request->contains('client') && $misc->isValidName($this->Request['client']) ? $this->Request['client'] : '';
+               $fileset = $this->Request->contains('fileset') && $misc->isValidName($this->Request['fileset']) ? $this->Request['fileset'] : '';
                $joberrors = null;
                if ($this->Request->contains('joberrors') && $misc->isValidBoolean($this->Request['joberrors'])) {
                        $joberrors = $misc->isValidBooleanTrue($this->Request['joberrors']) ? true : false;
@@ -146,6 +147,12 @@ class ObjectsOverview extends BaculumAPIServer {
                                'vals' => $client
                        ];
                }
+               if (!empty($fileset)) {
+                       $general_params['FileSet.FileSet'] = [];
+                       $general_params['FileSet.FileSet'][] = [
+                               'vals' => $fileset
+                       ];
+               }
                if (!is_null($joberrors)) {
                        if ($joberrors === true) {
                                $general_params['Job.JobErrors'] = [];