Expose project version history
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
import type {
|
||||
ProjectRevisionSourceDto,
|
||||
ProjectRevisionSummaryDto,
|
||||
} from "../types";
|
||||
|
||||
const sourceLabels: Record<ProjectRevisionSourceDto, string> = {
|
||||
user: "Bearbeitung",
|
||||
undo: "Rückgängig",
|
||||
redo: "Wiederholt",
|
||||
restore: "Wiederherstellung",
|
||||
migration: "Migration",
|
||||
};
|
||||
|
||||
const commandTypeLabels: Record<string, string> = {
|
||||
"circuit.update": "Stromkreis bearbeitet",
|
||||
"circuit.insert": "Stromkreis angelegt",
|
||||
"circuit.delete": "Stromkreis gelöscht",
|
||||
"circuit-device-row.update": "Gerätezeile bearbeitet",
|
||||
"circuit-device-row.insert": "Gerätezeile angelegt",
|
||||
"circuit-device-row.delete": "Gerätezeile gelöscht",
|
||||
"circuit-device-row.move": "Gerätezeile verschoben",
|
||||
"circuit-device-row.move-with-new-circuit":
|
||||
"Gerätezeile in neuen Stromkreis verschoben",
|
||||
"circuit.reorder-section": "Stromkreise sortiert",
|
||||
"circuit.reorder-sections": "Stromkreise bereichsübergreifend sortiert",
|
||||
"circuit.renumber-section": "Bereich neu nummeriert",
|
||||
"project-device.update": "Projektgerät bearbeitet",
|
||||
"project-device.insert": "Projektgerät angelegt",
|
||||
"project-device.delete": "Projektgerät gelöscht",
|
||||
"project-device.sync-rows": "Projektgerät-Verknüpfungen geändert",
|
||||
"project.restore-state": "Projektstand wiederhergestellt",
|
||||
};
|
||||
|
||||
export function getProjectRevisionSourceLabel(
|
||||
source: ProjectRevisionSourceDto
|
||||
) {
|
||||
return sourceLabels[source];
|
||||
}
|
||||
|
||||
export function getProjectRevisionDescription(
|
||||
revision: ProjectRevisionSummaryDto
|
||||
) {
|
||||
return (
|
||||
revision.description?.trim() ||
|
||||
commandTypeLabels[revision.commandType] ||
|
||||
revision.commandType
|
||||
);
|
||||
}
|
||||
|
||||
export function mergeProjectRevisionPages(
|
||||
current: ProjectRevisionSummaryDto[],
|
||||
next: ProjectRevisionSummaryDto[]
|
||||
) {
|
||||
const byId = new Map(
|
||||
[...current, ...next].map((revision) => [
|
||||
revision.revisionId,
|
||||
revision,
|
||||
])
|
||||
);
|
||||
return [...byId.values()].sort(
|
||||
(left, right) => right.revisionNumber - left.revisionNumber
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user