Refactor database models to improve column order and add column width properties for better layout consistency across various models.
Some checks are pending
farmcontrol/farmcontrol-ui/pipeline/head Build queued...

This commit is contained in:
Tom Butcher 2026-03-13 21:14:52 +00:00
parent 5740cb7bc8
commit e82d7e10df
38 changed files with 1024 additions and 326 deletions

View File

@ -77,7 +77,7 @@ export const AppPassword = {
} }
} }
], ],
columns: ['name', '_reference', 'user', 'active', 'createdAt', 'updatedAt'], columns: ['_reference', 'name', 'user', 'active', 'createdAt', 'updatedAt'],
filters: ['_id', 'name', 'user', 'active', 'user._id'], filters: ['_id', 'name', 'user', 'active', 'user._id'],
sorters: ['name', 'user', 'active', 'createdAt', 'updatedAt'], sorters: ['name', 'user', 'active', 'createdAt', 'updatedAt'],
properties: [ properties: [
@ -87,12 +87,23 @@ export const AppPassword = {
columnFixed: 'left', columnFixed: 'left',
type: 'id', type: 'id',
objectType: 'appPassword', objectType: 'appPassword',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'appPassword',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -100,14 +111,16 @@ export const AppPassword = {
label: 'Name', label: 'Name',
columnFixed: 'left', columnFixed: 'left',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'user', name: 'user',
@ -118,13 +131,15 @@ export const AppPassword = {
}, },
type: 'object', type: 'object',
objectType: 'user', objectType: 'user',
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'active', name: 'active',
label: 'Active', label: 'Active',
required: true, required: true,
type: 'bool' type: 'bool',
columnWidth: 125
}, },
{ {
name: 'secret', name: 'secret',
@ -133,7 +148,8 @@ export const AppPassword = {
required: false, required: false,
readOnly: true, readOnly: true,
value: (objectData) => value: (objectData) =>
objectData?._id ? '••••••••••••••••••••••••••••••••' : undefined objectData?._id ? '••••••••••••••••••••••••••••••••' : undefined,
columnWidth: 200
} }
] ]
} }

View File

@ -24,13 +24,24 @@ export const AuditLog = {
objectType: 'auditLog', objectType: 'auditLog',
columnFixed: 'left', columnFixed: 'left',
value: null, value: null,
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
value: null, value: null,
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'auditLog',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -38,7 +49,8 @@ export const AuditLog = {
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
value: null, value: null,
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'owner', name: 'owner',
@ -50,7 +62,8 @@ export const AuditLog = {
columnFixed: 'left', columnFixed: 'left',
value: null, value: null,
showCopy: true, showCopy: true,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'parent', name: 'parent',
@ -61,7 +74,8 @@ export const AuditLog = {
}, },
value: null, value: null,
showCopy: true, showCopy: true,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'operation', name: 'operation',

View File

@ -68,8 +68,8 @@ export const Client = {
} }
], ],
columns: [ columns: [
'name',
'_reference', '_reference',
'name',
'country', 'country',
'email', 'email',
'phone', 'phone',
@ -105,12 +105,23 @@ export const Client = {
columnFixed: 'left', columnFixed: 'left',
type: 'id', type: 'id',
objectType: 'client', objectType: 'client',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'client',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -118,27 +129,31 @@ export const Client = {
label: 'Name', label: 'Name',
columnFixed: 'left', columnFixed: 'left',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'active', name: 'active',
label: 'Active', label: 'Active',
type: 'bool', type: 'bool',
readOnly: false, readOnly: false,
required: true required: true,
columnWidth: 125
}, },
{ {
name: 'country', name: 'country',
label: 'Country', label: 'Country',
type: 'country', type: 'country',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 150
}, },
{ {
name: 'email', name: 'email',
@ -153,21 +168,24 @@ export const Client = {
label: 'Phone', label: 'Phone',
type: 'phone', type: 'phone',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 140
}, },
{ {
name: 'tags', name: 'tags',
label: 'Tags', label: 'Tags',
type: 'tags', type: 'tags',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 200
}, },
{ {
name: 'address', name: 'address',
label: 'Address', label: 'Address',
type: 'address', type: 'address',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 250
} }
] ]
} }

View File

@ -68,7 +68,7 @@ export const Courier = {
`/dashboard/management/couriers/info?courierId=${_id}&action=delete` `/dashboard/management/couriers/info?courierId=${_id}&action=delete`
} }
], ],
columns: ['name', '_reference', 'country', 'email', 'website', 'createdAt'], columns: ['_reference', 'name', 'country', 'email', 'website', 'createdAt'],
filters: ['name', '_id', 'country', 'email'], filters: ['name', '_id', 'country', 'email'],
sorters: ['name', 'country', 'email', 'createdAt', '_id'], sorters: ['name', 'country', 'email', 'createdAt', '_id'],
group: ['country'], group: ['country'],
@ -79,12 +79,23 @@ export const Courier = {
columnFixed: 'left', columnFixed: 'left',
type: 'id', type: 'id',
objectType: 'courier', objectType: 'courier',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'courier',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -92,27 +103,31 @@ export const Courier = {
label: 'Name', label: 'Name',
columnFixed: 'left', columnFixed: 'left',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'contact', name: 'contact',
label: 'Contact', label: 'Contact',
type: 'text', type: 'text',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 150
}, },
{ {
name: 'country', name: 'country',
label: 'Country', label: 'Country',
type: 'country', type: 'country',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 150
}, },
{ {
name: 'email', name: 'email',
@ -127,7 +142,8 @@ export const Courier = {
label: 'Phone', label: 'Phone',
type: 'phone', type: 'phone',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 140
}, },
{ {
name: 'website', name: 'website',

View File

@ -70,8 +70,8 @@ export const CourierService = {
} }
], ],
columns: [ columns: [
'name',
'_reference', '_reference',
'name',
'courier', 'courier',
'tracked', 'tracked',
'deliveryTime', 'deliveryTime',
@ -95,12 +95,23 @@ export const CourierService = {
columnFixed: 'left', columnFixed: 'left',
type: 'id', type: 'id',
objectType: 'courierService', objectType: 'courierService',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'courierService',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -108,13 +119,15 @@ export const CourierService = {
label: 'Name', label: 'Name',
columnFixed: 'left', columnFixed: 'left',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'courier', name: 'courier',
@ -122,7 +135,8 @@ export const CourierService = {
type: 'object', type: 'object',
objectType: 'courier', objectType: 'courier',
showHyperlink: true, showHyperlink: true,
required: true required: true,
columnWidth: 200
}, },
{ {
name: 'deliveryTime', name: 'deliveryTime',
@ -139,7 +153,7 @@ export const CourierService = {
type: 'bool', type: 'bool',
readOnly: false, readOnly: false,
required: true, required: true,
columnWidth: 150 columnWidth: 125
}, },
{ {
name: 'tracked', name: 'tracked',

View File

@ -61,7 +61,7 @@ export const DocumentJob = {
} }
} }
], ],
columns: ['name', '_reference', 'state', 'createdAt', 'updatedAt'], columns: ['_reference', 'name', 'state', 'createdAt', 'updatedAt'],
filters: ['name', '_id', 'state'], filters: ['name', '_id', 'state'],
sorters: ['name', 'state', 'createdAt', 'updatedAt'], sorters: ['name', 'state', 'createdAt', 'updatedAt'],
properties: [ properties: [
@ -70,12 +70,23 @@ export const DocumentJob = {
label: 'ID', label: 'ID',
type: 'id', type: 'id',
objectType: 'documentJob', objectType: 'documentJob',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'documentJob',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -95,7 +106,8 @@ export const DocumentJob = {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'state', name: 'state',
@ -103,7 +115,8 @@ export const DocumentJob = {
type: 'state', type: 'state',
objectType: 'printer', objectType: 'printer',
showName: false, showName: false,
readOnly: true readOnly: true,
columnWidth: 250
}, },
{ {
name: 'objectType', name: 'objectType',

View File

@ -61,8 +61,8 @@ export const DocumentPrinter = {
} }
], ],
columns: [ columns: [
'name',
'_reference', '_reference',
'name',
'state', 'state',
'host', 'host',
'tags', 'tags',
@ -77,12 +77,23 @@ export const DocumentPrinter = {
label: 'ID', label: 'ID',
type: 'id', type: 'id',
objectType: 'documentPrinter', objectType: 'documentPrinter',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'documentPrinter',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -97,7 +108,8 @@ export const DocumentPrinter = {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'state', name: 'state',
@ -105,25 +117,29 @@ export const DocumentPrinter = {
type: 'state', type: 'state',
objectType: 'printer', objectType: 'printer',
showName: false, showName: false,
readOnly: true readOnly: true,
columnWidth: 250
}, },
{ {
name: 'connectedAt', name: 'connectedAt',
label: 'Connected At', label: 'Connected At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'online', name: 'online',
label: 'Online', label: 'Online',
type: 'bool', type: 'bool',
readOnly: true readOnly: true,
columnWidth: 85
}, },
{ {
name: 'active', name: 'active',
label: 'Active', label: 'Active',
type: 'bool', type: 'bool',
required: true required: true,
columnWidth: 125
}, },
{ {
name: 'vendor', name: 'vendor',
@ -131,7 +147,8 @@ export const DocumentPrinter = {
type: 'object', type: 'object',
objectType: 'vendor', objectType: 'vendor',
required: false, required: false,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'host', name: 'host',
@ -139,7 +156,8 @@ export const DocumentPrinter = {
required: true, required: true,
type: 'object', type: 'object',
objectType: 'host', objectType: 'host',
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'connection.interface', name: 'connection.interface',
@ -150,7 +168,8 @@ export const DocumentPrinter = {
{ label: 'Epson Receipt', value: 'epsonReceipt' }, { label: 'Epson Receipt', value: 'epsonReceipt' },
{ label: 'Star Receipt', value: 'starReceipt' } { label: 'Star Receipt', value: 'starReceipt' }
], ],
required: true required: true,
columnWidth: 150
}, },
{ {
name: 'connection.protocol', name: 'connection.protocol',
@ -169,13 +188,15 @@ export const DocumentPrinter = {
{ label: 'System', value: 'system' } { label: 'System', value: 'system' }
] ]
}, },
required: true required: true,
columnWidth: 130
}, },
{ {
name: 'connection.host', name: 'connection.host',
label: 'Host Name', label: 'Host Name',
type: 'text', type: 'text',
required: true required: true,
columnWidth: 180
}, },
{ {
name: 'connection.port', name: 'connection.port',
@ -187,7 +208,8 @@ export const DocumentPrinter = {
objectData?.connection?.protocol == 'system' || objectData?.connection?.protocol == 'system' ||
objectData?.connection?.protocol == 'serial' objectData?.connection?.protocol == 'serial'
) )
} },
columnWidth: 85
}, },
{ {
name: 'currentDocumentSize', name: 'currentDocumentSize',
@ -195,13 +217,15 @@ export const DocumentPrinter = {
required: false, required: false,
type: 'object', type: 'object',
objectType: 'documentSize', objectType: 'documentSize',
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'tags', name: 'tags',
label: 'Tags', label: 'Tags',
required: false, required: false,
type: 'tags' type: 'tags',
columnWidth: 200
} }
] ]
} }

