projects
/
arvados-workbench2.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '17308-property-editor-fixes'
[arvados-workbench2.git]
/
src
/
components
/
details-attribute
/
details-attribute.tsx
diff --git
a/src/components/details-attribute/details-attribute.tsx
b/src/components/details-attribute/details-attribute.tsx
index 4b8ee8378fa32c8fc3db839629780b2ebc133545..7633b71a45685137c92ec69a32f972d4cb0c3109 100644
(file)
--- a/
src/components/details-attribute/details-attribute.tsx
+++ b/
src/components/details-attribute/details-attribute.tsx
@@
-61,6
+61,8
@@
interface DetailsAttributeDataProps {
children?: React.ReactNode;
onValueClick?: () => void;
linkToUuid?: string;
children?: React.ReactNode;
onValueClick?: () => void;
linkToUuid?: string;
+ copyValue?: string;
+ uuidEnhancer?: Function;
}
type DetailsAttributeProps = DetailsAttributeDataProps & WithStyles<CssRules> & FederationConfig & DispatchProp;
}
type DetailsAttributeProps = DetailsAttributeDataProps & WithStyles<CssRules> & FederationConfig & DispatchProp;
@@
-83,23
+85,25
@@
export const DetailsAttribute = connect(mapStateToProps)(withStyles(styles)(
}
render() {
}
render() {
- const { label, link, value, children, classes, classLabel,
+ const {
uuidEnhancer,
label, link, value, children, classes, classLabel,
classValue, lowercaseValue, onValueClick, linkToUuid,
classValue, lowercaseValue, onValueClick, linkToUuid,
- localCluster, remoteHostsConfig, sessions } = this.props;
+ localCluster, remoteHostsConfig, sessions
, copyValue
} = this.props;
let valueNode: React.ReactNode;
if (linkToUuid) {
let valueNode: React.ReactNode;
if (linkToUuid) {
+ const uuid = uuidEnhancer ? uuidEnhancer(linkToUuid) : linkToUuid;
const linkUrl = getNavUrl(linkToUuid || "", { localCluster, remoteHostsConfig, sessions });
if (linkUrl[0] === '/') {
const linkUrl = getNavUrl(linkToUuid || "", { localCluster, remoteHostsConfig, sessions });
if (linkUrl[0] === '/') {
- valueNode = <Link to={linkUrl} className={classes.link}>{
linkToU
uid}</Link>;
+ valueNode = <Link to={linkUrl} className={classes.link}>{
u
uid}</Link>;
} else {
} else {
- valueNode = <a href={linkUrl} className={classes.link} target='_blank'>{
linkToU
uid}</a>;
+ valueNode = <a href={linkUrl} className={classes.link} target='_blank'>{
u
uid}</a>;
}
} else if (link) {
valueNode = <a href={link} className={classes.link} target='_blank'>{value}</a>;
} else {
valueNode = value;
}
}
} else if (link) {
valueNode = <a href={link} className={classes.link} target='_blank'>{value}</a>;
} else {
valueNode = value;
}
+
return <Typography component="div" className={classes.attribute}>
<Typography component="div" className={classnames([classes.label, classLabel])}>{label}</Typography>
<Typography
return <Typography component="div" className={classes.attribute}>
<Typography component="div" className={classnames([classes.label, classLabel])}>{label}</Typography>
<Typography
@@
-108,9
+112,9
@@
export const DetailsAttribute = connect(mapStateToProps)(withStyles(styles)(
className={classnames([classes.value, classValue, { [classes.lowercaseValue]: lowercaseValue }])}>
{valueNode}
{children}
className={classnames([classes.value, classValue, { [classes.lowercaseValue]: lowercaseValue }])}>
{valueNode}
{children}
- {
linkToUuid && <Tooltip title="Copy
">
+ {
(linkToUuid || copyValue) && <Tooltip title="Copy to clipboard
">
<span className={classes.copyIcon}>
<span className={classes.copyIcon}>
- <CopyToClipboard text={linkToUuid || ""} onCopy={() => this.onCopy("Copied")}>
+ <CopyToClipboard text={linkToUuid ||
copyValue ||
""} onCopy={() => this.onCopy("Copied")}>
<CopyIcon />
</CopyToClipboard>
</span>
<CopyIcon />
</CopyToClipboard>
</span>