import { IconType, PendingIcon } from 'components/icon/icon';
import { SvgIconProps } from '@material-ui/core/SvgIcon';
import ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';
+//lisa
+import { Checkbox } from '@material-ui/core';
+import { createTree } from 'models/tree';
export type DataColumns<I, R> = Array<DataColumn<I, R>>;
currentRoute?: string;
}
-type CssRules = 'tableBody' | 'root' | 'content' | 'noItemsInfo' | 'tableCellSelect' | 'tableCell' | 'arrow' | 'arrowButton' | 'tableCellWorkflows' | 'loader';
+type CssRules = 'tableBody' | 'root' | 'content' | 'noItemsInfo' | 'checkBoxCell' | 'tableCell' | 'arrow' | 'arrowButton' | 'tableCellWorkflows' | 'loader';
const styles: StyleRulesCallback<CssRules> = (theme: Theme) => ({
root: {
textAlign: 'center',
padding: theme.spacing.unit,
},
- tableCellSelect: {
+ checkBoxCell: {
+ // border: '1px dotted green',
padding: '0',
},
tableCell: {
},
});
+const checkBoxColumn: DataColumn<any, any> = {
+ name: 'foo',
+ selected: true,
+ configurable: false,
+ filters: createTree(),
+ render: () => <></>,
+};
+
type DataTableProps<T> = DataTableDataProps<T> & WithStyles<CssRules>;
export const DataTable = withStyles(styles)(
class Component<T> extends React.Component<DataTableProps<T>> {
+ handleResourceSelect = (uuid) => {
+ console.log(uuid);
+ };
render() {
const { items, classes, working } = this.props;
+ this.props.columns.unshift(checkBoxColumn);
return (
<div className={classes.root}>
<div className={classes.content}>
onDoubleClick={(event) => onRowDoubleClick && onRowDoubleClick(event, item)}
selected={item === currentItemUuid}
>
- {this.mapVisibleColumns((column, index) => (
- <TableCell
- key={column.key || index}
- className={currentRoute === '/workflows' ? classes.tableCellWorkflows : index === 0 ? classes.tableCellSelect : classes.tableCell}
- >
- {column.render(item)}
- </TableCell>
- ))}
+ {this.mapVisibleColumns((column, index) => {
+ return index === 0 ? (
+ <TableCell key={column.key || index} className={classes.checkBoxCell}>
+ <Checkbox color='primary' onChange={() => this.handleResourceSelect(item)} />
+ </TableCell>
+ ) : (
+ <TableCell key={column.key || index} className={currentRoute === '/workflows' ? classes.tableCellWorkflows : classes.tableCell}>
+ {column.render(item)}
+ </TableCell>
+ );
+ })}
</TableRow>
);
};
return resource;
})((resource: GroupContentsResource & DispatchProp<any>) => renderName(resource.dispatch, resource));
-// const renderSelect = () => <Checkbox color='primary' />;
-const renderSelect = () => <input type='checkbox'></input>;
-
-export const ResourceSelect = connect((state: RootState, props: { uuid: string }) => {
- const resource = getResource<GroupContentsResource>(props.uuid)(state.resources);
- return resource;
-})((resource: GroupContentsResource & DispatchProp<any>) => renderSelect());
-
const renderIcon = (item: GroupContentsResource) => {
switch (item.kind) {
case ResourceKind.PROJECT:
import { SortDirection } from 'components/data-table/data-column';
import { ResourceKind, Resource } from 'models/resource';
import {
- ResourceSelect,
ResourceName,
ProcessStatus as ResourceStatus,
ResourceType,
});
export enum ProjectPanelColumnNames {
- SELECT = '',
NAME = 'Name',
STATUS = 'Status',
TYPE = 'Type',
}
export const projectPanelColumns: DataColumns<string, ProjectResource> = [
- {
- name: ProjectPanelColumnNames.SELECT,
- selected: true,
- configurable: false,
- filters: createTree(),
- render: (uuid) => <ResourceSelect uuid={uuid} />,
- },
{
name: ProjectPanelColumnNames.NAME,
selected: true,