This commit is contained in:
michael committed 2026-09-14 06:42:52 +00:00
1 parent cfb96f03c0
commit b7f7d7e793
3 files changed
+58 -6

No files matched your search

+29 -3
View File
@@ -1868,12 +1868,38 @@ function syncComparableValue(value: unknown) {
return value ?? null;
}
function syncValueChanged(left: unknown, right: unknown) {
return JSON.stringify(syncComparableValue(left)) !== JSON.stringify(syncComparableValue(right));
function syncIdComparableValue(value: unknown) {
const comparable = syncComparableValue(value);
if (typeof comparable === "number" && Number.isInteger(comparable)) {
return String(comparable);
}
if (typeof comparable === "bigint") {
return comparable.toString();
}
if (typeof comparable === "string" && /^\d+$/.test(comparable.trim())) {
return comparable.trim().replace(/^0+(?=\d)/, "");
}
return comparable;
}
function syncComparableValueForField(field: string, value: unknown) {
if (field === "Organisation") {
return syncIdComparableValue(value);
}
return syncComparableValue(value);
}
function syncValueChanged(field: string, left: unknown, right: unknown) {
return JSON.stringify(syncComparableValueForField(field, left)) !== JSON.stringify(syncComparableValueForField(field, right));
}
function addSyncChange(changes: ZammadSyncChange[], field: string, from: unknown, to: unknown) {
if (syncValueChanged(from, to)) {
if (syncValueChanged(field, from, to)) {
changes.push({ field, from: syncComparableValue(from), to: syncComparableValue(to) });
}
}
+29 -3
View File
@@ -298,12 +298,38 @@ function comparablePreviewValue(value: unknown) {
return value ?? null;
}
function cachedValueChanged(left: unknown, right: unknown) {
return JSON.stringify(comparablePreviewValue(left)) !== JSON.stringify(comparablePreviewValue(right));
function comparablePreviewIdValue(value: unknown) {
const comparable = comparablePreviewValue(value);
if (typeof comparable === "number" && Number.isInteger(comparable)) {
return String(comparable);
}
if (typeof comparable === "bigint") {
return comparable.toString();
}
if (typeof comparable === "string" && /^\d+$/.test(comparable.trim())) {
return comparable.trim().replace(/^0+(?=\d)/, "");
}
return comparable;
}
function comparablePreviewValueForField(field: string, value: unknown) {
if (field === "Organisation") {
return comparablePreviewIdValue(value);
}
return comparablePreviewValue(value);
}
function cachedValueChanged(field: string, left: unknown, right: unknown) {
return JSON.stringify(comparablePreviewValueForField(field, left)) !== JSON.stringify(comparablePreviewValueForField(field, right));
}
function addCachedChange(changes: ZammadSyncChange[], field: string, from: unknown, to: unknown) {
if (cachedValueChanged(from, to)) {
if (cachedValueChanged(field, from, to)) {
changes.push({ field, from: comparablePreviewValue(from), to: comparablePreviewValue(to) });
}
}
View File
File mode changed.