// SPDX-License-Identifier: AGPL-3.0
import { Dispatch } from 'redux';
-import { reset, initialize, startSubmit, stopSubmit, FormErrors } from 'redux-form';
+import { reset, startSubmit, stopSubmit, FormErrors } from 'redux-form';
import { bindDataExplorerActions } from "store/data-explorer/data-explorer-action";
import { dialogActions } from 'store/dialog/dialog-actions';
import { Participant } from 'views-components/sharing-dialog/participant-select';
export const CREATE_GROUP_NAME_FIELD_NAME = 'name';
export const CREATE_GROUP_USERS_FIELD_NAME = 'users';
-// Rename group dialog
-export const RENAME_GROUP_DIALOG = "renameGroupDialog";
-export const RENAME_GROUP_FORM = "renameGroupForm";
-export const RENAME_GROUP_UUID_FIELD_NAME = 'uuid';
-export const RENAME_GROUP_NAME_FIELD_NAME = 'name';
-
export const GROUP_ATTRIBUTES_DIALOG = 'groupAttributesDialog';
export const GROUP_REMOVE_DIALOG = 'groupRemoveDialog';
}));
};
-export interface RenameGroupFormData {
- [RENAME_GROUP_UUID_FIELD_NAME]: string;
- [RENAME_GROUP_NAME_FIELD_NAME]: string;
-}
-
-export const openRenameGroupDialog = (uuid: string) =>
- (dispatch: Dispatch, getState: () => RootState) => {
- const group = getResource<GroupResource>(uuid)(getState().resources);
-
- if (group) {
- const formData: RenameGroupFormData = {[RENAME_GROUP_UUID_FIELD_NAME]: group.uuid, [RENAME_GROUP_NAME_FIELD_NAME]: group.name};
- console.log("Initialize form: ", formData);
- dispatch(reset(RENAME_GROUP_FORM));
- dispatch<any>(initialize(RENAME_GROUP_FORM, formData));
- dispatch(dialogActions.OPEN_DIALOG({ id: RENAME_GROUP_DIALOG, data: group }));
- }
- };
-
-
-export const renameGroup = (data: RenameGroupFormData) =>
- async (dispatch: Dispatch, getState: () => RootState, { groupsService }: ServiceRepository) => {
- console.log("RenameGroupFormData", data);
- await groupsService.update(data[RENAME_GROUP_UUID_FIELD_NAME], { name: data[RENAME_GROUP_NAME_FIELD_NAME] });
- dispatch(dialogActions.CLOSE_DIALOG({ id: RENAME_GROUP_DIALOG }));
- dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Renamed.', hideDuration: 2000, kind: SnackbarKind.SUCCESS }));
- };
-
export interface CreateGroupFormData {
[CREATE_GROUP_NAME_FIELD_NAME]: string;
[CREATE_GROUP_USERS_FIELD_NAME]?: Participant[];
import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
import { RenameIcon, AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
import { openAdvancedTabDialog } from "store/advanced-tab/advanced-tab";
-import { openRenameGroupDialog, openGroupAttributes, openRemoveGroupDialog } from "store/groups-panel/groups-panel-actions";
+import { openGroupAttributes, openRemoveGroupDialog } from "store/groups-panel/groups-panel-actions";
+import { openProjectUpdateDialog } from "store/projects/project-update-actions";
export const groupActionSet: ContextMenuActionSet = [[{
name: "Rename",
icon: RenameIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openRenameGroupDialog(uuid));
+ execute: (dispatch, resource) => {
+ dispatch<any>(openProjectUpdateDialog(resource));
}
}, {
name: "Attributes",
+++ /dev/null
-// Copyright (C) The Arvados Authors. All rights reserved.
-//
-// SPDX-License-Identifier: AGPL-3.0
-
-import React from 'react';
-import { compose, Dispatch } from 'redux';
-import { reduxForm, InjectedFormProps, Field } from 'redux-form';
-import { withDialog, WithDialogProps } from 'store/dialog/with-dialog';
-import { FormDialog } from 'components/form-dialog/form-dialog';
-import { DialogContentText } from '@material-ui/core';
-import { TextField } from 'components/text-field/text-field';
-import { GroupResource } from 'models/group';
-import { RENAME_GROUP_DIALOG, RENAME_GROUP_NAME_FIELD_NAME, RenameGroupFormData, renameGroup } from 'store/groups-panel/groups-panel-actions';
-// import { WarningCollection } from 'components/warning-collection/warning-collection';
-import { RENAME_FILE_VALIDATION } from 'validators/validators';
-
-export const RenameGroupDialog = compose(
- withDialog(RENAME_GROUP_DIALOG),
- reduxForm<RenameGroupFormData>({
- form: RENAME_GROUP_DIALOG,
- // touchOnChange: true,
- onSubmit: (data: RenameGroupFormData, dispatch: Dispatch) => {
- console.log(data);
- // dispatch<any>(renameGroup(data));
- }
- })
-)((props: RenameGroupDialogProps) =>
- <FormDialog
- dialogTitle='Rename'
- formFields={RenameGroupFormFields}
- submitLabel='Ok'
- {...props}
- />);
-
-interface RenameGroupDataProps {
- data: GroupResource;
-}
-
-type RenameGroupDialogProps = RenameGroupDataProps & WithDialogProps<{}> & InjectedFormProps<RenameGroupFormData>;
-
-const RenameGroupFormFields = (props: RenameGroupDialogProps) => {
- // console.log(props);
- return <>
- <DialogContentText>
- {`Please enter a new name for ${props.data.name}`}
- </DialogContentText>
- <Field
- name={RENAME_GROUP_NAME_FIELD_NAME}
- component={TextField as any}
- autoFocus={true}
- validate={RENAME_FILE_VALIDATION}
- />
- {/* <WarningCollection text="Renaming a file will change the collection's content address." /> */}
- </>;
-}
import { openContextMenu } from 'store/context-menu/context-menu-actions';
import { ResourceKind } from 'models/resource';
import { LinkClass, LinkResource } from 'models/link';
-import { navigateToGroupDetails } from 'store/navigation/navigation-action';
export enum GroupsPanelColumnNames {
GROUP = "Name",
import { GroupMemberAttributesDialog } from 'views-components/groups-dialog/member-attributes-dialog';
import { AddGroupMembersDialog } from 'views-components/dialog-forms/add-group-member-dialog';
import { EditPermissionLevelDialog } from 'views-components/dialog-forms/edit-permission-level-dialog';
-import { RenameGroupDialog } from 'views-components/dialog-forms/rename-group-dialog';
import { PartialCopyToCollectionDialog } from 'views-components/dialog-forms/partial-copy-to-collection-dialog';
import { PublicFavoritePanel } from 'views/public-favorites-panel/public-favorites-panel';
import { LinkAccountPanel } from 'views/link-account-panel/link-account-panel';
<DetailsPanel />
</Grid>
<AddGroupMembersDialog />
- <RenameGroupDialog />
<EditPermissionLevelDialog />
<AdvancedTabDialog />
<AttributesApiClientAuthorizationDialog />