|
|
|
@@ -22,6 +22,7 @@ export const SystemView = () => {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const saveSignature = async (signature: Signature): Promise<void> => {
|
|
|
|
|
console.log(signature);
|
|
|
|
|
try {
|
|
|
|
|
// Check if signature already exists
|
|
|
|
|
let existingRecord: SignatureRecord | null = null;
|
|
|
|
@@ -34,7 +35,7 @@ export const SystemView = () => {
|
|
|
|
|
const newScannedPercentage = parseScannedPercentage(signature.scanned);
|
|
|
|
|
|
|
|
|
|
if (existingRecord) {
|
|
|
|
|
const updatedSignature: Pick<SignatureRecord, 'updated' | 'type' | 'name' | 'scanned'> = {
|
|
|
|
|
const updatedSignature: Pick<SignatureRecord, 'updated' | 'type' | 'name' | 'scanned' | 'note'> = {
|
|
|
|
|
updated: new Date().toISOString()
|
|
|
|
|
}
|
|
|
|
|
// Existing record has no type and our new signature has a type
|
|
|
|
@@ -47,6 +48,8 @@ export const SystemView = () => {
|
|
|
|
|
const existingScannedPercentage = parseScannedPercentage(existingRecord.scanned);
|
|
|
|
|
if (newScannedPercentage >= existingScannedPercentage)
|
|
|
|
|
updatedSignature.scanned = signature.scanned;
|
|
|
|
|
if (!!!existingRecord.note && !!signature.note)
|
|
|
|
|
updatedSignature.note = signature.note;
|
|
|
|
|
await pb.collection('signature').update(existingRecord.id, updatedSignature);
|
|
|
|
|
console.log(`Updated signature ${signature.identifier}: ${existingScannedPercentage}% -> ${newScannedPercentage}%`);
|
|
|
|
|
} else {
|
|
|
|
@@ -57,7 +60,8 @@ export const SystemView = () => {
|
|
|
|
|
name: signature.signame,
|
|
|
|
|
type: signature.type,
|
|
|
|
|
dangerous: signature.dangerous,
|
|
|
|
|
scanned: signature.scanned
|
|
|
|
|
scanned: signature.scanned,
|
|
|
|
|
note: signature.note
|
|
|
|
|
});
|
|
|
|
|
console.log(`Created new signature ${signature.identifier} with ${newScannedPercentage}% scan`);
|
|
|
|
|
}
|
|
|
|
@@ -70,10 +74,10 @@ export const SystemView = () => {
|
|
|
|
|
const deleteSignature = async (signatureId: string): Promise<void> => {
|
|
|
|
|
try {
|
|
|
|
|
await pb.collection('signature').delete(signatureId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Invalidate queries to refresh the data
|
|
|
|
|
queryClient.invalidateQueries({ queryKey: ['signatures', system] });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
toast({
|
|
|
|
|
title: "Signature Deleted",
|
|
|
|
|
description: "The signature has been successfully deleted.",
|
|
|
|
@@ -93,14 +97,14 @@ export const SystemView = () => {
|
|
|
|
|
try {
|
|
|
|
|
// Get the system ID for the current system
|
|
|
|
|
const systemId = await getSystemId(system);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
console.log('Updating signature:', {
|
|
|
|
|
identifier: updatedSignature.identifier,
|
|
|
|
|
systemId,
|
|
|
|
|
system,
|
|
|
|
|
updatedSignature
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Find the signature by identifier and system
|
|
|
|
|
const existingRecord = await pb.collection('signature').getFirstListItem(
|
|
|
|
|
`identifier='${updatedSignature.identifier}' && system='${systemId}'`
|
|
|
|
@@ -132,10 +136,10 @@ export const SystemView = () => {
|
|
|
|
|
console.log('Update data:', updateData);
|
|
|
|
|
|
|
|
|
|
await pb.collection('signature').update(existingRecord.id, updateData);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Invalidate queries to refresh the data
|
|
|
|
|
queryClient.invalidateQueries({ queryKey: ['signatures', system] });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
toast({
|
|
|
|
|
title: "Signature Updated",
|
|
|
|
|
description: "The signature has been successfully updated.",
|
|
|
|
|