Add required checkbox to custom fields

This commit is contained in:
Lawrence Elitzer 2020-08-31 07:58:45 -05:00
parent 428e558108
commit 1914591f46
3 changed files with 15 additions and 5 deletions

View file

@ -173,7 +173,7 @@ export default class CUD extends Component {
data.orderManageBefore = Number.parseInt(data.orderManageBefore) || data.orderManageBefore;
}
return filterData(data, ['name', 'help', 'key', 'default_value', 'type', 'group', 'settings',
return filterData(data, ['name', 'help', 'key', 'default_value', 'required', 'type', 'group', 'settings',
'orderListBefore', 'orderSubscribeBefore', 'orderManageBefore']);
}
@ -187,6 +187,7 @@ export default class CUD extends Component {
type: 'text',
key: '',
default_value: '',
required: false,
help: '',
group: null,
isInGroup: false,
@ -513,6 +514,8 @@ export default class CUD extends Component {
<TextArea id="help" label={t('helpText')}/>
<CheckBox id="required" label={'Required'}/>
{fieldSettings}
{type !== 'option' &&

View file

@ -19,9 +19,8 @@ const { getMergeTagsForBases } = require('../../shared/templates');
const {ListActivityType} = require('../../shared/activity-log');
const activityLog = require('../lib/activity-log');
const allowedKeysCreate = new Set(['name', 'help', 'key', 'default_value', 'type', 'group', 'settings']);
const allowedKeysUpdate = new Set(['name', 'help', 'key', 'default_value', 'group', 'settings']);
const allowedKeysCreate = new Set(['name', 'help', 'key', 'default_value', 'required', 'type', 'group', 'settings']);
const allowedKeysUpdate = new Set(['name', 'help', 'key', 'default_value', 'required', 'group', 'settings']);
const hashKeys = allowedKeysCreate;
const fieldTypes = {};
@ -304,7 +303,7 @@ async function getById(context, listId, id) {
}
async function listTx(tx, listId) {
return await tx('custom_fields').where({list: listId}).select(['id', 'name', 'type', 'help', 'key', 'column', 'settings', 'group', 'default_value', 'order_list', 'order_subscribe', 'order_manage']).orderBy(knex.raw('-order_list'), 'desc').orderBy('id', 'asc');
return await tx('custom_fields').where({list: listId}).select(['id', 'name', 'type', 'help', 'key', 'column', 'settings', 'group', 'default_value', 'required', 'order_list', 'order_subscribe', 'order_manage']).orderBy(knex.raw('-order_list'), 'desc').orderBy('id', 'asc');
}
async function list(context, listId) {

View file

@ -0,0 +1,8 @@
exports.up = (knex, Promise) => (async() => {
await knex.schema.table('custom_fields', function(t) {
t.boolean('required').notNull().defaultTo(0).after('default_value');
});
})();
exports.down = (knex, Promise) => (async() => {
})();