[ARVADOS-WORKBENCH2] updated: 1.1.4-281-g0be34ac
Git user
git at public.curoverse.com
Thu Jul 12 09:16:12 EDT 2018
Summary of changes:
src/common/api/common-resource-service.ts | 13 +--------
src/common/api/filter-builder.ts | 2 +-
src/common/api/order-builder.ts | 2 +-
.../details-panel-factory.tsx | 3 +-
.../details-panel-factory/items/abstract-item.tsx | 7 ++---
.../items/collection-item.tsx | 6 +---
.../details-panel-factory/items/empty-item.tsx | 8 ++---
.../details-panel-factory/items/process-item.tsx | 6 +---
.../details-panel-factory/items/project-item.tsx | 6 +---
src/models/collection.ts | 3 +-
src/models/container-request.ts | 3 +-
src/models/empty.ts | 2 +-
src/models/group.ts | 3 +-
src/models/resource.ts | 34 ++++++++--------------
src/models/test-utils.ts | 5 ++--
src/models/workflow.ts | 3 +-
src/services/groups-service/groups-service.ts | 2 +-
src/store/details-panel/details-panel-action.ts | 3 +-
src/store/details-panel/details-panel-reducer.ts | 2 +-
src/store/navigation/navigation-action.ts | 2 +-
src/store/project/project-action.ts | 2 --
.../details-panel/details-panel.tsx | 5 ++--
22 files changed, 38 insertions(+), 84 deletions(-)
via 0be34acc576c9552f4c669062defe51c36888866 (commit)
from 0ce21e3487078a53f1b653446b5e615cd6dda709 (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 0be34acc576c9552f4c669062defe51c36888866
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Thu Jul 12 15:15:56 2018 +0200
Move Resource interface to models, unify ResourceKind enum
Feature #13798
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/common/api/common-resource-service.ts b/src/common/api/common-resource-service.ts
index 8df179c..4c05392 100644
--- a/src/common/api/common-resource-service.ts
+++ b/src/common/api/common-resource-service.ts
@@ -6,18 +6,7 @@ import * as _ from "lodash";
import FilterBuilder from "./filter-builder";
import OrderBuilder from "./order-builder";
import { AxiosInstance } from "axios";
-
-export interface Resource {
- uuid: string;
- ownerUuid: string;
- createdAt: string;
- modifiedByClientUuid: string;
- modifiedByUserUuid: string;
- modifiedAt: string;
- href: string;
- kind: string;
- etag: string;
-}
+import { Resource } from "../../models/resource";
export interface ListArguments {
limit?: number;
diff --git a/src/common/api/filter-builder.ts b/src/common/api/filter-builder.ts
index 47772e2..38c4fee 100644
--- a/src/common/api/filter-builder.ts
+++ b/src/common/api/filter-builder.ts
@@ -3,7 +3,7 @@
// SPDX-License-Identifier: AGPL-3.0
import * as _ from "lodash";
-import { Resource } from "./common-resource-service";
+import { Resource } from "../../models/resource";
export default class FilterBuilder<T extends Resource = Resource> {
diff --git a/src/common/api/order-builder.ts b/src/common/api/order-builder.ts
index 3163791..b5a2e80 100644
--- a/src/common/api/order-builder.ts
+++ b/src/common/api/order-builder.ts
@@ -3,7 +3,7 @@
// SPDX-License-Identifier: AGPL-3.0
import * as _ from "lodash";
-import { Resource } from "./common-resource-service";
+import { Resource } from "../../models/resource";
export default class OrderBuilder<T extends Resource = Resource> {
diff --git a/src/components/details-panel-factory/details-panel-factory.tsx b/src/components/details-panel-factory/details-panel-factory.tsx
index a9e5a21..4383e79 100644
--- a/src/components/details-panel-factory/details-panel-factory.tsx
+++ b/src/components/details-panel-factory/details-panel-factory.tsx
@@ -9,6 +9,7 @@ import ProcessItem from './items/process-item';
import AbstractItem from './items/abstract-item';
import EmptyItem from './items/empty-item';
import { DetailsPanelResource } from '../../views-components/details-panel/details-panel';
+import { EmptyResource } from '../../models/empty';
export default class DetailsPanelFactory {
static createItem(res: DetailsPanelResource): AbstractItem {
@@ -20,7 +21,7 @@ export default class DetailsPanelFactory {
case ResourceKind.Process:
return new ProcessItem(res);
default:
- return new EmptyItem(res);
+ return new EmptyItem(res as EmptyResource);
}
}
}
\ No newline at end of file
diff --git a/src/components/details-panel-factory/items/abstract-item.tsx b/src/components/details-panel-factory/items/abstract-item.tsx
index fb30e84..6a0094b 100644
--- a/src/components/details-panel-factory/items/abstract-item.tsx
+++ b/src/components/details-panel-factory/items/abstract-item.tsx
@@ -6,12 +6,9 @@ import * as React from 'react';
import { IconTypes } from '../../icon/icon';
import { DetailsPanelResource } from '../../../views-components/details-panel/details-panel';
-export default abstract class AbstractItem {
- protected item: DetailsPanelResource;
+export default abstract class AbstractItem<T extends DetailsPanelResource = DetailsPanelResource> {
- constructor(item: DetailsPanelResource) {
- this.item = item;
- }
+ constructor(protected item: T) {}
getTitle(): string {
return this.item.name;
diff --git a/src/components/details-panel-factory/items/collection-item.tsx b/src/components/details-panel-factory/items/collection-item.tsx
index 448eebb..362bd31 100644
--- a/src/components/details-panel-factory/items/collection-item.tsx
+++ b/src/components/details-panel-factory/items/collection-item.tsx
@@ -8,11 +8,7 @@ import Attribute from '../../attribute/attribute';
import AbstractItem from './abstract-item';
import { CollectionResource } from '../../../models/collection';
-export default class CollectionItem extends AbstractItem {
-
- constructor(item: CollectionResource) {
- super(item);
- }
+export default class CollectionItem extends AbstractItem<CollectionResource> {
getIcon(): IconTypes {
return IconTypes.COLLECTION;
diff --git a/src/components/details-panel-factory/items/empty-item.tsx b/src/components/details-panel-factory/items/empty-item.tsx
index 5d6e3d4..16394c8 100644
--- a/src/components/details-panel-factory/items/empty-item.tsx
+++ b/src/components/details-panel-factory/items/empty-item.tsx
@@ -8,12 +8,8 @@ import AbstractItem from './abstract-item';
import EmptyState from '../../empty-state/empty-state';
import { EmptyResource } from '../../../models/empty';
-export default class EmptyItem extends AbstractItem {
-
- constructor(item: EmptyResource) {
- super(item);
- }
-
+export default class EmptyItem extends AbstractItem<EmptyResource> {
+
getIcon(): IconTypes {
return IconTypes.FOLDER;
}
diff --git a/src/components/details-panel-factory/items/process-item.tsx b/src/components/details-panel-factory/items/process-item.tsx
index c8eab0a..369e931 100644
--- a/src/components/details-panel-factory/items/process-item.tsx
+++ b/src/components/details-panel-factory/items/process-item.tsx
@@ -8,11 +8,7 @@ import Attribute from '../../attribute/attribute';
import AbstractItem from './abstract-item';
import { ProcessResource } from '../../../models/process';
-export default class ProcessItem extends AbstractItem {
-
- constructor(item: ProcessResource) {
- super(item);
- }
+export default class ProcessItem extends AbstractItem<ProcessResource> {
getIcon(): IconTypes {
return IconTypes.PROCESS;
diff --git a/src/components/details-panel-factory/items/project-item.tsx b/src/components/details-panel-factory/items/project-item.tsx
index 10402ed..c4ccd2a 100644
--- a/src/components/details-panel-factory/items/project-item.tsx
+++ b/src/components/details-panel-factory/items/project-item.tsx
@@ -8,11 +8,7 @@ import Attribute from '../../attribute/attribute';
import AbstractItem from './abstract-item';
import { ProjectResource } from '../../../models/project';
-export default class ProjectItem extends AbstractItem {
-
- constructor(item: ProjectResource) {
- super(item);
- }
+export default class ProjectItem extends AbstractItem<ProjectResource> {
getIcon(): IconTypes {
return IconTypes.PROJECT;
diff --git a/src/models/collection.ts b/src/models/collection.ts
index 8effd8e..2a92594 100644
--- a/src/models/collection.ts
+++ b/src/models/collection.ts
@@ -2,8 +2,7 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource } from "../common/api/common-resource-service";
-import { ResourceKind } from "./kinds";
+import { Resource, ResourceKind } from "./resource";
export interface CollectionResource extends Resource {
kind: ResourceKind.Collection;
diff --git a/src/models/container-request.ts b/src/models/container-request.ts
index 4a10414..162e0f5 100644
--- a/src/models/container-request.ts
+++ b/src/models/container-request.ts
@@ -2,8 +2,7 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource } from "../common/api/common-resource-service";
-import { ResourceKind } from "./kinds";
+import { Resource, ResourceKind } from "./resource";
export enum ContainerRequestState {
Uncommitted = "Uncommitted",
diff --git a/src/models/empty.ts b/src/models/empty.ts
index 76b42b4..9731207 100644
--- a/src/models/empty.ts
+++ b/src/models/empty.ts
@@ -6,5 +6,5 @@ import { ResourceKind } from "./resource";
export interface EmptyResource {
name: string;
- kind: ResourceKind;
+ kind: undefined;
}
\ No newline at end of file
diff --git a/src/models/group.ts b/src/models/group.ts
index 4bb9a7f..d8efae2 100644
--- a/src/models/group.ts
+++ b/src/models/group.ts
@@ -2,8 +2,7 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource } from "../common/api/common-resource-service";
-import { ResourceKind } from "./kinds";
+import { Resource, ResourceKind } from "./resource";
export interface GroupResource extends Resource {
kind: ResourceKind.Group;
diff --git a/src/models/resource.ts b/src/models/resource.ts
index 1dd5979..2d72fbc 100644
--- a/src/models/resource.ts
+++ b/src/models/resource.ts
@@ -3,32 +3,22 @@
// SPDX-License-Identifier: AGPL-3.0
export interface Resource {
- name: string;
- createdAt: string;
- modifiedAt: string;
uuid: string;
ownerUuid: string;
+ createdAt: string;
+ modifiedByClientUuid: string;
+ modifiedByUserUuid: string;
+ modifiedAt: string;
href: string;
- kind: ResourceKind;
+ kind: string;
+ etag: string;
}
export enum ResourceKind {
- PROJECT = "project",
- COLLECTION = "collection",
- PIPELINE = "pipeline",
- UNKNOWN = "unknown"
-}
-
-export function getResourceKind(itemKind: string) {
- switch (itemKind) {
- case "arvados#project":
- case "arvados#group":
- return ResourceKind.PROJECT;
- case "arvados#collection":
- return ResourceKind.COLLECTION;
- case "arvados#pipeline":
- return ResourceKind.PIPELINE;
- default:
- return ResourceKind.UNKNOWN;
- }
+ Collection = "arvados#collection",
+ ContainerRequest = "arvados#containerRequest",
+ Group = "arvados#group",
+ Process = "arvados#containerRequest",
+ Project = "arvados#group",
+ Workflow = "arvados#workflow"
}
diff --git a/src/models/test-utils.ts b/src/models/test-utils.ts
index aa8d96b..4d75b10 100644
--- a/src/models/test-utils.ts
+++ b/src/models/test-utils.ts
@@ -2,9 +2,8 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { GroupClass, GroupResource } from "./group";
-import { ResourceKind } from "./kinds";
-import { Resource } from "../common/api/common-resource-service";
+import { GroupResource } from "./group";
+import { Resource, ResourceKind } from "./resource";
type ResourceUnion = GroupResource;
diff --git a/src/models/workflow.ts b/src/models/workflow.ts
index 2054550..e0a5df4 100644
--- a/src/models/workflow.ts
+++ b/src/models/workflow.ts
@@ -2,8 +2,7 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource } from "../common/api/common-resource-service";
-import { ResourceKind } from "./kinds";
+import { Resource, ResourceKind } from "./resource";
export interface WorkflowResource extends Resource {
kind: ResourceKind.Workflow;
diff --git a/src/services/groups-service/groups-service.ts b/src/services/groups-service/groups-service.ts
index 2a5a51a..1318dac 100644
--- a/src/services/groups-service/groups-service.ts
+++ b/src/services/groups-service/groups-service.ts
@@ -3,7 +3,7 @@
// SPDX-License-Identifier: AGPL-3.0
import * as _ from "lodash";
-import CommonResourceService, { Resource, ListResults } from "../../common/api/common-resource-service";
+import CommonResourceService, { ListResults } from "../../common/api/common-resource-service";
import FilterBuilder from "../../common/api/filter-builder";
import OrderBuilder from "../../common/api/order-builder";
import { AxiosInstance } from "axios";
diff --git a/src/store/details-panel/details-panel-action.ts b/src/store/details-panel/details-panel-action.ts
index ffa66b6..647e24f 100644
--- a/src/store/details-panel/details-panel-action.ts
+++ b/src/store/details-panel/details-panel-action.ts
@@ -3,11 +3,12 @@
// SPDX-License-Identifier: AGPL-3.0
import { unionize, ofType, UnionOf } from "unionize";
-import CommonResourceService, { Resource } from "../../common/api/common-resource-service";
+import CommonResourceService from "../../common/api/common-resource-service";
import { ResourceKind } from "../../models/kinds";
import { Dispatch } from "redux";
import { groupsService } from "../../services/services";
import { serverApi } from "../../common/api/server-api";
+import { Resource } from "../../models/resource";
const actions = unionize({
TOGGLE_DETAILS_PANEL: ofType<{}>(),
diff --git a/src/store/details-panel/details-panel-reducer.ts b/src/store/details-panel/details-panel-reducer.ts
index 73fc604..f57b9f1 100644
--- a/src/store/details-panel/details-panel-reducer.ts
+++ b/src/store/details-panel/details-panel-reducer.ts
@@ -2,8 +2,8 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource } from "../../common/api/common-resource-service";
import actions, { DetailsPanelAction } from "./details-panel-action";
+import { Resource } from "../../models/resource";
export interface DetailsPanelState {
item: Resource | null;
diff --git a/src/store/navigation/navigation-action.ts b/src/store/navigation/navigation-action.ts
index 25cc003..89ae727 100644
--- a/src/store/navigation/navigation-action.ts
+++ b/src/store/navigation/navigation-action.ts
@@ -10,8 +10,8 @@ import { findTreeItem } from "../project/project-reducer";
import dataExplorerActions from "../data-explorer/data-explorer-action";
import { PROJECT_PANEL_ID } from "../../views/project-panel/project-panel";
import { RootState } from "../store";
-import { Resource } from "../../common/api/common-resource-service";
import { ResourceKind } from "../../models/kinds";
+import { Resource } from "../../models/resource";
export const getResourceUrl = <T extends Resource>(resource: T): string => {
switch (resource.kind) {
diff --git a/src/store/project/project-action.ts b/src/store/project/project-action.ts
index 3acf091..f7708eb 100644
--- a/src/store/project/project-action.ts
+++ b/src/store/project/project-action.ts
@@ -6,9 +6,7 @@ import { default as unionize, ofType, UnionOf } from "unionize";
import { ProjectResource } from "../../models/project";
import { projectService } from "../../services/services";
import { Dispatch } from "redux";
-import { getResourceKind } from "../../models/resource";
import FilterBuilder from "../../common/api/filter-builder";
-import { ThunkAction } from "../../../node_modules/redux-thunk";
import { RootState } from "../store";
const actions = unionize({
diff --git a/src/views-components/details-panel/details-panel.tsx b/src/views-components/details-panel/details-panel.tsx
index 15ca8f3..99c4063 100644
--- a/src/views-components/details-panel/details-panel.tsx
+++ b/src/views-components/details-panel/details-panel.tsx
@@ -21,7 +21,6 @@ import IconBase, { IconTypes } from '../../components/icon/icon';
import { ProcessResource } from '../../models/process';
import DetailsPanelFactory from '../../components/details-panel-factory/details-panel-factory';
import AbstractItem from '../../components/details-panel-factory/items/abstract-item';
-import { ResourceKind } from '../../models/resource';
import { EmptyResource } from '../../models/empty';
export interface DetailsPanelDataProps {
@@ -119,7 +118,7 @@ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
}
});
-// TODO: move to models
+
export type DetailsPanelResource = ProjectResource | CollectionResource | ProcessResource | EmptyResource;
const getItem = (res: DetailsPanelResource) => {
@@ -127,7 +126,7 @@ const getItem = (res: DetailsPanelResource) => {
};
const getDefaultItem = () => {
- return DetailsPanelFactory.createItem({ kind: ResourceKind.UNKNOWN, name: 'Projects'});
+ return DetailsPanelFactory.createItem({ kind: undefined, name: 'Projects' });
};
const mapStateToProps = ({ detailsPanel }: RootState) => {
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list