diff --git a/src/app/resource/controllers/ResourceListController.php b/src/app/resource/controllers/ResourceListController.php
index d8850c5edf74be061f023785ff26239cef9c8404..5bee6d1248532ff9305f8554204ba24c556bf10d 100644
--- a/src/app/resource/controllers/ResourceListController.php
+++ b/src/app/resource/controllers/ResourceListController.php
@@ -88,6 +88,14 @@ class ResourceListController
         if (!empty($data['delayed']) && $data['delayed'] == 'true') {
             $where[] = 'process_limit_date < CURRENT_TIMESTAMP';
         }
+        if (!empty($data['reference'])) {
+            $where[] = 'alt_identifier ilike ?';
+            $queryData[] = "%{$data['reference']}%";
+        }
+        if (!empty($data['subject']) && mb_strlen($data['subject']) >= 3) {
+            $where[] = 'subject ilike ?';
+            $queryData[] = "%{$data['subject']}%";
+        }
         if (!empty($data['priorities'])) {
             $where[] = 'priority in (?)';
             $queryData[] = explode(',', $data['priorities']);
@@ -96,6 +104,10 @@ class ResourceListController
             $where[] = 'category_id in (?)';
             $queryData[] = explode(',', $data['categories']);
         }
+        if (!empty($data['statuses'])) {
+            $where[] = 'status in (?)';
+            $queryData[] = explode(',', $data['statuses']);
+        }
         if (!empty($data['entities'])) {
             $where[] = 'destination in (?)';
             $queryData[] = explode(',', $data['entities']);
@@ -113,6 +125,10 @@ class ResourceListController
             }
         }
 
+        if (!empty($data['order']) && strpos($data['order'], 'alt_identifier') !== false) {
+            $data['order'] = 'order_alphanum(alt_identifier) ' . explode(' ', $data['order'])[1];
+        }
+
         $rawResources = ResModel::getOnView([
             'select'    => ['count(1) OVER()', 'res_id'],
             'where'     => $where,