Set opportunity stage as editable (#3838)

* Set opportunity stage as editable

* Fix comments

* Add command for migration

* Fixes

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Thomas Trompette
2024-02-09 14:44:11 +01:00
committed by GitHub
parent 0185c2a36e
commit 9ceff84bbf
11 changed files with 83 additions and 43 deletions

View File

@ -138,7 +138,7 @@ export const SettingsObjectFieldSelectFormOptionRow = ({
}}
/>
)}
{!!onRemove && (
{!!onRemove && !isDefault && (
<MenuItem
accent="danger"
LeftIcon={IconTrash}

View File

@ -4,6 +4,7 @@ import { useNavigate, useParams } from 'react-router-dom';
import { useFieldMetadataItem } from '@/object-metadata/hooks/useFieldMetadataItem';
import { useGetRelationMetadata } from '@/object-metadata/hooks/useGetRelationMetadata';
import { useObjectMetadataItemForSettings } from '@/object-metadata/hooks/useObjectMetadataItemForSettings';
import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem';
import { getFieldSlug } from '@/object-metadata/utils/getFieldSlug';
import { isLabelIdentifierField } from '@/object-metadata/utils/isLabelIdentifierField';
import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons';
@ -26,6 +27,15 @@ import {
RelationMetadataType,
} from '~/generated-metadata/graphql';
const canPersistFieldMetadataItemUpdate = (
fieldMetadataItem: FieldMetadataItem,
) => {
return (
fieldMetadataItem.isCustom ||
fieldMetadataItem.type === FieldMetadataType.Select
);
};
export const SettingsObjectFieldEdit = () => {
const navigate = useNavigate();
const { enqueueSnackBar } = useSnackBar();
@ -172,6 +182,9 @@ export const SettingsObjectFieldEdit = () => {
navigate(`/settings/objects/${objectSlug}`);
};
const shouldDisplaySaveAndCancel =
canPersistFieldMetadataItemUpdate(activeMetadataField);
return (
<SubMenuTopBarContainer Icon={IconSettings} title="Settings">
<SettingsPageContainer>
@ -186,7 +199,7 @@ export const SettingsObjectFieldEdit = () => {
{ children: activeMetadataField.label },
]}
/>
{activeMetadataField.isCustom && (
{shouldDisplaySaveAndCancel && (
<SaveAndCancelButtons
isSaveDisabled={!canSave}
onCancel={() => navigate(`/settings/objects/${objectSlug}`)}