Support version restore states (#166)
See https://gerrit.libreoffice.org/gitweb?p=online.git;a=commit;h=1fabfd9fe34815cab54c1417cfc7e541adb6a341 for details
This commit is contained in:
parent
d61999d709
commit
f00e6cdb4a
@ -70,6 +70,8 @@ var documentsMain = {
|
|||||||
loadErrorHint : '',
|
loadErrorHint : '',
|
||||||
renderComplete: false, // false till page is rendered with all required data about the document(s)
|
renderComplete: false, // false till page is rendered with all required data about the document(s)
|
||||||
toolbar : '<div id="ocToolbar"><div id="ocToolbarInside"></div><span id="toolbar" class="claro"></span></div>',
|
toolbar : '<div id="ocToolbar"><div id="ocToolbarInside"></div><span id="toolbar" class="claro"></span></div>',
|
||||||
|
$deferredVersionRestoreAck: null,
|
||||||
|
wopiClientFeatures: null,
|
||||||
|
|
||||||
// generates docKey for given fileId
|
// generates docKey for given fileId
|
||||||
_generateDocKey: function(wopiFileId) {
|
_generateDocKey: function(wopiFileId) {
|
||||||
@ -260,30 +262,31 @@ var documentsMain = {
|
|||||||
// close the viewer
|
// close the viewer
|
||||||
documentsMain.onCloseViewer();
|
documentsMain.onCloseViewer();
|
||||||
|
|
||||||
// close the editor
|
documentsMain.WOPIPostMessage($('#loleafletframe')[0], 'Host_VersionRestore', {Status: 'Pre_Restore'});
|
||||||
documentsMain.UI.hideEditor();
|
|
||||||
|
|
||||||
// If there are changes in the opened editor, we need to wait
|
documentsMain.$deferredVersionRestoreAck = $.Deferred();
|
||||||
// for sometime before these changes can be saved and a revision is created for it,
|
jQuery.when(documentsMain.$deferredVersionRestoreAck).
|
||||||
// before restoring to requested version.
|
done(function(args) {
|
||||||
documentsMain.overlay.documentOverlay('show');
|
// restore selected version
|
||||||
setTimeout(function() {
|
$.ajax({
|
||||||
// restore selected version
|
type: 'GET',
|
||||||
$.ajax({
|
url: e.currentTarget.href,
|
||||||
type: 'GET',
|
success: function(response) {
|
||||||
url: e.currentTarget.href,
|
if (response.status === 'error') {
|
||||||
success: function(response) {
|
documentsMain.UI.notify(t('richdocuments', 'Failed to revert the document to older version'));
|
||||||
if (response.status === 'error') {
|
}
|
||||||
documentsMain.UI.notify(t('richdocuments', 'Failed to revert the document to older version'));
|
|
||||||
|
// load the file again, it should get reverted now
|
||||||
|
window.location.reload();
|
||||||
|
documentsMain.overlay.documentOverlay('hide');
|
||||||
}
|
}
|
||||||
|
});
|
||||||
// load the file again, it should get reverted now
|
|
||||||
window.location = OC.generateUrl('apps/richdocuments/index#{fileid}', {fileid: e.currentTarget.parentElement.dataset.fileid});
|
|
||||||
window.location.reload();
|
|
||||||
documentsMain.overlay.documentOverlay('hide');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}, 1000);
|
|
||||||
|
// resolve the deferred object immediately if client doesn't support version states
|
||||||
|
if (!documentsMain.wopiClientFeatures || !documentsMain.wopiClientFeatures.VersionStates) {
|
||||||
|
documentsMain.$deferredVersionRestoreAck.resolve();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// fake click on first revision (i.e current revision)
|
// fake click on first revision (i.e current revision)
|
||||||
@ -344,6 +347,7 @@ var documentsMain = {
|
|||||||
var editorInitListener = function(e) {
|
var editorInitListener = function(e) {
|
||||||
var msg = JSON.parse(e.data);
|
var msg = JSON.parse(e.data);
|
||||||
if (msg.MessageId === 'App_LoadingStatus') {
|
if (msg.MessageId === 'App_LoadingStatus') {
|
||||||
|
documentsMain.wopiClientFeatures = msg.Values.Features;
|
||||||
window.removeEventListener('message', editorInitListener, false);
|
window.removeEventListener('message', editorInitListener, false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -398,6 +402,17 @@ var documentsMain = {
|
|||||||
true,
|
true,
|
||||||
t('richdocuments', 'New filename'),
|
t('richdocuments', 'New filename'),
|
||||||
false);
|
false);
|
||||||
|
} else if (msgId === 'App_VersionRestore') {
|
||||||
|
if (!documentsMain.$deferredVersionRestoreAck)
|
||||||
|
{
|
||||||
|
console.warn('No version restore deferred object found.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.Status === 'Pre_Restore_Ack') {
|
||||||
|
// user instructed to restore the version
|
||||||
|
documentsMain.$deferredVersionRestoreAck.resolve();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user