diff --git a/apps/presentationeditor/main/app/controller/Main.js b/apps/presentationeditor/main/app/controller/Main.js index eeda5f90ec..baa3c69c8f 100644 --- a/apps/presentationeditor/main/app/controller/Main.js +++ b/apps/presentationeditor/main/app/controller/Main.js @@ -48,6 +48,7 @@ define([ 'common/main/lib/component/Tooltip', 'common/main/lib/controller/Fonts', 'common/main/lib/collection/TextArt', + 'common/main/lib/view/OpenDialog', 'presentationeditor/main/app/collection/ShapeGroups', 'presentationeditor/main/app/collection/SlideLayouts' ], function () { 'use strict'; @@ -122,9 +123,12 @@ define([ this.api.asc_registerCallback('asc_onDocumentName', _.bind(this.onDocumentName, this)); this.api.asc_registerCallback('asc_onPrintUrl', _.bind(this.onPrintUrl, this)); this.api.asc_registerCallback('asc_onMeta', _.bind(this.onMeta, this)); + this.api.asc_registerCallback('asc_onAdvancedOptions', _.bind(this.onAdvancedOptions, this)); Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this)); Common.NotificationCenter.on('goback', _.bind(this.goBack, this)); + this.isShowOpenDialog = false; + // Initialize api gateway this.editorConfig = {}; this.appOptions = {}; @@ -473,7 +477,9 @@ define([ this.loadMask = new Common.UI.LoadMask({owner: $('#viewport')}); this.loadMask.setTitle(title); - this.loadMask.show(); + + if (!this.isShowOpenDialog) + this.loadMask.show(); } else { this.getApplication().getController('Statusbar').setStatusCaption(text); @@ -1514,6 +1520,29 @@ define([ if (url) this.iframePrint.src = url; }, + onAdvancedOptions: function(advOptions) { + var type = advOptions.asc_getOptionId(), + me = this, dlg; + if (type == Asc.c_oAscAdvancedOptionsID.DRM) { + dlg = new Common.Views.OpenDialog({ + type: type, + handler: function (value) { + me.isShowOpenDialog = false; + if (me && me.api) { + me.api.asc_setAdvancedOptions(type, new Asc.asc_CDRMAdvancedOptions(value)); + me.loadMask && me.loadMask.show(); + } + } + }); + } + if (dlg) { + this.isShowOpenDialog = true; + this.loadMask && this.loadMask.hide(); + this.onLongActionEnd(Asc.c_oAscAsyncActionType.BlockInteraction, LoadingDocument); + dlg.show(); + } + }, + updatePlugins: function(plugins) { // plugins from config if (!plugins || !plugins.pluginsData || plugins.pluginsData.length<1) return; diff --git a/apps/presentationeditor/main/locale/en.json b/apps/presentationeditor/main/locale/en.json index ce72e24fc5..1fa258d9d4 100644 --- a/apps/presentationeditor/main/locale/en.json +++ b/apps/presentationeditor/main/locale/en.json @@ -95,6 +95,12 @@ "Common.Views.InsertTableDialog.txtMinText": "The minimum value for this field is {0}.", "Common.Views.InsertTableDialog.txtRows": "Number of Rows", "Common.Views.InsertTableDialog.txtTitle": "Table Size", + "Common.Views.OpenDialog.cancelButtonText": "Cancel", + "Common.Views.OpenDialog.okButtonText": "OK", + "Common.Views.OpenDialog.txtEncoding": "Encoding ", + "Common.Views.OpenDialog.txtPassword": "Password", + "Common.Views.OpenDialog.txtTitle": "Choose %1 options", + "Common.Views.OpenDialog.txtTitleProtected": "Protected File", "Common.Views.PluginDlg.textLoading": "Loading", "Common.Views.Plugins.strPlugins": "Plugins", "Common.Views.Plugins.textLoading": "Loading", diff --git a/apps/presentationeditor/main/resources/less/app.less b/apps/presentationeditor/main/resources/less/app.less index fde2462590..89589a7776 100644 --- a/apps/presentationeditor/main/resources/less/app.less +++ b/apps/presentationeditor/main/resources/less/app.less @@ -109,6 +109,7 @@ @import "../../../../common/main/resources/less/scroller.less"; @import "../../../../common/main/resources/less/synchronize-tip.less"; @import "../../../../common/main/resources/less/common.less"; +@import "../../../../common/main/resources/less/opendialog.less"; @import "../../../../common/main/resources/less/plugins.less"; // App