Added preset duplicate button

This commit is contained in:
Donkie
2024-08-05 16:09:43 +02:00
parent 71f6ce55f5
commit 38ec685356
2 changed files with 18 additions and 1 deletions

View File

@@ -94,6 +94,7 @@
"defaultSettings": "Default", "defaultSettings": "Default",
"addSettings": "Add New Preset", "addSettings": "Add New Preset",
"newSetting": "New", "newSetting": "New",
"duplicateSettings": "Duplicate",
"deleteSettings": "Delete Current Preset", "deleteSettings": "Delete Current Preset",
"deleteSettingsConfirm": "Are you sure you want to delete this preset?", "deleteSettingsConfirm": "Are you sure you want to delete this preset?",
"settingsName": "Preset Name", "settingsName": "Preset Name",

View File

@@ -10,7 +10,7 @@ import {
useSetPrintSettings as useSetPrintPresets, useSetPrintSettings as useSetPrintPresets,
} from "./printing"; } from "./printing";
import { useState } from "react"; 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 { v4 as uuidv4 } from "uuid";
import TextArea from "antd/es/input/TextArea"; import TextArea from "antd/es/input/TextArea";
import { EntityType, useGetFields } from "../../utils/queryFields"; import { EntityType, useGetFields } from "../../utils/queryFields";
@@ -65,6 +65,16 @@ const SpoolQRCodePrintingDialog: React.FC<SpoolQRCodePrintingDialog> = ({ spoolI
setSelectedPresetState(newId); setSelectedPresetState(newId);
return newPreset; 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) => { const updateCurrentPreset = (newSettings: SpoolQRCodePrintSettings) => {
if (!localOrRemotePresets) return; if (!localOrRemotePresets) return;
setLocalPresets( setLocalPresets(
@@ -244,6 +254,12 @@ Lot Nr: {lot_nr}
title={t("printing.generic.addSettings")} title={t("printing.generic.addSettings")}
onClick={addNewPreset} onClick={addNewPreset}
/> />
<Button
style={{ width: "3em" }}
icon={<CopyOutlined />}
title={t("printing.generic.duplicateSettings")}
onClick={duplicateCurrentPreset}
/>
{localOrRemotePresets && localOrRemotePresets.length > 1 && ( {localOrRemotePresets && localOrRemotePresets.length > 1 && (
<Popconfirm <Popconfirm
title={t("printing.generic.deleteSettings")} title={t("printing.generic.deleteSettings")}