From 56b9ad9e1a078b2d4e7a50117ee4e7570e997036 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Fri, 21 Aug 2026 22:39:11 +0100 Subject: [PATCH] Enhance Document Size Configuration with New Padding Options - Updated the NewDocumentSize component to include additional default values for print padding and padding dimensions (left, right, top, bottom). - Modified the ApiServerProvider to pass padding parameters in API requests, ensuring consistent handling of new padding options. - Expanded the DocumentSize model to incorporate new fields for print padding and padding dimensions, enhancing the document size configuration capabilities. --- .../DocumentSizes/NewDocumentSize.jsx | 10 ++- .../Dashboard/context/ApiServerContext.jsx | 5 +- src/database/models/DocumentSize.js | 72 +++++++++++++++++-- 3 files changed, 80 insertions(+), 7 deletions(-) diff --git a/src/components/Dashboard/Management/DocumentSizes/NewDocumentSize.jsx b/src/components/Dashboard/Management/DocumentSizes/NewDocumentSize.jsx index 3d0f72e6..137b7c3b 100644 --- a/src/components/Dashboard/Management/DocumentSizes/NewDocumentSize.jsx +++ b/src/components/Dashboard/Management/DocumentSizes/NewDocumentSize.jsx @@ -7,7 +7,15 @@ const NewDocumentSize = ({ onOk, defaultValues }) => { return ( {({ handleSubmit, submitLoading, objectData, formValid }) => { const steps = [ diff --git a/src/components/Dashboard/context/ApiServerContext.jsx b/src/components/Dashboard/context/ApiServerContext.jsx index e9ba4a74..f55c3c38 100644 --- a/src/components/Dashboard/context/ApiServerContext.jsx +++ b/src/components/Dashboard/context/ApiServerContext.jsx @@ -1854,7 +1854,8 @@ const ApiServerProvider = ({ children }) => { { content, testObject, - scale + scale, + padding: true }, { headers: { @@ -1886,7 +1887,7 @@ const ApiServerProvider = ({ children }) => { object }, { - params: { type }, + params: { type, padding: true }, responseType: 'arraybuffer', headers: { Authorization: `Bearer ${token}` diff --git a/src/database/models/DocumentSize.js b/src/database/models/DocumentSize.js index 67627a83..727f29a1 100644 --- a/src/database/models/DocumentSize.js +++ b/src/database/models/DocumentSize.js @@ -1,10 +1,12 @@ import { createElement, lazy } from 'react' const DocumentSizeInfo = lazy( - () => import('../../components/Dashboard/Management/DocumentSizes/DocumentSizeInfo') + () => + import('../../components/Dashboard/Management/DocumentSizes/DocumentSizeInfo') ) const NewDocumentSize = lazy( - () => import('../../components/Dashboard/Management/DocumentSizes/NewDocumentSize') + () => + import('../../components/Dashboard/Management/DocumentSizes/NewDocumentSize') ) import InfoCircleIcon from '../../components/Icons/InfoCircleIcon' import PlusIcon from '../../components/Icons/PlusIcon' @@ -30,7 +32,11 @@ export const DocumentSize = { label: 'New Document Size', icon: PlusIcon, content: (objectData, { onOk } = {}) => { - return createElement(NewDocumentSize, { defaultValues: objectData, onOk, reset: true }) + return createElement(NewDocumentSize, { + defaultValues: objectData, + onOk, + reset: true + }) } }, { @@ -79,7 +85,7 @@ export const DocumentSize = { visible: (objectData) => { return objectData?._isEditing && objectData?._isEditing == true } - }, + } ], pages: [ { @@ -93,6 +99,11 @@ export const DocumentSize = { 'width', 'height', 'infiniteHeight', + 'printPadding', + 'paddingLeft', + 'paddingRight', + 'paddingTop', + 'paddingBottom', 'createdAt', 'updatedAt' ], @@ -100,6 +111,11 @@ export const DocumentSize = { 'name', 'width', 'height', + 'printPadding', + 'paddingLeft', + 'paddingRight', + 'paddingTop', + 'paddingBottom', 'createdAt', 'updatedAt', '_reference' @@ -109,6 +125,11 @@ export const DocumentSize = { 'width', 'height', 'infiniteHeight', + 'printPadding', + 'paddingLeft', + 'paddingRight', + 'paddingTop', + 'paddingBottom', 'createdAt', 'updatedAt' ], @@ -178,6 +199,49 @@ export const DocumentSize = { visible: (objectData) => { return !objectData.infiniteHeight } + }, + { + name: 'printPadding', + label: 'Print Padding', + required: true, + columnWidth: 160, + type: 'bool' + }, + { + name: 'paddingLeft', + label: 'Padding Left', + required: true, + columnWidth: 150, + type: 'number', + suffix: 'mm', + min: 0 + }, + { + name: 'paddingRight', + label: 'Padding Right', + required: true, + columnWidth: 162, + type: 'number', + suffix: 'mm', + min: 0 + }, + { + name: 'paddingTop', + label: 'Padding Top', + required: true, + columnWidth: 155, + type: 'number', + suffix: 'mm', + min: 0 + }, + { + name: 'paddingBottom', + label: 'Padding Bottom', + required: true, + columnWidth: 180, + type: 'number', + suffix: 'mm', + min: 0 } ] }