mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-22 08:26:16 -04:00
collab_client: Convert state
var to committing
bool
This commit is contained in:
parent
3ee6b5eb2b
commit
5c445eac21
1 changed files with 9 additions and 9 deletions
|
@ -39,7 +39,7 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad)
|
||||||
pad = _pad; // Inject pad to avoid a circular dependency.
|
pad = _pad; // Inject pad to avoid a circular dependency.
|
||||||
|
|
||||||
let rev = serverVars.rev;
|
let rev = serverVars.rev;
|
||||||
let state = 'IDLE';
|
let committing = false;
|
||||||
let stateMessage;
|
let stateMessage;
|
||||||
let channelState = 'CONNECTING';
|
let channelState = 'CONNECTING';
|
||||||
let lastCommitTime = 0;
|
let lastCommitTime = 0;
|
||||||
|
@ -88,11 +88,11 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad)
|
||||||
|
|
||||||
const t = (+new Date());
|
const t = (+new Date());
|
||||||
|
|
||||||
if (state !== 'IDLE') {
|
if (committing) {
|
||||||
if (state === 'COMMITTING' && msgQueue.length === 0 && (t - lastCommitTime) > 20000) {
|
if (msgQueue.length === 0 && (t - lastCommitTime) > 20000) {
|
||||||
// a commit is taking too long
|
// a commit is taking too long
|
||||||
setChannelState('DISCONNECTED', 'slowcommit');
|
setChannelState('DISCONNECTED', 'slowcommit');
|
||||||
} else if (state === 'COMMITTING' && msgQueue.length === 0 && (t - lastCommitTime) > 5000) {
|
} else if (msgQueue.length === 0 && (t - lastCommitTime) > 5000) {
|
||||||
callbacks.onConnectionTrouble('SLOW');
|
callbacks.onConnectionTrouble('SLOW');
|
||||||
} else {
|
} else {
|
||||||
// run again in a few seconds, to detect a disconnect
|
// run again in a few seconds, to detect a disconnect
|
||||||
|
@ -135,7 +135,7 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad)
|
||||||
const userChangesData = editor.prepareUserChangeset();
|
const userChangesData = editor.prepareUserChangeset();
|
||||||
if (userChangesData.changeset) {
|
if (userChangesData.changeset) {
|
||||||
lastCommitTime = t;
|
lastCommitTime = t;
|
||||||
state = 'COMMITTING';
|
committing = true;
|
||||||
stateMessage = {
|
stateMessage = {
|
||||||
type: 'USER_CHANGES',
|
type: 'USER_CHANGES',
|
||||||
baseRev: rev,
|
baseRev: rev,
|
||||||
|
@ -281,7 +281,7 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad)
|
||||||
setIsPendingRevision(false);
|
setIsPendingRevision(false);
|
||||||
}
|
}
|
||||||
} else if (msg.type === 'NO_COMMIT_PENDING') {
|
} else if (msg.type === 'NO_COMMIT_PENDING') {
|
||||||
if (state === 'COMMITTING') {
|
if (committing) {
|
||||||
// server missed our commit message; abort that commit
|
// server missed our commit message; abort that commit
|
||||||
setStateIdle();
|
setStateIdle();
|
||||||
handleUserChanges();
|
handleUserChanges();
|
||||||
|
@ -458,7 +458,7 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad)
|
||||||
const obj = {};
|
const obj = {};
|
||||||
obj.userInfo = userSet[userId];
|
obj.userInfo = userSet[userId];
|
||||||
obj.baseRev = rev;
|
obj.baseRev = rev;
|
||||||
if (state === 'COMMITTING' && stateMessage) {
|
if (committing && stateMessage) {
|
||||||
obj.committedChangeset = stateMessage.changeset;
|
obj.committedChangeset = stateMessage.changeset;
|
||||||
obj.committedChangesetAPool = stateMessage.apool;
|
obj.committedChangesetAPool = stateMessage.apool;
|
||||||
editor.applyPreparedChangesetToBase();
|
editor.applyPreparedChangesetToBase();
|
||||||
|
@ -472,7 +472,7 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad)
|
||||||
};
|
};
|
||||||
|
|
||||||
const setStateIdle = () => {
|
const setStateIdle = () => {
|
||||||
state = 'IDLE';
|
committing = false;
|
||||||
callbacks.onInternalAction('newlyIdle');
|
callbacks.onInternalAction('newlyIdle');
|
||||||
schedulePerhapsCallIdleFuncs();
|
schedulePerhapsCallIdleFuncs();
|
||||||
};
|
};
|
||||||
|
@ -490,7 +490,7 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad)
|
||||||
|
|
||||||
const schedulePerhapsCallIdleFuncs = () => {
|
const schedulePerhapsCallIdleFuncs = () => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (state === 'IDLE') {
|
if (!committing) {
|
||||||
while (idleFuncs.length > 0) {
|
while (idleFuncs.length > 0) {
|
||||||
const f = idleFuncs.shift();
|
const f = idleFuncs.shift();
|
||||||
f();
|
f();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue