//
// SPDX-License-Identifier: AGPL-3.0
-import * as React from 'react';
+import React from 'react';
import {
StyleRulesCallback, WithStyles, withStyles,
IconButton, Grid, Tooltip, Typography, ExpansionPanel,
isWritable = true;
} else {
const itemOwner = getResource<GroupResource | UserResource>(item.ownerUuid)(state.resources);
- if (itemOwner) {
+ if (itemOwner && itemOwner.writableBy) {
isWritable = itemOwner.writableBy.indexOf(currentUserUUID || '') >= 0;
}
}
}
const loadingFilesIndicator = getProgressIndicator(COLLECTION_PANEL_LOAD_FILES)(state.progressIndicator);
- const isLoadingFiles = loadingFilesIndicator && loadingFilesIndicator!.working || false;
- const tooManyFiles = !state.collectionPanel.loadBigCollections && item && item.fileCount > COLLECTION_PANEL_LOAD_FILES_THRESHOLD || false;
+ const isLoadingFiles = (loadingFilesIndicator && loadingFilesIndicator!.working) || false;
+ const tooManyFiles = (!state.collectionPanel.loadBigCollections && item && item.fileCount > COLLECTION_PANEL_LOAD_FILES_THRESHOLD) || false;
return { item, isWritable, isOldVersion, isLoadingFiles, tooManyFiles };
})(
class extends React.Component<CollectionPanelProps> {
}
handleContextMenu = (event: React.MouseEvent<any>) => {
- const { uuid, ownerUuid, name, description, kind } = this.props.item;
+ const { uuid, ownerUuid, name, description, kind, storageClassesDesired } = this.props.item;
const menuKind = this.props.dispatch<any>(resourceUuidToContextMenuKind(uuid));
const resource = {
uuid,
ownerUuid,
name,
description,
+ storageClassesDesired,
kind,
menuKind,
};
<DetailsAttribute classLabel={classes.label} classValue={classes.value}
label='Content size' value={formatFileSize(item.fileSizeTotal)} />
</Grid>
+ <Grid item xs={12} md={mdSize}>
+ <DetailsAttribute classLabel={classes.label} classValue={classes.value}
+ label='Storage classes' value={item.storageClassesDesired.join(', ')} />
+ </Grid>
</Grid>;
};