From: Marcin Haba Date: Mon, 10 Jul 2023 11:30:43 +0000 (+0200) Subject: Add sorting by fileset in objects overview endpoint X-Git-Tag: Release-13.0.4~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=86ba842986026f1b2a478e58085a49a92ebdf62c;p=thirdparty%2Fbacula.git Add sorting by fileset in objects overview endpoint --- diff --git a/gui/baculum/protected/API/Modules/ObjectManager.php b/gui/baculum/protected/API/Modules/ObjectManager.php index 81236f19d..0a66af6ff 100644 --- a/gui/baculum/protected/API/Modules/ObjectManager.php +++ b/gui/baculum/protected/API/Modules/ObjectManager.php @@ -39,8 +39,8 @@ class ObjectManager extends APIModule * Allowed order columns for object overview. */ public static $overview_order_columns = [ - 'object' => ['objectname', 'endtime'], - 'general' => ['client', 'jobstatus', 'endtime'] + 'object' => ['objectname', 'client', 'jobstatus', 'endtime'], + 'file' => ['client', 'jobstatus', 'endtime', 'fileset'] ]; /** @@ -200,7 +200,7 @@ LEFT JOIN Client USING (ClientId) ' $sort_col = 'JobTDate'; } elseif (in_array($sort_col_i, ObjectManager::$overview_order_columns['object'])) { $obj_order .= sprintf(',%s %s', $sort_col, $sort_order); - } elseif (in_array($sort_col_i, ObjectManager::$overview_order_columns['general'])) { + } elseif (in_array($sort_col_i, ObjectManager::$overview_order_columns['file'])) { $file_order .= sprintf(',%s %s', $sort_col, $sort_order); } $order = sprintf( @@ -429,14 +429,14 @@ LEFT JOIN Client USING (ClientId) ' if ($object_count[$i]['objecttype'] == 'files') { $sql = 'SELECT * FROM ' . $objects_tname4 . ' - ' . ((stripos($sort_col, 'object') === false) ? 'ORDER BY ' . $order : '') . $limit . $offset; + ' . (in_array($sort_col_i, self::$overview_order_columns['file']) ? 'ORDER BY ' . $order : '') . $limit . $offset; $statement = Database::runQuery($sql); $items = $statement->fetchAll(PDO::FETCH_ASSOC); } else { $sql = 'SELECT * FROM ' . $objects_tname1 . ' WHERE ObjectType = \'' . $object_count[$i]['objecttype'] . '\' - ORDER BY ObjectType, ObjectSource, ObjectCategory, ' . $order . $limit . $offset; + ORDER BY ObjectType, ObjectSource, ObjectCategory ' . (in_array($sort_col_i, self::$overview_order_columns['object']) ? ',' . $order : '') . $limit . $offset; $statement = Database::runQuery($sql); $items = $statement->fetchAll(PDO::FETCH_ASSOC); } diff --git a/gui/baculum/protected/API/Pages/API/ObjectsOverview.php b/gui/baculum/protected/API/Pages/API/ObjectsOverview.php index ccce2eeaf..90cce1d13 100644 --- a/gui/baculum/protected/API/Pages/API/ObjectsOverview.php +++ b/gui/baculum/protected/API/Pages/API/ObjectsOverview.php @@ -82,7 +82,7 @@ class ObjectsOverview extends BaculumAPIServer { if (!empty($order_by)) { $order_by_lc = strtolower($order_by); - if (!in_array($order_by_lc, ObjectManager::$overview_order_columns['object']) && !in_array($order_by_lc, ObjectManager::$overview_order_columns['general'])) { + if (!in_array($order_by_lc, ObjectManager::$overview_order_columns['file']) && !in_array($order_by_lc, ObjectManager::$overview_order_columns['object'])) { $this->output = ObjectError::MSG_ERROR_INVALID_PROPERTY; $this->error = ObjectError::ERROR_INVALID_PROPERTY; return;