X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/ae691a976c8e505afba7cec6f8f316d1c5b175a7..a48138fa7227595bba0db267a4c37832cba9afa2:/src/views-components/details-panel/project-details.tsx diff --git a/src/views-components/details-panel/project-details.tsx b/src/views-components/details-panel/project-details.tsx index 84b37066..8f03cc5d 100644 --- a/src/views-components/details-panel/project-details.tsx +++ b/src/views-components/details-panel/project-details.tsx @@ -3,31 +3,85 @@ // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; -import { ProjectIcon } from '../../components/icon/icon'; -import { ProjectResource } from '../../models/project'; -import { formatDate } from '../../common/formatters'; -import { ResourceKind } from '../../models/resource'; -import { resourceLabel } from '../../common/labels'; +import { connect } from 'react-redux'; +import { openProjectPropertiesDialog } from '~/store/details-panel/details-panel-action'; +import { ProjectIcon, RenameIcon } from '~/components/icon/icon'; +import { ProjectResource } from '~/models/project'; +import { formatDate } from '~/common/formatters'; +import { ResourceKind } from '~/models/resource'; +import { resourceLabel } from '~/common/labels'; import { DetailsData } from "./details-data"; -import { DetailsAttribute } from "../../components/details-attribute/details-attribute"; +import { DetailsAttribute } from "~/components/details-attribute/details-attribute"; +import { RichTextEditorLink } from '~/components/rich-text-editor-link/rich-text-editor-link'; +import { withStyles, StyleRulesCallback, Chip, WithStyles } from '@material-ui/core'; +import { ArvadosTheme } from '~/common/custom-theme'; export class ProjectDetails extends DetailsData { - getIcon(className?: string) { return ; } getDetails() { - return
- + return ; + } +} + +type CssRules = 'tag' | 'editIcon'; + +const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ + tag: { + marginRight: theme.spacing.unit, + marginBottom: theme.spacing.unit + }, + editIcon: { + fontSize: '1.125rem', + cursor: 'pointer' + } +}); + + +interface ProjectDetailsComponentDataProps { + project: ProjectResource; +} + +interface ProjectDetailsComponentActionProps { + onClick: () => void; +} + +const mapDispatchToProps = ({ onClick: openProjectPropertiesDialog }); + +type ProjectDetailsComponentProps = ProjectDetailsComponentDataProps & ProjectDetailsComponentActionProps & WithStyles; + +const ProjectDetailsComponent = connect(null, mapDispatchToProps)( + withStyles(styles)( + ({ classes, project, onClick }: ProjectDetailsComponentProps) =>
+ {/* Missing attr */} - - - + + + + {/* Missing attr */} - - -
; - } -} + {/**/} + + {project.description ? + + : '---' + } + + +
+ +
+
+ { + Object.keys(project.properties).map(k => { + return ; + }) + } +
+ ));