fix bug where drag&drop would not create new object versions

This commit is contained in:
marlon-erler
2024-07-13 11:56:15 +02:00
parent ea4d27ce64
commit 414ab87110
4 changed files with 35 additions and 13 deletions
+15 -7
View File
@@ -955,6 +955,14 @@
addObjectContent = (messageObject, content) => { addObjectContent = (messageObject, content) => {
messageObject.contentVersions[content.id] = content; messageObject.contentVersions[content.id] = content;
}; };
updateObjectContent = (messageObject, content) => {
const latest = this.getMostRecentContent(messageObject);
Object.entries(content).forEach((entry) => {
const [key, value] = entry;
latest[key] = value;
});
this.addObjectContent(messageObject, latest);
};
addObject = (messageObject, ignoreIfUnchanged = false) => { addObject = (messageObject, ignoreIfUnchanged = false) => {
const existingObject = this.objects.value.get(messageObject.id); const existingObject = this.objects.value.get(messageObject.id);
if (existingObject) { if (existingObject) {
@@ -1167,8 +1175,6 @@
); );
var currentAddress = restoreState("current-address", ""); var currentAddress = restoreState("current-address", "");
var previousAddresses = restoreListState("previous-addresses"); var previousAddresses = restoreListState("previous-addresses");
previousAddresses.add("a", "a", "A");
previousAddresses.add("a", "a", "A");
var cannotDisonnect = createProxyState( var cannotDisonnect = createProxyState(
[isConnected], [isConnected],
() => isConnected.value == false () => isConnected.value == false
@@ -1648,8 +1654,9 @@
if (!id) return; if (!id) return;
const messageObject = chat.objects.value.get(id); const messageObject = chat.objects.value.get(id);
if (!messageObject) return; if (!messageObject) return;
const latest = chat.getMostRecentContent(messageObject); const newContent = chat.createObjectContent();
latest.categoryName = kanbanBoard.category; newContent.categoryName = kanbanBoard.category;
chat.updateObjectContent(messageObject, newContent);
chat.addObjectAndSend(messageObject); chat.addObjectAndSend(messageObject);
} }
const itemToViewEntry = (kanbanBoardItem) => { const itemToViewEntry = (kanbanBoardItem) => {
@@ -1976,9 +1983,10 @@
if (!id) return; if (!id) return;
const messageObject = chat.objects.value.get(id); const messageObject = chat.objects.value.get(id);
if (!messageObject) return; if (!messageObject) return;
const latest = chat.getMostRecentContent(messageObject); const newContent = chat.createObjectContent();
latest.status = status; newContent.categoryName = category;
latest.categoryName = category; newContent.status = status;
chat.updateObjectContent(messageObject, newContent);
chat.addObjectAndSend(messageObject); chat.addObjectAndSend(messageObject);
} }
const cellItemToEntryView = (cellItem) => ObjectEntryView( const cellItemToEntryView = (cellItem) => ObjectEntryView(
+13 -1
View File
@@ -334,7 +334,7 @@ export class Chat {
return messageObject; return messageObject;
}; };
createObjectContent = () => { createObjectContent = (): MessageObjectContent => {
return { return {
id: React.UUID(), id: React.UUID(),
isoDateVersionCreated: new Date().toISOString(), isoDateVersionCreated: new Date().toISOString(),
@@ -348,6 +348,18 @@ export class Chat {
messageObject.contentVersions[content.id] = content; messageObject.contentVersions[content.id] = content;
}; };
updateObjectContent = (
messageObject: MessageObject,
content: MessageObjectContent
): void => {
const latest = this.getMostRecentContent(messageObject);
Object.entries(content).forEach((entry) => {
const [key, value] = entry;
latest[key] = value;
});
this.addObjectContent(messageObject, latest);
};
addObject = ( addObject = (
messageObject: MessageObject, messageObject: MessageObject,
ignoreIfUnchanged: boolean = false ignoreIfUnchanged: boolean = false
+3 -2
View File
@@ -108,8 +108,9 @@ function KanbanBoardView(
const messageObject = chat.objects.value.get(id); const messageObject = chat.objects.value.get(id);
if (!messageObject) return; if (!messageObject) return;
const latest = chat.getMostRecentContent(messageObject); const newContent = chat.createObjectContent();
latest.categoryName = kanbanBoard.category; newContent.categoryName = kanbanBoard.category;
chat.updateObjectContent(messageObject, newContent);
chat.addObjectAndSend(messageObject); chat.addObjectAndSend(messageObject);
} }
+4 -3
View File
@@ -230,9 +230,10 @@ function StatusColumnView(
const messageObject = chat.objects.value.get(id); const messageObject = chat.objects.value.get(id);
if (!messageObject) return; if (!messageObject) return;
const latest = chat.getMostRecentContent(messageObject); const newContent = chat.createObjectContent();
latest.status = status; newContent.categoryName = category;
latest.categoryName = category; newContent.status = status;
chat.updateObjectContent(messageObject, newContent);
chat.addObjectAndSend(messageObject); chat.addObjectAndSend(messageObject);
} }