[arvados-workbench2] updated: 2.4.0-407-g28052f8d

git repository hosting git at public.arvados.org
Wed Dec 14 19:07:49 UTC 2022


Summary of changes:
 .gitignore                                         |    1 +
 src/common/config.ts                               |  541 ++++-----
 src/common/custom-theme.ts                         |  306 ++---
 src/common/formatters.ts                           |  174 +--
 src/components/column-selector/column-selector.tsx |   14 +-
 src/components/data-explorer/data-explorer.tsx     |    1 -
 src/components/data-table/data-table.tsx           |    5 +-
 src/models/container-request.ts                    |   64 +-
 src/services/groups-service/groups-service.ts      |  132 ++-
 .../data-explorer-middleware-service.ts            |   71 +-
 .../data-explorer/data-explorer-middleware.ts      |  170 +--
 src/store/data-explorer/data-explorer-reducer.ts   |  273 +++--
 src/store/workbench/workbench-actions.ts           | 1200 ++++++++++++--------
 .../data-explorer/data-explorer.tsx                |    1 -
 src/views-components/data-explorer/renderers.tsx   |  126 +-
 src/views/project-panel/project-panel.tsx          |  139 ++-
 16 files changed, 1946 insertions(+), 1272 deletions(-)

       via  28052f8d76348c19acf601d8db779aaf4baa3de2 (commit)
       via  961b23c084e7f6fd6c0595b33b7988624a43f625 (commit)
       via  d53a42bb1223e2a54f0fd31790c64e09398cdbd6 (commit)
       via  b8a41cfd2d037a8d6b881ab71647c535a323f302 (commit)
       via  850ea77da5cce0b5c5a9308e3253a7118839863f (commit)
       via  c7b19963c9e3981673ef5744e2710bd266f2b7e2 (commit)
       via  fc16e2ad191f91e78f5e5b89486894a8aacbfaf0 (commit)
       via  18ad190b02ff4975f36c5c7357875d54389d028e (commit)
       via  63b6ab236bbe65ffd9f57c64172a8950d4dc9826 (commit)
       via  3277922ef580144a55f34e80992ca40b9fb66146 (commit)
       via  19fbb2305b4bbd3443d4a52e556e8018cb4d73cb (commit)
       via  4ee2be435af08b2d7b4ff07fb41f190fa41e35f7 (commit)
       via  b2fcdb2fac8ba49fecca5c30fc56e63b71746cf3 (commit)
       via  2d2d42308a636998aa7f10e01283722e30ab20f5 (commit)
       via  4ec72c3bb23a8f50aa52c2ea75addf2ad789f354 (commit)
       via  add698bee2d2b7002a99aa08ac99b93179e2a535 (commit)
       via  7f697d536ed03c19844677e027bbab17e9b5e5f6 (commit)
       via  39abd28010044c94c47d4ad5fdf39a352eef6cff (commit)
       via  4a20184914baf8e0457c63c7f0d10e0cb2f65f35 (commit)
       via  f8f6c21d5162f38e6e644a628b9caae6e1e23f88 (commit)
       via  d4d173d042ad06d8382657797b6aae2d61cdd3d7 (commit)
       via  48adcab305593e4e869c2f622b00a1f794d55c50 (commit)
       via  031e32ec7eeeeb5b92448ec906856009148efea6 (commit)
       via  1f2ddfbf602cfa8c0dca0d81e3f2676904dd4c80 (commit)
       via  859f5402ff0b0629119693a3956acbc439df7bbb (commit)
       via  c4975431c61ee21b9eaf10b00aa88e5d9858de59 (commit)
       via  4fd42aef3c07c9e4c43bf873afe45e0043755ba0 (commit)
       via  95afa31b982ddf8468642002dded5a3875c95d25 (commit)
      from  8b76b3372e8c8a17c5e80a183ec686a663f133c6 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 28052f8d76348c19acf601d8db779aaf4baa3de2
Merge: 8b76b337 961b23c0
Author: Lisa Knox <lisaknox83 at gmail.com>
Date:   Tue Dec 13 18:31:37 2022 -0500

    Merge branch '19690-roject-column-options' closes #19690 Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox at curii.com>

