15012: Adds process status filtering to all_processes page.
[arvados-workbench2.git] / src / store / resource-type-filters / resource-type-filters.ts
index 4ee9c5f32b313fc16e4a04d230f2a09d3cacfee9..6766bfca10eb2a075fe97b88b40970bd5f65fb3f 100644 (file)
@@ -213,3 +213,27 @@ export const serializeSimpleObjectTypeFilters = (filters: Tree<DataTableFilterIt
         .map(f => f.id)
         .map(objectTypeToResourceKind);
 };
+
+export const buildProcessStatusFilters = ( fb:FilterBuilder, activeStatusFilter:string ): FilterBuilder => {
+    switch (activeStatusFilter) {
+        case ProcessStatusFilter.COMPLETED: {
+            fb.addEqual('container.state', 'Complete');
+            fb.addEqual('container.exit_code', '0');
+            break;
+        }
+        case ProcessStatusFilter.FAILED: {
+            fb.addEqual('container.state', 'Complete');
+            fb.addDistinct('container.exit_code', '0');
+            break;
+        }
+        case ProcessStatusFilter.CANCELLED:
+        case ProcessStatusFilter.FAILED:
+        case ProcessStatusFilter.LOCKED:
+        case ProcessStatusFilter.QUEUED:
+        case ProcessStatusFilter.RUNNING: {
+            fb.addEqual('container.state', activeStatusFilter);
+            break;
+        }
+    }
+    return fb;
+};
\ No newline at end of file