adds admin: { } options to fields, allows for field disabling

This commit is contained in:
James
2020-07-09 14:30:29 -04:00
parent 5870e7cde9
commit 356113fbba
8 changed files with 73 additions and 25 deletions

View File

@@ -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,
},
},
];

View File

@@ -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,
},
},
];

View File

@@ -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;

View File

@@ -178,7 +178,9 @@ const Blocks = (props) => {
{
name: 'blockType',
type: 'text',
hidden: 'admin',
admin: {
hidden: true,
},
},
]}
/>

View File

@@ -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,
},
},
],
})),

View File

@@ -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,
};
};