# Config Schema
TODO `_id` and `location` are special required fields
## Config structure
# theme: #TODO
# hooks: #TODO
# savedSerches: #TODO
dataDefinition:
- displayName: Core info
color: light-blue darken-2 #pick colors from https://v15.vuetifyjs.com/en/framework/colors
fields:
- name: _id
displayName: ID #Trim option? So only a substring it shown? IE replace substr logic in list view
type: string
disabled: true
showInTree: true
size: 12
- name: name
displayName: Name
type: string
showInTree: true
- name: location
displayName: Location
type: path
size: 12
#showInTree: true #Always shown
## Data Definition
Data definition is a list of sections. These section group field in the new entry screen.
##### Example:
- displayName: Core info
color: light-blue darken-2
size: 12
fields: []
##### Attributes:
| Attribute name | Required | Default | Description |
| -------------- | -------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `displayName` | No | | Used to label the section on the new entry screen. |
| `color` | No | | [Vuetify colors](https://v15.vuetifyjs.com/en/framework/colors) to set section background in new entry screen. |
| `size` | No | `12` on small screens.
`6` on large screens.
`4` on extra large screens. | How wide to make section in new entry screen. Can be from 1-12. Why 12? It's divisible into halves and thirds. |
| `fields` | No | | List of fields to to store. See below for field definitions |
* * *
### Common fields Attributes
##### Example:
name: _id
displayName: ID
type: string
disabled: true
showInTree: true
size: 12
color: red
##### Attributes:
| Attribute name | Required | Default | Description |
| -------------- | -------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `name` | Yes | | Logical name for a field. Should be machine readable name. Case sensitive, no spaces or special characters. |
| `displayName` | | | Human readable name for a field. Can contain spaces and special characters. |
| `type` | Yes | | Type of the field. See options below. |
| `showInTree` | No | `false` | Used in the tree view to show a field in results. |
| `size` | No | `12` on small screens.
`6` on large screens.
`4` on extra large screens. | How wide to make section in new entry screen. Can be from 1-12. |
| `color` | No | Various | [Vuetify colors](https://v15.vuetifyjs.com/en/framework/colors) to set section background in new entry screen. |
* * *
### String field type
A generic field type.
##### Example:
- name: name
displayName: Name
type: string
disabled: true
showInTree: true
size: 12
color: red
##### Attributes:
In addition to the common field attributes.
| Attribute name | Required | Default | Description |
| -------------- | -------- | ------- | -------------------------------------------------------------------- |
| disabled | No | `false` | Determines if the field should be editable on the item entry screen. |
* * *
### Path field type
A special field type. This field expects a `/` delimited path(Like a file system) and is used to render the data in a tree view.
##### Example:
- name: location
displayName: Location
prefixes: {}
type: path
size: 12
##### Prefix Example:
- name: location
displayName: Location
prefixes:
Box01: House/Room/ #Typing in `Box01` will act as if you entered in `House/Room/Box01` because of this configured prefix
type: path
size: 12
##### Attributes:
In addition to the common field attributes.
| Attribute name | Required | Default | Description |
| -------------- | -------- | ------- | -------------------------------------------------------------------- |
| `disabled` | No | `false` | Determines if the field should be editable on the item entry screen. |
| `prefixes` | Yes | | Map of fixed prefixes |
* * *
### Boolean field type
A toggle field type with two states. `true` and `false`. Null is assumed to be `false`
##### Example:
- name: idLabeled
displayName: Item labeled with ID
type: boolean
color: red
* * *
### List field type
##### Example:
- name: tags
displayName: Tags
type: list
size: 12
##### Attributes:
| Attribute name | Required | Default | Description | |
| -------------- | -------- | ------- | -------------------------------------------------------------------------------------- | --- |
| `listType` | No | | If specified the list one of the special types below. Otherwise its just a string list | |
#### Link list subtype
##### Example:
- name: imageURLs
displayName: Image URLs
type: list
listType: link
hideInList: true
#### UPC list code type
##### Example:
- name: code
displayName: Code
type: list
listType: upc
size: 12
hideInList: true
* * *
### Last Date type
Read only field that shows the last date from a list of fields.
##### Example:
- name: lastTouchDate
displayName: Last touch date
type: lastDate
dateFields:
- name: status
type: libraryStyleStatus
- name: acquireDate
##### Attributes:
In addition to the common field attributes.
| Attribute name | Required | Default | Description |
| -------------- | -------- | ------- | --------------------------------------------------------------- |
| `dateFields` | True | | List of date fields. Display the latest date from those options |
##### Date Fields Attributes:
| Attribute name | Required | Default | Description |
| -------------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------- |
| `name` | Yes | | Name of the field to include in latest date calculations |
| `type` | Varies | | If value is a complex type like `libraryStyleStatus` it must be specified. Normal date fields this field is optional |
* * *
### Last Modified type
This field only updates when an entry is saved.
##### Example:
- name: lastModified
displayName: Last Modified
type: lastModified
* * *
### Library Style Status type
A complex field type that lets you check in and check out.
##### Example:
- name: status
displayName: Status
type: libraryStyleStatus #Checkin checkout
size: 12
showInTree: true