import * as React from "react";
import { Dialog, DialogTitle, DialogContent, DialogActions, Button, DialogContentText } from "@material-ui/core";
import { WithDialogProps } from "~/store/dialog/with-dialog";
+import { WarningIcon } from '~/components/icon/icon';
export interface ConfirmationDialogDataProps {
title: string;
export const ConfirmationDialog = (props: ConfirmationDialogProps & WithDialogProps<ConfirmationDialogDataProps>) =>
<Dialog open={props.open}>
<DialogTitle>{props.data.title}</DialogTitle>
- <DialogContent>
- <DialogContentText>
+ <DialogContent style={{ display: 'flex', alignItems: 'center' }}>
+ <WarningIcon />
+ <DialogContentText style={{ paddingLeft: '8px' }}>
{props.data.text}
+ <br />
+ {props.data.title === 'Removing file' ? 'Removing a file will change content adress.' : 'Removing files will change content adress.'}
</DialogContentText>
</DialogContent>
<DialogActions>
import SettingsEthernet from '@material-ui/icons/SettingsEthernet';
import Star from '@material-ui/icons/Star';
import StarBorder from '@material-ui/icons/StarBorder';
+import Warning from '@material-ui/icons/Warning';
export type IconType = React.SFC<{ className?: string }>;
export const UserPanelIcon: IconType = (props) => <Person {...props} />;
export const UsedByIcon: IconType = (props) => <Folder {...props} />;
export const WorkflowIcon: IconType = (props) => <Code {...props} />;
+export const WarningIcon: IconType = (props) => <Warning style={{ color: '#fbc02d', height: '30px', width: '30px' }} {...props} />;
--- /dev/null
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+import * as React from "react";
+import { WarningIcon } from "~/components/icon/icon";
+import { StyleRulesCallback, DialogContentText, WithStyles, withStyles } from "@material-ui/core";
+import { ArvadosTheme } from '~/common/custom-theme';
+
+type CssRules = 'container' | 'text';
+
+const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
+ container: {
+ display: 'flex',
+ alignItems: 'center',
+ },
+ text: {
+ paddingLeft: '8px'
+ }
+});
+
+interface WarningCollectionProps {
+ text: string;
+}
+
+export const WarningCollection = withStyles(styles)(({ classes, text }: WarningCollectionProps & WithStyles<CssRules>) =>
+ <span className={classes.container}>
+ <WarningIcon />
+ <DialogContentText className={classes.text}>{text}</DialogContentText>
+ </span>);
\ No newline at end of file
import { FormDialog } from '~/components/form-dialog/form-dialog';
import { require } from '~/validators/require';
import { FileUploaderField } from '~/views-components/file-uploader/file-uploader';
-
+import { WarningCollection } from '~/components/warning-collection/warning-collection';
type DialogCollectionFilesUploadProps = WithDialogProps<{}> & InjectedFormProps<CollectionCreateFormDialogData>;
{...props}
/>;
-const UploadCollectionFilesFields = () =>
+const UploadCollectionFilesFields = () => <>
<Field
name='files'
validate={FILES_FIELD_VALIDATION}
- component={FileUploaderField} />;
+ component={FileUploaderField} />
+ <WarningCollection text="Uploading new files will change content address." />
+</>;
const FILES_FIELD_VALIDATION = [require];
import { DialogContentText } from '@material-ui/core';
import { TextField } from '~/components/text-field/text-field';
import { RENAME_FILE_DIALOG, RenameFileDialogData, renameFile } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions';
+import { WarningCollection } from '~/components/warning-collection/warning-collection';
export const RenameFileDialog = compose(
withDialog(RENAME_FILE_DIALOG),
name='name'
component={TextField}
/>
+ <WarningCollection text="Renaming a file will change content adress." />
</>;