Fix wopi messages

This commit is contained in:
Julia Radzhabova 2021-05-06 14:37:46 +03:00
parent 9a1c2a0b91
commit c14408bd9c
6 changed files with 62 additions and 11 deletions

View file

@ -689,6 +689,22 @@
}); });
}; };
var _grabFocus = function(data) {
setTimeout(function(){
_sendCommand({
command: 'grabFocus',
data: data
});
}, 10);
};
var _blurFocus = function(data) {
_sendCommand({
command: 'blurFocus',
data: data
});
};
var _serviceCommand = function(command, data) { var _serviceCommand = function(command, data) {
_sendCommand({ _sendCommand({
command: 'internalCommand', command: 'internalCommand',
@ -721,7 +737,9 @@
setMailMergeRecipients: _setMailMergeRecipients, setMailMergeRecipients: _setMailMergeRecipients,
setRevisedFile : _setRevisedFile, setRevisedFile : _setRevisedFile,
setFavorite : _setFavorite, setFavorite : _setFavorite,
requestClose : _requestClose requestClose : _requestClose,
grabFocus : _grabFocus,
blurFocus : _blurFocus
} }
}; };

View file

@ -65,7 +65,8 @@ div {
var postMessageOrigin; var postMessageOrigin;
var lang = "en-US"; var lang = "en-US";
var startTime; var startTime;
var editNotificationPostMessage; var documentChanged;
var sendNotificationTimer;
var innerAlert = function (message) { var innerAlert = function (message) {
if (console && console.log) if (console && console.log)
@ -75,11 +76,11 @@ div {
var commandMap = { var commandMap = {
'Blur_Focus': function (data) { 'Blur_Focus': function (data) {
innerAlert('Blur_Focus'); innerAlert('Blur_Focus');
// docEditor.blurFocus(); docEditor.blurFocus();
}, },
'Grab_Focus': function (data) { 'Grab_Focus': function (data) {
innerAlert('Grab_Focus'); innerAlert('Grab_Focus');
// docEditor.grabFocus(); docEditor.grabFocus();
}, },
'Host_PostmessageReady': function (data) { 'Host_PostmessageReady': function (data) {
innerAlert('Host_PostmessageReady'); innerAlert('Host_PostmessageReady');
@ -101,7 +102,6 @@ div {
}; };
var _onMessage = function(msg) { var _onMessage = function(msg) {
// TODO: check message origin
if (msg.origin !== postMessageOrigin) return; if (msg.origin !== postMessageOrigin) return;
var data = msg.data; var data = msg.data;
@ -118,9 +118,9 @@ div {
} }
if (cmd) { if (cmd) {
handler = commandMap[cmd.command]; handler = commandMap[cmd.MessageId];
if (handler) { if (handler) {
handler.call(this, cmd.data); handler.call(this, cmd);
} }
} }
}; };
@ -140,9 +140,18 @@ div {
innerAlert("App ready"); innerAlert("App ready");
}; };
var sendEditNotification = function () {
documentChanged && _postMessage('Edit_Notification', {});
documentChanged = false;
};
var onDocumentStateChange = function (event) { var onDocumentStateChange = function (event) {
if (editNotificationPostMessage && event.data) { if (event.data) {
_postMessage('Edit_Notification', {}); documentChanged = true;
if (sendNotificationTimer===undefined) {
sendNotificationTimer = setInterval(sendEditNotification, 30000);
sendEditNotification();
}
} }
}; };
@ -226,7 +235,7 @@ div {
}, },
events: { events: {
"onAppReady": onAppReady, "onAppReady": onAppReady,
"onDocumentStateChange": onDocumentStateChange, "onDocumentStateChange": fileInfo.EditNotificationPostMessage ? onDocumentStateChange : undefined,
'onRequestEditRights': fileInfo.EditModePostMessage ? onRequestEditRights : undefined, 'onRequestEditRights': fileInfo.EditModePostMessage ? onRequestEditRights : undefined,
"onError": onError, "onError": onError,
"onRequestClose": fileInfo. ClosePostMessage ? onRequestClose : undefined, "onRequestClose": fileInfo. ClosePostMessage ? onRequestClose : undefined,
@ -236,8 +245,9 @@ div {
}; };
postMessageOrigin = fileInfo.PostMessageOrigin; postMessageOrigin = fileInfo.PostMessageOrigin;
if (postMessageOrigin && (typeof postMessageOrigin === 'string') && postMessageOrigin.charAt(postMessageOrigin.length-1)=='/')
postMessageOrigin = postMessageOrigin.substring(0, postMessageOrigin.length - 1);
lang = config.editorConfig.lang; lang = config.editorConfig.lang;
editNotificationPostMessage = fileInfo.EditNotificationPostMessage;
startTime = Date.now(); startTime = Date.now();
docEditor = new DocsAPI.DocEditor("iframeEditor", config); docEditor = new DocsAPI.DocEditor("iframeEditor", config);

View file

@ -130,6 +130,14 @@ if (window.Common === undefined) {
'requestClose': function(data) { 'requestClose': function(data) {
$me.trigger('requestclose', data); $me.trigger('requestclose', data);
},
'blurFocus': function(data) {
$me.trigger('blurfocus', data);
},
'grabFocus': function(data) {
$me.trigger('grabfocus', data);
} }
}; };

View file

@ -223,6 +223,7 @@ define([
Common.Gateway.on('init', _.bind(this.loadConfig, this)); Common.Gateway.on('init', _.bind(this.loadConfig, this));
Common.Gateway.on('showmessage', _.bind(this.onExternalMessage, this)); Common.Gateway.on('showmessage', _.bind(this.onExternalMessage, this));
Common.Gateway.on('opendocument', _.bind(this.loadDocument, this)); Common.Gateway.on('opendocument', _.bind(this.loadDocument, this));
Common.Gateway.on('grabfocus', _.bind(this.onGrabFocus, this));
Common.Gateway.appReady(); Common.Gateway.appReady();
// $(window.top).resize(_.bind(this.onDocumentResize, this)); // $(window.top).resize(_.bind(this.onDocumentResize, this));
@ -2530,6 +2531,10 @@ define([
this._renameDialog.show(Common.Utils.innerWidth() - this._renameDialog.options.width - 15, 30); this._renameDialog.show(Common.Utils.innerWidth() - this._renameDialog.options.width - 15, 30);
}, },
onGrabFocus: function() {
this.getApplication().getController('DocumentHolder').getView().focus();
},
leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' then \'Save\' to save them. Click \'Leave this Page\' to discard all the unsaved changes.', leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' then \'Save\' to save them. Click \'Leave this Page\' to discard all the unsaved changes.',
criticalErrorTitle: 'Error', criticalErrorTitle: 'Error',
notcriticalErrorTitle: 'Warning', notcriticalErrorTitle: 'Warning',

View file

@ -199,6 +199,7 @@ define([
Common.Gateway.on('init', _.bind(this.loadConfig, this)); Common.Gateway.on('init', _.bind(this.loadConfig, this));
Common.Gateway.on('showmessage', _.bind(this.onExternalMessage, this)); Common.Gateway.on('showmessage', _.bind(this.onExternalMessage, this));
Common.Gateway.on('opendocument', _.bind(this.loadDocument, this)); Common.Gateway.on('opendocument', _.bind(this.loadDocument, this));
Common.Gateway.on('grabfocus', _.bind(this.onGrabFocus, this));
Common.Gateway.appReady(); Common.Gateway.appReady();
this.getApplication().getController('Viewport').setApi(this.api); this.getApplication().getController('Viewport').setApi(this.api);
@ -2327,6 +2328,10 @@ define([
return"#"+("000000"+color.toString(16)).substr(-6); return"#"+("000000"+color.toString(16)).substr(-6);
}, },
onGrabFocus: function() {
this.getApplication().getController('DocumentHolder').getView().focus();
},
// Translation // Translation
leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' then \'Save\' to save them. Click \'Leave this Page\' to discard all the unsaved changes.', leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' then \'Save\' to save them. Click \'Leave this Page\' to discard all the unsaved changes.',
criticalErrorTitle: 'Error', criticalErrorTitle: 'Error',

View file

@ -226,6 +226,7 @@ define([
Common.Gateway.on('showmessage', _.bind(this.onExternalMessage, this)); Common.Gateway.on('showmessage', _.bind(this.onExternalMessage, this));
Common.Gateway.on('opendocument', _.bind(this.loadDocument, this)); Common.Gateway.on('opendocument', _.bind(this.loadDocument, this));
Common.Gateway.on('internalcommand', _.bind(this.onInternalCommand, this)); Common.Gateway.on('internalcommand', _.bind(this.onInternalCommand, this));
Common.Gateway.on('grabfocus', _.bind(this.onGrabFocus, this));
Common.Gateway.appReady(); Common.Gateway.appReady();
this.getApplication().getController('Viewport').setApi(this.api); this.getApplication().getController('Viewport').setApi(this.api);
@ -2524,6 +2525,10 @@ define([
this._renameDialog.show(Common.Utils.innerWidth() - this._renameDialog.options.width - 15, 30); this._renameDialog.show(Common.Utils.innerWidth() - this._renameDialog.options.width - 15, 30);
}, },
onGrabFocus: function() {
this.getApplication().getController('DocumentHolder').getView().focus();
},
leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' then \'Save\' to save them. Click \'Leave this Page\' to discard all the unsaved changes.', leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' then \'Save\' to save them. Click \'Leave this Page\' to discard all the unsaved changes.',
criticalErrorTitle: 'Error', criticalErrorTitle: 'Error',
notcriticalErrorTitle: 'Warning', notcriticalErrorTitle: 'Warning',