[ARVADOS-WORKBENCH2] updated: 1.2.0-760-g59ad75d
Git user
git at public.curoverse.com
Tue Oct 30 07:46:22 EDT 2018
Summary of changes:
src/store/sharing-dialog/sharing-dialog-actions.ts | 23 ++++++++++------------
.../sharing-dialog/sharing-dialog-content.tsx | 5 ++++-
.../sharing-public-access-form-component.tsx | 23 +++++++++++++++++++---
.../sharing-dialog/sharing-public-access-form.tsx | 16 +++++++++++++--
4 files changed, 48 insertions(+), 19 deletions(-)
via 59ad75d2aca135adeb1aadc9847653e5c273ccc1 (commit)
from af967786d2c2b02c4f7c18afd7d4694a8eaba34c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 59ad75d2aca135adeb1aadc9847653e5c273ccc1
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Tue Oct 30 12:46:01 2018 +0100
Add visibility info text
Feature #14365
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --git a/src/store/sharing-dialog/sharing-dialog-actions.ts b/src/store/sharing-dialog/sharing-dialog-actions.ts
index c2108ae..586ab66 100644
--- a/src/store/sharing-dialog/sharing-dialog-actions.ts
+++ b/src/store/sharing-dialog/sharing-dialog-actions.ts
@@ -176,19 +176,16 @@ const sendInvitations = async (_: Dispatch, getState: () => RootState, { permiss
if (dialog && user) {
const invitations = getFormValues(SHARING_INVITATION_FORM_NAME)(state) as SharingInvitationFormData;
- const { visibility } = getSharingPublicAccessFormData(state);
- if (visibility !== VisibilityLevel.PRIVATE) {
- const promises = invitations.invitedPeople
- .map(person => ({
- ownerUuid: user.uuid,
- headUuid: dialog.data,
- tailUuid: person.uuid,
- name: invitations.permissions
- }))
- .map(data => permissionService.create(data));
-
- await Promise.all(promises);
- }
+ const promises = invitations.invitedPeople
+ .map(person => ({
+ ownerUuid: user.uuid,
+ headUuid: dialog.data,
+ tailUuid: person.uuid,
+ name: invitations.permissions
+ }))
+ .map(data => permissionService.create(data));
+
+ await Promise.all(promises);
}
};
diff --git a/src/views-components/sharing-dialog/sharing-dialog-content.tsx b/src/views-components/sharing-dialog/sharing-dialog-content.tsx
index 3be6976..7347c66 100644
--- a/src/views-components/sharing-dialog/sharing-dialog-content.tsx
+++ b/src/views-components/sharing-dialog/sharing-dialog-content.tsx
@@ -3,7 +3,7 @@
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { Grid } from '@material-ui/core';
+import { Grid, Typography } from '@material-ui/core';
import { SharingInvitationForm } from './sharing-invitation-form';
import { SharingManagementForm } from './sharing-management-form';
@@ -14,6 +14,9 @@ export const SharingDialogContent = (props: { advancedViewOpen: boolean }) =>
{props.advancedViewOpen &&
<>
<Grid item>
+ <Typography variant='subheading'>
+ Who can access
+ </Typography>
<SharingPublicAccessForm />
<SharingManagementForm />
</Grid>
diff --git a/src/views-components/sharing-dialog/sharing-public-access-form-component.tsx b/src/views-components/sharing-dialog/sharing-public-access-form-component.tsx
index 5f57a92..7f3c4b7 100644
--- a/src/views-components/sharing-dialog/sharing-public-access-form-component.tsx
+++ b/src/views-components/sharing-dialog/sharing-public-access-form-component.tsx
@@ -8,6 +8,7 @@ import { Field, WrappedFieldProps } from 'redux-form';
import { WithStyles } from '@material-ui/core/styles';
import withStyles from '@material-ui/core/styles/withStyles';
import { VisibilityLevelSelect } from './visibility-level-select';
+import { VisibilityLevel } from '~/store/sharing-dialog/sharing-dialog-types';
const sharingPublicAccessStyles: StyleRulesCallback<'root'> = theme => ({
root: {
@@ -16,12 +17,14 @@ const sharingPublicAccessStyles: StyleRulesCallback<'root'> = theme => ({
});
const SharingPublicAccessForm = withStyles(sharingPublicAccessStyles)(
- ({ classes }: WithStyles<'root'>) =>
+ ({ classes, visibility }: WithStyles<'root'> & { visibility: VisibilityLevel }) =>
<>
<Divider />
<Grid container alignItems='center' spacing={8} className={classes.root}>
<Grid item xs={8}>
- <Typography variant='subheading'>Public visibility</Typography>
+ <Typography variant='subheading'>
+ {renderVisibilityInfo(visibility)}
+ </Typography>
</Grid>
<Grid item xs={4} container wrap='nowrap'>
<Field name='visibility' component={VisibilityLevelSelectComponent} />
@@ -30,7 +33,21 @@ const SharingPublicAccessForm = withStyles(sharingPublicAccessStyles)(
</>
);
-export default () => <SharingPublicAccessForm />;
+const renderVisibilityInfo = (visibility: VisibilityLevel) => {
+ switch (visibility) {
+ case VisibilityLevel.PUBLIC:
+ return 'Anyone can access';
+ case VisibilityLevel.SHARED:
+ return 'Specific people can access';
+ case VisibilityLevel.PRIVATE:
+ return 'Only you can access';
+ default:
+ return '';
+ }
+};
+
+export default ({ visibility }: { visibility: VisibilityLevel }) =>
+ <SharingPublicAccessForm {...{ visibility }} />;
const VisibilityLevelSelectComponent = ({ input }: WrappedFieldProps) =>
<VisibilityLevelSelect fullWidth disableUnderline {...input} />;
diff --git a/src/views-components/sharing-dialog/sharing-public-access-form.tsx b/src/views-components/sharing-dialog/sharing-public-access-form.tsx
index 1b39a65..1d787d3 100644
--- a/src/views-components/sharing-dialog/sharing-public-access-form.tsx
+++ b/src/views-components/sharing-dialog/sharing-public-access-form.tsx
@@ -3,9 +3,21 @@
// SPDX-License-Identifier: AGPL-3.0
import { reduxForm } from 'redux-form';
+import { compose } from 'redux';
+import { connect } from 'react-redux';
import SharingPublicAccessFormComponent from './sharing-public-access-form-component';
import { SHARING_PUBLIC_ACCESS_FORM_NAME } from '~/store/sharing-dialog/sharing-dialog-types';
+import { RootState } from '~/store/store';
+import { getSharingPublicAccessFormData } from '../../store/sharing-dialog/sharing-dialog-types';
-export const SharingPublicAccessForm = reduxForm(
- { form: SHARING_PUBLIC_ACCESS_FORM_NAME }
+export const SharingPublicAccessForm = compose(
+ reduxForm(
+ { form: SHARING_PUBLIC_ACCESS_FORM_NAME }
+ ),
+ connect(
+ (state: RootState) => {
+ const { visibility } = getSharingPublicAccessFormData(state);
+ return { visibility };
+ }
+ )
)(SharingPublicAccessFormComponent);
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list