Client: Added ability to skip X items
This commit is contained in:
@@ -63,6 +63,7 @@
|
|||||||
"paperSize": "Paper Size",
|
"paperSize": "Paper Size",
|
||||||
"showBorder": "Show Border",
|
"showBorder": "Show Border",
|
||||||
"previewScale": "Preview Scale",
|
"previewScale": "Preview Scale",
|
||||||
|
"skipItems": "Skip Items",
|
||||||
"marginLeft": "Left Margin",
|
"marginLeft": "Left Margin",
|
||||||
"marginRight": "Right Margin",
|
"marginRight": "Right Margin",
|
||||||
"marginTop": "Top Margin",
|
"marginTop": "Top Margin",
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ const PrintingDialog: React.FC<PrintingDialogProps> = ({ items, style, extraSett
|
|||||||
const [printerMarginBottom, setPrinterMarginBottom] = useSavedState("print-printerMarginBottom", 5);
|
const [printerMarginBottom, setPrinterMarginBottom] = useSavedState("print-printerMarginBottom", 5);
|
||||||
const [paperColumns, setPaperColumns] = useSavedState("print-itemsPerRow", 3);
|
const [paperColumns, setPaperColumns] = useSavedState("print-itemsPerRow", 3);
|
||||||
const [paperRows, setPaperRows] = useSavedState("print-rowsPerPage", 8);
|
const [paperRows, setPaperRows] = useSavedState("print-rowsPerPage", 8);
|
||||||
|
const [skipItems, setSkipItems] = useSavedState("print-skipItems", 0);
|
||||||
const [paperSize, setPaperSize] = useSavedState("print-paperSize", "A4");
|
const [paperSize, setPaperSize] = useSavedState("print-paperSize", "A4");
|
||||||
const [previewScale, setPreviewScale] = useSavedState("print-previewScale", 0.6);
|
const [previewScale, setPreviewScale] = useSavedState("print-previewScale", 0.6);
|
||||||
const [borderShowMode, setBorderShowMode] = useSavedState<"none" | "border" | "grid">("print-borderShowMode", "grid");
|
const [borderShowMode, setBorderShowMode] = useSavedState<"none" | "border" | "grid">("print-borderShowMode", "grid");
|
||||||
@@ -72,9 +73,11 @@ const PrintingDialog: React.FC<PrintingDialogProps> = ({ items, style, extraSett
|
|||||||
const itemsPerRow = paperColumns;
|
const itemsPerRow = paperColumns;
|
||||||
const rowsPerPage = paperRows;
|
const rowsPerPage = paperRows;
|
||||||
|
|
||||||
|
const itemsIncludingSkipped = [...Array(skipItems).fill(<></>), ...items];
|
||||||
|
|
||||||
const rowsOfItems = [];
|
const rowsOfItems = [];
|
||||||
for (let row_idx = 0; row_idx <= items.length / itemsPerRow; row_idx += 1) {
|
for (let row_idx = 0; row_idx <= itemsIncludingSkipped.length / itemsPerRow; row_idx += 1) {
|
||||||
rowsOfItems.push(items.slice(row_idx * itemsPerRow, (row_idx + 1) * itemsPerRow));
|
rowsOfItems.push(itemsIncludingSkipped.slice(row_idx * itemsPerRow, (row_idx + 1) * itemsPerRow));
|
||||||
}
|
}
|
||||||
|
|
||||||
const pageBlocks = [];
|
const pageBlocks = [];
|
||||||
@@ -485,6 +488,30 @@ const PrintingDialog: React.FC<PrintingDialogProps> = ({ items, style, extraSett
|
|||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
<Form.Item label={t("printing.generic.skipItems")}>
|
||||||
|
<Row>
|
||||||
|
<Col span={12}>
|
||||||
|
<Slider
|
||||||
|
min={0}
|
||||||
|
max={30}
|
||||||
|
value={skipItems}
|
||||||
|
onChange={(value) => {
|
||||||
|
setSkipItems(value);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={12}>
|
||||||
|
<InputNumber
|
||||||
|
min={0}
|
||||||
|
style={{ margin: "0 16px" }}
|
||||||
|
value={skipItems}
|
||||||
|
onChange={(value) => {
|
||||||
|
setSkipItems(value ?? 1);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
</Form.Item>
|
||||||
<Form.Item label={t("printing.generic.paperSize")}>
|
<Form.Item label={t("printing.generic.paperSize")}>
|
||||||
<Select value={paperSize} onChange={(value) => setPaperSize(value)}>
|
<Select value={paperSize} onChange={(value) => setPaperSize(value)}>
|
||||||
{Object.keys(paperDimensions).map((key) => (
|
{Object.keys(paperDimensions).map((key) => (
|
||||||
|
|||||||
Reference in New Issue
Block a user