aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/Message.ts2
-rw-r--r--src/server/websocket.ts7
2 files changed, 7 insertions, 2 deletions
diff --git a/src/server/Message.ts b/src/server/Message.ts
index 4599708c9..b904a5ba3 100644
--- a/src/server/Message.ts
+++ b/src/server/Message.ts
@@ -56,7 +56,7 @@ export namespace MessageStore {
export const GetRefField = new Message<string>('Get Ref Field');
export const GetRefFields = new Message<string[]>('Get Ref Fields');
export const UpdateField = new Message<Diff>('Update Ref Field');
- export const CreateField = new Message<Reference>('Create Ref Field');
+ export const CreateDocField = new Message<Reference>('Create Ref Field');
export const DeleteField = new Message<string>('Delete field');
export const DeleteFields = new Message<string[]>('Delete fields');
diff --git a/src/server/websocket.ts b/src/server/websocket.ts
index f10455680..f588151a5 100644
--- a/src/server/websocket.ts
+++ b/src/server/websocket.ts
@@ -240,7 +240,7 @@ export namespace WebSocket {
// if the client and server have different versions of the data after
// deletion, they will have different lengths and the server will
// send its version of the data to the client
- const sendBack = diff.diff.length !== remListItems.length;
+ const sendBack = diff.diff.length !== diff.diff.$set[updatefield].fields.length;
delete diff.diff.length;
Database.Instance.update(
diff.id,
@@ -306,6 +306,10 @@ export namespace WebSocket {
});
}
+ function CreateDocField(newValue: serializedDoctype) {
+ Database.Instance.insert(newValue);
+ }
+
export async function initialize(isRelease: boolean, credentials: SecureContextOptions) {
let io: Server;
if (isRelease) {
@@ -367,6 +371,7 @@ export namespace WebSocket {
ServerUtils.AddServerHandler(socket, MessageStore.DeleteAll, () => doDelete(false));
}
+ ServerUtils.AddServerHandler(socket, MessageStore.CreateDocField, CreateDocField);
ServerUtils.AddServerHandler(socket, MessageStore.UpdateField, diff => UpdateField(socket, diff));
ServerUtils.AddServerHandler(socket, MessageStore.DeleteField, id => DeleteField(socket, id));
ServerUtils.AddServerHandler(socket, MessageStore.DeleteFields, ids => DeleteFields(socket, ids));