diff --cc src/common/config.ts
index 65ee687c,724fb795..93197367
--- a/src/common/config.ts
+++ b/src/common/config.ts
@@@ -13,96 -14,95 +14,96 @@@ interface WorkbenchConfig 
  }
  
  export interface ClusterConfigJSON {
 -  API: {
 -    UnfreezeProjectRequiresAdmin: boolean;
 -  };
 -  ClusterID: string;
 -  RemoteClusters: {
 -    [key: string]: {
 -      ActivateUsers: boolean;
 -      Host: string;
 -      Insecure: boolean;
 -      Proxy: boolean;
 -      Scheme: string;
 +    API: {
 +        UnfreezeProjectRequiresAdmin: boolean
 +        MaxItemsPerResponse: number
 +    },
 +    ClusterID: string;
 +    RemoteClusters: {
 +        [key: string]: {
 +            ActivateUsers: boolean
 +            Host: string
 +            Insecure: boolean
 +            Proxy: boolean
 +            Scheme: string
 +        }
      };
-     Mail?: {
-         SupportEmailAddress: string;
 -  };
+   Mail?: {
+     SupportEmailAddress: string;
+   };
+   Services: {
+     Controller: {
+       ExternalURL: string;
      };
-     Services: {
-         Controller: {
-             ExternalURL: string
-         }
-         Workbench1: {
-             ExternalURL: string
-         }
-         Workbench2: {
-             ExternalURL: string
-         }
-         Websocket: {
-             ExternalURL: string
-         }
-         WebDAV: {
-             ExternalURL: string
-         },
-         WebDAVDownload: {
-             ExternalURL: string
-         },
-         WebShell: {
-             ExternalURL: string
-         }
+     Workbench1: {
+       ExternalURL: string;
      };
-     Workbench: {
-         DisableSharingURLsUI: boolean;
-         ArvadosDocsite: string;
-         FileViewersConfigURL: string;
-         WelcomePageHTML: string;
-         InactivePageHTML: string;
-         SSHHelpPageHTML: string;
-         SSHHelpHostSuffix: string;
-         SiteName: string;
-         IdleTimeout: string;
+     Workbench2: {
+       ExternalURL: string;
      };
-     Login: {
-         LoginCluster: string;
-         Google: {
-             Enable: boolean;
-         }
-         LDAP: {
-             Enable: boolean;
-         }
-         OpenIDConnect: {
-             Enable: boolean;
-         }
-         PAM: {
-             Enable: boolean;
-         }
-         SSO: {
-             Enable: boolean;
-         }
-         Test: {
-             Enable: boolean;
-         }
+     Websocket: {
+       ExternalURL: string;
      };
-     Collections: {
-         ForwardSlashNameSubstitution: string;
-         ManagedProperties?: {
-             [key: string]: {
-                 Function: string,
-                 Value: string,
-                 Protected?: boolean,
-             }
-         },
-         TrustAllContent: boolean
+     WebDAV: {
+       ExternalURL: string;
      };
-     Volumes: {
-         [key: string]: {
-             StorageClasses: {
-                 [key: string]: boolean;
-             }
-         }
+     WebDAVDownload: {
+       ExternalURL: string;
+     };
+     WebShell: {
+       ExternalURL: string;
+     };
+   };
+   Workbench: {
+     DisableSharingURLsUI: boolean;
+     ArvadosDocsite: string;
+     FileViewersConfigURL: string;
+     WelcomePageHTML: string;
+     InactivePageHTML: string;
+     SSHHelpPageHTML: string;
+     SSHHelpHostSuffix: string;
+     SiteName: string;
+     IdleTimeout: string;
+   };
+   Login: {
+     LoginCluster: string;
+     Google: {
+       Enable: boolean;
+     };
+     LDAP: {
+       Enable: boolean;
+     };
+     OpenIDConnect: {
+       Enable: boolean;
+     };
+     PAM: {
+       Enable: boolean;
      };
+     SSO: {
+       Enable: boolean;
+     };
+     Test: {
+       Enable: boolean;
+     };
+   };
+   Collections: {
+     ForwardSlashNameSubstitution: string;
+     ManagedProperties?: {
+       [key: string]: {
+         Function: string;
+         Value: string;
+         Protected?: boolean;
+       };
+     };
+     TrustAllContent: boolean;
+   };
+   Volumes: {
+     [key: string]: {
+       StorageClasses: {
+         [key: string]: boolean;
+       };
+     };
+   };
  }
  
  export class Config {
@@@ -219,66 -239,72 +240,73 @@@ remove the entire ${varName} entry fro
  };
  
  // Maps remote cluster hosts and removes the default RemoteCluster entry
- export const mapRemoteHosts = (clusterConfigJSON: ClusterConfigJSON, config: Config) => {
-     config.remoteHosts = {};
-     Object.keys(clusterConfigJSON.RemoteClusters).forEach(k => { config.remoteHosts[k] = clusterConfigJSON.RemoteClusters[k].Host; });
-     delete config.remoteHosts["*"];
+ export const mapRemoteHosts = (
+   clusterConfigJSON: ClusterConfigJSON,
+   config: Config
+ ) => {
+   config.remoteHosts = {};
+   Object.keys(clusterConfigJSON.RemoteClusters).forEach((k) => {
+     config.remoteHosts[k] = clusterConfigJSON.RemoteClusters[k].Host;
+   });
+   delete config.remoteHosts['*'];
  };
  
- export const mockClusterConfigJSON = (config: Partial<ClusterConfigJSON>): ClusterConfigJSON => ({
-     API: {
-         UnfreezeProjectRequiresAdmin: false,
-         MaxItemsPerResponse: 1000,
+ export const mockClusterConfigJSON = (
+   config: Partial<ClusterConfigJSON>
+ ): ClusterConfigJSON => ({
+   API: {
+     UnfreezeProjectRequiresAdmin: false,
++    MaxItemsPerResponse: 1000,
+   },
+   ClusterID: '',
+   RemoteClusters: {},
+   Services: {
+     Controller: { ExternalURL: '' },
+     Workbench1: { ExternalURL: '' },
+     Workbench2: { ExternalURL: '' },
+     Websocket: { ExternalURL: '' },
+     WebDAV: { ExternalURL: '' },
+     WebDAVDownload: { ExternalURL: '' },
+     WebShell: { ExternalURL: '' },
+   },
+   Workbench: {
+     DisableSharingURLsUI: false,
+     ArvadosDocsite: '',
+     FileViewersConfigURL: '',
+     WelcomePageHTML: '',
+     InactivePageHTML: '',
+     SSHHelpPageHTML: '',
+     SSHHelpHostSuffix: '',
+     SiteName: '',
+     IdleTimeout: '0s',
+   },
+   Login: {
+     LoginCluster: '',
+     Google: {
+       Enable: false,
      },
-     ClusterID: "",
-     RemoteClusters: {},
-     Services: {
-         Controller: { ExternalURL: "" },
-         Workbench1: { ExternalURL: "" },
-         Workbench2: { ExternalURL: "" },
-         Websocket: { ExternalURL: "" },
-         WebDAV: { ExternalURL: "" },
-         WebDAVDownload: { ExternalURL: "" },
-         WebShell: { ExternalURL: "" },
+     LDAP: {
+       Enable: false,
      },
-     Workbench: {
-         DisableSharingURLsUI: false,
-         ArvadosDocsite: "",
-         FileViewersConfigURL: "",
-         WelcomePageHTML: "",
-         InactivePageHTML: "",
-         SSHHelpPageHTML: "",
-         SSHHelpHostSuffix: "",
-         SiteName: "",
-         IdleTimeout: "0s",
+     OpenIDConnect: {
+       Enable: false,
      },
-     Login: {
-         LoginCluster: "",
-         Google: {
-             Enable: false,
-         },
-         LDAP: {
-             Enable: false,
-         },
-         OpenIDConnect: {
-             Enable: false,
-         },
-         PAM: {
-             Enable: false,
-         },
-         SSO: {
-             Enable: false,
-         },
-         Test: {
-             Enable: false,
-         },
+     PAM: {
+       Enable: false,
      },
-     Collections: {
-         ForwardSlashNameSubstitution: "",
-         TrustAllContent: false,
+     SSO: {
+       Enable: false,
      },
-     Volumes: {},
-     ...config
+     Test: {
+       Enable: false,
+     },
+   },
+   Collections: {
+     ForwardSlashNameSubstitution: '',
+     TrustAllContent: false,
+   },
+   Volumes: {},
+   ...config,
  });
  
  export const mockConfig = (config: Partial<Config>): Config => ({
diff --cc src/services/groups-service/groups-service.ts
index b69483cb,1e9078d9..025314eb
--- a/src/services/groups-service/groups-service.ts
+++ b/src/services/groups-service/groups-service.ts
@@@ -2,28 -2,30 +2,31 @@@
  //
  // SPDX-License-Identifier: AGPL-3.0
  
 -import { snakeCase, camelCase } from 'lodash';
 +import { CancelToken } from 'axios';
 +import { snakeCase, camelCase } from "lodash";
  import { CommonResourceService } from 'services/common-service/common-resource-service';
- import { ListResults, ListArguments } from 'services/common-service/common-service';
- import { AxiosInstance, AxiosRequestConfig } from "axios";
- import { CollectionResource } from "models/collection";
- import { ProjectResource } from "models/project";
- import { ProcessResource } from "models/process";
- import { WorkflowResource } from "models/workflow";
- import { TrashableResourceService } from "services/common-service/trashable-resource-service";
- import { ApiActions } from "services/api/api-actions";
- import { GroupResource } from "models/group";
- import { Session } from "models/session";
+ import {
+   ListResults,
+   ListArguments,
+ } from 'services/common-service/common-service';
+ import { AxiosInstance, AxiosRequestConfig } from 'axios';
+ import { CollectionResource } from 'models/collection';
+ import { ProjectResource } from 'models/project';
+ import { ProcessResource } from 'models/process';
+ import { WorkflowResource } from 'models/workflow';
+ import { TrashableResourceService } from 'services/common-service/trashable-resource-service';
+ import { ApiActions } from 'services/api/api-actions';
+ import { GroupResource } from 'models/group';
+ import { Session } from 'models/session';
  
  export interface ContentsArguments {
-     limit?: number;
-     offset?: number;
-     order?: string;
-     filters?: string;
-     recursive?: boolean;
-     includeTrash?: boolean;
-     excludeHomeProject?: boolean;
+   limit?: number;
+   offset?: number;
+   order?: string;
+   filters?: string;
+   recursive?: boolean;
+   includeTrash?: boolean;
+   excludeHomeProject?: boolean;
  }
  
  export interface SharedArguments extends ListArguments {
@@@ -31,50 -33,59 +34,59 @@@
  }
  
  export type GroupContentsResource =
-     CollectionResource |
-     ProjectResource |
-     ProcessResource |
-     WorkflowResource;
+   | CollectionResource
+   | ProjectResource
+   | ProcessResource
+   | WorkflowResource;
  
- export class GroupsService<T extends GroupResource = GroupResource> extends TrashableResourceService<T> {
+ export class GroupsService<
+   T extends GroupResource = GroupResource
+ > extends TrashableResourceService<T> {
+   constructor(serverApi: AxiosInstance, actions: ApiActions) {
+     super(serverApi, 'groups', actions);
+   }
  
-     constructor(serverApi: AxiosInstance, actions: ApiActions) {
-         super(serverApi, "groups", actions);
-     }
- 
-     async contents(uuid: string, args: ContentsArguments = {}, session?: Session, cancelToken?: CancelToken): Promise<ListResults<GroupContentsResource>> {
-         const { filters, order, ...other } = args;
-         const params = {
-             ...other,
-             filters: filters ? `[${filters}]` : undefined,
-             order: order ? order : undefined
-         };
-         const pathUrl = uuid ? `/${uuid}/contents` : '/contents';
- 
-         const cfg: AxiosRequestConfig = { params: CommonResourceService.mapKeys(snakeCase)(params) };
-         if (session) {
-             cfg.baseURL = session.baseUrl;
-             cfg.headers = { 'Authorization': 'Bearer ' + session.token };
-         }
- 
-         if (cancelToken) {
-             cfg.cancelToken = cancelToken;
-         }
 -  async contents(
 -    uuid: string,
 -    args: ContentsArguments = {},
 -    session?: Session
 -  ): Promise<ListResults<GroupContentsResource>> {
++async contents(uuid: string, args: ContentsArguments = {}, session?: Session, cancelToken?: CancelToken): Promise<ListResults<GroupContentsResource>> {
+     const { filters, order, ...other } = args;
+     const params = {
 -      ...other,
 -      filters: filters ? `[${filters}]` : undefined,
 -      order: order ? order : undefined,
++        ...other,
++        filters: filters ? `[${filters}]` : undefined,
++        order: order ? order : undefined
+     };
+     const pathUrl = uuid ? `/${uuid}/contents` : '/contents';
 -
+     const cfg: AxiosRequestConfig = {
+       params: CommonResourceService.mapKeys(snakeCase)(params),
+     };
 +
-         const response = await CommonResourceService.defaultResponse(
-             this.serverApi.get(this.resourceType + pathUrl, cfg), this.actions, false
-         );
- 
-         return { ...TrashableResourceService.mapKeys(camelCase)(response), clusterId: session && session.clusterId };
+     if (session) {
+       cfg.baseURL = session.baseUrl;
+       cfg.headers = { Authorization: 'Bearer ' + session.token };
      }
  
-     shared(params: SharedArguments = {}): Promise<ListResults<GroupContentsResource>> {
-         return CommonResourceService.defaultResponse(
-             this.serverApi
-                 .get(this.resourceType + '/shared', { params }),
-             this.actions
-         );
++    if (cancelToken) {
++      cfg.cancelToken = cancelToken;
 +    }
++    
+     const response = await CommonResourceService.defaultResponse(
+       this.serverApi.get(this.resourceType + pathUrl, cfg),
+       this.actions,
+       false
+     );
+ 
+     return {
+       ...TrashableResourceService.mapKeys(camelCase)(response),
+       clusterId: session && session.clusterId,
+     };
+   }
+ 
+   shared(
+     params: SharedArguments = {}
+   ): Promise<ListResults<GroupContentsResource>> {
+     return CommonResourceService.defaultResponse(
+       this.serverApi.get(this.resourceType + '/shared', { params }),
+       this.actions
+     );
+   }
  }
  
  export enum GroupContentsResourcePrefix {

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list