editor: Don't allow edits during reconnecting

Not the best fix but better than the current status quo.
backend-test
John McLear 2020-05-29 12:35:00 +01:00 committed by GitHub
parent d8e067a5f9
commit b2a723e57f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 0 deletions

View File

@ -173,8 +173,20 @@ function sendClientReady(isReconnect, messageType)
//this is a reconnect, lets tell the server our revisionnumber //this is a reconnect, lets tell the server our revisionnumber
if(isReconnect == true) if(isReconnect == true)
{ {
// Hammer approach for now. This is obviously wrong and needs a proper fix
// TODO: See https://github.com/ether/etherpad-lite/issues/3830
document.location=document.location;
// Switching to pad should work but doesn't...
// return pad.switchToPad(padId); // hacky but whatever.
// It might be related to Auth because failure logs...
// [ERROR] console - Auth was never applied to a session.
// If you are using the stress-test tool then restart Etherpad
// and the Stress test tool.
msg.client_rev=pad.collabClient.getCurrentRevisionNumber(); msg.client_rev=pad.collabClient.getCurrentRevisionNumber();
msg.reconnect=true; msg.reconnect=true;
} }
socket.json.send(msg); socket.json.send(msg);
@ -210,6 +222,7 @@ function handshake()
}); });
socket.on('reconnecting', function() { socket.on('reconnecting', function() {
padeditor.disable();
pad.collabClient.setStateIdle(); pad.collabClient.setStateIdle();
pad.collabClient.setIsPendingRevision(true); pad.collabClient.setIsPendingRevision(true);
pad.collabClient.setChannelState("RECONNECTING"); pad.collabClient.setChannelState("RECONNECTING");