[DE mobile] Make main controller, add run autostart macroses

This commit is contained in:
JuliaSvinareva 2021-04-12 19:03:42 +03:00
parent cf7141f756
commit 89d8b3703e
3 changed files with 74 additions and 10 deletions

View file

@ -52,7 +52,11 @@
"errorAccessDeny": "You are trying to perform an action you do not have rights for.<br>Please contact your Document Server administrator.",
"errorUpdateVersion": "The file version has been changed. The page will be reloaded.",
"titleUpdateVersion": "Version changed"
"titleUpdateVersion": "Version changed",
"textHasMacros": "The file contains automatic macros.<br>Do you want to run macros?",
"textRemember": "Remember my choice",
"textYes": "Yes",
"textNo": "No"
},
"Error": {
"criticalErrorTitle": "Error",

View file

@ -209,6 +209,7 @@ const ErrorController = inject('storeAppOptions')(({storeAppOptions, LoadingDocu
}
f7.dialog.create({
cssClass: 'error-dialog',
title : config.title,
text : config.msg,
buttons: [

View file

@ -124,21 +124,21 @@ class MainController extends Component {
docInfo.put_Permissions(_permissions);
docInfo.put_EncryptedInfo(this.editorConfig.encryptionKeys);
// var enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false);
// docInfo.asc_putIsEnabledMacroses(!!enable);
// enable = !this.editorConfig.customization || (this.editorConfig.customization.plugins!==false);
// docInfo.asc_putIsEnabledPlugins(!!enable);
let enable = !this.editorConfig.customization || (this.editorConfig.customization.macros !== false);
docInfo.asc_putIsEnabledMacroses(!!enable);
enable = !this.editorConfig.customization || (this.editorConfig.customization.plugins !== false);
docInfo.asc_putIsEnabledPlugins(!!enable);
// let type = /^(?:(pdf|djvu|xps))$/.exec(data.doc.fileType);
// if (type && typeof type[1] === 'string') {
// this.permissions.edit = this.permissions.review = false;
// }
const type = /^(?:(pdf|djvu|xps))$/.exec(data.doc.fileType);
if (type && typeof type[1] === 'string') {
this.permissions.edit = this.permissions.review = false;
}
}
this.api.asc_registerCallback('asc_onGetEditorPermissions', onEditorPermissions);
this.api.asc_registerCallback('asc_onDocumentContentReady', onDocumentContentReady);
this.api.asc_registerCallback('asc_onLicenseChanged', this.onLicenseChanged.bind(this));
// this.api.asc_registerCallback('asc_onRunAutostartMacroses', _.bind(this.onRunAutostartMacroses, this));
this.api.asc_registerCallback('asc_onRunAutostartMacroses', this.onRunAutostartMacroses.bind(this));
this.api.asc_setDocInfo(docInfo);
this.api.asc_getEditorPermissions(this.editorConfig.licenseUrl, this.editorConfig.customerId);
@ -258,6 +258,19 @@ class MainController extends Component {
Common.Gateway.on('showmessage', this.onExternalMessage.bind(this));
Common.Gateway.on('opendocument', loadDocument);
Common.Gateway.appReady();
Common.Gateway.on('internalcommand', function(data) {
if (data.command === 'hardBack') {
if ($$('.modal-in').length > 0) {
if ( !($$('.error-dialog.modal-in').length > 0) ) {
f7.dialog.close();
}
Common.Gateway.internalMessage('hardBack', false);
} else
Common.Gateway.internalMessage('hardBack', true);
}
});
Common.Gateway.internalMessage('listenHardBack');
}, error => {
console.log('promise failed ' + error);
});
@ -677,6 +690,52 @@ class MainController extends Component {
}
}
onRunAutostartMacroses () {
const config = this.props.storeAppOptions.config;
const enable = !config.customization || (config.customization.macros !== false);
if (enable) {
const value = this.props.storeApplicationSettings.macrosMode;
if (value === 1) {
this.api.asc_runAutostartMacroses();
} else if (value === 0) {
const _t = this._t;
f7.dialog.create({
title: _t.notcriticalErrorTitle,
text: _t.textHasMacros,
content: `<div class="checkbox-in-modal">
<label class="checkbox">
<input type="checkbox" name="checkbox-show-macros" />
<i class="icon-checkbox"></i>
</label>
<span class="right-text">${_t.textRemember}</span>
</div>`,
buttons: [{
text: _t.textYes,
onClick: () => {
const dontshow = $$('input[name="checkbox-show-macros"]').prop('checked');
if (dontshow) {
this.props.storeApplicationSettings.changeMacrosSettings(1);
LocalStorage.setItem("de-mobile-macros-mode", 1);
}
setTimeout(() => {
this.api.asc_runAutostartMacroses();
}, 1);
}},
{
text: _t.textNo,
onClick: () => {
const dontshow = $$('input[name="checkbox-show-macros"]').prop('checked');
if (dontshow) {
this.props.storeApplicationSettings.changeMacrosSettings(2);
LocalStorage.setItem("de-mobile-macros-mode", 2);
}
}
}]
}).open();
}
}
}
render() {
return (
<Fragment>