//
// SPDX-License-Identifier: AGPL-3.0
+import { TreeItem } from "../../components/tree/tree";
+import { Project } from "../../models/project";
+
export interface ProjectExplorerItem {
uuid: string;
name: string;
fileSize?: number;
status?: string;
}
+
+export const mapProjectTreeItem = (item: TreeItem<Project>): ProjectExplorerItem => ({
+ name: item.data.name,
+ type: item.data.kind,
+ owner: item.data.ownerUuid,
+ lastModified: item.data.modifiedAt,
+ uuid: item.data.uuid
+});
\ No newline at end of file
export const PROJECT_EXPLORER_ID = "projectExplorer";
class ProjectExplorer extends React.Component<DispatchProp> {
-
- contextMenuActions = [[{
- icon: "fas fa-users fa-fw",
- name: "Share"
- }, {
- icon: "fas fa-sign-out-alt fa-fw",
- name: "Move to"
- }, {
- icon: "fas fa-star fa-fw",
- name: "Add to favourite"
- }, {
- icon: "fas fa-edit fa-fw",
- name: "Rename"
- }, {
- icon: "fas fa-copy fa-fw",
- name: "Make a copy"
- }, {
- icon: "fas fa-download fa-fw",
- name: "Download"
- }], [{
- icon: "fas fa-trash-alt fa-fw",
- name: "Remove"
- }
- ]];
-
render() {
return <DataExplorer
id={PROJECT_EXPLORER_ID}
- contextActions={this.contextMenuActions}
+ contextActions={contextMenuActions}
onColumnToggle={this.toggleColumn}
onFiltersChange={this.changeFilters}
onRowClick={console.log}
render: item => renderDate(item.lastModified)
}];
+const contextMenuActions = [[{
+ icon: "fas fa-users fa-fw",
+ name: "Share"
+}, {
+ icon: "fas fa-sign-out-alt fa-fw",
+ name: "Move to"
+}, {
+ icon: "fas fa-star fa-fw",
+ name: "Add to favourite"
+}, {
+ icon: "fas fa-edit fa-fw",
+ name: "Rename"
+}, {
+ icon: "fas fa-copy fa-fw",
+ name: "Make a copy"
+}, {
+ icon: "fas fa-download fa-fw",
+ name: "Download"
+}], [{
+ icon: "fas fa-trash-alt fa-fw",
+ name: "Remove"
+}
+]];
+
export default connect()(ProjectExplorer);
+++ /dev/null
-// Copyright (C) The Arvados Authors. All rights reserved.
-//
-// SPDX-License-Identifier: AGPL-3.0
-
-import { TreeItem } from "../../components/tree/tree";
-import { Project } from "../../models/project";
-import { ProjectExplorerItem } from "../../views-components/project-explorer/project-explorer-item";
-
-export const mapProjectTreeItem = (item: TreeItem<Project>): ProjectExplorerItem => ({
- name: item.data.name,
- type: item.data.kind,
- owner: item.data.ownerUuid,
- lastModified: item.data.modifiedAt,
- uuid: item.data.uuid
-});
+++ /dev/null
-// Copyright (C) The Arvados Authors. All rights reserved.
-//
-// SPDX-License-Identifier: AGPL-3.0
-
-import * as React from 'react';
-import { RouteComponentProps } from 'react-router-dom';
-import { DispatchProp, connect } from 'react-redux';
-import { ProjectState, findTreeItem } from '../../store/project/project-reducer';
-import { RootState } from '../../store/store';
-import ProjectExplorer from '../../views-components/project-explorer/project-explorer';
-
-interface ProjectPanelDataProps {
- projects: ProjectState;
-}
-
-type ProjectPanelProps = ProjectPanelDataProps & RouteComponentProps<{ name: string }> & DispatchProp;
-
-class ProjectPanel extends React.Component<ProjectPanelProps> {
-
- render() {
- return (
- <ProjectExplorer />
- );
- }
-}
-
-export default connect(
- (state: RootState) => ({
- projects: state.projects
- })
-)(ProjectPanel);
import { TreeItem, TreeItemStatus } from "../../components/tree/tree";
import { Project } from "../../models/project";
import { getTreePath, findTreeItem } from '../../store/project/project-reducer';
-import ProjectPanel from '../project-panel/project-panel';
-import { PROJECT_EXPLORER_ID } from '../../views-components/project-explorer/project-explorer';
-import { ProjectExplorerItem } from '../../views-components/project-explorer/project-explorer-item';
+import ProjectExplorer, { PROJECT_EXPLORER_ID } from '../../views-components/project-explorer/project-explorer';
+import { ProjectExplorerItem, mapProjectTreeItem } from '../../views-components/project-explorer/project-explorer-item';
import sidePanelActions from '../../store/side-panel/side-panel-action';
-import { projectService } from '../../services/services';
import SidePanel, { SidePanelItem } from '../../components/side-panel/side-panel';
const drawerWidth = 240;
const project = findTreeItem(this.props.projects, itemId);
const items: ProjectExplorerItem[] = project && project.items
- ? project.items.map(({ data }) => ({
- uuid: data.uuid,
- name: data.name,
- type: data.kind,
- owner: data.ownerUuid,
- lastModified: data.modifiedAt
- }))
+ ? project.items.map(mapProjectTreeItem)
: [];
this.props.dispatch(dataExplorerActions.SET_ITEMS({ id: PROJECT_EXPLORER_ID, items }));
}
<main className={classes.contentWrapper}>
<div className={classes.content}>
<Switch>
- <Route path="/project/:name" component={ProjectPanel} />
+ <Route path="/project/:name" component={ProjectExplorer} />
</Switch>
</div>
</main>