adds admin: { } options to fields, allows for field disabling
This commit is contained in:
@@ -3,13 +3,17 @@ module.exports = [
|
||||
name: 'enableAPIKey',
|
||||
type: 'checkbox',
|
||||
defaultValue: false,
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'apiKey',
|
||||
type: 'text',
|
||||
minLength: 24,
|
||||
maxLength: 48,
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
@@ -6,16 +6,22 @@ module.exports = [
|
||||
label: 'Email',
|
||||
type: 'email',
|
||||
validate: validations.email,
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'resetPasswordToken',
|
||||
type: 'text',
|
||||
hidden: true,
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'resetPasswordExpiration',
|
||||
type: 'date',
|
||||
hidden: true,
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
@@ -29,9 +29,9 @@ const RenderFields = (props) => {
|
||||
return (
|
||||
<RenderedFieldContext.Provider value={{ customComponentsPath, operation }}>
|
||||
{fieldSchema.map((field, i) => {
|
||||
if (field?.hidden !== 'api' && field?.hidden !== true) {
|
||||
if (!field?.hidden && field?.admin?.disabled !== true) {
|
||||
if ((filter && typeof filter === 'function' && filter(field)) || !filter) {
|
||||
const FieldComponent = field?.hidden === 'admin' ? fieldTypes.hidden : fieldTypes[field.type];
|
||||
const FieldComponent = field?.admin?.hidden ? fieldTypes.hidden : fieldTypes[field.type];
|
||||
|
||||
let initialFieldData;
|
||||
let fieldPermissions = permissions[field.name];
|
||||
@@ -118,6 +118,7 @@ RenderFields.propTypes = {
|
||||
filter: PropTypes.func,
|
||||
permissions: PropTypes.shape({}),
|
||||
readOnly: PropTypes.bool,
|
||||
operation: PropTypes.string,
|
||||
};
|
||||
|
||||
export default RenderFields;
|
||||
|
||||
@@ -178,7 +178,9 @@ const Blocks = (props) => {
|
||||
{
|
||||
name: 'blockType',
|
||||
type: 'text',
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
hidden: true,
|
||||
},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
@@ -95,19 +95,25 @@ const sanitizeCollection = (collections, collection) => {
|
||||
required: true,
|
||||
unique: true,
|
||||
readOnly: true,
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
}, {
|
||||
name: 'mimeType',
|
||||
label: 'MIME Type',
|
||||
type: 'text',
|
||||
readOnly: true,
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
}, {
|
||||
name: 'filesize',
|
||||
label: 'File Size',
|
||||
type: 'number',
|
||||
readOnly: true,
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
@@ -118,54 +124,73 @@ const sanitizeCollection = (collections, collection) => {
|
||||
label: 'Width',
|
||||
type: 'number',
|
||||
readOnly: true,
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
}, {
|
||||
name: 'height',
|
||||
label: 'Height',
|
||||
type: 'number',
|
||||
readOnly: true,
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'sizes',
|
||||
label: 'Sizes',
|
||||
type: 'group',
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
fields: collection.upload.imageSizes.map((size) => ({
|
||||
label: size.name,
|
||||
name: size.name,
|
||||
type: 'group',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: 'width',
|
||||
label: 'Width',
|
||||
type: 'number',
|
||||
readOnly: true,
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
}, {
|
||||
name: 'height',
|
||||
label: 'Height',
|
||||
type: 'number',
|
||||
readOnly: true,
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
}, {
|
||||
name: 'mimeType',
|
||||
label: 'MIME Type',
|
||||
type: 'text',
|
||||
readOnly: true,
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
}, {
|
||||
name: 'filesize',
|
||||
label: 'File Size',
|
||||
type: 'number',
|
||||
readOnly: true,
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
}, {
|
||||
name: 'filename',
|
||||
label: 'File Name',
|
||||
type: 'text',
|
||||
readOnly: true,
|
||||
hidden: 'admin',
|
||||
admin: {
|
||||
disable: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
})),
|
||||
|
||||
@@ -6,10 +6,10 @@ const formatBaseSchema = (field) => {
|
||||
const createPolicy = field.access && field.access.create;
|
||||
|
||||
return {
|
||||
hide: field.hidden === 'api' || field.hidden === true,
|
||||
hide: field.hidden,
|
||||
localized: field.localized || false,
|
||||
unique: field.unique || false,
|
||||
required: (field.required && !field.localized && !field.hidden && !field.condition && !createPolicy) || false,
|
||||
required: (field.required && !field.localized && !field.condition && !createPolicy) || false,
|
||||
default: field.defaultValue || undefined,
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user