From e82d7e10df07629ceb8979d2b6d493882df8da59 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Fri, 13 Mar 2026 21:14:52 +0000 Subject: [PATCH] Refactor database models to improve column order and add column width properties for better layout consistency across various models. --- src/database/models/AppPassword.js | 30 ++++++++--- src/database/models/AuditLog.js | 22 ++++++-- src/database/models/Client.js | 36 +++++++++---- src/database/models/Courier.js | 30 ++++++++--- src/database/models/CourierService.js | 26 +++++++--- src/database/models/DocumentJob.js | 21 ++++++-- src/database/models/DocumentPrinter.js | 54 +++++++++++++------ src/database/models/DocumentSize.js | 18 +++++-- src/database/models/DocumentTemplate.js | 28 +++++++--- src/database/models/Filament.js | 36 +++++++++---- src/database/models/FilamentSku.js | 49 +++++++++++++----- src/database/models/FilamentStock.js | 22 ++++++-- src/database/models/File.js | 27 +++++++--- src/database/models/GCodeFile.js | 53 +++++++++++++------ src/database/models/Host.js | 53 ++++++++++++++----- src/database/models/Invoice.js | 43 ++++++++++----- src/database/models/Job.js | 28 +++++++--- src/database/models/Material.js | 25 +++++++-- src/database/models/NoteType.js | 28 +++++++--- src/database/models/OrderItem.js | 31 ++++++++--- src/database/models/Part.js | 58 ++++++++++++++++----- src/database/models/PartSku.js | 65 +++++++++++++++++------ src/database/models/PartStock.js | 19 +++++-- src/database/models/Payment.js | 36 +++++++++---- src/database/models/Printer.js | 69 ++++++++++++++++++------- src/database/models/Product.js | 53 ++++++++++++++----- src/database/models/ProductSku.js | 67 ++++++++++++++++++------ src/database/models/ProductStock.js | 22 ++++++-- src/database/models/PurchaseOrder.js | 34 +++++++++--- src/database/models/SalesOrder.js | 34 +++++++++--- src/database/models/Shipment.js | 45 +++++++++++----- src/database/models/StockAudit.js | 16 +++++- src/database/models/StockEvent.js | 12 +++-- src/database/models/SubJob.js | 22 ++++++-- src/database/models/TaxRate.js | 42 +++++++++++---- src/database/models/TaxRecord.js | 27 ++++++++-- src/database/models/User.js | 33 +++++++++--- src/database/models/Vendor.js | 36 +++++++++---- 38 files changed, 1024 insertions(+), 326 deletions(-) diff --git a/src/database/models/AppPassword.js b/src/database/models/AppPassword.js index 1b1a72e..4e66b89 100644 --- a/src/database/models/AppPassword.js +++ b/src/database/models/AppPassword.js @@ -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'], sorters: ['name', 'user', 'active', 'createdAt', 'updatedAt'], properties: [ @@ -87,12 +87,23 @@ export const AppPassword = { columnFixed: 'left', type: 'id', objectType: 'appPassword', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'appPassword', + showCopy: true, readOnly: true }, { @@ -100,14 +111,16 @@ export const AppPassword = { label: 'Name', columnFixed: 'left', required: true, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'user', @@ -118,13 +131,15 @@ export const AppPassword = { }, type: 'object', objectType: 'user', - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'active', label: 'Active', required: true, - type: 'bool' + type: 'bool', + columnWidth: 125 }, { name: 'secret', @@ -133,7 +148,8 @@ export const AppPassword = { required: false, readOnly: true, value: (objectData) => - objectData?._id ? '••••••••••••••••••••••••••••••••' : undefined + objectData?._id ? '••••••••••••••••••••••••••••••••' : undefined, + columnWidth: 200 } ] } diff --git a/src/database/models/AuditLog.js b/src/database/models/AuditLog.js index 48900ef..0a99066 100644 --- a/src/database/models/AuditLog.js +++ b/src/database/models/AuditLog.js @@ -24,13 +24,24 @@ export const AuditLog = { objectType: 'auditLog', columnFixed: 'left', value: null, - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', value: null, + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'auditLog', + showCopy: true, readOnly: true }, { @@ -38,7 +49,8 @@ export const AuditLog = { label: 'Updated At', type: 'dateTime', value: null, - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'owner', @@ -50,7 +62,8 @@ export const AuditLog = { columnFixed: 'left', value: null, showCopy: true, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'parent', @@ -61,7 +74,8 @@ export const AuditLog = { }, value: null, showCopy: true, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'operation', diff --git a/src/database/models/Client.js b/src/database/models/Client.js index a850697..62993f1 100644 --- a/src/database/models/Client.js +++ b/src/database/models/Client.js @@ -68,8 +68,8 @@ export const Client = { } ], columns: [ - 'name', '_reference', + 'name', 'country', 'email', 'phone', @@ -105,12 +105,23 @@ export const Client = { columnFixed: 'left', type: 'id', objectType: 'client', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'client', + showCopy: true, readOnly: true }, { @@ -118,27 +129,31 @@ export const Client = { label: 'Name', columnFixed: 'left', required: true, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'active', label: 'Active', type: 'bool', readOnly: false, - required: true + required: true, + columnWidth: 125 }, { name: 'country', label: 'Country', type: 'country', readOnly: false, - required: false + required: false, + columnWidth: 150 }, { name: 'email', @@ -153,21 +168,24 @@ export const Client = { label: 'Phone', type: 'phone', readOnly: false, - required: false + required: false, + columnWidth: 140 }, { name: 'tags', label: 'Tags', type: 'tags', readOnly: false, - required: false + required: false, + columnWidth: 200 }, { name: 'address', label: 'Address', type: 'address', readOnly: false, - required: false + required: false, + columnWidth: 250 } ] } diff --git a/src/database/models/Courier.js b/src/database/models/Courier.js index 70198e6..aeabb63 100644 --- a/src/database/models/Courier.js +++ b/src/database/models/Courier.js @@ -68,7 +68,7 @@ export const Courier = { `/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'], sorters: ['name', 'country', 'email', 'createdAt', '_id'], group: ['country'], @@ -79,12 +79,23 @@ export const Courier = { columnFixed: 'left', type: 'id', objectType: 'courier', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'courier', + showCopy: true, readOnly: true }, { @@ -92,27 +103,31 @@ export const Courier = { label: 'Name', columnFixed: 'left', required: true, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'contact', label: 'Contact', type: 'text', readOnly: false, - required: false + required: false, + columnWidth: 150 }, { name: 'country', label: 'Country', type: 'country', readOnly: false, - required: false + required: false, + columnWidth: 150 }, { name: 'email', @@ -127,7 +142,8 @@ export const Courier = { label: 'Phone', type: 'phone', readOnly: false, - required: false + required: false, + columnWidth: 140 }, { name: 'website', diff --git a/src/database/models/CourierService.js b/src/database/models/CourierService.js index 364ee92..829c3b3 100644 --- a/src/database/models/CourierService.js +++ b/src/database/models/CourierService.js @@ -70,8 +70,8 @@ export const CourierService = { } ], columns: [ - 'name', '_reference', + 'name', 'courier', 'tracked', 'deliveryTime', @@ -95,12 +95,23 @@ export const CourierService = { columnFixed: 'left', type: 'id', objectType: 'courierService', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'courierService', + showCopy: true, readOnly: true }, { @@ -108,13 +119,15 @@ export const CourierService = { label: 'Name', columnFixed: 'left', required: true, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'courier', @@ -122,7 +135,8 @@ export const CourierService = { type: 'object', objectType: 'courier', showHyperlink: true, - required: true + required: true, + columnWidth: 200 }, { name: 'deliveryTime', @@ -139,7 +153,7 @@ export const CourierService = { type: 'bool', readOnly: false, required: true, - columnWidth: 150 + columnWidth: 125 }, { name: 'tracked', diff --git a/src/database/models/DocumentJob.js b/src/database/models/DocumentJob.js index f2b3b81..ba62645 100644 --- a/src/database/models/DocumentJob.js +++ b/src/database/models/DocumentJob.js @@ -61,7 +61,7 @@ export const DocumentJob = { } } ], - columns: ['name', '_reference', 'state', 'createdAt', 'updatedAt'], + columns: ['_reference', 'name', 'state', 'createdAt', 'updatedAt'], filters: ['name', '_id', 'state'], sorters: ['name', 'state', 'createdAt', 'updatedAt'], properties: [ @@ -70,12 +70,23 @@ export const DocumentJob = { label: 'ID', type: 'id', objectType: 'documentJob', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'documentJob', + showCopy: true, readOnly: true }, { @@ -95,7 +106,8 @@ export const DocumentJob = { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'state', @@ -103,7 +115,8 @@ export const DocumentJob = { type: 'state', objectType: 'printer', showName: false, - readOnly: true + readOnly: true, + columnWidth: 250 }, { name: 'objectType', diff --git a/src/database/models/DocumentPrinter.js b/src/database/models/DocumentPrinter.js index f1e3ed1..3e043be 100644 --- a/src/database/models/DocumentPrinter.js +++ b/src/database/models/DocumentPrinter.js @@ -61,8 +61,8 @@ export const DocumentPrinter = { } ], columns: [ - 'name', '_reference', + 'name', 'state', 'host', 'tags', @@ -77,12 +77,23 @@ export const DocumentPrinter = { label: 'ID', type: 'id', objectType: 'documentPrinter', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'documentPrinter', + showCopy: true, readOnly: true }, { @@ -97,7 +108,8 @@ export const DocumentPrinter = { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'state', @@ -105,25 +117,29 @@ export const DocumentPrinter = { type: 'state', objectType: 'printer', showName: false, - readOnly: true + readOnly: true, + columnWidth: 250 }, { name: 'connectedAt', label: 'Connected At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'online', label: 'Online', type: 'bool', - readOnly: true + readOnly: true, + columnWidth: 85 }, { name: 'active', label: 'Active', type: 'bool', - required: true + required: true, + columnWidth: 125 }, { name: 'vendor', @@ -131,7 +147,8 @@ export const DocumentPrinter = { type: 'object', objectType: 'vendor', required: false, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'host', @@ -139,7 +156,8 @@ export const DocumentPrinter = { required: true, type: 'object', objectType: 'host', - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'connection.interface', @@ -150,7 +168,8 @@ export const DocumentPrinter = { { label: 'Epson Receipt', value: 'epsonReceipt' }, { label: 'Star Receipt', value: 'starReceipt' } ], - required: true + required: true, + columnWidth: 150 }, { name: 'connection.protocol', @@ -169,13 +188,15 @@ export const DocumentPrinter = { { label: 'System', value: 'system' } ] }, - required: true + required: true, + columnWidth: 130 }, { name: 'connection.host', label: 'Host Name', type: 'text', - required: true + required: true, + columnWidth: 180 }, { name: 'connection.port', @@ -187,7 +208,8 @@ export const DocumentPrinter = { objectData?.connection?.protocol == 'system' || objectData?.connection?.protocol == 'serial' ) - } + }, + columnWidth: 85 }, { name: 'currentDocumentSize', @@ -195,13 +217,15 @@ export const DocumentPrinter = { required: false, type: 'object', objectType: 'documentSize', - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'tags', label: 'Tags', required: false, - type: 'tags' + type: 'tags', + columnWidth: 200 } ] } diff --git a/src/database/models/DocumentSize.js b/src/database/models/DocumentSize.js index e66fb02..8e695e4 100644 --- a/src/database/models/DocumentSize.js +++ b/src/database/models/DocumentSize.js @@ -61,8 +61,8 @@ export const DocumentSize = { } ], columns: [ - 'name', '_reference', + 'name', 'width', 'height', 'infiniteHeight', @@ -84,12 +84,23 @@ export const DocumentSize = { label: 'ID', type: 'id', objectType: 'documentSize', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'documentSize', + showCopy: true, readOnly: true }, { @@ -104,7 +115,8 @@ export const DocumentSize = { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'width', diff --git a/src/database/models/DocumentTemplate.js b/src/database/models/DocumentTemplate.js index f6cdf9c..c7df9bc 100644 --- a/src/database/models/DocumentTemplate.js +++ b/src/database/models/DocumentTemplate.js @@ -70,8 +70,8 @@ export const DocumentTemplate = { } ], columns: [ - 'name', '_reference', + 'name', 'active', 'global', 'objectType', @@ -99,12 +99,23 @@ export const DocumentTemplate = { label: 'ID', type: 'id', objectType: 'documentTemplate', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'documentTemplate', + showCopy: true, readOnly: true }, { @@ -119,13 +130,15 @@ export const DocumentTemplate = { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'objectType', label: 'Object Type', required: true, type: 'objectType', + columnWidth: 150, empty: (documentTemplate) => { return documentTemplate.global } @@ -135,13 +148,14 @@ export const DocumentTemplate = { label: 'Active', required: true, type: 'bool', - columnWidth: 150 + columnWidth: 125 }, { name: 'tags', label: 'Tags', required: false, - type: 'tags' + type: 'tags', + columnWidth: 200 }, { name: 'global', @@ -156,7 +170,8 @@ export const DocumentTemplate = { required: true, type: 'object', objectType: 'documentSize', - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'parent', @@ -166,6 +181,7 @@ export const DocumentTemplate = { masterFilter: { global: true, active: true }, objectType: 'documentTemplate', showHyperlink: true, + columnWidth: 200, empty: (documentTemplate) => { return documentTemplate.global } diff --git a/src/database/models/Filament.js b/src/database/models/Filament.js index abd4af2..31ebbf0 100644 --- a/src/database/models/Filament.js +++ b/src/database/models/Filament.js @@ -91,11 +91,12 @@ export const Filament = { 'density', 'diameter', 'cost', + 'costWithTax', 'createdAt', 'updatedAt' ], - filters: ['_id', 'name', 'material'], - sorters: ['name', 'createdAt', 'material', 'updatedAt'], + filters: ['_id', 'name', 'material', 'cost', 'costWithTax'], + sorters: ['name', 'createdAt', 'material', 'cost', 'costWithTax', 'updatedAt'], group: ['diameter', 'material'], properties: [ { @@ -104,12 +105,23 @@ export const Filament = { columnFixed: 'left', type: 'id', objectType: 'filament', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'filament', + showCopy: true, readOnly: true }, { @@ -117,13 +129,15 @@ export const Filament = { label: 'Name', columnFixed: 'left', required: true, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'material', @@ -162,7 +176,7 @@ export const Filament = { name: 'cost', label: 'Cost', required: false, - columnWidth: 120, + columnWidth: 100, type: 'number', prefix: '£', min: 0, @@ -177,6 +191,7 @@ export const Filament = { prefix: '£', min: 0, step: 0.01, + columnWidth: 150, value: (objectData) => { const cost = objectData?.cost if (!cost) return undefined @@ -197,19 +212,22 @@ export const Filament = { required: false, type: 'object', objectType: 'taxRate', - showHyperlink: true + showHyperlink: true, + columnWidth: 150 }, { name: 'url', label: 'Link', required: false, - type: 'url' + type: 'url', + columnWidth: 300 }, { name: 'barcode', label: 'Barcode', required: false, - type: 'text' + type: 'text', + columnWidth: 150 } ] } diff --git a/src/database/models/FilamentSku.js b/src/database/models/FilamentSku.js index 344844e..c7e2b27 100644 --- a/src/database/models/FilamentSku.js +++ b/src/database/models/FilamentSku.js @@ -78,6 +78,7 @@ export const FilamentSku = { 'color', 'overrideCost', 'cost', + 'costWithTax', 'createdAt', 'updatedAt' ], @@ -88,7 +89,8 @@ export const FilamentSku = { 'filament._id', 'name', 'color', - 'cost' + 'cost', + 'costWithTax' ], sorters: [ 'barcode', @@ -96,6 +98,7 @@ export const FilamentSku = { 'name', 'color', 'cost', + 'costWithTax', 'createdAt', 'updatedAt' ], @@ -106,25 +109,39 @@ export const FilamentSku = { type: 'id', objectType: 'filamentSku', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'filamentSku', + showCopy: true, readOnly: true }, { name: 'name', label: 'Name', required: true, - type: 'text' + type: 'text', + columnWidth: 200, + columnFixed: 'left' }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'filament', @@ -132,32 +149,37 @@ export const FilamentSku = { type: 'object', objectType: 'filament', required: true, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'barcode', label: 'Barcode', required: false, - type: 'text' + type: 'text', + columnWidth: 150 }, { name: 'description', label: 'Description', required: false, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'color', label: 'Color', required: true, - type: 'color' + type: 'color', + columnWidth: 120 }, { name: 'overrideCost', label: 'Override Cost', required: false, type: 'bool', - value: (objectData) => objectData?.overrideCost ?? false + value: (objectData) => objectData?.overrideCost ?? false, + columnWidth: 150 }, { name: 'cost', @@ -169,7 +191,8 @@ export const FilamentSku = { step: 0.01, disabled: (objectData) => !objectData?.overrideCost, value: (objectData) => - objectData?.overrideCost ? objectData?.cost : undefined + objectData?.overrideCost ? objectData?.cost : undefined, + columnWidth: 100 }, { name: 'costWithTax', @@ -192,7 +215,8 @@ export const FilamentSku = { return (cost + taxRate?.rate).toFixed(2) || undefined } return cost - } + }, + columnWidth: 150 }, { name: 'costTaxRate', @@ -203,7 +227,8 @@ export const FilamentSku = { showHyperlink: true, disabled: (objectData) => !objectData?.overrideCost, value: (objectData) => - objectData?.overrideCost ? objectData?.costTaxRate : undefined + objectData?.overrideCost ? objectData?.costTaxRate : undefined, + columnWidth: 150 } ] } diff --git a/src/database/models/FilamentStock.js b/src/database/models/FilamentStock.js index 18d0433..7c45fb1 100644 --- a/src/database/models/FilamentStock.js +++ b/src/database/models/FilamentStock.js @@ -36,12 +36,23 @@ export const FilamentStock = { type: 'id', columnFixed: 'left', objectType: 'filamentStock', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'filamentStock', + showCopy: true, readOnly: true }, { @@ -49,13 +60,15 @@ export const FilamentStock = { label: 'State', type: 'state', objectType: 'filamentStock', - readOnly: true + readOnly: true, + columnWidth: 250 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'filamentSku', @@ -65,7 +78,8 @@ export const FilamentStock = { readOnly: true, initial: true, required: true, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'currentWeight', diff --git a/src/database/models/File.js b/src/database/models/File.js index d4fd01a..525b1aa 100644 --- a/src/database/models/File.js +++ b/src/database/models/File.js @@ -78,7 +78,7 @@ export const File = { } ], 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'], sorters: ['name', 'type', 'size', 'createdAt', 'temp'], group: ['type'], @@ -89,12 +89,23 @@ export const File = { columnFixed: 'left', type: 'id', objectType: 'file', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'file', + showCopy: true, readOnly: true }, { @@ -102,20 +113,23 @@ export const File = { label: 'Name', columnFixed: 'left', required: true, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'type', label: 'Type', type: 'text', readOnly: true, - required: true + required: true, + columnWidth: 120 }, { name: 'size', @@ -141,7 +155,8 @@ export const File = { if (size < 1024 * 1024 * 1024) return size / (1024 * 1024) if (size < 1024 * 1024 * 1024 * 1024) return size / (1024 * 1024 * 1024) return size / (1024 * 1024 * 1024 * 1024) - } + }, + columnWidth: 100 }, { name: 'metaData', diff --git a/src/database/models/GCodeFile.js b/src/database/models/GCodeFile.js index 2559163..947c372 100644 --- a/src/database/models/GCodeFile.js +++ b/src/database/models/GCodeFile.js @@ -69,9 +69,10 @@ export const GCodeFile = { ], columns: [ - 'name', '_reference', + 'name', 'filamentSku', + 'cost', 'gcodeFileInfo.estimatedPrintingTimeNormalMode', 'gcodeFileInfo.sparseInfillDensity', 'gcodeFileInfo.sparseInfillPattern', @@ -79,8 +80,8 @@ export const GCodeFile = { 'gcodeFileInfo.hotPlateTemp', 'updatedAt' ], - filters: ['_id', 'name', 'updatedAt'], - sorters: ['name', 'createdAt', 'updatedAt'], + filters: ['_id', 'name', 'cost', 'updatedAt'], + sorters: ['name', 'cost', 'createdAt', 'updatedAt'], group: ['filamentSku'], properties: [ { @@ -90,13 +91,24 @@ export const GCodeFile = { objectType: 'gcodeFile', columnFixed: 'left', value: null, - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', value: null, + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'gcodeFile', + showCopy: true, readOnly: true }, { @@ -105,14 +117,16 @@ export const GCodeFile = { columnFixed: 'left', type: 'text', value: null, - required: true + required: true, + columnWidth: 200 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', value: null, - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'file', @@ -122,7 +136,8 @@ export const GCodeFile = { required: true, showPreview: false, showHyperlink: true, - filter: ['.gcode', '.g'] + filter: ['.gcode', '.g'], + columnWidth: 200 }, { name: 'filamentSku', @@ -131,7 +146,8 @@ export const GCodeFile = { value: null, objectType: 'filamentSku', required: true, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'cost', @@ -146,14 +162,16 @@ export const GCodeFile = { return objectData.file.metaData.filamentUsedG * (costPerKg / 1000) }, readOnly: true, - prefix: '£' + prefix: '£', + columnWidth: 100 }, { name: 'file.metaData.filamentUsedG', label: 'Est Print Time', value: null, type: 'text', - readOnly: true + readOnly: true, + columnWidth: 130 }, { name: 'file.metaData.sparseInfillDensity', @@ -166,21 +184,24 @@ export const GCodeFile = { name: 'file.metaData.sparseInfillPattern', label: 'Infill Pattern', type: 'text', - readOnly: true + readOnly: true, + columnWidth: 150 }, { name: 'file.metaData.filamentUsedMm', label: 'Filament Used (mm)', type: 'number', readOnly: true, - suffix: 'mm' + suffix: 'mm', + columnWidth: 160 }, { name: 'file.metaData.filamentUsedG', label: 'Filament Used (g)', type: 'number', suffix: 'g', - readOnly: true + readOnly: true, + columnWidth: 150 }, { name: 'file.metaData.nozzleTemperature', @@ -202,13 +223,15 @@ export const GCodeFile = { name: 'file.metaData.filamentSettingsId', label: 'Filament Profile', type: 'text', - readOnly: true + readOnly: true, + columnWidth: 150 }, { name: 'file.metaData.printSettingsId', label: 'Print Profile', type: 'text', - readOnly: true + readOnly: true, + columnWidth: 150 }, { name: 'parts', diff --git a/src/database/models/Host.js b/src/database/models/Host.js index a32625e..65ba38b 100644 --- a/src/database/models/Host.js +++ b/src/database/models/Host.js @@ -70,7 +70,7 @@ export const Host = { `/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'], sorters: ['name', 'state', 'connectedAt'], group: ['tags'], @@ -80,12 +80,23 @@ export const Host = { label: 'ID', type: 'id', objectType: 'host', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'host', + showCopy: true, readOnly: true }, { @@ -100,7 +111,8 @@ export const Host = { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'state', @@ -108,25 +120,29 @@ export const Host = { type: 'state', objectType: 'host', showName: false, - readOnly: true + readOnly: true, + columnWidth: 250 }, { name: 'connectedAt', label: 'Connected At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'online', label: 'Online', type: 'bool', - readOnly: true + readOnly: true, + columnWidth: 150 }, { name: 'active', label: 'Active', type: 'bool', - required: true + required: true, + columnWidth: 125 }, { @@ -135,6 +151,7 @@ export const Host = { type: 'text', required: false, readOnly: true, + columnWidth: 220, value: (objectData) => { if ( objectData.deviceInfo?.os?.type && @@ -150,14 +167,16 @@ export const Host = { label: 'Hostname', type: 'text', required: false, - readOnly: true + readOnly: true, + columnWidth: 180 }, { name: 'deviceInfo.cpu.model', label: 'CPU Model', type: 'text', required: false, - readOnly: true + readOnly: true, + columnWidth: 200 }, { name: 'deviceInfo.cpu', @@ -165,6 +184,7 @@ export const Host = { type: 'text', required: false, readOnly: true, + columnWidth: 150, value: (objectData) => { if ( objectData.deviceInfo?.cpu?.cores && @@ -179,27 +199,31 @@ export const Host = { label: 'User', type: 'text', required: false, - readOnly: true + readOnly: true, + columnWidth: 120 }, { name: 'deviceInfo.user.homedir', label: 'User Home', type: 'text', required: false, - readOnly: true + readOnly: true, + columnWidth: 200 }, { name: 'deviceInfo.process.nodeVersion', label: 'NodeJS Version', type: 'text', required: false, - readOnly: true + readOnly: true, + columnWidth: 150 }, { name: 'tags', label: 'Tags', type: 'tags', - required: false + required: false, + columnWidth: 200 }, { name: 'files', @@ -207,7 +231,8 @@ export const Host = { type: 'objectList', objectType: 'file', required: false, - readOnly: true + readOnly: true, + columnWidth: 200 } ] } diff --git a/src/database/models/Invoice.js b/src/database/models/Invoice.js index 85ee5a0..5bedf7c 100644 --- a/src/database/models/Invoice.js +++ b/src/database/models/Invoice.js @@ -163,7 +163,8 @@ export const Invoice = { name: 'createdAt', label: 'Created At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: '_reference', @@ -173,34 +174,45 @@ export const Invoice = { required: true, objectType: 'invoice', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'updatedAt', label: 'Updated At', 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', label: 'Issued At', type: 'dateTime', readOnly: false, - required: true + required: true, + columnWidth: 175 }, { name: 'orderType', label: 'Order Type', type: 'objectType', masterFilter: ['purchaseOrder', 'salesOrder'], - required: true + required: true, + columnWidth: 150 }, { name: 'dueAt', label: 'Due At', type: 'dateTime', - required: true + required: true, + columnWidth: 175 }, { name: 'order', @@ -210,13 +222,15 @@ export const Invoice = { return objectData?.orderType }, required: true, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'postedAt', label: 'Posted At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'from', @@ -226,6 +240,7 @@ export const Invoice = { objectType: 'vendor', showHyperlink: true, readOnly: true, + columnWidth: 200, value: (objectData) => { if (objectData?.orderType == 'purchaseOrder') { return objectData?.order?.vendor @@ -239,7 +254,8 @@ export const Invoice = { name: 'acknowledgedAt', label: 'Acknowledged At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { @@ -250,6 +266,7 @@ export const Invoice = { objectType: 'client', showHyperlink: true, readOnly: true, + columnWidth: 200, value: (objectData) => { if (objectData?.orderType == 'salesOrder') { return objectData?.to @@ -262,7 +279,8 @@ export const Invoice = { name: 'cancelledAt', label: 'Cancelled At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { @@ -278,7 +296,8 @@ export const Invoice = { name: 'paidAt', label: 'Paid At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'totalAmountWithTax', diff --git a/src/database/models/Job.js b/src/database/models/Job.js index 8aaf581..57ef3ad 100644 --- a/src/database/models/Job.js +++ b/src/database/models/Job.js @@ -47,12 +47,23 @@ export const Job = { type: 'id', columnFixed: 'left', objectType: 'job', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'job', + showCopy: true, readOnly: true }, { @@ -71,7 +82,8 @@ export const Job = { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'quantity', @@ -85,26 +97,29 @@ export const Job = { name: 'startedAt', label: 'Started At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'printers', label: 'Printers', type: 'objectList', objectType: 'printer', - required: true + required: true, + columnWidth: 200 }, { name: 'finishedAt', label: 'Finished At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'gcodeFile', label: 'GCode File', type: 'object', - + columnWidth: 200, objectType: 'gcodeFile', required: true, showHyperlink: true @@ -113,6 +128,7 @@ export const Job = { name: 'totalTime', label: 'Total Time', type: 'text', + columnWidth: 110, readOnly: true, value: (objectData) => { if (!objectData?.startedAt || !objectData?.finishedAt) { diff --git a/src/database/models/Material.js b/src/database/models/Material.js index 7a9e00c..c7294d3 100644 --- a/src/database/models/Material.js +++ b/src/database/models/Material.js @@ -80,12 +80,23 @@ export const Material = { columnFixed: 'left', type: 'id', objectType: 'material', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'material', + showCopy: true, readOnly: true }, { @@ -93,25 +104,29 @@ export const Material = { label: 'Name', columnFixed: 'left', required: true, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'tags', label: 'Tags', required: false, - type: 'tags' + type: 'tags', + columnWidth: 200 }, { name: 'url', label: 'Link', required: false, - type: 'url' + type: 'url', + columnWidth: 300 } ] } diff --git a/src/database/models/NoteType.js b/src/database/models/NoteType.js index 251d6bd..38e635e 100644 --- a/src/database/models/NoteType.js +++ b/src/database/models/NoteType.js @@ -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'], sorters: ['name', 'color', 'active', 'createdAt', 'updatedAt'], properties: [ @@ -67,37 +67,53 @@ export const NoteType = { label: 'ID', type: 'id', objectType: 'noteType', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'noteType', + showCopy: true, readOnly: true }, { name: 'name', label: 'Name', required: true, - type: 'text' + type: 'text', + columnWidth: 200, + columnFixed: 'left' }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'color', label: 'Color', required: false, - type: 'color' + type: 'color', + columnWidth: 120 }, { name: 'active', label: 'Active', required: true, - type: 'bool' + type: 'bool', + columnWidth: 125 } ] } diff --git a/src/database/models/OrderItem.js b/src/database/models/OrderItem.js index d118225..f591580 100644 --- a/src/database/models/OrderItem.js +++ b/src/database/models/OrderItem.js @@ -119,7 +119,8 @@ export const OrderItem = { name: 'createdAt', label: 'Created At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: '_reference', @@ -128,19 +129,23 @@ export const OrderItem = { columnFixed: 'left', objectType: 'orderItem', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'name', label: 'Name', type: 'text', readOnly: true, + columnWidth: 200, + columnFixed: 'left', value: (objectData) => { return objectData?.sku?.name ?? objectData?.item?.name } @@ -150,15 +155,23 @@ export const OrderItem = { label: 'Ordered At', type: 'dateTime', 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', label: 'Received At', type: 'dateTime', required: false, - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'orderType', @@ -176,7 +189,8 @@ export const OrderItem = { objectType: (objectData) => { return objectData?.orderType }, - required: true + required: true, + columnWidth: 200 }, { name: 'shipment', @@ -247,7 +261,7 @@ export const OrderItem = { name: 'syncAmount', label: 'Sync Amount', type: 'select', - + columnWidth: 150, options: [ { label: 'Item Cost', value: 'itemCost' }, { label: 'Item Price', value: 'itemPrice' }, @@ -325,6 +339,7 @@ export const OrderItem = { type: 'object', objectType: 'taxRate', showHyperlink: true, + columnWidth: 150, value: (objectData) => { const sku = objectData?.sku const item = objectData?.item diff --git a/src/database/models/Part.js b/src/database/models/Part.js index 0a70106..69abc43 100644 --- a/src/database/models/Part.js +++ b/src/database/models/Part.js @@ -71,9 +71,19 @@ export const Part = { } } ], - columns: ['name', '_reference', 'cost', 'price', 'createdAt'], - filters: ['name', '_id'], - sorters: ['name', 'createdAt', '_id'], + columns: [ + '_reference', + '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: [ { name: '_id', @@ -82,12 +92,23 @@ export const Part = { type: 'id', objectType: 'part', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'part', + showCopy: true, readOnly: true }, { @@ -95,19 +116,22 @@ export const Part = { label: 'Name', columnFixed: 'left', required: true, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'fileName', label: 'File Name', required: false, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'file', @@ -124,7 +148,8 @@ export const Part = { type: 'number', prefix: '£', min: 0, - step: 0.01 + step: 0.01, + columnWidth: 100 }, { name: 'costWithTax', @@ -135,6 +160,7 @@ export const Part = { prefix: '£', min: 0, step: 0.01, + columnWidth: 150, value: (objectData) => { const cost = objectData?.cost if (!cost) return undefined @@ -155,12 +181,14 @@ export const Part = { required: false, type: 'object', objectType: 'taxRate', - showHyperlink: true + showHyperlink: true, + columnWidth: 150 }, { name: 'priceMode', label: 'Price Mode', required: false, + columnWidth: 150, type: 'priceMode' }, { @@ -171,6 +199,7 @@ export const Part = { prefix: '£', min: 0, step: 0.1, + columnWidth: 100, readOnly: (objectData) => objectData?.priceMode == 'margin', value: (objectData) => { if ( @@ -196,7 +225,8 @@ export const Part = { suffix: '%', min: 0, max: 100, - step: 0.01 + step: 0.01, + columnWidth: 85 }, { name: 'priceWithTax', @@ -207,6 +237,7 @@ export const Part = { prefix: '£', min: 0, step: 0.01, + columnWidth: 150, value: (objectData) => { let price if ( @@ -225,7 +256,9 @@ export const Part = { undefined ) } else if (objectData?.priceTaxRate?.rateType == 'amount') { - return (price + objectData?.priceTaxRate?.rate).toFixed(2) || undefined + return ( + (price + objectData?.priceTaxRate?.rate).toFixed(2) || undefined + ) } return price } @@ -236,7 +269,8 @@ export const Part = { required: false, type: 'object', objectType: 'taxRate', - showHyperlink: true + showHyperlink: true, + columnWidth: 150 } ] } diff --git a/src/database/models/PartSku.js b/src/database/models/PartSku.js index 643eb9e..9146aa4 100644 --- a/src/database/models/PartSku.js +++ b/src/database/models/PartSku.js @@ -76,18 +76,22 @@ export const PartSku = { 'barcode', 'overrideCost', 'cost', + 'costWithTax', 'overridePrice', 'price', + 'priceWithTax', 'createdAt', 'updatedAt' ], - filters: ['_id', 'barcode', 'part', 'part._id', 'name', 'cost', 'price'], + filters: ['_id', 'barcode', 'part', 'part._id', 'name', 'cost', 'costWithTax', 'price', 'priceWithTax'], sorters: [ 'barcode', 'part', 'name', 'cost', + 'costWithTax', 'price', + 'priceWithTax', 'createdAt', 'updatedAt' ], @@ -98,25 +102,39 @@ export const PartSku = { type: 'id', objectType: 'partSku', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'partSku', + showCopy: true, readOnly: true }, { name: 'name', label: 'Name', required: true, - type: 'text' + type: 'text', + columnWidth: 200, + columnFixed: 'left' }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'part', @@ -124,39 +142,45 @@ export const PartSku = { type: 'object', objectType: 'part', required: true, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'barcode', label: 'Barcode', required: false, - type: 'text' + type: 'text', + columnWidth: 150 }, { name: 'description', label: 'Description', required: false, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'priceMode', label: 'Price Mode', required: false, - type: 'priceMode' + type: 'priceMode', + columnWidth: 150 }, { name: 'overrideCost', label: 'Override Cost', required: false, type: 'bool', - value: (objectData) => objectData?.overrideCost ?? false + value: (objectData) => objectData?.overrideCost ?? false, + columnWidth: 150 }, { name: 'overridePrice', label: 'Override Price', required: false, type: 'bool', - value: (objectData) => objectData?.overridePrice ?? false + value: (objectData) => objectData?.overridePrice ?? false, + columnWidth: 150 }, { name: 'cost', @@ -168,7 +192,8 @@ export const PartSku = { step: 0.01, disabled: (objectData) => !objectData?.overrideCost, value: (objectData) => - objectData?.overrideCost ? objectData?.cost : undefined + objectData?.overrideCost ? objectData?.cost : undefined, + columnWidth: 100 }, { name: 'costWithTax', @@ -191,7 +216,8 @@ export const PartSku = { return (cost + taxRate?.rate).toFixed(2) || undefined } return cost - } + }, + columnWidth: 150 }, { name: 'costTaxRate', @@ -202,7 +228,8 @@ export const PartSku = { showHyperlink: true, disabled: (objectData) => !objectData?.overrideCost, value: (objectData) => - objectData?.overrideCost ? objectData?.costTaxRate : undefined + objectData?.overrideCost ? objectData?.costTaxRate : undefined, + columnWidth: 150 }, { name: 'price', @@ -231,7 +258,8 @@ export const PartSku = { return (cost * (1 + margin / 100)).toFixed(2) || undefined } return objectData?.price - } + }, + columnWidth: 100 }, { name: 'priceWithTax', @@ -265,7 +293,8 @@ export const PartSku = { return (price + taxRate?.rate).toFixed(2) || undefined } return price - } + }, + columnWidth: 150 }, { name: 'margin', @@ -279,7 +308,8 @@ export const PartSku = { max: 100, step: 0.01, value: (objectData) => - objectData?.overridePrice ? objectData?.margin : undefined + objectData?.overridePrice ? objectData?.margin : undefined, + columnWidth: 85 }, { name: 'priceTaxRate', @@ -290,7 +320,8 @@ export const PartSku = { showHyperlink: true, disabled: (objectData) => !objectData?.overridePrice, value: (objectData) => - objectData?.overridePrice ? objectData?.priceTaxRate : undefined + objectData?.overridePrice ? objectData?.priceTaxRate : undefined, + columnWidth: 150 } ] } diff --git a/src/database/models/PartStock.js b/src/database/models/PartStock.js index 2cf2e6d..e0184ec 100644 --- a/src/database/models/PartStock.js +++ b/src/database/models/PartStock.js @@ -35,12 +35,23 @@ export const PartStock = { type: 'id', objectType: 'partStock', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'partStock', + showCopy: true, readOnly: true }, { @@ -54,7 +65,8 @@ export const PartStock = { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'sourceType', @@ -71,7 +83,8 @@ export const PartStock = { type: 'object', objectType: 'partSku', required: true, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { diff --git a/src/database/models/Payment.js b/src/database/models/Payment.js index cc5b027..b522f8c 100644 --- a/src/database/models/Payment.js +++ b/src/database/models/Payment.js @@ -130,7 +130,8 @@ export const Payment = { name: 'createdAt', label: 'Created At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: '_reference', @@ -140,22 +141,31 @@ export const Payment = { required: true, objectType: 'payment', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'updatedAt', label: 'Updated At', 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', label: 'Invoice', type: 'object', objectType: 'invoice', required: true, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'payTo', @@ -165,6 +175,7 @@ export const Payment = { showHyperlink: true, required: true, readOnly: true, + columnWidth: 200, disabled: (objectData) => { return objectData?.invoice?.orderType == 'purchaseOrder' }, @@ -176,19 +187,22 @@ export const Payment = { name: 'paymentDate', label: 'Payment Date', type: 'dateTime', - required: true + required: true, + columnWidth: 175 }, { name: 'postedAt', label: 'Posted At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'cancelledAt', label: 'Cancelled At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'amount', @@ -203,13 +217,15 @@ export const Payment = { name: 'paymentMethod', label: 'Payment Method', type: 'string', - required: false + required: false, + columnWidth: 150 }, { name: 'notes', label: 'Notes', type: 'text', - required: false + required: false, + columnWidth: 200 } ], stats: [ diff --git a/src/database/models/Printer.js b/src/database/models/Printer.js index 38dd00a..8e65ea0 100644 --- a/src/database/models/Printer.js +++ b/src/database/models/Printer.js @@ -213,8 +213,8 @@ export const Printer = { } ], columns: [ - 'name', '_reference', + 'name', 'state', 'host', 'tags', @@ -230,13 +230,25 @@ export const Printer = { label: 'ID', type: 'id', 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', label: 'Created At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'name', @@ -250,7 +262,8 @@ export const Printer = { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'state', @@ -265,19 +278,22 @@ export const Printer = { name: 'connectedAt', label: 'Connected At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'online', label: 'Online', type: 'bool', - readOnly: true + readOnly: true, + columnWidth: 150 }, { name: 'active', label: 'Active', type: 'bool', - required: true + required: true, + columnWidth: 125 }, { name: 'vendor', @@ -285,7 +301,8 @@ export const Printer = { type: 'object', objectType: 'vendor', required: false, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'host', @@ -293,45 +310,52 @@ export const Printer = { type: 'object', objectType: 'host', required: true, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'moonraker.host', label: 'Hostname', type: 'text', - required: true + required: true, + columnWidth: 180 }, { name: 'moonraker.port', label: 'Port', type: 'number', - required: true + required: true, + columnWidth: 85 }, { name: 'moonraker.apiKey', label: 'API Key', type: 'secret', reveal: true, - required: false + required: false, + columnWidth: 140 }, { name: 'moonraker.protocol', label: 'Protocol', type: 'wsprotocol', - required: true + required: true, + columnWidth: 110 }, { name: 'tags', label: 'Tags', type: 'tags', - required: false + required: false, + columnWidth: 200 }, { name: 'firmware', label: 'Firmware Version', type: 'text', required: false, - readOnly: true + readOnly: true, + columnWidth: 150 }, { name: 'currentFilamentStock', @@ -339,7 +363,8 @@ export const Printer = { type: 'object', objectType: 'filamentStock', required: false, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'currentJob', @@ -347,7 +372,8 @@ export const Printer = { type: 'object', objectType: 'job', required: false, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'currentSubJob', @@ -355,13 +381,15 @@ export const Printer = { type: 'object', objectType: 'subJob', required: false, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'alerts', label: 'Alerts', type: 'alerts', - required: false + required: false, + columnWidth: 200 }, { name: 'queue', @@ -369,7 +397,8 @@ export const Printer = { type: 'objectList', objectType: 'subJob', required: false, - readOnly: true + readOnly: true, + columnWidth: 200 } ], stats: [ diff --git a/src/database/models/Product.js b/src/database/models/Product.js index 5540d0c..66daf0f 100644 --- a/src/database/models/Product.js +++ b/src/database/models/Product.js @@ -79,12 +79,14 @@ export const Product = { 'tags', 'vendor', 'cost', + 'costWithTax', 'price', + 'priceWithTax', 'createdAt', 'updatedAt' ], - filters: ['_id', 'name', 'type', 'color', 'vendor'], - sorters: ['name', 'createdAt', 'type', 'vendor', 'updatedAt'], + filters: ['_id', 'name', 'type', 'color', 'vendor', 'cost', 'costWithTax', 'price', 'priceWithTax'], + sorters: ['name', 'createdAt', 'type', 'vendor', 'cost', 'costWithTax', 'price', 'priceWithTax', 'updatedAt'], properties: [ { name: '_id', @@ -92,25 +94,39 @@ export const Product = { type: 'id', objectType: 'product', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'product', + showCopy: true, readOnly: true }, { name: 'name', label: 'Name', required: true, - type: 'text' + type: 'text', + columnWidth: 200, + columnFixed: 'left' }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'vendor', @@ -118,19 +134,22 @@ export const Product = { required: true, type: 'object', objectType: 'vendor', - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'version', label: 'Version', required: false, - type: 'text' + type: 'text', + columnWidth: 120 }, { name: 'tags', label: 'Tags', required: false, - type: 'tags' + type: 'tags', + columnWidth: 200 }, { name: 'cost', @@ -139,7 +158,8 @@ export const Product = { type: 'number', prefix: '£', min: 0, - step: 0.01 + step: 0.01, + columnWidth: 100 }, { name: 'costWithTax', @@ -150,6 +170,7 @@ export const Product = { prefix: '£', min: 0, step: 0.01, + columnWidth: 150, value: (objectData) => { const cost = objectData?.cost if (!cost) return undefined @@ -170,13 +191,15 @@ export const Product = { required: false, type: 'object', objectType: 'taxRate', - showHyperlink: true + showHyperlink: true, + columnWidth: 150 }, { name: 'priceMode', label: 'Price Mode', required: false, - type: 'priceMode' + type: 'priceMode', + columnWidth: 150 }, { name: 'price', @@ -186,6 +209,7 @@ export const Product = { prefix: '£', min: 0, step: 0.1, + columnWidth: 100, readOnly: (objectData) => objectData?.priceMode == 'margin', value: (objectData) => { if ( @@ -211,7 +235,8 @@ export const Product = { suffix: '%', min: 0, max: 100, - step: 0.01 + step: 0.01, + columnWidth: 85 }, { name: 'priceWithTax', @@ -222,6 +247,7 @@ export const Product = { prefix: '£', min: 0, step: 0.01, + columnWidth: 150, value: (objectData) => { let price if ( @@ -251,7 +277,8 @@ export const Product = { required: false, type: 'object', objectType: 'taxRate', - showHyperlink: true + showHyperlink: true, + columnWidth: 150 } ] } diff --git a/src/database/models/ProductSku.js b/src/database/models/ProductSku.js index 871b621..4439315 100644 --- a/src/database/models/ProductSku.js +++ b/src/database/models/ProductSku.js @@ -76,8 +76,10 @@ export const ProductSku = { 'barcode', 'overrideCost', 'cost', + 'costWithTax', 'overridePrice', 'price', + 'priceWithTax', 'createdAt', 'updatedAt' ], @@ -88,14 +90,18 @@ export const ProductSku = { 'product._id', 'name', 'cost', - 'price' + 'costWithTax', + 'price', + 'priceWithTax' ], sorters: [ 'barcode', 'product', 'name', 'cost', + 'costWithTax', 'price', + 'priceWithTax', 'createdAt', 'updatedAt' ], @@ -106,12 +112,23 @@ export const ProductSku = { type: 'id', objectType: 'productSku', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'productSku', + showCopy: true, readOnly: true }, @@ -119,13 +136,16 @@ export const ProductSku = { name: 'name', label: 'Name', required: true, - type: 'text' + type: 'text', + columnWidth: 200, + columnFixed: 'left' }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'product', @@ -133,39 +153,45 @@ export const ProductSku = { type: 'object', objectType: 'product', required: true, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'barcode', label: 'Barcode', required: false, - type: 'text' + type: 'text', + columnWidth: 150 }, { name: 'description', label: 'Description', required: false, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'priceMode', label: 'Price Mode', required: false, - type: 'priceMode' + type: 'priceMode', + columnWidth: 150 }, { name: 'overrideCost', label: 'Override Cost', required: false, type: 'bool', - value: (objectData) => objectData?.overrideCost ?? false + value: (objectData) => objectData?.overrideCost ?? false, + columnWidth: 150 }, { name: 'overridePrice', label: 'Override Price', required: false, type: 'bool', - value: (objectData) => objectData?.overridePrice ?? false + value: (objectData) => objectData?.overridePrice ?? false, + columnWidth: 150 }, { name: 'cost', @@ -177,7 +203,8 @@ export const ProductSku = { step: 0.01, disabled: (objectData) => !objectData?.overrideCost, value: (objectData) => - objectData?.overrideCost ? objectData?.cost : undefined + objectData?.overrideCost ? objectData?.cost : undefined, + columnWidth: 100 }, { name: 'costWithTax', @@ -200,7 +227,8 @@ export const ProductSku = { return (cost + taxRate?.rate).toFixed(2) || undefined } return cost - } + }, + columnWidth: 150 }, { name: 'costTaxRate', @@ -211,7 +239,8 @@ export const ProductSku = { showHyperlink: true, disabled: (objectData) => !objectData?.overrideCost, value: (objectData) => - objectData?.overrideCost ? objectData?.costTaxRate : undefined + objectData?.overrideCost ? objectData?.costTaxRate : undefined, + columnWidth: 150 }, { name: 'price', @@ -241,7 +270,8 @@ export const ProductSku = { return (cost * (1 + margin / 100)).toFixed(2) || undefined } return objectData?.price - } + }, + columnWidth: 100 }, { name: 'priceWithTax', @@ -276,7 +306,8 @@ export const ProductSku = { return (price + taxRate?.rate).toFixed(2) || undefined } return price - } + }, + columnWidth: 150 }, { name: 'margin', @@ -290,7 +321,8 @@ export const ProductSku = { max: 100, step: 0.01, value: (objectData) => - objectData?.overridePrice ? objectData?.margin : undefined + objectData?.overridePrice ? objectData?.margin : undefined, + columnWidth: 85 }, { name: 'priceTaxRate', @@ -301,7 +333,8 @@ export const ProductSku = { showHyperlink: true, disabled: (objectData) => !objectData?.overridePrice, value: (objectData) => - objectData?.overridePrice ? objectData?.priceTaxRate : undefined + objectData?.overridePrice ? objectData?.priceTaxRate : undefined, + columnWidth: 150 }, { name: 'parts', diff --git a/src/database/models/ProductStock.js b/src/database/models/ProductStock.js index 6eae8a0..76606eb 100644 --- a/src/database/models/ProductStock.js +++ b/src/database/models/ProductStock.js @@ -102,12 +102,23 @@ export const ProductStock = { type: 'id', objectType: 'productStock', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'productStock', + showCopy: true, readOnly: true }, { @@ -121,13 +132,15 @@ export const ProductStock = { name: 'postedAt', label: 'Posted At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'productSku', @@ -135,7 +148,8 @@ export const ProductStock = { type: 'object', objectType: 'productSku', required: true, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'currentQuantity', diff --git a/src/database/models/PurchaseOrder.js b/src/database/models/PurchaseOrder.js index 9a9a50e..41cd8de 100644 --- a/src/database/models/PurchaseOrder.js +++ b/src/database/models/PurchaseOrder.js @@ -202,7 +202,8 @@ export const PurchaseOrder = { name: 'createdAt', label: 'Created At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: '_reference', @@ -212,29 +213,45 @@ export const PurchaseOrder = { required: true, objectType: 'purchaseOrder', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'updatedAt', label: 'Updated At', 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', label: 'Vendor', required: true, type: 'object', objectType: 'vendor', - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'acknowledgedAt', label: 'Acknowledged At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'totalTaxAmount', @@ -249,7 +266,8 @@ export const PurchaseOrder = { name: 'completedAt', label: 'Completed At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'totalAmountWithTax', diff --git a/src/database/models/SalesOrder.js b/src/database/models/SalesOrder.js index 588ec18..76522bb 100644 --- a/src/database/models/SalesOrder.js +++ b/src/database/models/SalesOrder.js @@ -201,7 +201,8 @@ export const SalesOrder = { name: 'createdAt', label: 'Created At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: '_reference', @@ -211,29 +212,45 @@ export const SalesOrder = { required: true, objectType: 'salesOrder', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'updatedAt', label: 'Updated At', 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', label: 'Client', required: true, type: 'object', objectType: 'client', - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'confirmedAt', label: 'Confirmed At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'totalTaxAmount', @@ -248,7 +265,8 @@ export const SalesOrder = { name: 'completedAt', label: 'Completed At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'totalAmountWithTax', diff --git a/src/database/models/Shipment.js b/src/database/models/Shipment.js index 897a9f0..8386c3b 100644 --- a/src/database/models/Shipment.js +++ b/src/database/models/Shipment.js @@ -156,7 +156,8 @@ export const Shipment = { name: 'createdAt', label: 'Created At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: '_reference', @@ -165,22 +166,31 @@ export const Shipment = { columnFixed: 'left', objectType: 'shipment', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'updatedAt', label: 'Updated At', 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', label: 'Shipped At', type: 'dateTime', - required: false + required: false, + columnWidth: 175 }, { name: 'orderType', @@ -188,14 +198,16 @@ export const Shipment = { required: true, type: 'objectType', masterFilter: ['purchaseOrder', 'salesOrder'], - showHyperlink: true + showHyperlink: true, + columnWidth: 150 }, { name: 'expectedAt', label: 'Expected At', type: 'dateTime', - required: false + required: false, + columnWidth: 175 }, { name: 'order', @@ -205,41 +217,47 @@ export const Shipment = { showHyperlink: true, objectType: (objectData) => { return objectData?.orderType - } + }, + columnWidth: 200 }, { name: 'deliveredAt', label: 'Delivered At', type: 'dateTime', - required: false + required: false, + columnWidth: 175 }, { name: 'courierService', label: 'Courier Service', required: true, type: 'object', - objectType: 'courierService' + objectType: 'courierService', + columnWidth: 200 }, { name: 'trackingNumber', label: 'Tracking Number', type: 'text', - required: false + required: false, + columnWidth: 180 }, { name: 'taxRate', label: 'Tax Rate', type: 'object', objectType: 'taxRate', - showHyperlink: true + showHyperlink: true, + columnWidth: 150 }, { name: 'taxRecord', label: 'Tax Record', type: 'object', objectType: 'taxRecord', - showHyperlink: true + showHyperlink: true, + columnWidth: 150 }, { name: 'amount', @@ -261,6 +279,7 @@ export const Shipment = { min: 0, step: 0.01, readOnly: true, + columnWidth: 125, value: (objectData) => { return (objectData?.amount * objectData?.taxRate?.rate) / 100 || 0 } diff --git a/src/database/models/StockAudit.js b/src/database/models/StockAudit.js index ef200d5..78d8c98 100644 --- a/src/database/models/StockAudit.js +++ b/src/database/models/StockAudit.js @@ -28,12 +28,23 @@ export const StockAudit = { type: 'id', objectType: 'stockAudit', showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'stockAudit', + showCopy: true, readOnly: true }, { @@ -47,7 +58,8 @@ export const StockAudit = { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 } ] } diff --git a/src/database/models/StockEvent.js b/src/database/models/StockEvent.js index 0eb22cd..7d28100 100644 --- a/src/database/models/StockEvent.js +++ b/src/database/models/StockEvent.js @@ -17,14 +17,16 @@ export const StockEvent = { objectType: 'stockEvent', columnFixed: 'left', value: null, - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', value: null, - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: '_reference', @@ -34,14 +36,16 @@ export const StockEvent = { objectType: 'stockEvent', value: null, showCopy: true, - readOnly: true + readOnly: true, + columnWidth: 140 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', value: null, - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'owner', diff --git a/src/database/models/SubJob.js b/src/database/models/SubJob.js index 0abb467..ffdb6bf 100644 --- a/src/database/models/SubJob.js +++ b/src/database/models/SubJob.js @@ -50,6 +50,15 @@ export const SubJob = { readOnly: true, columnWidth: 175 }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'subJob', + showCopy: true, + readOnly: true + }, { name: 'state', label: 'State', @@ -80,20 +89,23 @@ export const SubJob = { name: 'startedAt', label: 'Started At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'job', label: 'Job', type: 'object', objectType: 'job', - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'finishedAt', label: 'Finished At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'printer', @@ -101,12 +113,14 @@ export const SubJob = { type: 'object', columnFixed: 'left', objectType: 'printer', - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'totalTime', label: 'Total Time', type: 'text', + columnWidth: 110, readOnly: true, value: (objectData) => { if (!objectData?.startedAt || !objectData?.finishedAt) { diff --git a/src/database/models/TaxRate.js b/src/database/models/TaxRate.js index 6195493..5cd4a6a 100644 --- a/src/database/models/TaxRate.js +++ b/src/database/models/TaxRate.js @@ -69,8 +69,8 @@ export const TaxRate = { } ], columns: [ - 'name', '_reference', + 'name', 'rate', 'rateType', 'active', @@ -95,12 +95,23 @@ export const TaxRate = { columnFixed: 'left', type: 'id', objectType: 'taxRate', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'taxRate', + showCopy: true, readOnly: true }, { @@ -108,27 +119,31 @@ export const TaxRate = { label: 'Name', columnFixed: 'left', required: true, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'active', label: 'Active', required: true, type: 'bool', - default: true + default: true, + columnWidth: 125 }, { name: 'effectiveFrom', label: 'Effective From', type: 'date', readOnly: false, - required: false + required: false, + columnWidth: 150 }, { name: 'rate', @@ -142,7 +157,8 @@ export const TaxRate = { }, suffix: (objectData) => { return objectData?.rateType == 'percentage' ? '%' : undefined - } + }, + columnWidth: 100 }, { @@ -150,7 +166,8 @@ export const TaxRate = { label: 'Effective To', type: 'date', readOnly: false, - required: false + required: false, + columnWidth: 150 }, { @@ -161,21 +178,24 @@ export const TaxRate = { options: [ { label: 'Percentage', value: 'percentage' }, { label: 'Amount', value: 'amount' } - ] + ], + columnWidth: 150 }, { name: 'country', label: 'Country', type: 'country', readOnly: false, - required: false + required: false, + columnWidth: 150 }, { name: 'description', label: 'Description', type: 'text', readOnly: false, - required: false + required: false, + columnWidth: 200 } ] } diff --git a/src/database/models/TaxRecord.js b/src/database/models/TaxRecord.js index 736f6b5..6f3b0da 100644 --- a/src/database/models/TaxRecord.js +++ b/src/database/models/TaxRecord.js @@ -88,12 +88,23 @@ export const TaxRecord = { columnFixed: 'left', type: 'id', objectType: 'taxRecord', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'taxRecord', + showCopy: true, readOnly: true }, { @@ -102,13 +113,15 @@ export const TaxRecord = { required: true, type: 'object', objectType: 'taxRate', - showHyperlink: true + showHyperlink: true, + columnWidth: 150 }, { name: 'transactionType', label: 'Transaction Type', required: true, type: 'select', + columnWidth: 175, options: [ { label: 'Purchase Order', value: 'purchaseOrder' }, { label: 'Sales Order', value: 'salesOrder' }, @@ -123,7 +136,8 @@ export const TaxRecord = { objectType: (objectData) => { return objectData?.transactionType || 'purchaseOrder' }, - showHyperlink: true + showHyperlink: true, + columnWidth: 200 }, { name: 'amount', @@ -131,7 +145,8 @@ export const TaxRecord = { required: true, type: 'currency', min: 0, - step: 0.01 + step: 0.01, + columnWidth: 125 }, { name: 'taxAmount', @@ -139,13 +154,15 @@ export const TaxRecord = { required: true, type: 'currency', min: 0, - step: 0.01 + step: 0.01, + columnWidth: 125 }, { name: 'transactionDate', label: 'Transaction Date', required: true, type: 'date', + columnWidth: 175, default: () => new Date() }, { diff --git a/src/database/models/User.js b/src/database/models/User.js index c5e9dfc..843e6e7 100644 --- a/src/database/models/User.js +++ b/src/database/models/User.js @@ -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'], sorters: ['name', 'email', 'role', 'createdAt', '_id'], properties: [ @@ -46,12 +46,23 @@ export const User = { columnFixed: 'left', type: 'id', objectType: 'user', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'user', + showCopy: true, readOnly: true }, { @@ -59,30 +70,35 @@ export const User = { label: 'Name', columnFixed: 'left', required: true, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'firstName', label: 'First Name', - type: 'text' + type: 'text', + columnWidth: 130 }, { name: 'username', label: 'Username', required: true, - type: 'text' + type: 'text', + columnWidth: 150 }, { name: 'lastName', label: 'Last Name', - type: 'text' + type: 'text', + columnWidth: 130 }, { name: 'email', @@ -96,7 +112,8 @@ export const User = { type: 'file', fileType: 'image', previewOpen: true, - showPreview: false + showPreview: false, + columnWidth: 150 } ] } diff --git a/src/database/models/Vendor.js b/src/database/models/Vendor.js index 2dbd6a5..8c01911 100644 --- a/src/database/models/Vendor.js +++ b/src/database/models/Vendor.js @@ -69,8 +69,8 @@ export const Vendor = { } ], columns: [ - 'name', '_reference', + 'name', 'country', 'email', 'website', @@ -104,12 +104,23 @@ export const Vendor = { columnFixed: 'left', type: 'id', objectType: 'vendor', - showCopy: true + showCopy: true, + columnWidth: 140 }, { name: 'createdAt', label: 'Created At', type: 'dateTime', + readOnly: true, + columnWidth: 175 + }, + { + name: '_reference', + label: 'Reference', + type: 'reference', + columnFixed: 'left', + objectType: 'vendor', + showCopy: true, readOnly: true }, { @@ -117,34 +128,39 @@ export const Vendor = { label: 'Name', columnFixed: 'left', required: true, - type: 'text' + type: 'text', + columnWidth: 200 }, { name: 'updatedAt', label: 'Updated At', type: 'dateTime', - readOnly: true + readOnly: true, + columnWidth: 175 }, { name: 'contact', label: 'Contact', type: 'text', readOnly: false, - required: false + required: false, + columnWidth: 150 }, { name: 'active', label: 'Active', type: 'bool', readOnly: false, - required: true + required: true, + columnWidth: 125 }, { name: 'country', label: 'Country', type: 'country', readOnly: false, - required: true + required: true, + columnWidth: 150 }, { name: 'email', @@ -159,7 +175,8 @@ export const Vendor = { label: 'Phone', type: 'phone', readOnly: false, - required: false + required: false, + columnWidth: 140 }, { name: 'website', @@ -174,7 +191,8 @@ export const Vendor = { label: 'Address', type: 'address', readOnly: false, - required: false + required: false, + columnWidth: 250 } ] }