aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2020-10-05 12:51:16 -0400
committerbobzel <zzzman@gmail.com>2020-10-05 12:51:16 -0400
commit1f1ec5e1ce014cfc96400b908e5e9a439c30fca7 (patch)
tree288795dd58955d5c60f78660f1bdacd221b807ce
parent2a5cceb16d102a2139ca876983577eb8d882e9e0 (diff)
try sending list back to sender if we notice the set of fields is different than the originally sent set of fields
-rw-r--r--src/server/websocket.ts11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/server/websocket.ts b/src/server/websocket.ts
index 7d13480f5..0d19c3a91 100644
--- a/src/server/websocket.ts
+++ b/src/server/websocket.ts
@@ -276,9 +276,18 @@ export namespace WebSocket {
delete diff.diff.$addToSet;
const updatefield = Array.from(Object.keys(diff.diff.$set))[0];
const list = (results as any).fields?.[updatefield.replace("fields.", "")].fields;
+ const prelen = diff.diff.$set[updatefield].fields.length;
list.forEach((item: any) => !diff.diff.$set[updatefield].fields.some((x: any) => x.fieldId === item.fieldId) && diff.diff.$set[updatefield].fields.push(item));
+ const sendBack = diff.diff.$set[updatefield].fields.length !== prelen;
Database.Instance.update(diff.id, diff.diff,
- () => socket.broadcast.emit(MessageStore.UpdateField.Message, diff), false);
+ () => {
+ if (sendBack) {
+ const id = socket.id;
+ socket.id = "";
+ socket.broadcast.emit(MessageStore.UpdateField.Message, diff);
+ socket.id = id;
+ } else socket.broadcast.emit(MessageStore.UpdateField.Message, diff);
+ }, false);
console.log(results, diff.diff.$set);
}