[arvados-workbench2] updated: 2.6.3-36-g7a009159
git repository hosting
git at public.arvados.org
Fri Aug 11 17:05:32 UTC 2023
Summary of changes:
src/common/config.ts | 4 ++-
.../user-profile-panel/user-profile-panel-root.tsx | 41 +++++++++++++---------
.../user-profile-panel/user-profile-panel.tsx | 28 ++++++++-------
3 files changed, 42 insertions(+), 31 deletions(-)
via 7a0091597196ff8fbce0495607771b8688ffea46 (commit)
from ce4b1330e232f9f29b6f0bf361f3fd6913d9ae6e (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 7a0091597196ff8fbce0495607771b8688ffea46
Author: Peter Amstutz <peter.amstutz at curii.com>
Date: Fri Aug 11 11:12:06 2023 -0400
18946: Add userProfileFormMessage
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz at curii.com>
diff --git a/src/common/config.ts b/src/common/config.ts
index c1d56548..eff998ae 100644
--- a/src/common/config.ts
+++ b/src/common/config.ts
@@ -77,6 +77,7 @@ export interface ClusterConfigJSON {
IdleTimeout: string;
BannerUUID: string;
UserProfileFormFields: {};
+ UserProfileFormMessage: string;
};
Login: {
LoginCluster: string;
@@ -307,7 +308,8 @@ export const mockClusterConfigJSON = (
SiteName: '',
IdleTimeout: '0s',
BannerUUID: "",
- UserProfileFormFields: {}
+ UserProfileFormFields: {},
+ UserProfileFormMessage: '',
},
Login: {
LoginCluster: '',
diff --git a/src/views/user-profile-panel/user-profile-panel-root.tsx b/src/views/user-profile-panel/user-profile-panel-root.tsx
index 85eaaf0c..4a208371 100644
--- a/src/views/user-profile-panel/user-profile-panel-root.tsx
+++ b/src/views/user-profile-panel/user-profile-panel-root.tsx
@@ -36,7 +36,7 @@ import { DefaultView } from 'components/default-view/default-view';
import { CopyToClipboardSnackbar } from 'components/copy-to-clipboard-snackbar/copy-to-clipboard-snackbar';
import { PermissionResource } from 'models/permission';
-type CssRules = 'root' | 'emptyRoot' | 'gridItem' | 'label' | 'readOnlyValue' | 'title' | 'description' | 'actions' | 'content' | 'copyIcon';
+type CssRules = 'root' | 'emptyRoot' | 'gridItem' | 'label' | 'readOnlyValue' | 'title' | 'description' | 'actions' | 'content' | 'copyIcon' | 'userProfileFormMessage';
const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
root: {
@@ -81,6 +81,9 @@ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
'& svg': {
fontSize: '1rem'
}
+ },
+ userProfileFormMessage: {
+ fontSize: '1.1rem',
}
});
@@ -97,6 +100,7 @@ export interface UserProfilePanelRootDataProps {
userUuid: string;
resources: ResourcesState;
localCluster: string;
+ userProfileFormMessage: string;
}
const RoleTypes = [
@@ -165,7 +169,7 @@ export const userProfileGroupsColumns: DataColumns<string, PermissionResource> =
];
const ReadOnlyField = withStyles(styles)(
- (props: ({ label: string, input: {value: string} }) & WithStyles<CssRules> ) => (
+ (props: ({ label: string, input: { value: string } }) & WithStyles<CssRules>) => (
<Grid item xs={12} data-cy="field">
<Typography className={props.classes.label}>
{props.label}
@@ -184,7 +188,7 @@ export const UserProfilePanelRoot = withStyles(styles)(
};
componentDidMount() {
- this.setState({ value: TABS.PROFILE});
+ this.setState({ value: TABS.PROFILE });
}
render() {
@@ -213,7 +217,7 @@ export const UserProfilePanelRoot = withStyles(styles)(
</Grid>
<Grid item>
<Grid container alignItems="center">
- <Grid item style={{marginRight: '10px'}}><UserResourceAccountStatus uuid={this.props.userUuid} /></Grid>
+ <Grid item style={{ marginRight: '10px' }}><UserResourceAccountStatus uuid={this.props.userUuid} /></Grid>
<Grid item>
<Tooltip title="Actions" disableFocusListener>
<IconButton
@@ -261,6 +265,9 @@ export const UserProfilePanelRoot = withStyles(styles)(
disabled
/>
</Grid>
+ <Grid item className={this.props.classes.gridItem} xs={12}>
+ <span className={this.props.classes.userProfileFormMessage}>{this.props.userProfileFormMessage}</span>
+ </Grid>
<Grid item className={this.props.classes.gridItem} sm={6} xs={12}>
<Field
label="Organization"
@@ -316,19 +323,19 @@ export const UserProfilePanelRoot = withStyles(styles)(
{this.state.value === TABS.GROUPS &&
<div className={this.props.classes.content}>
<DataExplorer
- id={USER_PROFILE_PANEL_ID}
- data-cy="user-profile-groups-data-explorer"
- onRowClick={noop}
- onRowDoubleClick={noop}
- onContextMenu={noop}
- contextMenuColumn={false}
- hideColumnSelector
- hideSearchInput
- paperProps={{
- elevation: 0,
- }}
- defaultViewIcon={GroupsIcon}
- defaultViewMessages={['Group list is empty.']} />
+ id={USER_PROFILE_PANEL_ID}
+ data-cy="user-profile-groups-data-explorer"
+ onRowClick={noop}
+ onRowDoubleClick={noop}
+ onContextMenu={noop}
+ contextMenuColumn={false}
+ hideColumnSelector
+ hideSearchInput
+ paperProps={{
+ elevation: 0,
+ }}
+ defaultViewIcon={GroupsIcon}
+ defaultViewMessages={['Group list is empty.']} />
</div>}
</Paper >;
}
diff --git a/src/views/user-profile-panel/user-profile-panel.tsx b/src/views/user-profile-panel/user-profile-panel.tsx
index a90d44a9..040cbc6f 100644
--- a/src/views/user-profile-panel/user-profile-panel.tsx
+++ b/src/views/user-profile-panel/user-profile-panel.tsx
@@ -14,20 +14,22 @@ import { matchUserProfileRoute } from 'routes/routes';
import { openUserContextMenu } from 'store/context-menu/context-menu-actions';
const mapStateToProps = (state: RootState): UserProfilePanelRootDataProps => {
- const pathname = state.router.location ? state.router.location.pathname : '';
- const match = matchUserProfileRoute(pathname);
- const uuid = match ? match.params.id : state.auth.user?.uuid || '';
+ const pathname = state.router.location ? state.router.location.pathname : '';
+ const match = matchUserProfileRoute(pathname);
+ const uuid = match ? match.params.id : state.auth.user?.uuid || '';
- return {
- isAdmin: state.auth.user!.isAdmin,
- isSelf: state.auth.user!.uuid === uuid,
- isPristine: isPristine(USER_PROFILE_FORM)(state),
- isValid: isValid(USER_PROFILE_FORM)(state),
- isInaccessible: getUserProfileIsInaccessible(state.properties) || false,
- localCluster: state.auth.localCluster,
- userUuid: uuid,
- resources: state.resources,
-}};
+ return {
+ isAdmin: state.auth.user!.isAdmin,
+ isSelf: state.auth.user!.uuid === uuid,
+ isPristine: isPristine(USER_PROFILE_FORM)(state),
+ isValid: isValid(USER_PROFILE_FORM)(state),
+ isInaccessible: getUserProfileIsInaccessible(state.properties) || false,
+ localCluster: state.auth.localCluster,
+ userUuid: uuid,
+ resources: state.resources,
+ userProfileFormMessage: state.auth.config.clusterConfig.Workbench.UserProfileFormMessage,
+ }
+};
const mapDispatchToProps = (dispatch: Dispatch) => ({
handleContextMenu: (event, resource: UserResource) => dispatch<any>(openUserContextMenu(event, resource)),
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list