View File

@ -61,8 +61,8 @@ export const DocumentSize = {
} }
], ],
columns: [ columns: [
'name',
'_reference', '_reference',
'name',
'width', 'width',
'height', 'height',
'infiniteHeight', 'infiniteHeight',
@ -84,12 +84,23 @@ export const DocumentSize = {
label: 'ID', label: 'ID',
type: 'id', type: 'id',
objectType: 'documentSize', objectType: 'documentSize',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'documentSize',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -104,7 +115,8 @@ export const DocumentSize = {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'width', name: 'width',

View File

@ -70,8 +70,8 @@ export const DocumentTemplate = {
} }
], ],
columns: [ columns: [
'name',
'_reference', '_reference',
'name',
'active', 'active',
'global', 'global',
'objectType', 'objectType',
@ -99,12 +99,23 @@ export const DocumentTemplate = {
label: 'ID', label: 'ID',
type: 'id', type: 'id',
objectType: 'documentTemplate', objectType: 'documentTemplate',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'documentTemplate',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -119,13 +130,15 @@ export const DocumentTemplate = {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'objectType', name: 'objectType',
label: 'Object Type', label: 'Object Type',
required: true, required: true,
type: 'objectType', type: 'objectType',
columnWidth: 150,
empty: (documentTemplate) => { empty: (documentTemplate) => {
return documentTemplate.global return documentTemplate.global
} }
@ -135,13 +148,14 @@ export const DocumentTemplate = {
label: 'Active', label: 'Active',
required: true, required: true,
type: 'bool', type: 'bool',
columnWidth: 150 columnWidth: 125
}, },
{ {
name: 'tags', name: 'tags',
label: 'Tags', label: 'Tags',
required: false, required: false,
type: 'tags' type: 'tags',
columnWidth: 200
}, },
{ {
name: 'global', name: 'global',
@ -156,7 +170,8 @@ export const DocumentTemplate = {
required: true, required: true,
type: 'object', type: 'object',
objectType: 'documentSize', objectType: 'documentSize',
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'parent', name: 'parent',
@ -166,6 +181,7 @@ export const DocumentTemplate = {
masterFilter: { global: true, active: true }, masterFilter: { global: true, active: true },
objectType: 'documentTemplate', objectType: 'documentTemplate',
showHyperlink: true, showHyperlink: true,
columnWidth: 200,
empty: (documentTemplate) => { empty: (documentTemplate) => {
return documentTemplate.global return documentTemplate.global
} }

View File

@ -91,11 +91,12 @@ export const Filament = {
'density', 'density',
'diameter', 'diameter',
'cost', 'cost',
'costWithTax',
'createdAt', 'createdAt',
'updatedAt' 'updatedAt'
], ],
filters: ['_id', 'name', 'material'], filters: ['_id', 'name', 'material', 'cost', 'costWithTax'],
sorters: ['name', 'createdAt', 'material', 'updatedAt'], sorters: ['name', 'createdAt', 'material', 'cost', 'costWithTax', 'updatedAt'],
group: ['diameter', 'material'], group: ['diameter', 'material'],
properties: [ properties: [
{ {
@ -104,12 +105,23 @@ export const Filament = {
columnFixed: 'left', columnFixed: 'left',
type: 'id', type: 'id',
objectType: 'filament', objectType: 'filament',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'filament',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -117,13 +129,15 @@ export const Filament = {
label: 'Name', label: 'Name',
columnFixed: 'left', columnFixed: 'left',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'material', name: 'material',
@ -162,7 +176,7 @@ export const Filament = {
name: 'cost', name: 'cost',
label: 'Cost', label: 'Cost',
required: false, required: false,
columnWidth: 120, columnWidth: 100,
type: 'number', type: 'number',
prefix: '£', prefix: '£',
min: 0, min: 0,
@ -177,6 +191,7 @@ export const Filament = {
prefix: '£', prefix: '£',
min: 0, min: 0,
step: 0.01, step: 0.01,
columnWidth: 150,
value: (objectData) => { value: (objectData) => {
const cost = objectData?.cost const cost = objectData?.cost
if (!cost) return undefined if (!cost) return undefined
@ -197,19 +212,22 @@ export const Filament = {
required: false, required: false,
type: 'object', type: 'object',
objectType: 'taxRate', objectType: 'taxRate',
showHyperlink: true showHyperlink: true,
columnWidth: 150
}, },
{ {
name: 'url', name: 'url',
label: 'Link', label: 'Link',
required: false, required: false,
type: 'url' type: 'url',
columnWidth: 300
}, },
{ {
name: 'barcode', name: 'barcode',
label: 'Barcode', label: 'Barcode',
required: false, required: false,
type: 'text' type: 'text',
columnWidth: 150
} }
] ]
} }

View File

@ -78,6 +78,7 @@ export const FilamentSku = {
'color', 'color',
'overrideCost', 'overrideCost',
'cost', 'cost',
'costWithTax',
'createdAt', 'createdAt',
'updatedAt' 'updatedAt'
], ],
@ -88,7 +89,8 @@ export const FilamentSku = {
'filament._id', 'filament._id',
'name', 'name',
'color', 'color',
'cost' 'cost',
'costWithTax'
], ],
sorters: [ sorters: [
'barcode', 'barcode',
@ -96,6 +98,7 @@ export const FilamentSku = {
'name', 'name',
'color', 'color',
'cost', 'cost',
'costWithTax',
'createdAt', 'createdAt',
'updatedAt' 'updatedAt'
], ],
@ -106,25 +109,39 @@ export const FilamentSku = {
type: 'id', type: 'id',
objectType: 'filamentSku', objectType: 'filamentSku',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'filamentSku',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
name: 'name', name: 'name',
label: 'Name', label: 'Name',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200,
columnFixed: 'left'
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'filament', name: 'filament',
@ -132,32 +149,37 @@ export const FilamentSku = {
type: 'object', type: 'object',
objectType: 'filament', objectType: 'filament',
required: true, required: true,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'barcode', name: 'barcode',
label: 'Barcode', label: 'Barcode',
required: false, required: false,
type: 'text' type: 'text',
columnWidth: 150
}, },
{ {
name: 'description', name: 'description',
label: 'Description', label: 'Description',
required: false, required: false,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'color', name: 'color',
label: 'Color', label: 'Color',
required: true, required: true,
type: 'color' type: 'color',
columnWidth: 120
}, },
{ {
name: 'overrideCost', name: 'overrideCost',
label: 'Override Cost', label: 'Override Cost',
required: false, required: false,
type: 'bool', type: 'bool',
value: (objectData) => objectData?.overrideCost ?? false value: (objectData) => objectData?.overrideCost ?? false,
columnWidth: 150
}, },
{ {
name: 'cost', name: 'cost',
@ -169,7 +191,8 @@ export const FilamentSku = {
step: 0.01, step: 0.01,
disabled: (objectData) => !objectData?.overrideCost, disabled: (objectData) => !objectData?.overrideCost,
value: (objectData) => value: (objectData) =>
objectData?.overrideCost ? objectData?.cost : undefined objectData?.overrideCost ? objectData?.cost : undefined,
columnWidth: 100
}, },
{ {
name: 'costWithTax', name: 'costWithTax',
@ -192,7 +215,8 @@ export const FilamentSku = {
return (cost + taxRate?.rate).toFixed(2) || undefined return (cost + taxRate?.rate).toFixed(2) || undefined
} }
return cost return cost
} },
columnWidth: 150
}, },
{ {
name: 'costTaxRate', name: 'costTaxRate',
@ -203,7 +227,8 @@ export const FilamentSku = {
showHyperlink: true, showHyperlink: true,
disabled: (objectData) => !objectData?.overrideCost, disabled: (objectData) => !objectData?.overrideCost,
value: (objectData) => value: (objectData) =>
objectData?.overrideCost ? objectData?.costTaxRate : undefined objectData?.overrideCost ? objectData?.costTaxRate : undefined,
columnWidth: 150
} }
] ]
} }

View File

@ -36,12 +36,23 @@ export const FilamentStock = {
type: 'id', type: 'id',
columnFixed: 'left', columnFixed: 'left',
objectType: 'filamentStock', objectType: 'filamentStock',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'filamentStock',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -49,13 +60,15 @@ export const FilamentStock = {
label: 'State', label: 'State',
type: 'state', type: 'state',
objectType: 'filamentStock', objectType: 'filamentStock',
readOnly: true readOnly: true,
columnWidth: 250
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'filamentSku', name: 'filamentSku',
@ -65,7 +78,8 @@ export const FilamentStock = {
readOnly: true, readOnly: true,
initial: true, initial: true,
required: true, required: true,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'currentWeight', name: 'currentWeight',

View File

@ -78,7 +78,7 @@ export const File = {
} }
], ],
url: (id) => `/dashboard/management/files/info?fileId=${id}`, url: (id) => `/dashboard/management/files/info?fileId=${id}`,
columns: ['name', '_reference', 'type', 'size', 'temp', 'createdAt'], columns: ['_reference', 'name', 'type', 'size', 'temp', 'createdAt'],
filters: ['name', '_id', 'type', 'temp'], filters: ['name', '_id', 'type', 'temp'],
sorters: ['name', 'type', 'size', 'createdAt', 'temp'], sorters: ['name', 'type', 'size', 'createdAt', 'temp'],
group: ['type'], group: ['type'],
@ -89,12 +89,23 @@ export const File = {
columnFixed: 'left', columnFixed: 'left',
type: 'id', type: 'id',
objectType: 'file', objectType: 'file',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'file',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -102,20 +113,23 @@ export const File = {
label: 'Name', label: 'Name',
columnFixed: 'left', columnFixed: 'left',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'type', name: 'type',
label: 'Type', label: 'Type',
type: 'text', type: 'text',
readOnly: true, readOnly: true,
required: true required: true,
columnWidth: 120
}, },
{ {
name: 'size', name: 'size',
@ -141,7 +155,8 @@ export const File = {
if (size < 1024 * 1024 * 1024) return size / (1024 * 1024) if (size < 1024 * 1024 * 1024) return size / (1024 * 1024)
if (size < 1024 * 1024 * 1024 * 1024) return size / (1024 * 1024 * 1024) if (size < 1024 * 1024 * 1024 * 1024) return size / (1024 * 1024 * 1024)
return size / (1024 * 1024 * 1024 * 1024) return size / (1024 * 1024 * 1024 * 1024)
} },
columnWidth: 100
}, },
{ {
name: 'metaData', name: 'metaData',

View File

@ -69,9 +69,10 @@ export const GCodeFile = {
], ],
columns: [ columns: [
'name',
'_reference', '_reference',
'name',
'filamentSku', 'filamentSku',
'cost',
'gcodeFileInfo.estimatedPrintingTimeNormalMode', 'gcodeFileInfo.estimatedPrintingTimeNormalMode',
'gcodeFileInfo.sparseInfillDensity', 'gcodeFileInfo.sparseInfillDensity',
'gcodeFileInfo.sparseInfillPattern', 'gcodeFileInfo.sparseInfillPattern',
@ -79,8 +80,8 @@ export const GCodeFile = {
'gcodeFileInfo.hotPlateTemp', 'gcodeFileInfo.hotPlateTemp',
'updatedAt' 'updatedAt'
], ],
filters: ['_id', 'name', 'updatedAt'], filters: ['_id', 'name', 'cost', 'updatedAt'],
sorters: ['name', 'createdAt', 'updatedAt'], sorters: ['name', 'cost', 'createdAt', 'updatedAt'],
group: ['filamentSku'], group: ['filamentSku'],
properties: [ properties: [
{ {
@ -90,13 +91,24 @@ export const GCodeFile = {
objectType: 'gcodeFile', objectType: 'gcodeFile',
columnFixed: 'left', columnFixed: 'left',
value: null, value: null,
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
value: null, value: null,
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'gcodeFile',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -105,14 +117,16 @@ export const GCodeFile = {
columnFixed: 'left', columnFixed: 'left',
type: 'text', type: 'text',
value: null, value: null,
required: true required: true,
columnWidth: 200
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
value: null, value: null,
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'file', name: 'file',
@ -122,7 +136,8 @@ export const GCodeFile = {
required: true, required: true,
showPreview: false, showPreview: false,
showHyperlink: true, showHyperlink: true,
filter: ['.gcode', '.g'] filter: ['.gcode', '.g'],
columnWidth: 200
}, },
{ {
name: 'filamentSku', name: 'filamentSku',
@ -131,7 +146,8 @@ export const GCodeFile = {
value: null, value: null,
objectType: 'filamentSku', objectType: 'filamentSku',
required: true, required: true,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'cost', name: 'cost',
@ -146,14 +162,16 @@ export const GCodeFile = {
return objectData.file.metaData.filamentUsedG * (costPerKg / 1000) return objectData.file.metaData.filamentUsedG * (costPerKg / 1000)
}, },
readOnly: true, readOnly: true,
prefix: '£' prefix: '£',
columnWidth: 100
}, },
{ {
name: 'file.metaData.filamentUsedG', name: 'file.metaData.filamentUsedG',
label: 'Est Print Time', label: 'Est Print Time',
value: null, value: null,
type: 'text', type: 'text',
readOnly: true readOnly: true,
columnWidth: 130
}, },
{ {
name: 'file.metaData.sparseInfillDensity', name: 'file.metaData.sparseInfillDensity',
@ -166,21 +184,24 @@ export const GCodeFile = {
name: 'file.metaData.sparseInfillPattern', name: 'file.metaData.sparseInfillPattern',
label: 'Infill Pattern', label: 'Infill Pattern',
type: 'text', type: 'text',
readOnly: true readOnly: true,
columnWidth: 150
}, },
{ {
name: 'file.metaData.filamentUsedMm', name: 'file.metaData.filamentUsedMm',
label: 'Filament Used (mm)', label: 'Filament Used (mm)',
type: 'number', type: 'number',
readOnly: true, readOnly: true,
suffix: 'mm' suffix: 'mm',
columnWidth: 160
}, },
{ {
name: 'file.metaData.filamentUsedG', name: 'file.metaData.filamentUsedG',
label: 'Filament Used (g)', label: 'Filament Used (g)',
type: 'number', type: 'number',
suffix: 'g', suffix: 'g',
readOnly: true readOnly: true,
columnWidth: 150
}, },
{ {
name: 'file.metaData.nozzleTemperature', name: 'file.metaData.nozzleTemperature',
@ -202,13 +223,15 @@ export const GCodeFile = {
name: 'file.metaData.filamentSettingsId', name: 'file.metaData.filamentSettingsId',
label: 'Filament Profile', label: 'Filament Profile',
type: 'text', type: 'text',
readOnly: true readOnly: true,
columnWidth: 150
}, },
{ {
name: 'file.metaData.printSettingsId', name: 'file.metaData.printSettingsId',
label: 'Print Profile', label: 'Print Profile',
type: 'text', type: 'text',
readOnly: true readOnly: true,
columnWidth: 150
}, },
{ {
name: 'parts', name: 'parts',

View File

@ -70,7 +70,7 @@ export const Host = {
`/dashboard/management/hosts/info?hostId=${_id}&action=hostOTP` `/dashboard/management/hosts/info?hostId=${_id}&action=hostOTP`
} }
], ],
columns: ['name', '_reference', 'state', 'tags', 'connectedAt'], columns: ['_reference', 'name', 'state', 'tags', 'connectedAt'],
filters: ['name', '_id', 'state', 'tags'], filters: ['name', '_id', 'state', 'tags'],
sorters: ['name', 'state', 'connectedAt'], sorters: ['name', 'state', 'connectedAt'],
group: ['tags'], group: ['tags'],
@ -80,12 +80,23 @@ export const Host = {
label: 'ID', label: 'ID',
type: 'id', type: 'id',
objectType: 'host', objectType: 'host',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'host',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -100,7 +111,8 @@ export const Host = {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'state', name: 'state',
@ -108,25 +120,29 @@ export const Host = {
type: 'state', type: 'state',
objectType: 'host', objectType: 'host',
showName: false, showName: false,
readOnly: true readOnly: true,
columnWidth: 250
}, },
{ {
name: 'connectedAt', name: 'connectedAt',
label: 'Connected At', label: 'Connected At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'online', name: 'online',
label: 'Online', label: 'Online',
type: 'bool', type: 'bool',
readOnly: true readOnly: true,
columnWidth: 150
}, },
{ {
name: 'active', name: 'active',
label: 'Active', label: 'Active',
type: 'bool', type: 'bool',
required: true required: true,
columnWidth: 125
}, },
{ {
@ -135,6 +151,7 @@ export const Host = {
type: 'text', type: 'text',
required: false, required: false,
readOnly: true, readOnly: true,
columnWidth: 220,
value: (objectData) => { value: (objectData) => {
if ( if (
objectData.deviceInfo?.os?.type && objectData.deviceInfo?.os?.type &&
@ -150,14 +167,16 @@ export const Host = {
label: 'Hostname', label: 'Hostname',
type: 'text', type: 'text',
required: false, required: false,
readOnly: true readOnly: true,
columnWidth: 180
}, },
{ {
name: 'deviceInfo.cpu.model', name: 'deviceInfo.cpu.model',
label: 'CPU Model', label: 'CPU Model',
type: 'text', type: 'text',
required: false, required: false,
readOnly: true readOnly: true,
columnWidth: 200
}, },
{ {
name: 'deviceInfo.cpu', name: 'deviceInfo.cpu',
@ -165,6 +184,7 @@ export const Host = {
type: 'text', type: 'text',
required: false, required: false,
readOnly: true, readOnly: true,
columnWidth: 150,
value: (objectData) => { value: (objectData) => {
if ( if (
objectData.deviceInfo?.cpu?.cores && objectData.deviceInfo?.cpu?.cores &&
@ -179,27 +199,31 @@ export const Host = {
label: 'User', label: 'User',
type: 'text', type: 'text',
required: false, required: false,
readOnly: true readOnly: true,
columnWidth: 120
}, },
{ {
name: 'deviceInfo.user.homedir', name: 'deviceInfo.user.homedir',
label: 'User Home', label: 'User Home',
type: 'text', type: 'text',
required: false, required: false,
readOnly: true readOnly: true,
columnWidth: 200
}, },
{ {
name: 'deviceInfo.process.nodeVersion', name: 'deviceInfo.process.nodeVersion',
label: 'NodeJS Version', label: 'NodeJS Version',
type: 'text', type: 'text',
required: false, required: false,
readOnly: true readOnly: true,
columnWidth: 150
}, },
{ {
name: 'tags', name: 'tags',
label: 'Tags', label: 'Tags',
type: 'tags', type: 'tags',
required: false required: false,
columnWidth: 200
}, },
{ {
name: 'files', name: 'files',
@ -207,7 +231,8 @@ export const Host = {
type: 'objectList', type: 'objectList',
objectType: 'file', objectType: 'file',
required: false, required: false,
readOnly: true readOnly: true,
columnWidth: 200
} }
] ]
} }

View File

@ -163,7 +163,8 @@ export const Invoice = {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: '_reference', name: '_reference',
@ -173,34 +174,45 @@ export const Invoice = {
required: true, required: true,
objectType: 'invoice', objectType: 'invoice',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
},
{
name: 'state',
label: 'State',
type: 'state',
readOnly: true,
columnWidth: 250
}, },
{ name: 'state', label: 'State', type: 'state', readOnly: true },
{ {
name: 'issuedAt', name: 'issuedAt',
label: 'Issued At', label: 'Issued At',
type: 'dateTime', type: 'dateTime',
readOnly: false, readOnly: false,
required: true required: true,
columnWidth: 175
}, },
{ {
name: 'orderType', name: 'orderType',
label: 'Order Type', label: 'Order Type',
type: 'objectType', type: 'objectType',
masterFilter: ['purchaseOrder', 'salesOrder'], masterFilter: ['purchaseOrder', 'salesOrder'],
required: true required: true,
columnWidth: 150
}, },
{ {
name: 'dueAt', name: 'dueAt',
label: 'Due At', label: 'Due At',
type: 'dateTime', type: 'dateTime',
required: true required: true,
columnWidth: 175
}, },
{ {
name: 'order', name: 'order',
@ -210,13 +222,15 @@ export const Invoice = {
return objectData?.orderType return objectData?.orderType
}, },
required: true, required: true,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'postedAt', name: 'postedAt',
label: 'Posted At', label: 'Posted At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'from', name: 'from',
@ -226,6 +240,7 @@ export const Invoice = {
objectType: 'vendor', objectType: 'vendor',
showHyperlink: true, showHyperlink: true,
readOnly: true, readOnly: true,
columnWidth: 200,
value: (objectData) => { value: (objectData) => {
if (objectData?.orderType == 'purchaseOrder') { if (objectData?.orderType == 'purchaseOrder') {
return objectData?.order?.vendor return objectData?.order?.vendor
@ -239,7 +254,8 @@ export const Invoice = {
name: 'acknowledgedAt', name: 'acknowledgedAt',
label: 'Acknowledged At', label: 'Acknowledged At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
@ -250,6 +266,7 @@ export const Invoice = {
objectType: 'client', objectType: 'client',
showHyperlink: true, showHyperlink: true,
readOnly: true, readOnly: true,
columnWidth: 200,
value: (objectData) => { value: (objectData) => {
if (objectData?.orderType == 'salesOrder') { if (objectData?.orderType == 'salesOrder') {
return objectData?.to return objectData?.to
@ -262,7 +279,8 @@ export const Invoice = {
name: 'cancelledAt', name: 'cancelledAt',
label: 'Cancelled At', label: 'Cancelled At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
@ -278,7 +296,8 @@ export const Invoice = {
name: 'paidAt', name: 'paidAt',
label: 'Paid At', label: 'Paid At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'totalAmountWithTax', name: 'totalAmountWithTax',

View File

@ -47,12 +47,23 @@ export const Job = {
type: 'id', type: 'id',
columnFixed: 'left', columnFixed: 'left',
objectType: 'job', objectType: 'job',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'job',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -71,7 +82,8 @@ export const Job = {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'quantity', name: 'quantity',
@ -85,26 +97,29 @@ export const Job = {
name: 'startedAt', name: 'startedAt',
label: 'Started At', label: 'Started At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'printers', name: 'printers',
label: 'Printers', label: 'Printers',
type: 'objectList', type: 'objectList',
objectType: 'printer', objectType: 'printer',
required: true required: true,
columnWidth: 200
}, },
{ {
name: 'finishedAt', name: 'finishedAt',
label: 'Finished At', label: 'Finished At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'gcodeFile', name: 'gcodeFile',
label: 'GCode File', label: 'GCode File',
type: 'object', type: 'object',
columnWidth: 200,
objectType: 'gcodeFile', objectType: 'gcodeFile',
required: true, required: true,
showHyperlink: true showHyperlink: true
@ -113,6 +128,7 @@ export const Job = {
name: 'totalTime', name: 'totalTime',
label: 'Total Time', label: 'Total Time',
type: 'text', type: 'text',
columnWidth: 110,
readOnly: true, readOnly: true,
value: (objectData) => { value: (objectData) => {
if (!objectData?.startedAt || !objectData?.finishedAt) { if (!objectData?.startedAt || !objectData?.finishedAt) {

View File

@ -80,12 +80,23 @@ export const Material = {
columnFixed: 'left', columnFixed: 'left',
type: 'id', type: 'id',
objectType: 'material', objectType: 'material',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'material',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -93,25 +104,29 @@ export const Material = {
label: 'Name', label: 'Name',
columnFixed: 'left', columnFixed: 'left',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'tags', name: 'tags',
label: 'Tags', label: 'Tags',
required: false, required: false,
type: 'tags' type: 'tags',
columnWidth: 200
}, },
{ {
name: 'url', name: 'url',
label: 'Link', label: 'Link',
required: false, required: false,
type: 'url' type: 'url',
columnWidth: 300
} }
] ]
} }

View File

@ -58,7 +58,7 @@ export const NoteType = {
} }
} }
], ],
columns: ['name', '_reference', 'color', 'active', 'createdAt', 'updatedAt'], columns: ['_reference', 'name', 'color', 'active', 'createdAt', 'updatedAt'],
filters: ['name', '_id', 'color', 'active'], filters: ['name', '_id', 'color', 'active'],
sorters: ['name', 'color', 'active', 'createdAt', 'updatedAt'], sorters: ['name', 'color', 'active', 'createdAt', 'updatedAt'],
properties: [ properties: [
@ -67,37 +67,53 @@ export const NoteType = {
label: 'ID', label: 'ID',
type: 'id', type: 'id',
objectType: 'noteType', objectType: 'noteType',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'noteType',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
name: 'name', name: 'name',
label: 'Name', label: 'Name',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200,
columnFixed: 'left'
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'color', name: 'color',
label: 'Color', label: 'Color',
required: false, required: false,
type: 'color' type: 'color',
columnWidth: 120
}, },
{ {
name: 'active', name: 'active',
label: 'Active', label: 'Active',
required: true, required: true,
type: 'bool' type: 'bool',
columnWidth: 125
} }
] ]
} }

View File

@ -119,7 +119,8 @@ export const OrderItem = {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: '_reference', name: '_reference',
@ -128,19 +129,23 @@ export const OrderItem = {
columnFixed: 'left', columnFixed: 'left',
objectType: 'orderItem', objectType: 'orderItem',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'name', name: 'name',
label: 'Name', label: 'Name',
type: 'text', type: 'text',
readOnly: true, readOnly: true,
columnWidth: 200,
columnFixed: 'left',
value: (objectData) => { value: (objectData) => {
return objectData?.sku?.name ?? objectData?.item?.name return objectData?.sku?.name ?? objectData?.item?.name
} }
@ -150,15 +155,23 @@ export const OrderItem = {
label: 'Ordered At', label: 'Ordered At',
type: 'dateTime', type: 'dateTime',
required: false, required: false,
readOnly: true readOnly: true,
columnWidth: 175
},
{
name: 'state',
label: 'State',
type: 'state',
readOnly: true,
columnWidth: 250
}, },
{ name: 'state', label: 'State', type: 'state', readOnly: true },
{ {
name: 'receivedAt', name: 'receivedAt',
label: 'Received At', label: 'Received At',
type: 'dateTime', type: 'dateTime',
required: false, required: false,
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'orderType', name: 'orderType',
@ -176,7 +189,8 @@ export const OrderItem = {
objectType: (objectData) => { objectType: (objectData) => {
return objectData?.orderType return objectData?.orderType
}, },
required: true required: true,
columnWidth: 200
}, },
{ {
name: 'shipment', name: 'shipment',
@ -247,7 +261,7 @@ export const OrderItem = {
name: 'syncAmount', name: 'syncAmount',
label: 'Sync Amount', label: 'Sync Amount',
type: 'select', type: 'select',
columnWidth: 150,
options: [ options: [
{ label: 'Item Cost', value: 'itemCost' }, { label: 'Item Cost', value: 'itemCost' },
{ label: 'Item Price', value: 'itemPrice' }, { label: 'Item Price', value: 'itemPrice' },
@ -325,6 +339,7 @@ export const OrderItem = {
type: 'object', type: 'object',
objectType: 'taxRate', objectType: 'taxRate',
showHyperlink: true, showHyperlink: true,
columnWidth: 150,
value: (objectData) => { value: (objectData) => {
const sku = objectData?.sku const sku = objectData?.sku
const item = objectData?.item const item = objectData?.item

View File

@ -71,9 +71,19 @@ export const Part = {
} }
} }
], ],
columns: ['name', '_reference', 'cost', 'price', 'createdAt'], columns: [
filters: ['name', '_id'], '_reference',
sorters: ['name', 'createdAt', '_id'], 'name',
'cost',
'costWithTax',
'priceMode',
'price',
'priceWithTax',
'createdAt',
'updatedAt'
],
filters: ['name', '_id', 'priceMode', 'cost', 'costWithTax', 'price', 'priceWithTax'],
sorters: ['name', 'priceMode', 'cost', 'costWithTax', 'price', 'priceWithTax', 'createdAt', 'updatedAt', '_id'],
properties: [ properties: [
{ {
name: '_id', name: '_id',
@ -82,12 +92,23 @@ export const Part = {
type: 'id', type: 'id',
objectType: 'part', objectType: 'part',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'part',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -95,19 +116,22 @@ export const Part = {
label: 'Name', label: 'Name',
columnFixed: 'left', columnFixed: 'left',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'fileName', name: 'fileName',
label: 'File Name', label: 'File Name',
required: false, required: false,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'file', name: 'file',
@ -124,7 +148,8 @@ export const Part = {
type: 'number', type: 'number',
prefix: '£', prefix: '£',
min: 0, min: 0,
step: 0.01 step: 0.01,
columnWidth: 100
}, },
{ {
name: 'costWithTax', name: 'costWithTax',
@ -135,6 +160,7 @@ export const Part = {
prefix: '£', prefix: '£',
min: 0, min: 0,
step: 0.01, step: 0.01,
columnWidth: 150,
value: (objectData) => { value: (objectData) => {
const cost = objectData?.cost const cost = objectData?.cost
if (!cost) return undefined if (!cost) return undefined
@ -155,12 +181,14 @@ export const Part = {
required: false, required: false,
type: 'object', type: 'object',
objectType: 'taxRate', objectType: 'taxRate',
showHyperlink: true showHyperlink: true,
columnWidth: 150
}, },
{ {
name: 'priceMode', name: 'priceMode',
label: 'Price Mode', label: 'Price Mode',
required: false, required: false,
columnWidth: 150,
type: 'priceMode' type: 'priceMode'
}, },
{ {
@ -171,6 +199,7 @@ export const Part = {
prefix: '£', prefix: '£',
min: 0, min: 0,
step: 0.1, step: 0.1,
columnWidth: 100,
readOnly: (objectData) => objectData?.priceMode == 'margin', readOnly: (objectData) => objectData?.priceMode == 'margin',
value: (objectData) => { value: (objectData) => {
if ( if (
@ -196,7 +225,8 @@ export const Part = {
suffix: '%', suffix: '%',
min: 0, min: 0,
max: 100, max: 100,
step: 0.01 step: 0.01,
columnWidth: 85
}, },
{ {
name: 'priceWithTax', name: 'priceWithTax',
@ -207,6 +237,7 @@ export const Part = {
prefix: '£', prefix: '£',
min: 0, min: 0,
step: 0.01, step: 0.01,
columnWidth: 150,
value: (objectData) => { value: (objectData) => {
let price let price
if ( if (
@ -225,7 +256,9 @@ export const Part = {
undefined undefined
) )
} else if (objectData?.priceTaxRate?.rateType == 'amount') { } else if (objectData?.priceTaxRate?.rateType == 'amount') {
return (price + objectData?.priceTaxRate?.rate).toFixed(2) || undefined return (
(price + objectData?.priceTaxRate?.rate).toFixed(2) || undefined
)
} }
return price return price
} }
@ -236,7 +269,8 @@ export const Part = {
required: false, required: false,
type: 'object', type: 'object',
objectType: 'taxRate', objectType: 'taxRate',
showHyperlink: true showHyperlink: true,
columnWidth: 150
} }
] ]
} }

View File

@ -76,18 +76,22 @@ export const PartSku = {
'barcode', 'barcode',
'overrideCost', 'overrideCost',
'cost', 'cost',
'costWithTax',
'overridePrice', 'overridePrice',
'price', 'price',
'priceWithTax',
'createdAt', 'createdAt',
'updatedAt' 'updatedAt'
], ],
filters: ['_id', 'barcode', 'part', 'part._id', 'name', 'cost', 'price'], filters: ['_id', 'barcode', 'part', 'part._id', 'name', 'cost', 'costWithTax', 'price', 'priceWithTax'],
sorters: [ sorters: [
'barcode', 'barcode',
'part', 'part',
'name', 'name',
'cost', 'cost',
'costWithTax',
'price', 'price',
'priceWithTax',
'createdAt', 'createdAt',
'updatedAt' 'updatedAt'
], ],
@ -98,25 +102,39 @@ export const PartSku = {
type: 'id', type: 'id',
objectType: 'partSku', objectType: 'partSku',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'partSku',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
name: 'name', name: 'name',
label: 'Name', label: 'Name',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200,
columnFixed: 'left'
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'part', name: 'part',
@ -124,39 +142,45 @@ export const PartSku = {
type: 'object', type: 'object',
objectType: 'part', objectType: 'part',
required: true, required: true,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'barcode', name: 'barcode',
label: 'Barcode', label: 'Barcode',
required: false, required: false,
type: 'text' type: 'text',
columnWidth: 150
}, },
{ {
name: 'description', name: 'description',
label: 'Description', label: 'Description',
required: false, required: false,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'priceMode', name: 'priceMode',
label: 'Price Mode', label: 'Price Mode',
required: false, required: false,
type: 'priceMode' type: 'priceMode',
columnWidth: 150
}, },
{ {
name: 'overrideCost', name: 'overrideCost',
label: 'Override Cost', label: 'Override Cost',
required: false, required: false,
type: 'bool', type: 'bool',
value: (objectData) => objectData?.overrideCost ?? false value: (objectData) => objectData?.overrideCost ?? false,
columnWidth: 150
}, },
{ {
name: 'overridePrice', name: 'overridePrice',
label: 'Override Price', label: 'Override Price',
required: false, required: false,
type: 'bool', type: 'bool',
value: (objectData) => objectData?.overridePrice ?? false value: (objectData) => objectData?.overridePrice ?? false,
columnWidth: 150
}, },
{ {
name: 'cost', name: 'cost',
@ -168,7 +192,8 @@ export const PartSku = {
step: 0.01, step: 0.01,
disabled: (objectData) => !objectData?.overrideCost, disabled: (objectData) => !objectData?.overrideCost,
value: (objectData) => value: (objectData) =>
objectData?.overrideCost ? objectData?.cost : undefined objectData?.overrideCost ? objectData?.cost : undefined,
columnWidth: 100
}, },
{ {
name: 'costWithTax', name: 'costWithTax',
@ -191,7 +216,8 @@ export const PartSku = {
return (cost + taxRate?.rate).toFixed(2) || undefined return (cost + taxRate?.rate).toFixed(2) || undefined
} }
return cost return cost
} },
columnWidth: 150
}, },
{ {
name: 'costTaxRate', name: 'costTaxRate',
@ -202,7 +228,8 @@ export const PartSku = {
showHyperlink: true, showHyperlink: true,
disabled: (objectData) => !objectData?.overrideCost, disabled: (objectData) => !objectData?.overrideCost,
value: (objectData) => value: (objectData) =>
objectData?.overrideCost ? objectData?.costTaxRate : undefined objectData?.overrideCost ? objectData?.costTaxRate : undefined,
columnWidth: 150
}, },
{ {
name: 'price', name: 'price',
@ -231,7 +258,8 @@ export const PartSku = {
return (cost * (1 + margin / 100)).toFixed(2) || undefined return (cost * (1 + margin / 100)).toFixed(2) || undefined
} }
return objectData?.price return objectData?.price
} },
columnWidth: 100
}, },
{ {
name: 'priceWithTax', name: 'priceWithTax',
@ -265,7 +293,8 @@ export const PartSku = {
return (price + taxRate?.rate).toFixed(2) || undefined return (price + taxRate?.rate).toFixed(2) || undefined
} }
return price return price
} },
columnWidth: 150
}, },
{ {
name: 'margin', name: 'margin',
@ -279,7 +308,8 @@ export const PartSku = {
max: 100, max: 100,
step: 0.01, step: 0.01,
value: (objectData) => value: (objectData) =>
objectData?.overridePrice ? objectData?.margin : undefined objectData?.overridePrice ? objectData?.margin : undefined,
columnWidth: 85
}, },
{ {
name: 'priceTaxRate', name: 'priceTaxRate',
@ -290,7 +320,8 @@ export const PartSku = {
showHyperlink: true, showHyperlink: true,
disabled: (objectData) => !objectData?.overridePrice, disabled: (objectData) => !objectData?.overridePrice,
value: (objectData) => value: (objectData) =>
objectData?.overridePrice ? objectData?.priceTaxRate : undefined objectData?.overridePrice ? objectData?.priceTaxRate : undefined,
columnWidth: 150
} }
] ]
} }

View File

@ -35,12 +35,23 @@ export const PartStock = {
type: 'id', type: 'id',
objectType: 'partStock', objectType: 'partStock',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'partStock',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -54,7 +65,8 @@ export const PartStock = {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'sourceType', name: 'sourceType',
@ -71,7 +83,8 @@ export const PartStock = {
type: 'object', type: 'object',
objectType: 'partSku', objectType: 'partSku',
required: true, required: true,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {

View File

@ -130,7 +130,8 @@ export const Payment = {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: '_reference', name: '_reference',
@ -140,22 +141,31 @@ export const Payment = {
required: true, required: true,
objectType: 'payment', objectType: 'payment',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
},
{
name: 'state',
label: 'State',
type: 'state',
readOnly: true,
columnWidth: 250
}, },
{ name: 'state', label: 'State', type: 'state', readOnly: true },
{ {
name: 'invoice', name: 'invoice',
label: 'Invoice', label: 'Invoice',
type: 'object', type: 'object',
objectType: 'invoice', objectType: 'invoice',
required: true, required: true,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'payTo', name: 'payTo',
@ -165,6 +175,7 @@ export const Payment = {
showHyperlink: true, showHyperlink: true,
required: true, required: true,
readOnly: true, readOnly: true,
columnWidth: 200,
disabled: (objectData) => { disabled: (objectData) => {
return objectData?.invoice?.orderType == 'purchaseOrder' return objectData?.invoice?.orderType == 'purchaseOrder'
}, },
@ -176,19 +187,22 @@ export const Payment = {
name: 'paymentDate', name: 'paymentDate',
label: 'Payment Date', label: 'Payment Date',
type: 'dateTime', type: 'dateTime',
required: true required: true,
columnWidth: 175
}, },
{ {
name: 'postedAt', name: 'postedAt',
label: 'Posted At', label: 'Posted At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'cancelledAt', name: 'cancelledAt',
label: 'Cancelled At', label: 'Cancelled At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'amount', name: 'amount',
@ -203,13 +217,15 @@ export const Payment = {
name: 'paymentMethod', name: 'paymentMethod',
label: 'Payment Method', label: 'Payment Method',
type: 'string', type: 'string',
required: false required: false,
columnWidth: 150
}, },
{ {
name: 'notes', name: 'notes',
label: 'Notes', label: 'Notes',
type: 'text', type: 'text',
required: false required: false,
columnWidth: 200
} }
], ],
stats: [ stats: [

View File

@ -213,8 +213,8 @@ export const Printer = {
} }
], ],
columns: [ columns: [
'name',
'_reference', '_reference',
'name',
'state', 'state',
'host', 'host',
'tags', 'tags',
@ -230,13 +230,25 @@ export const Printer = {
label: 'ID', label: 'ID',
type: 'id', type: 'id',
objectType: 'printer', objectType: 'printer',
showCopy: true showCopy: true,
columnWidth: 140
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'printer',
showCopy: true,
readOnly: true,
columnWidth: 150
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'name', name: 'name',
@ -250,7 +262,8 @@ export const Printer = {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'state', name: 'state',
@ -265,19 +278,22 @@ export const Printer = {
name: 'connectedAt', name: 'connectedAt',
label: 'Connected At', label: 'Connected At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'online', name: 'online',
label: 'Online', label: 'Online',
type: 'bool', type: 'bool',
readOnly: true readOnly: true,
columnWidth: 150
}, },
{ {
name: 'active', name: 'active',
label: 'Active', label: 'Active',
type: 'bool', type: 'bool',
required: true required: true,
columnWidth: 125
}, },
{ {
name: 'vendor', name: 'vendor',
@ -285,7 +301,8 @@ export const Printer = {
type: 'object', type: 'object',
objectType: 'vendor', objectType: 'vendor',
required: false, required: false,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'host', name: 'host',
@ -293,45 +310,52 @@ export const Printer = {
type: 'object', type: 'object',
objectType: 'host', objectType: 'host',
required: true, required: true,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'moonraker.host', name: 'moonraker.host',
label: 'Hostname', label: 'Hostname',
type: 'text', type: 'text',
required: true required: true,
columnWidth: 180
}, },
{ {
name: 'moonraker.port', name: 'moonraker.port',
label: 'Port', label: 'Port',
type: 'number', type: 'number',
required: true required: true,
columnWidth: 85
}, },
{ {
name: 'moonraker.apiKey', name: 'moonraker.apiKey',
label: 'API Key', label: 'API Key',
type: 'secret', type: 'secret',
reveal: true, reveal: true,
required: false required: false,
columnWidth: 140
}, },
{ {
name: 'moonraker.protocol', name: 'moonraker.protocol',
label: 'Protocol', label: 'Protocol',
type: 'wsprotocol', type: 'wsprotocol',
required: true required: true,
columnWidth: 110
}, },
{ {
name: 'tags', name: 'tags',
label: 'Tags', label: 'Tags',
type: 'tags', type: 'tags',
required: false required: false,
columnWidth: 200
}, },
{ {
name: 'firmware', name: 'firmware',
label: 'Firmware Version', label: 'Firmware Version',
type: 'text', type: 'text',
required: false, required: false,
readOnly: true readOnly: true,
columnWidth: 150
}, },
{ {
name: 'currentFilamentStock', name: 'currentFilamentStock',
@ -339,7 +363,8 @@ export const Printer = {
type: 'object', type: 'object',
objectType: 'filamentStock', objectType: 'filamentStock',
required: false, required: false,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'currentJob', name: 'currentJob',
@ -347,7 +372,8 @@ export const Printer = {
type: 'object', type: 'object',
objectType: 'job', objectType: 'job',
required: false, required: false,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'currentSubJob', name: 'currentSubJob',
@ -355,13 +381,15 @@ export const Printer = {
type: 'object', type: 'object',
objectType: 'subJob', objectType: 'subJob',
required: false, required: false,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'alerts', name: 'alerts',
label: 'Alerts', label: 'Alerts',
type: 'alerts', type: 'alerts',
required: false required: false,
columnWidth: 200
}, },
{ {
name: 'queue', name: 'queue',
@ -369,7 +397,8 @@ export const Printer = {
type: 'objectList', type: 'objectList',
objectType: 'subJob', objectType: 'subJob',
required: false, required: false,
readOnly: true readOnly: true,
columnWidth: 200
} }
], ],
stats: [ stats: [

View File

@ -79,12 +79,14 @@ export const Product = {
'tags', 'tags',
'vendor', 'vendor',
'cost', 'cost',
'costWithTax',
'price', 'price',
'priceWithTax',
'createdAt', 'createdAt',
'updatedAt' 'updatedAt'
], ],
filters: ['_id', 'name', 'type', 'color', 'vendor'], filters: ['_id', 'name', 'type', 'color', 'vendor', 'cost', 'costWithTax', 'price', 'priceWithTax'],
sorters: ['name', 'createdAt', 'type', 'vendor', 'updatedAt'], sorters: ['name', 'createdAt', 'type', 'vendor', 'cost', 'costWithTax', 'price', 'priceWithTax', 'updatedAt'],
properties: [ properties: [
{ {
name: '_id', name: '_id',
@ -92,25 +94,39 @@ export const Product = {
type: 'id', type: 'id',
objectType: 'product', objectType: 'product',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'product',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
name: 'name', name: 'name',
label: 'Name', label: 'Name',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200,
columnFixed: 'left'
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'vendor', name: 'vendor',
@ -118,19 +134,22 @@ export const Product = {
required: true, required: true,
type: 'object', type: 'object',
objectType: 'vendor', objectType: 'vendor',
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'version', name: 'version',
label: 'Version', label: 'Version',
required: false, required: false,
type: 'text' type: 'text',
columnWidth: 120
}, },
{ {
name: 'tags', name: 'tags',
label: 'Tags', label: 'Tags',
required: false, required: false,
type: 'tags' type: 'tags',
columnWidth: 200
}, },
{ {
name: 'cost', name: 'cost',
@ -139,7 +158,8 @@ export const Product = {
type: 'number', type: 'number',
prefix: '£', prefix: '£',
min: 0, min: 0,
step: 0.01 step: 0.01,
columnWidth: 100
}, },
{ {
name: 'costWithTax', name: 'costWithTax',
@ -150,6 +170,7 @@ export const Product = {
prefix: '£', prefix: '£',
min: 0, min: 0,
step: 0.01, step: 0.01,
columnWidth: 150,
value: (objectData) => { value: (objectData) => {
const cost = objectData?.cost const cost = objectData?.cost
if (!cost) return undefined if (!cost) return undefined
@ -170,13 +191,15 @@ export const Product = {
required: false, required: false,
type: 'object', type: 'object',
objectType: 'taxRate', objectType: 'taxRate',
showHyperlink: true showHyperlink: true,
columnWidth: 150
}, },
{ {
name: 'priceMode', name: 'priceMode',
label: 'Price Mode', label: 'Price Mode',
required: false, required: false,
type: 'priceMode' type: 'priceMode',
columnWidth: 150
}, },
{ {
name: 'price', name: 'price',
@ -186,6 +209,7 @@ export const Product = {
prefix: '£', prefix: '£',
min: 0, min: 0,
step: 0.1, step: 0.1,
columnWidth: 100,
readOnly: (objectData) => objectData?.priceMode == 'margin', readOnly: (objectData) => objectData?.priceMode == 'margin',
value: (objectData) => { value: (objectData) => {
if ( if (
@ -211,7 +235,8 @@ export const Product = {
suffix: '%', suffix: '%',
min: 0, min: 0,
max: 100, max: 100,
step: 0.01 step: 0.01,
columnWidth: 85
}, },
{ {
name: 'priceWithTax', name: 'priceWithTax',
@ -222,6 +247,7 @@ export const Product = {
prefix: '£', prefix: '£',
min: 0, min: 0,
step: 0.01, step: 0.01,
columnWidth: 150,
value: (objectData) => { value: (objectData) => {
let price let price
if ( if (
@ -251,7 +277,8 @@ export const Product = {
required: false, required: false,
type: 'object', type: 'object',
objectType: 'taxRate', objectType: 'taxRate',
showHyperlink: true showHyperlink: true,
columnWidth: 150
} }
] ]
} }

View File

@ -76,8 +76,10 @@ export const ProductSku = {
'barcode', 'barcode',
'overrideCost', 'overrideCost',
'cost', 'cost',
'costWithTax',
'overridePrice', 'overridePrice',
'price', 'price',
'priceWithTax',
'createdAt', 'createdAt',
'updatedAt' 'updatedAt'
], ],
@ -88,14 +90,18 @@ export const ProductSku = {
'product._id', 'product._id',
'name', 'name',
'cost', 'cost',
'price' 'costWithTax',
'price',
'priceWithTax'
], ],
sorters: [ sorters: [
'barcode', 'barcode',
'product', 'product',
'name', 'name',
'cost', 'cost',
'costWithTax',
'price', 'price',
'priceWithTax',
'createdAt', 'createdAt',
'updatedAt' 'updatedAt'
], ],
@ -106,12 +112,23 @@ export const ProductSku = {
type: 'id', type: 'id',
objectType: 'productSku', objectType: 'productSku',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'productSku',
showCopy: true,
readOnly: true readOnly: true
}, },
@ -119,13 +136,16 @@ export const ProductSku = {
name: 'name', name: 'name',
label: 'Name', label: 'Name',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200,
columnFixed: 'left'
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'product', name: 'product',
@ -133,39 +153,45 @@ export const ProductSku = {
type: 'object', type: 'object',
objectType: 'product', objectType: 'product',
required: true, required: true,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'barcode', name: 'barcode',
label: 'Barcode', label: 'Barcode',
required: false, required: false,
type: 'text' type: 'text',
columnWidth: 150
}, },
{ {
name: 'description', name: 'description',
label: 'Description', label: 'Description',
required: false, required: false,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'priceMode', name: 'priceMode',
label: 'Price Mode', label: 'Price Mode',
required: false, required: false,
type: 'priceMode' type: 'priceMode',
columnWidth: 150
}, },
{ {
name: 'overrideCost', name: 'overrideCost',
label: 'Override Cost', label: 'Override Cost',
required: false, required: false,
type: 'bool', type: 'bool',
value: (objectData) => objectData?.overrideCost ?? false value: (objectData) => objectData?.overrideCost ?? false,
columnWidth: 150
}, },
{ {
name: 'overridePrice', name: 'overridePrice',
label: 'Override Price', label: 'Override Price',
required: false, required: false,
type: 'bool', type: 'bool',
value: (objectData) => objectData?.overridePrice ?? false value: (objectData) => objectData?.overridePrice ?? false,
columnWidth: 150
}, },
{ {
name: 'cost', name: 'cost',
@ -177,7 +203,8 @@ export const ProductSku = {
step: 0.01, step: 0.01,
disabled: (objectData) => !objectData?.overrideCost, disabled: (objectData) => !objectData?.overrideCost,
value: (objectData) => value: (objectData) =>
objectData?.overrideCost ? objectData?.cost : undefined objectData?.overrideCost ? objectData?.cost : undefined,
columnWidth: 100
}, },
{ {
name: 'costWithTax', name: 'costWithTax',
@ -200,7 +227,8 @@ export const ProductSku = {
return (cost + taxRate?.rate).toFixed(2) || undefined return (cost + taxRate?.rate).toFixed(2) || undefined
} }
return cost return cost
} },
columnWidth: 150
}, },
{ {
name: 'costTaxRate', name: 'costTaxRate',
@ -211,7 +239,8 @@ export const ProductSku = {
showHyperlink: true, showHyperlink: true,
disabled: (objectData) => !objectData?.overrideCost, disabled: (objectData) => !objectData?.overrideCost,
value: (objectData) => value: (objectData) =>
objectData?.overrideCost ? objectData?.costTaxRate : undefined objectData?.overrideCost ? objectData?.costTaxRate : undefined,
columnWidth: 150
}, },
{ {
name: 'price', name: 'price',
@ -241,7 +270,8 @@ export const ProductSku = {
return (cost * (1 + margin / 100)).toFixed(2) || undefined return (cost * (1 + margin / 100)).toFixed(2) || undefined
} }
return objectData?.price return objectData?.price
} },
columnWidth: 100
}, },
{ {
name: 'priceWithTax', name: 'priceWithTax',
@ -276,7 +306,8 @@ export const ProductSku = {
return (price + taxRate?.rate).toFixed(2) || undefined return (price + taxRate?.rate).toFixed(2) || undefined
} }
return price return price
} },
columnWidth: 150
}, },
{ {
name: 'margin', name: 'margin',
@ -290,7 +321,8 @@ export const ProductSku = {
max: 100, max: 100,
step: 0.01, step: 0.01,
value: (objectData) => value: (objectData) =>
objectData?.overridePrice ? objectData?.margin : undefined objectData?.overridePrice ? objectData?.margin : undefined,
columnWidth: 85
}, },
{ {
name: 'priceTaxRate', name: 'priceTaxRate',
@ -301,7 +333,8 @@ export const ProductSku = {
showHyperlink: true, showHyperlink: true,
disabled: (objectData) => !objectData?.overridePrice, disabled: (objectData) => !objectData?.overridePrice,
value: (objectData) => value: (objectData) =>
objectData?.overridePrice ? objectData?.priceTaxRate : undefined objectData?.overridePrice ? objectData?.priceTaxRate : undefined,
columnWidth: 150
}, },
{ {
name: 'parts', name: 'parts',

View File

@ -102,12 +102,23 @@ export const ProductStock = {
type: 'id', type: 'id',
objectType: 'productStock', objectType: 'productStock',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'productStock',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -121,13 +132,15 @@ export const ProductStock = {
name: 'postedAt', name: 'postedAt',
label: 'Posted At', label: 'Posted At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'productSku', name: 'productSku',
@ -135,7 +148,8 @@ export const ProductStock = {
type: 'object', type: 'object',
objectType: 'productSku', objectType: 'productSku',
required: true, required: true,
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'currentQuantity', name: 'currentQuantity',

View File

@ -202,7 +202,8 @@ export const PurchaseOrder = {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: '_reference', name: '_reference',
@ -212,29 +213,45 @@ export const PurchaseOrder = {
required: true, required: true,
objectType: 'purchaseOrder', objectType: 'purchaseOrder',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
},
{
name: 'state',
label: 'State',
type: 'state',
readOnly: true,
columnWidth: 250
},
{
name: 'postedAt',
label: 'Posted At',
type: 'dateTime',
readOnly: true,
columnWidth: 175
}, },
{ name: 'state', label: 'State', type: 'state', readOnly: true },
{ name: 'postedAt', label: 'Posted At', type: 'dateTime', readOnly: true },
{ {
name: 'vendor', name: 'vendor',
label: 'Vendor', label: 'Vendor',
required: true, required: true,
type: 'object', type: 'object',
objectType: 'vendor', objectType: 'vendor',
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'acknowledgedAt', name: 'acknowledgedAt',
label: 'Acknowledged At', label: 'Acknowledged At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'totalTaxAmount', name: 'totalTaxAmount',
@ -249,7 +266,8 @@ export const PurchaseOrder = {
name: 'completedAt', name: 'completedAt',
label: 'Completed At', label: 'Completed At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'totalAmountWithTax', name: 'totalAmountWithTax',

View File

@ -201,7 +201,8 @@ export const SalesOrder = {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: '_reference', name: '_reference',
@ -211,29 +212,45 @@ export const SalesOrder = {
required: true, required: true,
objectType: 'salesOrder', objectType: 'salesOrder',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
},
{
name: 'state',
label: 'State',
type: 'state',
readOnly: true,
columnWidth: 250
},
{
name: 'postedAt',
label: 'Posted At',
type: 'dateTime',
readOnly: true,
columnWidth: 175
}, },
{ name: 'state', label: 'State', type: 'state', readOnly: true },
{ name: 'postedAt', label: 'Posted At', type: 'dateTime', readOnly: true },
{ {
name: 'client', name: 'client',
label: 'Client', label: 'Client',
required: true, required: true,
type: 'object', type: 'object',
objectType: 'client', objectType: 'client',
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'confirmedAt', name: 'confirmedAt',
label: 'Confirmed At', label: 'Confirmed At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'totalTaxAmount', name: 'totalTaxAmount',
@ -248,7 +265,8 @@ export const SalesOrder = {
name: 'completedAt', name: 'completedAt',
label: 'Completed At', label: 'Completed At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'totalAmountWithTax', name: 'totalAmountWithTax',

View File

@ -156,7 +156,8 @@ export const Shipment = {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: '_reference', name: '_reference',
@ -165,22 +166,31 @@ export const Shipment = {
columnFixed: 'left', columnFixed: 'left',
objectType: 'shipment', objectType: 'shipment',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
},
{
name: 'state',
label: 'State',
type: 'state',
readOnly: true,
columnWidth: 250
}, },
{ name: 'state', label: 'State', type: 'state', readOnly: true },
{ {
name: 'shippedAt', name: 'shippedAt',
label: 'Shipped At', label: 'Shipped At',
type: 'dateTime', type: 'dateTime',
required: false required: false,
columnWidth: 175
}, },
{ {
name: 'orderType', name: 'orderType',
@ -188,14 +198,16 @@ export const Shipment = {
required: true, required: true,
type: 'objectType', type: 'objectType',
masterFilter: ['purchaseOrder', 'salesOrder'], masterFilter: ['purchaseOrder', 'salesOrder'],
showHyperlink: true showHyperlink: true,
columnWidth: 150
}, },
{ {
name: 'expectedAt', name: 'expectedAt',
label: 'Expected At', label: 'Expected At',
type: 'dateTime', type: 'dateTime',
required: false required: false,
columnWidth: 175
}, },
{ {
name: 'order', name: 'order',
@ -205,41 +217,47 @@ export const Shipment = {
showHyperlink: true, showHyperlink: true,
objectType: (objectData) => { objectType: (objectData) => {
return objectData?.orderType return objectData?.orderType
} },
columnWidth: 200
}, },
{ {
name: 'deliveredAt', name: 'deliveredAt',
label: 'Delivered At', label: 'Delivered At',
type: 'dateTime', type: 'dateTime',
required: false required: false,
columnWidth: 175
}, },
{ {
name: 'courierService', name: 'courierService',
label: 'Courier Service', label: 'Courier Service',
required: true, required: true,
type: 'object', type: 'object',
objectType: 'courierService' objectType: 'courierService',
columnWidth: 200
}, },
{ {
name: 'trackingNumber', name: 'trackingNumber',
label: 'Tracking Number', label: 'Tracking Number',
type: 'text', type: 'text',
required: false required: false,
columnWidth: 180
}, },
{ {
name: 'taxRate', name: 'taxRate',
label: 'Tax Rate', label: 'Tax Rate',
type: 'object', type: 'object',
objectType: 'taxRate', objectType: 'taxRate',
showHyperlink: true showHyperlink: true,
columnWidth: 150
}, },
{ {
name: 'taxRecord', name: 'taxRecord',
label: 'Tax Record', label: 'Tax Record',
type: 'object', type: 'object',
objectType: 'taxRecord', objectType: 'taxRecord',
showHyperlink: true showHyperlink: true,
columnWidth: 150
}, },
{ {
name: 'amount', name: 'amount',
@ -261,6 +279,7 @@ export const Shipment = {
min: 0, min: 0,
step: 0.01, step: 0.01,
readOnly: true, readOnly: true,
columnWidth: 125,
value: (objectData) => { value: (objectData) => {
return (objectData?.amount * objectData?.taxRate?.rate) / 100 || 0 return (objectData?.amount * objectData?.taxRate?.rate) / 100 || 0
} }

View File

@ -28,12 +28,23 @@ export const StockAudit = {
type: 'id', type: 'id',
objectType: 'stockAudit', objectType: 'stockAudit',
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'stockAudit',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -47,7 +58,8 @@ export const StockAudit = {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
} }
] ]
} }

View File

@ -17,14 +17,16 @@ export const StockEvent = {
objectType: 'stockEvent', objectType: 'stockEvent',
columnFixed: 'left', columnFixed: 'left',
value: null, value: null,
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
value: null, value: null,
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: '_reference', name: '_reference',
@ -34,14 +36,16 @@ export const StockEvent = {
objectType: 'stockEvent', objectType: 'stockEvent',
value: null, value: null,
showCopy: true, showCopy: true,
readOnly: true readOnly: true,
columnWidth: 140
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
value: null, value: null,
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'owner', name: 'owner',

View File

@ -50,6 +50,15 @@ export const SubJob = {
readOnly: true, readOnly: true,
columnWidth: 175 columnWidth: 175
}, },
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'subJob',
showCopy: true,
readOnly: true
},
{ {
name: 'state', name: 'state',
label: 'State', label: 'State',
@ -80,20 +89,23 @@ export const SubJob = {
name: 'startedAt', name: 'startedAt',
label: 'Started At', label: 'Started At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'job', name: 'job',
label: 'Job', label: 'Job',
type: 'object', type: 'object',
objectType: 'job', objectType: 'job',
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'finishedAt', name: 'finishedAt',
label: 'Finished At', label: 'Finished At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'printer', name: 'printer',
@ -101,12 +113,14 @@ export const SubJob = {
type: 'object', type: 'object',
columnFixed: 'left', columnFixed: 'left',
objectType: 'printer', objectType: 'printer',
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'totalTime', name: 'totalTime',
label: 'Total Time', label: 'Total Time',
type: 'text', type: 'text',
columnWidth: 110,
readOnly: true, readOnly: true,
value: (objectData) => { value: (objectData) => {
if (!objectData?.startedAt || !objectData?.finishedAt) { if (!objectData?.startedAt || !objectData?.finishedAt) {

View File

@ -69,8 +69,8 @@ export const TaxRate = {
} }
], ],
columns: [ columns: [
'name',
'_reference', '_reference',
'name',
'rate', 'rate',
'rateType', 'rateType',
'active', 'active',
@ -95,12 +95,23 @@ export const TaxRate = {
columnFixed: 'left', columnFixed: 'left',
type: 'id', type: 'id',
objectType: 'taxRate', objectType: 'taxRate',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'taxRate',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -108,27 +119,31 @@ export const TaxRate = {
label: 'Name', label: 'Name',
columnFixed: 'left', columnFixed: 'left',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'active', name: 'active',
label: 'Active', label: 'Active',
required: true, required: true,
type: 'bool', type: 'bool',
default: true default: true,
columnWidth: 125
}, },
{ {
name: 'effectiveFrom', name: 'effectiveFrom',
label: 'Effective From', label: 'Effective From',
type: 'date', type: 'date',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 150
}, },
{ {
name: 'rate', name: 'rate',
@ -142,7 +157,8 @@ export const TaxRate = {
}, },
suffix: (objectData) => { suffix: (objectData) => {
return objectData?.rateType == 'percentage' ? '%' : undefined return objectData?.rateType == 'percentage' ? '%' : undefined
} },
columnWidth: 100
}, },
{ {
@ -150,7 +166,8 @@ export const TaxRate = {
label: 'Effective To', label: 'Effective To',
type: 'date', type: 'date',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 150
}, },
{ {
@ -161,21 +178,24 @@ export const TaxRate = {
options: [ options: [
{ label: 'Percentage', value: 'percentage' }, { label: 'Percentage', value: 'percentage' },
{ label: 'Amount', value: 'amount' } { label: 'Amount', value: 'amount' }
] ],
columnWidth: 150
}, },
{ {
name: 'country', name: 'country',
label: 'Country', label: 'Country',
type: 'country', type: 'country',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 150
}, },
{ {
name: 'description', name: 'description',
label: 'Description', label: 'Description',
type: 'text', type: 'text',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 200
} }
] ]
} }

View File

@ -88,12 +88,23 @@ export const TaxRecord = {
columnFixed: 'left', columnFixed: 'left',
type: 'id', type: 'id',
objectType: 'taxRecord', objectType: 'taxRecord',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'taxRecord',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -102,13 +113,15 @@ export const TaxRecord = {
required: true, required: true,
type: 'object', type: 'object',
objectType: 'taxRate', objectType: 'taxRate',
showHyperlink: true showHyperlink: true,
columnWidth: 150
}, },
{ {
name: 'transactionType', name: 'transactionType',
label: 'Transaction Type', label: 'Transaction Type',
required: true, required: true,
type: 'select', type: 'select',
columnWidth: 175,
options: [ options: [
{ label: 'Purchase Order', value: 'purchaseOrder' }, { label: 'Purchase Order', value: 'purchaseOrder' },
{ label: 'Sales Order', value: 'salesOrder' }, { label: 'Sales Order', value: 'salesOrder' },
@ -123,7 +136,8 @@ export const TaxRecord = {
objectType: (objectData) => { objectType: (objectData) => {
return objectData?.transactionType || 'purchaseOrder' return objectData?.transactionType || 'purchaseOrder'
}, },
showHyperlink: true showHyperlink: true,
columnWidth: 200
}, },
{ {
name: 'amount', name: 'amount',
@ -131,7 +145,8 @@ export const TaxRecord = {
required: true, required: true,
type: 'currency', type: 'currency',
min: 0, min: 0,
step: 0.01 step: 0.01,
columnWidth: 125
}, },
{ {
name: 'taxAmount', name: 'taxAmount',
@ -139,13 +154,15 @@ export const TaxRecord = {
required: true, required: true,
type: 'currency', type: 'currency',
min: 0, min: 0,
step: 0.01 step: 0.01,
columnWidth: 125
}, },
{ {
name: 'transactionDate', name: 'transactionDate',
label: 'Transaction Date', label: 'Transaction Date',
required: true, required: true,
type: 'date', type: 'date',
columnWidth: 175,
default: () => new Date() default: () => new Date()
}, },
{ {

View File

@ -36,7 +36,7 @@ export const User = {
} }
} }
], ],
columns: ['name', '_reference', 'username', 'email', 'role', 'createdAt'], columns: ['_reference', 'name', 'username', 'email', 'role', 'createdAt'],
filters: ['name', '_id', 'email', 'role'], filters: ['name', '_id', 'email', 'role'],
sorters: ['name', 'email', 'role', 'createdAt', '_id'], sorters: ['name', 'email', 'role', 'createdAt', '_id'],
properties: [ properties: [
@ -46,12 +46,23 @@ export const User = {
columnFixed: 'left', columnFixed: 'left',
type: 'id', type: 'id',
objectType: 'user', objectType: 'user',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'user',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -59,30 +70,35 @@ export const User = {
label: 'Name', label: 'Name',
columnFixed: 'left', columnFixed: 'left',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'firstName', name: 'firstName',
label: 'First Name', label: 'First Name',
type: 'text' type: 'text',
columnWidth: 130
}, },
{ {
name: 'username', name: 'username',
label: 'Username', label: 'Username',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 150
}, },
{ {
name: 'lastName', name: 'lastName',
label: 'Last Name', label: 'Last Name',
type: 'text' type: 'text',
columnWidth: 130
}, },
{ {
name: 'email', name: 'email',
@ -96,7 +112,8 @@ export const User = {
type: 'file', type: 'file',
fileType: 'image', fileType: 'image',
previewOpen: true, previewOpen: true,
showPreview: false showPreview: false,
columnWidth: 150
} }
] ]
} }

View File

@ -69,8 +69,8 @@ export const Vendor = {
} }
], ],
columns: [ columns: [
'name',
'_reference', '_reference',
'name',
'country', 'country',
'email', 'email',
'website', 'website',
@ -104,12 +104,23 @@ export const Vendor = {
columnFixed: 'left', columnFixed: 'left',
type: 'id', type: 'id',
objectType: 'vendor', objectType: 'vendor',
showCopy: true showCopy: true,
columnWidth: 140
}, },
{ {
name: 'createdAt', name: 'createdAt',
label: 'Created At', label: 'Created At',
type: 'dateTime', type: 'dateTime',
readOnly: true,
columnWidth: 175
},
{
name: '_reference',
label: 'Reference',
type: 'reference',
columnFixed: 'left',
objectType: 'vendor',
showCopy: true,
readOnly: true readOnly: true
}, },
{ {
@ -117,34 +128,39 @@ export const Vendor = {
label: 'Name', label: 'Name',
columnFixed: 'left', columnFixed: 'left',
required: true, required: true,
type: 'text' type: 'text',
columnWidth: 200
}, },
{ {
name: 'updatedAt', name: 'updatedAt',
label: 'Updated At', label: 'Updated At',
type: 'dateTime', type: 'dateTime',
readOnly: true readOnly: true,
columnWidth: 175
}, },
{ {
name: 'contact', name: 'contact',
label: 'Contact', label: 'Contact',
type: 'text', type: 'text',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 150
}, },
{ {
name: 'active', name: 'active',
label: 'Active', label: 'Active',
type: 'bool', type: 'bool',
readOnly: false, readOnly: false,
required: true required: true,
columnWidth: 125
}, },
{ {
name: 'country', name: 'country',
label: 'Country', label: 'Country',
type: 'country', type: 'country',
readOnly: false, readOnly: false,
required: true required: true,
columnWidth: 150
}, },
{ {
name: 'email', name: 'email',
@ -159,7 +175,8 @@ export const Vendor = {
label: 'Phone', label: 'Phone',
type: 'phone', type: 'phone',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 140
}, },
{ {
name: 'website', name: 'website',
@ -174,7 +191,8 @@ export const Vendor = {
label: 'Address', label: 'Address',
type: 'address', type: 'address',
readOnly: false, readOnly: false,
required: false required: false,
columnWidth: 250
} }
] ]
} }