diff --git a/packages/core/admin/admin/src/content-manager/components/SettingFormWrapper/index.js b/packages/core/admin/admin/src/content-manager/components/SettingFormWrapper/index.js
deleted file mode 100644
index 543404af9d..0000000000
--- a/packages/core/admin/admin/src/content-manager/components/SettingFormWrapper/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import styled from 'styled-components';
-
-const SettingFormWrapper = styled.div`
- padding: 24px 30px 0px;
- background-color: #fafafb;
- border-radius: 2px;
-`;
-
-export default SettingFormWrapper;
diff --git a/packages/core/admin/admin/src/content-manager/pages/ListSettingsView/components/DragWrapper.js b/packages/core/admin/admin/src/content-manager/pages/ListSettingsView/components/DragWrapper.js
deleted file mode 100644
index f75ea873ac..0000000000
--- a/packages/core/admin/admin/src/content-manager/pages/ListSettingsView/components/DragWrapper.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import React from 'react';
-
-const DragWrapper = () => {
- return
yo yo yo
;
-};
-
-export default DragWrapper;
diff --git a/packages/core/admin/admin/src/content-manager/pages/ListSettingsView/components/Settings.js b/packages/core/admin/admin/src/content-manager/pages/ListSettingsView/components/Settings.js
new file mode 100644
index 0000000000..4a6edd8e62
--- /dev/null
+++ b/packages/core/admin/admin/src/content-manager/pages/ListSettingsView/components/Settings.js
@@ -0,0 +1,163 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import styled from 'styled-components';
+import { get } from 'lodash';
+import { useIntl } from 'react-intl';
+import { Row } from '@strapi/parts/Row';
+import { Grid, GridItem } from '@strapi/parts/Grid';
+import { Select, Option } from '@strapi/parts/Select';
+import { ToggleInput } from '@strapi/parts/ToggleInput';
+import { Box } from '@strapi/parts/Box';
+import { H3 } from '@strapi/parts/Text';
+
+const RowGap = styled(Row)`
+ gap: ${({ theme }) => theme.spaces[4]};
+`;
+
+const Settings = ({ modifiedData, onChange, sortOptions }) => {
+ const { formatMessage } = useIntl();
+ const { settings } = modifiedData;
+
+ return (
+ <>
+
+
+ {formatMessage({
+ id: 'content-manager.containers.SettingPage.settings',
+ defaultMessage: 'Settings',
+ })}
+
+
+
+ {
+ onChange({ target: { name: 'settings.searchable', value: e.target.checked } });
+ }}
+ onLabel={formatMessage({
+ id: 'app.components.ToggleCheckbox.on-label',
+ defaultMessage: 'on',
+ })}
+ offLabel={formatMessage({
+ id: 'app.components.ToggleCheckbox.off-label',
+ defaultMessage: 'off',
+ })}
+ name="settings.searchable"
+ checked={settings.searchable}
+ />
+ {
+ onChange({ target: { name: 'settings.filterable', value: e.target.checked } });
+ }}
+ onLabel={formatMessage({
+ id: 'app.components.ToggleCheckbox.on-label',
+ defaultMessage: 'on',
+ })}
+ offLabel={formatMessage({
+ id: 'app.components.ToggleCheckbox.off-label',
+ defaultMessage: 'off',
+ })}
+ name="settings.filterable"
+ checked={settings.filterable}
+ />
+ {
+ onChange({ target: { name: 'settings.bulkable', value: e.target.checked } });
+ }}
+ onLabel={formatMessage({
+ id: 'app.components.ToggleCheckbox.on-label',
+ defaultMessage: 'on',
+ })}
+ offLabel={formatMessage({
+ id: 'app.components.ToggleCheckbox.off-label',
+ defaultMessage: 'off',
+ })}
+ name="settings.bulkable"
+ checked={settings.bulkable}
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+};
+
+Settings.defaultProps = {
+ modifiedData: {},
+ sortOptions: [],
+};
+
+Settings.propTypes = {
+ modifiedData: PropTypes.object,
+ onChange: PropTypes.func.isRequired,
+ sortOptions: PropTypes.array,
+};
+
+export default Settings;
diff --git a/packages/core/admin/admin/src/content-manager/pages/ListSettingsView/components/SettingsForm.js b/packages/core/admin/admin/src/content-manager/pages/ListSettingsView/components/SettingsForm.js
deleted file mode 100644
index 0fa7771fa5..0000000000
--- a/packages/core/admin/admin/src/content-manager/pages/ListSettingsView/components/SettingsForm.js
+++ /dev/null
@@ -1,256 +0,0 @@
-import React, { useState } from 'react';
-import PropTypes from 'prop-types';
-import styled from 'styled-components';
-import { GenericInput, ConfirmDialog, useTracking } from '@strapi/helper-plugin';
-import { get, isEqual, upperFirst } from 'lodash';
-import { stringify } from 'qs';
-import { useIntl } from 'react-intl';
-import { Layout, HeaderLayout, ContentLayout } from '@strapi/parts/Layout';
-import { Link } from '@strapi/parts/Link';
-import { Main } from '@strapi/parts/Main';
-import { Box } from '@strapi/parts/Box';
-import { Row } from '@strapi/parts/Row';
-import { Grid, GridItem } from '@strapi/parts/Grid';
-import { Select, Option } from '@strapi/parts/Select';
-import { H3 } from '@strapi/parts/Text';
-import { Button } from '@strapi/parts/Button';
-import CheckIcon from '@strapi/icons/CheckIcon';
-import BackIcon from '@strapi/icons/BackIcon';
-import { usePluginsQueryParams } from '../../../hooks';
-
-const RowGap = styled(Row)`
- gap: ${({ theme }) => theme.spaces[4]};
-`;
-
-const SettingsForm = ({
- children,
- initialData,
- isEditSettings,
- isSubmittingForm,
- modifiedData,
- collectionName,
- onChange,
- onConfirmSubmit,
- sortOptions,
-}) => {
- const pluginsQueryParams = usePluginsQueryParams();
- const { trackUsage } = useTracking();
- const { formatMessage } = useIntl();
- const [showWarningSubmit, setWarningSubmit] = useState(false);
- const toggleWarningSubmit = () => setWarningSubmit(prevState => !prevState);
-
- const handleSubmit = e => {
- e.preventDefault();
- toggleWarningSubmit();
- trackUsage('willSaveContentTypeLayout');
- };
-
- const goBackUrl = () => {
- const {
- settings: { pageSize, defaultSortBy, defaultSortOrder },
- kind,
- uid,
- } = modifiedData;
- const sort = `${defaultSortBy}:${defaultSortOrder}`;
- const goBackSearch = `${stringify(
- {
- page: 1,
- pageSize,
- sort,
- },
- { encode: false }
- )}${pluginsQueryParams ? `&${pluginsQueryParams}` : ''}`;
-
- return `/content-manager/${kind}/${uid}?${goBackSearch}`;
- };
-
- return (
-
-
-
-
-
- );
-};
-
-SettingsForm.defaultProps = {
- collectionName: '',
- initialData: {},
- isEditSettings: false,
- isSubmittingForm: false,
- modifiedData: {},
- onConfirmSubmit: () => {},
- sortOptions: [],
-};
-
-SettingsForm.propTypes = {
- children: PropTypes.node.isRequired,
- collectionName: PropTypes.string,
- initialData: PropTypes.object,
- isEditSettings: PropTypes.bool,
- isSubmittingForm: PropTypes.bool,
- modifiedData: PropTypes.object,
- onChange: PropTypes.func.isRequired,
- onConfirmSubmit: PropTypes.func,
- sortOptions: PropTypes.array,
-};
-
-export default SettingsForm;
diff --git a/packages/core/admin/admin/src/content-manager/pages/ListSettingsView/index.js b/packages/core/admin/admin/src/content-manager/pages/ListSettingsView/index.js
index 287c0dab75..0806bcd420 100644
--- a/packages/core/admin/admin/src/content-manager/pages/ListSettingsView/index.js
+++ b/packages/core/admin/admin/src/content-manager/pages/ListSettingsView/index.js
@@ -3,27 +3,32 @@ import React, {
useContext,
// useMemo,
useReducer,
- // useState
+ useState,
} from 'react';
import PropTypes from 'prop-types';
import { useMutation } from 'react-query';
-import {
- // get,
- pick,
-} from 'lodash';
-import { useNotification, useTracking } from '@strapi/helper-plugin';
-// import { useIntl } from 'react-intl';
+import { isEqual, upperFirst, pick } from 'lodash';
+import { stringify } from 'qs';
+import { useNotification, useTracking, ConfirmDialog } from '@strapi/helper-plugin';
+import { useIntl } from 'react-intl';
import { Box } from '@strapi/parts/Box';
import { Divider } from '@strapi/parts/Divider';
+import { Layout, HeaderLayout, ContentLayout } from '@strapi/parts/Layout';
+import { Link } from '@strapi/parts/Link';
+import { Main } from '@strapi/parts/Main';
+import { Button } from '@strapi/parts/Button';
+import CheckIcon from '@strapi/icons/CheckIcon';
+import BackIcon from '@strapi/icons/BackIcon';
import ModelsContext from '../../contexts/ModelsContext';
+import { usePluginsQueryParams } from '../../hooks';
import putCMSettingsLV from './utils/api';
-import SettingsForm from './components/SettingsForm';
-import DragWrapper from './components/DragWrapper';
+import Settings from './components/Settings';
// import LayoutDndProvider from '../../components/LayoutDndProvider';
import init from './init';
import reducer, { initialState } from './reducer';
const ListSettingsView = ({ layout, slug, updateLayout }) => {
+ const pluginsQueryParams = usePluginsQueryParams();
const toggleNotification = useNotification();
const { refetchData } = useContext(ModelsContext);
const [reducerState, dispatch] = useReducer(reducer, initialState, () =>
@@ -32,7 +37,7 @@ const ListSettingsView = ({ layout, slug, updateLayout }) => {
// const [isOpen, setIsOpen] = useState(false);
// const [isModalFormOpen, setIsModalFormOpen] = useState(false);
// const [isDraggingSibling, setIsDraggingSibling] = useState(false);
- // const { formatMessage } = useIntl();
+ const { formatMessage } = useIntl();
const { trackUsage } = useTracking();
// const toggleModalForm = () => setIsModalFormOpen(prevState => !prevState);
const {
@@ -100,6 +105,34 @@ const ListSettingsView = ({ layout, slug, updateLayout }) => {
});
};
+ const [showWarningSubmit, setWarningSubmit] = useState(false);
+ const toggleWarningSubmit = () => setWarningSubmit(prevState => !prevState);
+
+ const handleSubmit = e => {
+ e.preventDefault();
+ toggleWarningSubmit();
+ trackUsage('willSaveContentTypeLayout');
+ };
+
+ const goBackUrl = () => {
+ const {
+ settings: { pageSize, defaultSortBy, defaultSortOrder },
+ kind,
+ uid,
+ } = modifiedData;
+ const sort = `${defaultSortBy}:${defaultSortOrder}`;
+ const goBackSearch = `${stringify(
+ {
+ page: 1,
+ pageSize,
+ sort,
+ },
+ { encode: false }
+ )}${pluginsQueryParams ? `&${pluginsQueryParams}` : ''}`;
+
+ return `/content-manager/${kind}/${uid}?${goBackSearch}`;
+ };
+
// const handleChangeEditLabel = ({ target: { name, value } }) => {
// dispatch({
// type: 'ON_CHANGE_LABEL_METAS',
@@ -184,21 +217,72 @@ const ListSettingsView = ({ layout, slug, updateLayout }) => {
// };
return (
-
-
-
-
-
-
+
+
+
+
+
// {
- go back
+ Go back
@@ -925,7 +925,7 @@ describe('ADMIN | CM | LV | Configure the view', () => {
- Off
+ off
{
- On
+ on
{
- Off
+ off
{
- On
+ on
{
- Off
+ off
{
- On
+ on
{
class="c63 c64"
/>
-
- yo yo yo
-