projects
/
arvados-workbench2.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '20252-subprocess-panel-refresh-bug' into main. Closes #20252
[arvados-workbench2.git]
/
src
/
views
/
collection-content-address-panel
/
collection-content-address-panel.tsx
diff --git
a/src/views/collection-content-address-panel/collection-content-address-panel.tsx
b/src/views/collection-content-address-panel/collection-content-address-panel.tsx
index 13e131b04a1265b85e13cb51c8ea71f65f357c17..ea23ce51239bc29a67199e45ddc5b36e90ccf105 100644
(file)
--- a/
src/views/collection-content-address-panel/collection-content-address-panel.tsx
+++ b/
src/views/collection-content-address-panel/collection-content-address-panel.tsx
@@
-7,13
+7,11
@@
import {
StyleRulesCallback,
WithStyles,
withStyles,
StyleRulesCallback,
WithStyles,
withStyles,
- Grid,
Button
} from '@material-ui/core';
import { CollectionIcon } from 'components/icon/icon';
import { ArvadosTheme } from 'common/custom-theme';
import { BackIcon } from 'components/icon/icon';
Button
} from '@material-ui/core';
import { CollectionIcon } from 'components/icon/icon';
import { ArvadosTheme } from 'common/custom-theme';
import { BackIcon } from 'components/icon/icon';
-import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view';
import { COLLECTIONS_CONTENT_ADDRESS_PANEL_ID } from 'store/collections-content-address-panel/collections-content-address-panel-actions';
import { DataExplorer } from "views-components/data-explorer/data-explorer";
import { Dispatch } from 'redux';
import { COLLECTIONS_CONTENT_ADDRESS_PANEL_ID } from 'store/collections-content-address-panel/collections-content-address-panel-actions';
import { DataExplorer } from "views-components/data-explorer/data-explorer";
import { Dispatch } from 'redux';
@@
-34,40
+32,32
@@
import {
ResourceLastModifiedDate,
ResourceStatus
} from 'views-components/data-explorer/renderers';
ResourceLastModifiedDate,
ResourceStatus
} from 'views-components/data-explorer/renderers';
+import { getResource, ResourcesState } from 'store/resources/resources';
+import { RootState } from 'store/store';
+import { CollectionResource } from 'models/collection';
-type CssRules = 'backLink' | 'backIcon' | '
card' | 'title' | 'iconHeader' | 'link
';
+type CssRules = 'backLink' | 'backIcon' | '
root' | 'content
';
const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
backLink: {
const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
backLink: {
- fontSize: '1
4
px',
+ fontSize: '1
2
px',
fontWeight: 600,
display: 'flex',
alignItems: 'center',
padding: theme.spacing.unit,
marginBottom: theme.spacing.unit,
fontWeight: 600,
display: 'flex',
alignItems: 'center',
padding: theme.spacing.unit,
marginBottom: theme.spacing.unit,
- color: theme.palette.grey["
7
00"],
+ color: theme.palette.grey["
5
00"],
},
backIcon: {
marginRight: theme.spacing.unit
},
},
backIcon: {
marginRight: theme.spacing.unit
},
-
card
: {
- width: '100%'
+
root
: {
+ width: '100%'
,
},
},
- title: {
- color: theme.palette.grey["700"]
+ content: {
+ // reserve space for the content address bar
+ height: `calc(100% - ${theme.spacing.unit * 7}px)`,
},
},
- iconHeader: {
- fontSize: '1.875rem',
- color: theme.customs.colors.green700
- },
- link: {
- fontSize: '0.875rem',
- color: theme.palette.primary.main,
- textAlign: 'right',
- '&:hover': {
- cursor: 'pointer'
- }
- }
});
enum CollectionContentAddressPanelColumnNames {
});
enum CollectionContentAddressPanelColumnNames {
@@
-77,12
+67,12
@@
enum CollectionContentAddressPanelColumnNames {
LAST_MODIFIED = "Last modified"
}
LAST_MODIFIED = "Last modified"
}
-export const collectionContentAddressPanelColumns: DataColumns<string> = [
+export const collectionContentAddressPanelColumns: DataColumns<string
, CollectionResource
> = [
{
name: CollectionContentAddressPanelColumnNames.COLLECTION_WITH_THIS_ADDRESS,
selected: true,
configurable: true,
{
name: CollectionContentAddressPanelColumnNames.COLLECTION_WITH_THIS_ADDRESS,
selected: true,
configurable: true,
- sort
Direction: SortDirection.NONE
,
+ sort
: {direction: SortDirection.NONE, field: "uuid"}
,
filters: createTree(),
render: uuid => <ResourceName uuid={uuid} />
},
filters: createTree(),
render: uuid => <ResourceName uuid={uuid} />
},
@@
-104,24
+94,35
@@
export const collectionContentAddressPanelColumns: DataColumns<string> = [
name: CollectionContentAddressPanelColumnNames.LAST_MODIFIED,
selected: true,
configurable: true,
name: CollectionContentAddressPanelColumnNames.LAST_MODIFIED,
selected: true,
configurable: true,
- sort
Direction: SortDirection.DESC
,
+ sort
: {direction: SortDirection.DESC, field: "modifiedAt"}
,
filters: createTree(),
render: uuid => <ResourceLastModifiedDate uuid={uuid} />
}
];
filters: createTree(),
render: uuid => <ResourceLastModifiedDate uuid={uuid} />
}
];
-
export
interface CollectionContentAddressPanelActionProps {
- onContextMenu: (event: React.MouseEvent<any>, uuid: string) => void;
+interface CollectionContentAddressPanelActionProps {
+ onContextMenu: (
resources: ResourcesState) => (
event: React.MouseEvent<any>, uuid: string) => void;
onItemClick: (item: string) => void;
onItemDoubleClick: (item: string) => void;
}
onItemClick: (item: string) => void;
onItemDoubleClick: (item: string) => void;
}
+interface CollectionContentAddressPanelDataProps {
+ resources: ResourcesState;
+}
+
+const mapStateToProps = ({ resources }: RootState): CollectionContentAddressPanelDataProps => ({
+ resources
+})
+
const mapDispatchToProps = (dispatch: Dispatch): CollectionContentAddressPanelActionProps => ({
const mapDispatchToProps = (dispatch: Dispatch): CollectionContentAddressPanelActionProps => ({
- onContextMenu: (event, resourceUuid) => {
+ onContextMenu: (resources: ResourcesState) => (event, resourceUuid) => {
+ const resource = getResource<CollectionResource>(resourceUuid)(resources);
const kind = dispatch<any>(resourceUuidToContextMenuKind(resourceUuid));
if (kind) {
dispatch<any>(openContextMenu(event, {
const kind = dispatch<any>(resourceUuidToContextMenuKind(resourceUuid));
if (kind) {
dispatch<any>(openContextMenu(event, {
- name: '',
+ name: resource ? resource.name : '',
+ description: resource ? resource.description : '',
+ storageClassesDesired: resource ? resource.storageClassesDesired : [],
uuid: resourceUuid,
ownerUuid: '',
kind: ResourceKind.NONE,
uuid: resourceUuid,
ownerUuid: '',
kind: ResourceKind.NONE,
@@
-145,30
+146,28
@@
interface CollectionContentAddressDataProps {
}
export const CollectionsContentAddressPanel = withStyles(styles)(
}
export const CollectionsContentAddressPanel = withStyles(styles)(
- connect(
null
, mapDispatchToProps)(
- class extends React.Component<CollectionContentAddressPanelActionProps & CollectionContentAddressDataProps & WithStyles<CssRules>> {
+ connect(
mapStateToProps
, mapDispatchToProps)(
+ class extends React.Component<CollectionContentAddressPanelActionProps & CollectionContentAddress
PanelDataProps & CollectionContentAddress
DataProps & WithStyles<CssRules>> {
render() {
render() {
- return <
Grid item xs={12
}>
+ return <
div className={this.props.classes.root
}>
<Button
onClick={() => window.history.back()}
className={this.props.classes.backLink}>
<BackIcon className={this.props.classes.backIcon} />
Back
</Button>
<Button
onClick={() => window.history.back()}
className={this.props.classes.backLink}>
<BackIcon className={this.props.classes.backIcon} />
Back
</Button>
- <DataExplorer
+ <
div className={this.props.classes.content}><
DataExplorer
id={COLLECTIONS_CONTENT_ADDRESS_PANEL_ID}
hideSearchInput
onRowClick={this.props.onItemClick}
onRowDoubleClick={this.props.onItemDoubleClick}
id={COLLECTIONS_CONTENT_ADDRESS_PANEL_ID}
hideSearchInput
onRowClick={this.props.onItemClick}
onRowDoubleClick={this.props.onItemDoubleClick}
- onContextMenu={this.props.onContextMenu}
+ onContextMenu={this.props.onContextMenu
(this.props.resources)
}
contextMenuColumn={true}
title={`Content address: ${this.props.match.params.id}`}
contextMenuColumn={true}
title={`Content address: ${this.props.match.params.id}`}
- dataTableDefaultView={
- <DataTableDefaultView
- icon={CollectionIcon}
- messages={['Collections with this content address not found.']} />
- } />;
- </Grid >;
+ defaultViewIcon={CollectionIcon}
+ defaultViewMessages={['Collections with this content address not found.']} />
+ </div>
+ </div>;
}
}
)
}
}
)