From 2f5951aaaf3990d3580f00db32e17f444272b7ae Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 18 Mar 2019 14:47:41 +0300 Subject: [PATCH 1/3] [DE] create url with data for action/command --- apps/api/documents/api.js | 11 +++++++++++ apps/common/Gateway.js | 8 ++++++++ apps/documenteditor/main/app/controller/Links.js | 3 +++ apps/documenteditor/main/app/controller/Main.js | 1 + 4 files changed, 23 insertions(+) diff --git a/apps/api/documents/api.js b/apps/api/documents/api.js index 3d84e1e3e8..1f5b554125 100644 --- a/apps/api/documents/api.js +++ b/apps/api/documents/api.js @@ -197,6 +197,7 @@ _config.editorConfig.canRequestEditRights = _config.events && !!_config.events.onRequestEditRights; _config.editorConfig.canRequestClose = _config.events && !!_config.events.onRequestClose; _config.editorConfig.canRename = _config.events && !!_config.events.onRequestRename; + _config.editorConfig.canMakeActionLink = _config.events && !!_config.events.onMakeActionLink; _config.editorConfig.mergeFolderUrl = _config.editorConfig.mergeFolderUrl || _config.editorConfig.saveAsUrl; _config.frameEditorId = placeholderId; @@ -509,6 +510,15 @@ }); }; + var _setActionLink = function (data) { + _sendCommand({ + command: 'setActionLink', + data: { + url: data + } + }); + }; + var _processMailMerge = function(enabled, message) { _sendCommand({ command: 'processMailMerge', @@ -559,6 +569,7 @@ refreshHistory : _refreshHistory, setHistoryData : _setHistoryData, setEmailAddresses : _setEmailAddresses, + setActionLink : _setActionLink, processMailMerge : _processMailMerge, downloadAs : _downloadAs, serviceCommand : _serviceCommand, diff --git a/apps/common/Gateway.js b/apps/common/Gateway.js index fe0cc2d502..a906dedbaf 100644 --- a/apps/common/Gateway.js +++ b/apps/common/Gateway.js @@ -76,6 +76,10 @@ if (Common === undefined) { $me.trigger('setemailaddresses', data); }, + 'setActionLink': function (data) { + $me.trigger('setactionlink', data.url); + }, + 'processMailMerge': function(data) { $me.trigger('processmailmerge', data); }, @@ -254,6 +258,10 @@ if (Common === undefined) { _postMessage({event: 'onRequestClose'}); }, + requestMakeActionLink: function (config) { + _postMessage({event:'onMakeActionLink', data: config}) + }, + on: function(event, handler){ var localHandler = function(event, data){ handler.call(me, data) diff --git a/apps/documenteditor/main/app/controller/Links.js b/apps/documenteditor/main/app/controller/Links.js index 8afbc37cfb..df5a31c8e0 100644 --- a/apps/documenteditor/main/app/controller/Links.js +++ b/apps/documenteditor/main/app/controller/Links.js @@ -78,6 +78,9 @@ define([ this._state = { prcontrolsdisable:undefined }; + Common.Gateway.on('setactionlink', function (url) { + console.log('url with actions: ' + url); + }.bind(this)); }, setApi: function (api) { diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index 6812630515..75f9b64fb7 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -332,6 +332,7 @@ define([ this.appOptions.canBack = this.appOptions.canBackToFolder === true; this.appOptions.canPlugins = false; this.plugins = this.editorConfig.plugins; + this.appOptions.canMakeActionLink = this.editorConfig.canMakeActionLink; appHeader = this.getApplication().getController('Viewport').getView('Common.Views.Header'); appHeader.setCanBack(this.appOptions.canBackToFolder === true, (this.appOptions.canBackToFolder) ? this.editorConfig.customization.goback.text : '') From cee89671b6e5a2952a4da2e7cef643e610ac9de1 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 18 Mar 2019 14:48:10 +0300 Subject: [PATCH 2/3] [all] send action data to sdk --- apps/documenteditor/main/app/controller/Main.js | 6 ++++-- apps/presentationeditor/main/app/controller/Main.js | 6 ++++-- apps/spreadsheeteditor/main/app/controller/Main.js | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index 75f9b64fb7..0c1043fd50 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -357,7 +357,9 @@ define([ this.permissions = $.extend(this.permissions, data.doc.permissions); var _permissions = $.extend({}, data.doc.permissions), - _user = new Asc.asc_CUserInfo(); + _options = $.extend({}, data.doc.options, {actions: this.editorConfig.actionLink || {}}); + + var _user = new Asc.asc_CUserInfo(); _user.put_Id(this.appOptions.user.id); _user.put_FullName(this.appOptions.user.fullname); @@ -367,7 +369,7 @@ define([ docInfo.put_Title(data.doc.title); docInfo.put_Format(data.doc.fileType); docInfo.put_VKey(data.doc.vkey); - docInfo.put_Options(data.doc.options); + docInfo.put_Options(_options); docInfo.put_UserInfo(_user); docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); docInfo.put_Token(data.doc.token); diff --git a/apps/presentationeditor/main/app/controller/Main.js b/apps/presentationeditor/main/app/controller/Main.js index ee133ee346..ffc4a2955c 100644 --- a/apps/presentationeditor/main/app/controller/Main.js +++ b/apps/presentationeditor/main/app/controller/Main.js @@ -336,7 +336,9 @@ define([ this.permissions = $.extend(this.permissions, data.doc.permissions); var _permissions = $.extend({}, data.doc.permissions), - _user = new Asc.asc_CUserInfo(); + _options = $.extend({}, data.doc.options, {actions: this.editorConfig.actionLink || {}}); + + var _user = new Asc.asc_CUserInfo(); _user.put_Id(this.appOptions.user.id); _user.put_FullName(this.appOptions.user.fullname); @@ -346,7 +348,7 @@ define([ docInfo.put_Title(data.doc.title); docInfo.put_Format(data.doc.fileType); docInfo.put_VKey(data.doc.vkey); - docInfo.put_Options(data.doc.options); + docInfo.put_Options(_options); docInfo.put_UserInfo(_user); docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); docInfo.put_Token(data.doc.token); diff --git a/apps/spreadsheeteditor/main/app/controller/Main.js b/apps/spreadsheeteditor/main/app/controller/Main.js index d40a232782..2ff2b76369 100644 --- a/apps/spreadsheeteditor/main/app/controller/Main.js +++ b/apps/spreadsheeteditor/main/app/controller/Main.js @@ -362,7 +362,9 @@ define([ this.permissions = _.extend(this.permissions, data.doc.permissions); var _permissions = $.extend({}, data.doc.permissions), - _user = new Asc.asc_CUserInfo(); + _options = $.extend({}, data.doc.options, {actions: this.editorConfig.actionLink || {}}); + + var _user = new Asc.asc_CUserInfo(); _user.put_Id(this.appOptions.user.id); _user.put_FullName(this.appOptions.user.fullname); @@ -372,7 +374,7 @@ define([ docInfo.put_Title(data.doc.title); docInfo.put_Format(data.doc.fileType); docInfo.put_VKey(data.doc.vkey); - docInfo.put_Options(data.doc.options); + docInfo.put_Options(_options); docInfo.put_UserInfo(_user); docInfo.put_CallbackUrl(this.editorConfig.callbackUrl); docInfo.put_Token(data.doc.token); From b66389da090be30be38094607968ed94ce0a9b2b Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 18 Mar 2019 16:03:26 +0300 Subject: [PATCH 3/3] [DE] Bookmarks: get link to bookmark --- .../main/app/controller/Links.js | 12 ++++++++-- .../main/app/view/BookmarksDialog.js | 24 +++++++++++++++++-- apps/documenteditor/main/locale/en.json | 1 + 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/apps/documenteditor/main/app/controller/Links.js b/apps/documenteditor/main/app/controller/Links.js index df5a31c8e0..02f4b27cff 100644 --- a/apps/documenteditor/main/app/controller/Links.js +++ b/apps/documenteditor/main/app/controller/Links.js @@ -79,8 +79,15 @@ define([ prcontrolsdisable:undefined }; Common.Gateway.on('setactionlink', function (url) { - console.log('url with actions: ' + url); - }.bind(this)); + var copytext = document.createElement('input'); + copytext.value = url; + document.body.appendChild(copytext); + copytext.select(); + try { + document.execCommand("copy"); + } catch (err) {} + document.body.removeChild(copytext); + }); }, setApi: function (api) { @@ -328,6 +335,7 @@ define([ var me = this; (new DE.Views.BookmarksDialog({ api: me.api, + appOptions: me.toolbar.appOptions, props: me.api.asc_GetBookmarksManager(), handler: function (result, settings) { if (settings) { diff --git a/apps/documenteditor/main/app/view/BookmarksDialog.js b/apps/documenteditor/main/app/view/BookmarksDialog.js index 203b1e80c8..8d74d61b25 100644 --- a/apps/documenteditor/main/app/view/BookmarksDialog.js +++ b/apps/documenteditor/main/app/view/BookmarksDialog.js @@ -90,7 +90,8 @@ define([ '', '', '', - '', + '', + '', '', '', '', @@ -111,6 +112,7 @@ define([ this.api = options.api; this.handler = options.handler; this.props = options.props; + this.appOptions = options.appOptions; Common.Views.AdvancedSettingsWindow.prototype.initialize.call(this, this.options); }, @@ -137,6 +139,7 @@ define([ me.btnAdd.setDisabled(!check && !exist); me.btnGoto.setDisabled(!exist); me.btnDelete.setDisabled(!exist); + me.btnGetLink.setDisabled(!exist); return (check || _.isEmpty(value)) ? true : me.txtInvalidName; } @@ -187,6 +190,12 @@ define([ }); this.btnDelete.on('click', _.bind(this.deleteBookmark, this)); + this.btnGetLink = new Common.UI.Button({ + el: $('#bookmarks-btn-link'), + disabled: true + }); + this.btnGetLink.on('click', _.bind(this.getBookmarkLink, this)); + this.chHidden = new Common.UI.CheckBox({ el: $('#bookmarks-checkbox-hidden'), labelText: this.textHidden, @@ -220,6 +229,7 @@ define([ _setDefaults: function (props) { this.refreshBookmarks(); this.bookmarksList.scrollToRecord(this.bookmarksList.selectByIndex(0)); + this.btnGetLink.setVisible(this.appOptions.canMakeActionLink); }, getSettings: function () { @@ -266,6 +276,7 @@ define([ this.btnAdd.setDisabled(false); this.btnGoto.setDisabled(false); this.btnDelete.setDisabled(false); + this.btnGetLink.setDisabled(false); }, gotoBookmark: function(btn, eOpts){ @@ -290,6 +301,14 @@ define([ this.btnAdd.setDisabled(true); this.btnGoto.setDisabled(true); this.btnDelete.setDisabled(true); + this.btnGetLink.setDisabled(true); + } + }, + + getBookmarkLink: function() { + var rec = this.bookmarksList.getSelectedRec(); + if (rec.length>0) { + Common.Gateway.requestMakeActionLink({action: "bookmark", data: rec[0].get('value')}); } }, @@ -314,7 +333,8 @@ define([ textDelete: 'Delete', textClose: 'Close', textHidden: 'Hidden bookmarks', - txtInvalidName: 'Bookmark name can only contain letters, digits and underscores, and should begin with the letter' + txtInvalidName: 'Bookmark name can only contain letters, digits and underscores, and should begin with the letter', + textGetLink: 'Get link' }, DE.Views.BookmarksDialog || {})) }); \ No newline at end of file diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index a3e3265e7b..01aca3261a 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -1009,6 +1009,7 @@ "DE.Views.BookmarksDialog.textName": "Name", "DE.Views.BookmarksDialog.textSort": "Sort by", "DE.Views.BookmarksDialog.textTitle": "Bookmarks", + "DE.Views.BookmarksDialog.textGetLink": "Get link", "DE.Views.BookmarksDialog.txtInvalidName": "Bookmark name can only contain letters, digits and underscores, and should begin with the letter", "DE.Views.ChartSettings.textAdvanced": "Show advanced settings", "DE.Views.ChartSettings.textArea": "Area",