diff --git a/client/public/locales/en/common.json b/client/public/locales/en/common.json index e387e95..0381eff 100644 --- a/client/public/locales/en/common.json +++ b/client/public/locales/en/common.json @@ -94,6 +94,7 @@ "defaultSettings": "Default", "addSettings": "Add New Preset", "newSetting": "New", + "duplicateSettings": "Duplicate", "deleteSettings": "Delete Current Preset", "deleteSettingsConfirm": "Are you sure you want to delete this preset?", "settingsName": "Preset Name", diff --git a/client/src/pages/printing/spoolQrCodePrintingDialog.tsx b/client/src/pages/printing/spoolQrCodePrintingDialog.tsx index 72481c3..442acd9 100644 --- a/client/src/pages/printing/spoolQrCodePrintingDialog.tsx +++ b/client/src/pages/printing/spoolQrCodePrintingDialog.tsx @@ -10,7 +10,7 @@ import { useSetPrintSettings as useSetPrintPresets, } from "./printing"; import { useState } from "react"; -import { DeleteOutlined, PlusOutlined, SaveOutlined } from "@ant-design/icons"; +import { CopyOutlined, DeleteOutlined, PlusOutlined, SaveOutlined } from "@ant-design/icons"; import { v4 as uuidv4 } from "uuid"; import TextArea from "antd/es/input/TextArea"; import { EntityType, useGetFields } from "../../utils/queryFields"; @@ -65,6 +65,16 @@ const SpoolQRCodePrintingDialog: React.FC = ({ spoolI setSelectedPresetState(newId); return newPreset; }; + const duplicateCurrentPreset = () => { + if (!localOrRemotePresets) return; + const newPreset = { + ...curPreset, + labelSettings: { ...curPreset.labelSettings, printSettings: { ...curPreset.labelSettings.printSettings } }, + }; + newPreset.labelSettings.printSettings.id = uuidv4(); + setLocalPresets([...localOrRemotePresets, newPreset]); + setSelectedPresetState(newPreset.labelSettings.printSettings.id); + }; const updateCurrentPreset = (newSettings: SpoolQRCodePrintSettings) => { if (!localOrRemotePresets) return; setLocalPresets( @@ -244,6 +254,12 @@ Lot Nr: {lot_nr} title={t("printing.generic.addSettings")} onClick={addNewPreset} /> +