mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-02-01 03:12:42 +01:00
Fix timeslider revision not changing in most cases
This commit is contained in:
parent
e34a4ea4ee
commit
bb21759d78
1 changed files with 23 additions and 17 deletions
|
@ -384,22 +384,10 @@ function loadBroadcastJS(socket, sendSocketMsg, fireWhenAllScriptsAreLoaded, Bro
|
||||||
}
|
}
|
||||||
if (changeset) applyChangeset(changeset, path.rev, true, timeDelta);
|
if (changeset) applyChangeset(changeset, path.rev, true, timeDelta);
|
||||||
|
|
||||||
|
// Loading changeset history for new revision
|
||||||
if (BroadcastSlider.getSliderLength() > 10000)
|
loadChangesetsForRevision(newRevision, update);
|
||||||
{
|
// Loading changeset history for old revision (to make diff between old and new revision)
|
||||||
var start = (Math.floor((newRevision) / 10000) * 10000); // revision 0 to 10
|
loadChangesetsForRevision(padContents.currentRevision - 1);
|
||||||
changesetLoader.queueUp(start, 100);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (BroadcastSlider.getSliderLength() > 1000)
|
|
||||||
{
|
|
||||||
var start = (Math.floor((newRevision) / 1000) * 1000); // (start from -1, go to 19) + 1
|
|
||||||
changesetLoader.queueUp(start, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
start = (Math.floor((newRevision) / 100) * 100);
|
|
||||||
|
|
||||||
changesetLoader.queueUp(start, 1, update);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var authors = _.map(padContents.getActiveAuthors(), function(name){
|
var authors = _.map(padContents.getActiveAuthors(), function(name){
|
||||||
|
@ -407,6 +395,24 @@ function loadBroadcastJS(socket, sendSocketMsg, fireWhenAllScriptsAreLoaded, Bro
|
||||||
});
|
});
|
||||||
BroadcastSlider.setAuthors(authors);
|
BroadcastSlider.setAuthors(authors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function loadChangesetsForRevision(revision, callback) {
|
||||||
|
if (BroadcastSlider.getSliderLength() > 10000)
|
||||||
|
{
|
||||||
|
var start = (Math.floor((revision) / 10000) * 10000); // revision 0 to 10
|
||||||
|
changesetLoader.queueUp(start, 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (BroadcastSlider.getSliderLength() > 1000)
|
||||||
|
{
|
||||||
|
var start = (Math.floor((revision) / 1000) * 1000); // (start from -1, go to 19) + 1
|
||||||
|
changesetLoader.queueUp(start, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
start = (Math.floor((revision) / 100) * 100);
|
||||||
|
|
||||||
|
changesetLoader.queueUp(start, 1, callback);
|
||||||
|
}
|
||||||
|
|
||||||
changesetLoader = {
|
changesetLoader = {
|
||||||
running: false,
|
running: false,
|
||||||
|
@ -482,7 +488,7 @@ function loadBroadcastJS(socket, sendSocketMsg, fireWhenAllScriptsAreLoaded, Bro
|
||||||
var astart = start + i * granularity - 1; // rev -1 is a blank single line
|
var astart = start + i * granularity - 1; // rev -1 is a blank single line
|
||||||
var aend = start + (i + 1) * granularity - 1; // totalRevs is the most recent revision
|
var aend = start + (i + 1) * granularity - 1; // totalRevs is the most recent revision
|
||||||
if (aend > data.actualEndNum - 1) aend = data.actualEndNum - 1;
|
if (aend > data.actualEndNum - 1) aend = data.actualEndNum - 1;
|
||||||
debugLog("adding changeset:", astart, aend);
|
//debugLog("adding changeset:", astart, aend);
|
||||||
var forwardcs = Changeset.moveOpsToNewPool(data.forwardsChangesets[i], pool, padContents.apool);
|
var forwardcs = Changeset.moveOpsToNewPool(data.forwardsChangesets[i], pool, padContents.apool);
|
||||||
var backwardcs = Changeset.moveOpsToNewPool(data.backwardsChangesets[i], pool, padContents.apool);
|
var backwardcs = Changeset.moveOpsToNewPool(data.backwardsChangesets[i], pool, padContents.apool);
|
||||||
revisionInfo.addChangeset(astart, aend, forwardcs, backwardcs, data.timeDeltas[i]);
|
revisionInfo.addChangeset(astart, aend, forwardcs, backwardcs, data.timeDeltas[i]);
|
||||||
|
|
Loading…
Reference in a new issue