AdminForthResourceColumnInputCommon
Column describes one field in the table or collection in database.
Extended by
Properties
allowMinMaxQuery?
optionalallowMinMaxQuery:boolean
Allow AdminForth to execute SELECT min(column) and SELECT max(column) queries to get min and max values for this column. This would improve UX of filters by adding sliders for numeric columns.
NOTE: By default is option is false to prevent performance issues on large tables.
If you are going to set it to true, make sure you have a one-item index on this column (one index for each column which has it) or ensure your table will not have a large number of records.
backendOnly?
optionalbackendOnly:boolean
if true field will !not be passed to UI under no circumstances, but will be presented in hooks
components?
optionalcomponents:AdminForthFieldComponents
Custom components which will be used to render this field in the admin panel.
editingNote?
optionaleditingNote:string| {create?:string;edit?:string; }
Whether AdminForth will show editing note near the field in edit/create form.
editReadonly?
optionaleditReadonly:boolean
Whether AdminForth will allow to edit this field in editing mode.
enforceLowerCase?
optionalenforceLowerCase:boolean
Will automatically convert any capital letters to lowercase in input during editing
enum?
optionalenum:AdminForthColumnEnumItem[]
Enum of possible values for this field.
extra?
optionalextra:object
An optional configuration object for extra settings.
jsonCollapsedLevel?
optionaljsonCollapsedLevel:number
How many levels of JSON should be collapsed.
0 means - root level will be already collapsed e.g. {a:1} will show {...} where '...' is clickable
1 means - root level will be shown, but next sub-level will be collapsed e.g. {a: {b: 1}} will show {a: ...} where '...' is clickable
Default is 1.
fillOnCreate?
optionalfillOnCreate:FillOnCreateFunction
Called on the backend when the record is saved to a database. Value returned by fillOnCreate will be saved to the database.
filterOptions?
optionalfilterOptions:object
debounceTimeMs?
optionaldebounceTimeMs:number
Decrease number of requests by adding debounce time to filter requests.
multiselect?
optionalmultiselect:boolean
Boolean value that determines what select input type to display on filter page.
substringSearch?
optionalsubstringSearch:boolean
If false - will force EQ operator for filter instead of ILIKE.
foreignResource?
optionalforeignResource:AdminForthForeignResourceCommon
Foreign resource which has pk column with values same that written in this column.
inputPrefix?
optionalinputPrefix:string
Prefix and suffix for input field on create and edit pages.
inputSuffix?
optionalinputSuffix:string
isArray?
optionalisArray:object
Defines whether column is array and what type of items it contains. AdminForth will use this information to render proper input fields in the admin panel with control buttons to add and remove items. If enabled, requires column type to be JSON. Cannot be used with masked columns, columns with foreignResource or primary key columns.
allowDuplicateItems?
optionalallowDuplicateItems:boolean
If enabled, AdminForth will allow to add items with the same value.
enabled
enabled:
boolean
itemType
itemType:
AdminForthDataTypes
Type of items in array. Cannot be JSON or RICHTEXT.
isUnique?
optionalisUnique:boolean
Whether AdminForth will request user to enter unique value during creating or editing record. This option causes AdminForth to make a request to database to check if value is unique. (Constraints are not used, so for large-tables performance make sure you have unique index in database if you set this option to true)
label?
optionallabel:string
How column can be labled in the admin panel. Use it for renaming columns. Defaulted to column name with Uppercased first letter.
listSticky?
optionallistSticky:boolean
Sticky position for column
masked?
optionalmasked:boolean
Masked fields will be displayed as ***** on Edit and Create pages.
maxLength?
optionalmaxLength:number
Maximum length of string that can be entered in this field.
maxValue?
optionalmaxValue:number
Maximum value that can be entered in this field.
minLength?
optionalminLength:number
Minimum length of string that can be entered in this field.
minValue?
optionalminValue:number
Minimum value that can be entered in this field.
name
name:
string
Column name in database.
primaryKey?
optionalprimaryKey:boolean
Whether to use this column as record identifier. Only one column can be primary key. AdminForth tries to guess primary key automatically first.
required?
optionalrequired:boolean| {create?:boolean;edit?:boolean; }
Whether AdminForth will require this field to be filled in create and edit forms. Can be set to boolean or object with create and edit properties. If boolean, it will be used for both create and edit forms.
showIf?
optionalshowIf:Predicate
Show field only if certain conditions are met.
showIn?
optionalshowIn:ShowInResolved
Defines on which AdminForth pages this field will be shown. By default all. Example: if you want to show field only in create and edit pages, set it to
showIn: { create: true, edit: true }
If you wish show only in list view, set it to:
showIn: { all: false, list: true }
If you wish to hide only in list you can use:
showIn: { all: true, list: false }
or
showIn: { list: false } // all: true is by default already
Also might have callback which will be called with same syntax as allowedActions.
showIn: {
list: ({ resource, adminUser }) => {
return adminUser.dbUser.role === 'superadmin';
},
show: true,
}
sortable?
optionalsortable:boolean
Whether to allow this column to be sortable in list view. If true, AdminForth will add sorting buttons to the column header in list view and clicking on it will change sorting state of the column.
suggestOnCreate?
optionalsuggestOnCreate:string|number|boolean|object
Single value that will be substituted in create form. User can change it before saving the record.
type?
optionaltype:AdminForthDataTypes
Type of data in column. AdminForth will use this information to render proper input fields in the admin panel. AdminForth tries to guess type of data from database column type automatically for typed databases like SQL-based. However you can explicitly set it to any value. E.g. set AdminForthDataTypes.DATETIME for your string column in SQLite, which stores ISO date strings.
validation?
optionalvalidation:ValidationObject[]
Runtime validation Regexp rules for this field.
virtual?
optionalvirtual:boolean
Allows to make the field which does not exist in database table. Examples: add custom show field with user country flag:
{
label: 'Country Flag',
type: AdminForthDataTypes.STRING,
virtual: true,
showIn: {
[AdminForthResourcePages.edit]: false,
[AdminForthResourcePages.create]: false,
[AdminForthResourcePages.filter]: false,
},
components: {
show: '@@/CountryFlag.vue',
list: '@@/CountryFlag.vue',
},
}
This field will be displayed in show and list views with custom component CountryFlag.vue. CountryFlag.vue should be placed in custom folder and can be next:
<template>
{{ getFlagEmojiFromIso(record.ipCountry) }}
</template>
<script setup>
const props = defineProps(['record']);
function getFlagEmojiFromIso(iso) {
return iso.toUpperCase().replace(/./g, (char) => String.fromCodePoint(char.charCodeAt(0) + 127397));
}
</script>