19302: side panel tree limited to 50 nodes Arvados-DCO-1.1-Signed-off-by: Lisa Knox...
[arvados-workbench2.git] / src / store / side-panel-tree / side-panel-tree-actions.ts
index 579b95505e87685bb0ebc47fd56ad69b86a6ef23..44dfe869389fc5598b5fb3a205ebd36390b3037d 100644 (file)
@@ -20,16 +20,17 @@ import { LinkClass } from 'models/link';
 
 export enum SidePanelTreeCategory {
     PROJECTS = 'Home Projects',
-    SHARED_WITH_ME = 'Shared with me',
-    PUBLIC_FAVORITES = 'Public Favorites',
     FAVORITES = 'My Favorites',
-    TRASH = 'Trash',
+    PUBLIC_FAVORITES = 'Public Favorites',
+    SHARED_WITH_ME = 'Shared with me',
     ALL_PROCESSES = 'All Processes',
+    SHELL_ACCESS = 'Shell Access',
     GROUPS = 'Groups',
+    TRASH = 'Trash',
 }
 
 export const SIDE_PANEL_TREE = 'sidePanelTree';
-const TREE_NODE_LIMIT = 50
+const SIDEPANEL_TREE_NODE_LIMIT = 50
 
 export const getSidePanelTree = (treePicker: TreePicker) =>
     getTreePicker<ProjectResource | string>(SIDE_PANEL_TREE)(treePicker);
@@ -48,11 +49,12 @@ export const getSidePanelTreeBranch = (uuid: string) => (treePicker: TreePicker)
 
 let SIDE_PANEL_CATEGORIES: string[] = [
     SidePanelTreeCategory.PROJECTS,
-    SidePanelTreeCategory.SHARED_WITH_ME,
-    SidePanelTreeCategory.PUBLIC_FAVORITES,
     SidePanelTreeCategory.FAVORITES,
-    SidePanelTreeCategory.GROUPS,
+    SidePanelTreeCategory.PUBLIC_FAVORITES,
+    SidePanelTreeCategory.SHARED_WITH_ME,
     SidePanelTreeCategory.ALL_PROCESSES,
+    SidePanelTreeCategory.SHELL_ACCESS,
+    SidePanelTreeCategory.GROUPS,
     SidePanelTreeCategory.TRASH
 ];
 
@@ -112,8 +114,9 @@ const loadProject = (projectUuid: string) =>
                 .addEqual('owner_uuid', projectUuid)
                 .getFilters(),
             order: new OrderBuilder<ProjectResource>()
-                .addAsc('name')
-                .getOrder()
+                .addDesc('createdAt')
+                .getOrder(),
+            limit: SIDEPANEL_TREE_NODE_LIMIT,
         };
 
         const { items } = await services.projectService.list(params);
@@ -136,7 +139,7 @@ export const loadFavoritesTree = () => async (dispatch: Dispatch, getState: () =
             .addEqual('tail_kind', ResourceKind.USER)
             .getFilters(),
         order: new OrderBuilder<ProjectResource>().addDesc('createdAt').getOrder(),
-        limit: 50,
+        limit: SIDEPANEL_TREE_NODE_LIMIT,
     };
 
     const { items } = await services.linkService.list(params);
@@ -166,7 +169,7 @@ export const loadPublicFavoritesTree = () => async (dispatch: Dispatch, getState
             .addIsA('head_uuid', typeFilters)
             .getFilters(),
         order: new OrderBuilder<ProjectResource>().addDesc('createdAt').getOrder(),
-        limit: TREE_NODE_LIMIT,
+        limit: SIDEPANEL_TREE_NODE_LIMIT,
     };
 
     const { items } = await services.linkService.list(params);
@@ -186,9 +189,9 @@ export const activateSidePanelTreeItem = (id: string) =>
     async (dispatch: Dispatch, getState: () => RootState) => {
         const node = getSidePanelTreeNode(id)(getState().treePicker);
         if (node && !node.active) {
-            dispatch(treePickerActions.ACTIVATE_TREE_PICKER_NODE({ id, pickerId: SIDE_PANEL_TREE }));
-        }
-        if (!isSidePanelTreeCategory(id)) {
+        dispatch(treePickerActions.ACTIVATE_TREE_PICKER_NODE({ id, pickerId: SIDE_PANEL_TREE }));
+    }
+    if (!isSidePanelTreeCategory(id)) {
             await dispatch<any>(activateSidePanelTreeProject(id));
         }
     };