[SSE] Update external data

This commit is contained in:
Julia Radzhabova 2022-06-07 17:43:17 +03:00
parent f60c3552c6
commit 398691700b
4 changed files with 75 additions and 1 deletions

View file

@ -23,6 +23,7 @@
options: <advanced options>,
key: 'key',
vkey: 'vkey',
referenceData: 'data for external paste',
info: {
owner: 'owner name',
folder: 'path to document',
@ -262,6 +263,7 @@
'onRequestCompareFile': <request file to compare>,// must call setRevisedFile method
'onRequestSharingSettings': <request sharing settings>,// must call setSharingSettings method
'onRequestCreateNew': <try to create document>,
'onRequestReferenceData': <try to refresh external data>,
}
}
@ -325,6 +327,7 @@
_config.editorConfig.canRequestCompareFile = _config.events && !!_config.events.onRequestCompareFile;
_config.editorConfig.canRequestSharingSettings = _config.events && !!_config.events.onRequestSharingSettings;
_config.editorConfig.canRequestCreateNew = _config.events && !!_config.events.onRequestCreateNew;
_config.editorConfig.canRequestReferenceData = _config.events && !!_config.events.onRequestReferenceData;
_config.frameEditorId = placeholderId;
_config.parentOrigin = window.location.origin;
@ -731,6 +734,13 @@
});
};
var _setReferenceData = function(data) {
_sendCommand({
command: 'setReferenceData',
data: data
});
};
var _serviceCommand = function(command, data) {
_sendCommand({
command: 'internalCommand',
@ -765,7 +775,8 @@
setFavorite : _setFavorite,
requestClose : _requestClose,
grabFocus : _grabFocus,
blurFocus : _blurFocus
blurFocus : _blurFocus,
setReferenceData : _setReferenceData
}
};

View file

@ -138,6 +138,10 @@ if (window.Common === undefined) {
'grabFocus': function(data) {
$me.trigger('grabfocus', data);
},
'setReferenceData': function(data) {
$me.trigger('setreferencedata', data);
}
};
@ -347,6 +351,10 @@ if (window.Common === undefined) {
_postMessage({event:'onRequestCreateNew'});
},
requestReferenceData: function (data) {
_postMessage({event:'onRequestReferenceData', data: data});
},
pluginsReady: function() {
_postMessage({ event: 'onPluginsReady' });
},

View file

@ -119,6 +119,11 @@ define([
me._state = {wsLock: false, wsProps: []};
me.fastcoauthtips = [];
me._TtHeight = 20;
me.externalData = {
stackRequests: [],
stackResponse: [],
callback: undefined
};
/** coauthoring begin **/
this.wrapEvents = {
apiHideComment: _.bind(this.onApiHideComment, this)
@ -369,6 +374,10 @@ define([
this.api.asc_registerCallback('asc_onShowPivotGroupDialog', _.bind(this.onShowPivotGroupDialog, this));
if (!this.permissions.isEditMailMerge && !this.permissions.isEditDiagram && !this.permissions.isEditOle)
this.api.asc_registerCallback('asc_doubleClickOnTableOleObject', _.bind(this.onDoubleClickOnTableOleObject, this));
if (this.permissions.canRequestReferenceData) {
this.api.asc_registerCallback('asc_onRefreshExternalData', _.bind(this.onRefreshExternalData, this));
Common.Gateway.on('setreferencedata', _.bind(this.setReferenceData, this));
}
}
this.api.asc_registerCallback('asc_onShowForeignCursorLabel', _.bind(this.onShowForeignCursorLabel, this));
this.api.asc_registerCallback('asc_onHideForeignCursorLabel', _.bind(this.onHideForeignCursorLabel, this));
@ -4082,6 +4091,51 @@ define([
}
},
onRefreshExternalData: function(arr, callback) {
if (this.permissions.isEdit && !this._isDisabled) {
var me = this;
me.externalData = {
stackRequests: [],
stackResponse: [],
callback: undefined
};
arr && arr.length>0 && arr.forEach(function(item) {
var data = {};
switch (item.type) {
case Asc.externalReferenceType.link:
data['link'] = item.data;
break;
case Asc.externalReferenceType.path:
data['path'] = item.data;
break;
case Asc.externalReferenceType.referenceData:
data['referenceData'] = item.data;
break;
}
me.externalData.stackRequests.push(data);
});
me.externalData.callback = callback;
me.requestReferenceData();
}
},
requestReferenceData: function() {
if (this.externalData.stackRequests.length>0) {
var data = this.externalData.stackRequests.shift();
Common.Gateway.requestReferenceData(data);
}
},
setReferenceData: function(data) {
if (this.permissions.isEdit && !this._isDisabled) {
data && this.externalData.stackResponse.push(data);
if (this.externalData.stackRequests.length>0)
this.requestReferenceData();
else if (this.externalData.callback)
this.externalData.callback(this.externalData.stackResponse);
}
},
getUserName: function(id){
var usersStore = SSE.getCollection('Common.Collections.Users');
if (usersStore){

View file

@ -505,6 +505,7 @@ define([
docInfo.put_EncryptedInfo(this.editorConfig.encryptionKeys);
docInfo.put_Lang(this.editorConfig.lang);
docInfo.put_Mode(this.editorConfig.mode);
docInfo.put_ReferenceData(data.doc.referenceData);
var coEditMode = !(this.editorConfig.coEditing && typeof this.editorConfig.coEditing == 'object') ? 'fast' : // fast by default
this.editorConfig.mode === 'view' && this.editorConfig.coEditing.change!==false ? 'fast' : // if can change mode in viewer - set fast for using live viewer