-
-export const PROJECT_PANEL_ID = "projectPanel";
-
-export interface ProjectPanelFilter extends DataTableFilterItem {
- type: ResourceKind | ContainerRequestState;
-}
-
-type ProjectPanelProps = {
- currentItemId: string,
- onItemClick: (item: ProjectPanelItem) => void,
- onContextMenu: (event: React.MouseEvent<HTMLElement>, item: ProjectPanelItem) => void;
- onDialogOpen: (ownerUuid: string) => void;
- onItemDoubleClick: (item: ProjectPanelItem) => void,
- onItemRouteChange: (itemId: string) => void
-}
- & DispatchProp
- & WithStyles<CssRules>
- & RouteComponentProps<{ id: string }>;
-
-class ProjectPanel extends React.Component<ProjectPanelProps> {
- render() {
- return <div>
- <div className={this.props.classes.toolbar}>
- <Button color="primary" variant="raised" className={this.props.classes.button}>
- Create a collection
- </Button>
- <Button color="primary" variant="raised" className={this.props.classes.button}>
- Run a process
- </Button>
- <Button color="primary" onClick={() => this.props.onDialogOpen(this.props.currentItemId)} variant="raised" className={this.props.classes.button}>
- New project
- </Button>
- </div>
- <DataExplorer
- id={PROJECT_PANEL_ID}
- onRowClick={this.props.onItemClick}
- onRowDoubleClick={this.props.onItemDoubleClick}
- onContextMenu={this.props.onContextMenu} />
- </div>;
- }
-
- componentWillReceiveProps({ match, currentItemId }: ProjectPanelProps) {
- if (match.params.id !== currentItemId) {
- this.props.onItemRouteChange(match.params.id);
- }
- }
-}
-
-type CssRules = "toolbar" | "button";
-
-const styles: StyleRulesCallback<CssRules> = theme => ({
+import { ResourceKind } from '../../models/resource';
+import { resourceLabel } from '../../common/labels';
+import { ArvadosTheme } from '../../common/custom-theme';
+import { renderName, renderStatus, renderType, renderOwner, renderFileSize, renderDate } from '../../views-components/data-explorer/renderers';
+import { restoreBranch } from '../../store/navigation/navigation-action';
+import { ProjectIcon } from '../../components/icon/icon';
+
+type CssRules = 'root' | "toolbar" | "button";
+
+const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
+ root: {
+ position: 'relative',
+ width: '100%',
+ height: '100%'
+ },