diff --git a/CHANGELOG.md b/CHANGELOG.md index bacd3e32..7c2360bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,13 +7,8 @@ - ruby: onRequestSelectDocument method - php: onRequestSelectDocument method - python: onRequestSelectDocument method -- csharp: key in referenceData -- csharp-mvc: key in referenceData -- java: key in referenceData -- java-spring: key in referenceData -- php: key in referenceData -- python: key in referenceData -- ruby: key in referenceData +- onRequestSelectSpreadsheet method +- key in referenceData - nodejs: link in referenceData - nodejs: onRequestSelectDocument method - nodejs: onRequestSelectSpreadsheet method diff --git a/web/documentserver-example/csharp-mvc/Models/FileModel.cs b/web/documentserver-example/csharp-mvc/Models/FileModel.cs index 3e4d9827..14ce0f7b 100755 --- a/web/documentserver-example/csharp-mvc/Models/FileModel.cs +++ b/web/documentserver-example/csharp-mvc/Models/FileModel.cs @@ -320,7 +320,7 @@ namespace OnlineEditorsExampleMVC.Models } // get a mail merge config - public void GetMailMergeConfig(out string dataMailMergeRecipients) + public void GetSpreadsheetConfig(out string dataSpreadsheet) { var jss = new JavaScriptSerializer(); @@ -361,7 +361,7 @@ namespace OnlineEditorsExampleMVC.Models mailMergeConfig.Add("token", mailmergeToken); // and add it to the mail merge config } - dataMailMergeRecipients = jss.Serialize(mailMergeConfig); + dataSpreadsheet = jss.Serialize(mailMergeConfig); } //get a users for mentions diff --git a/web/documentserver-example/csharp-mvc/Views/Home/Editor.aspx b/web/documentserver-example/csharp-mvc/Views/Home/Editor.aspx index 9c705472..5c9ccdee 100644 --- a/web/documentserver-example/csharp-mvc/Views/Home/Editor.aspx +++ b/web/documentserver-example/csharp-mvc/Views/Home/Editor.aspx @@ -138,10 +138,12 @@ }; // the user is trying to select recipients data by clicking the Mail merge button - var onRequestMailMergeRecipients = function (event) { - <% string dataMailMergeRecipients; %> - <% Model.GetMailMergeConfig(out dataMailMergeRecipients); %> - docEditor.setMailMergeRecipients(<%= dataMailMergeRecipients%>); // insert recipient data for mail merge into the file + var onRequestSelectSpreadsheet = function (event) { + <% string dataSpreadsheet; %> + <% Model.GetSpreadsheetConfig(out dataSpreadsheet); %> + var data = <%= dataSpreadsheet%>; + data.c = event.data.c; + docEditor.setRequestedSpreadsheet(data); // insert recipient data for mail merge into the file }; var onRequestSaveAs = function (event) { // the user is trying to save file by clicking Save Copy as... button @@ -247,7 +249,7 @@ "onMetaChange": onMetaChange, "onRequestInsertImage": onRequestInsertImage, "onRequestSelectDocument": onRequestSelectDocument, - "onRequestMailMergeRecipients": onRequestMailMergeRecipients, + "onRequestSelectSpreadsheet": onRequestSelectSpreadsheet, }; <% string usersForMentions; %> diff --git a/web/documentserver-example/csharp/DocEditor.aspx b/web/documentserver-example/csharp/DocEditor.aspx index af85298c..4d254058 100644 --- a/web/documentserver-example/csharp/DocEditor.aspx +++ b/web/documentserver-example/csharp/DocEditor.aspx @@ -152,8 +152,10 @@ }; // the user is trying to select recipients data by clicking the Mail merge button - var onRequestMailMergeRecipients = function (event) { - docEditor.setMailMergeRecipients(<%= DataMailMergeRecipients %>); // insert recipient data for mail merge into the file + var onRequestSelectSpreadsheet = function (event) { + var data = <%= DataSpreadsheet %>; + data.c = event.data.c; + docEditor.setRequestedSpreadsheet(data); // insert recipient data for spreadsheet into the file }; var onRequestSaveAs = function (event) { // the user is trying to save file by clicking Save Copy as... button @@ -219,7 +221,7 @@ 'onMetaChange': onMetaChange, 'onRequestInsertImage': onRequestInsertImage, 'onRequestSelectDocument': onRequestSelectDocument, - "onRequestMailMergeRecipients": onRequestMailMergeRecipients, + "onRequestSelectSpreadsheet": onRequestSelectSpreadsheet, }; if (config.editorConfig.user.id) { diff --git a/web/documentserver-example/csharp/DocEditor.aspx.cs b/web/documentserver-example/csharp/DocEditor.aspx.cs index f3b64182..334112a9 100755 --- a/web/documentserver-example/csharp/DocEditor.aspx.cs +++ b/web/documentserver-example/csharp/DocEditor.aspx.cs @@ -62,7 +62,7 @@ namespace OnlineEditorsExample protected string DocConfig { get; private set; } protected string InsertImageConfig { get; private set; } protected string DocumentData { get; private set; } - protected string DataMailMergeRecipients { get; private set; } + protected string DataSpreadsheet { get; private set; } protected string UsersForMentions { get; private set; } protected string DocumentType { get { return _Default.DocumentType(FileName); } } @@ -310,9 +310,9 @@ namespace OnlineEditorsExample Dictionary compareFile = GetCompareFile(); DocumentData = jss.Serialize(compareFile); - // recipient data for mail merging - Dictionary mailMergeConfig = GetMailMergeConfig(); - DataMailMergeRecipients = jss.Serialize(mailMergeConfig); + // recipient data for spreadsheet + Dictionary spreadsheetConfig = GetSpreadsheetConfig(); + DataSpreadsheet = jss.Serialize(spreadsheetConfig); // get users for mentions List> usersData = Users.getUsersForMentions(user.id); @@ -393,43 +393,43 @@ namespace OnlineEditorsExample return dataCompareFile; } - // get a mail merge config - private Dictionary GetMailMergeConfig() + // get a spreadsheet config + private Dictionary GetSpreadsheetConfig() { - // get the path to the recipients data for mail merging - var mailmergeUrl = new UriBuilder(_Default.GetServerUrl(true)); - mailmergeUrl.Path = + // get the path to the recipients data for spreadsheet + var spreadsheetUrl = new UriBuilder(_Default.GetServerUrl(true)); + spreadsheetUrl.Path = HttpRuntime.AppDomainAppVirtualPath + (HttpRuntime.AppDomainAppVirtualPath.EndsWith("/") ? "" : "/") + "webeditor.ashx"; - mailmergeUrl.Query = "type=csv"; + spreadsheetUrl.Query = "type=csv"; - var DirectMailMergeUrl = new UriBuilder(_Default.GetServerUrl(false)); - DirectMailMergeUrl.Path = + var DirectSpreadsheetUrl = new UriBuilder(_Default.GetServerUrl(false)); + DirectSpreadsheetUrl.Path = HttpRuntime.AppDomainAppVirtualPath + (HttpRuntime.AppDomainAppVirtualPath.EndsWith("/") ? "" : "/") + "webeditor.ashx"; - DirectMailMergeUrl.Query = "type=csv"; + DirectSpreadsheetUrl.Query = "type=csv"; - // create a mail merge config - Dictionary mailMergeConfig = new Dictionary + // create a spreadsheet config + Dictionary spreadsheetConfig = new Dictionary { { "fileType", "csv" }, - { "url", mailmergeUrl.ToString() } + { "url", spreadsheetUrl.ToString() } }; if (_Default.IsEnabledDirectUrl()) { - mailMergeConfig.Add("directUrl", DirectMailMergeUrl.ToString()); + spreadsheetConfig.Add("directUrl", DirectSpreadsheetUrl.ToString()); } if (JwtManager.Enabled) // if the secret key to generate token exists { - var mailmergeToken = JwtManager.Encode(mailMergeConfig); // encode mailMergeConfig into the token - mailMergeConfig.Add("token", mailmergeToken); // and add it to the mail merge config + var spreadsheetToken = JwtManager.Encode(spreadsheetConfig); // encode spreadsheetConfig into the token + spreadsheetConfig.Add("token", spreadsheetToken); // and add it to the spreadsheet config } - return mailMergeConfig; + return spreadsheetConfig; } // get image url for templates diff --git a/web/documentserver-example/java-spring/src/main/java/com/onlyoffice/integration/controllers/EditorController.java b/web/documentserver-example/java-spring/src/main/java/com/onlyoffice/integration/controllers/EditorController.java index d509a431..d87321a8 100755 --- a/web/documentserver-example/java-spring/src/main/java/com/onlyoffice/integration/controllers/EditorController.java +++ b/web/documentserver-example/java-spring/src/main/java/com/onlyoffice/integration/controllers/EditorController.java @@ -146,7 +146,7 @@ public class EditorController { model.addAttribute("dataDocument", getCompareFile(directUrl)); // get recipients data for mail merging and add it to the model - model.addAttribute("dataMailMergeRecipients", getMailMerge(directUrl)); + model.addAttribute("dataSpreadsheet", getSpreadsheet(directUrl)); // get user data for mentions and add it to the model model.addAttribute("usersForMentions", getUserMentions(uid)); @@ -212,21 +212,21 @@ public class EditorController { } @SneakyThrows - private String getMailMerge(final Boolean directUrl) { - Map dataMailMergeRecipients = new HashMap<>(); // get recipients data for mail merging - dataMailMergeRecipients.put("fileType", "csv"); - dataMailMergeRecipients.put("url", storagePathBuilder.getServerUrl(true) + "/csv"); + private String getSpreadsheet(final Boolean directUrl) { + Map dataSpreadsheet = new HashMap<>(); // get recipients data for mail merging + dataSpreadsheet.put("fileType", "csv"); + dataSpreadsheet.put("url", storagePathBuilder.getServerUrl(true) + "/csv"); if (directUrl) { - dataMailMergeRecipients.put("directUrl", storagePathBuilder.getServerUrl(false) + "/csv"); + dataSpreadsheet.put("directUrl", storagePathBuilder.getServerUrl(false) + "/csv"); } // check if the document token is enabled if (jwtManager.tokenEnabled()) { - // create token from the dataMailMergeRecipients object - dataMailMergeRecipients.put("token", jwtManager.createToken(dataMailMergeRecipients)); + // create token from the dataSpreadsheet object + dataSpreadsheet.put("token", jwtManager.createToken(dataSpreadsheet)); } - return objectMapper.writeValueAsString(dataMailMergeRecipients); + return objectMapper.writeValueAsString(dataSpreadsheet); } } diff --git a/web/documentserver-example/java-spring/src/main/resources/templates/editor.html b/web/documentserver-example/java-spring/src/main/resources/templates/editor.html index 04bcb845..3694fc32 100755 --- a/web/documentserver-example/java-spring/src/main/resources/templates/editor.html +++ b/web/documentserver-example/java-spring/src/main/resources/templates/editor.html @@ -117,9 +117,12 @@ docEditor.setRequestedDocument(temp); }; + var dataSpreadsheet = [[${dataSpreadsheet}]]; + // the user is trying to select recipients data by clicking the Mail merge button - var onRequestMailMergeRecipients = function (event) { - docEditor.setMailMergeRecipients([[${dataMailMergeRecipients}]]); + var onRequestSelectSpreadsheet = function (event) { + const temp = Object.assign({"c": event.data.c}, JSON.parse(dataSpreadsheet)); + docEditor.setRequestedSpreadsheet(temp); }; config = [[${model}]]; @@ -244,7 +247,7 @@ "onMetaChange": onMetaChange, "onRequestInsertImage": onRequestInsertImage, "onRequestSelectDocument": onRequestSelectDocument, - "onRequestMailMergeRecipients": onRequestMailMergeRecipients, + "onRequestSelectSpreadsheet": onRequestSelectSpreadsheet, "onRequestRestore": onRequestRestore, "onRequestHistory": onRequestHistory, "onRequestHistoryData": onRequestHistoryData, diff --git a/web/documentserver-example/java/src/main/java/controllers/EditorServlet.java b/web/documentserver-example/java/src/main/java/controllers/EditorServlet.java index dd66c0b5..2f6e65f2 100644 --- a/web/documentserver-example/java/src/main/java/controllers/EditorServlet.java +++ b/web/documentserver-example/java/src/main/java/controllers/EditorServlet.java @@ -95,12 +95,12 @@ public class EditorServlet extends HttpServlet { } // recipients data for mail merging - Map dataMailMergeRecipients = new HashMap<>(); - dataMailMergeRecipients.put("fileType", "csv"); - dataMailMergeRecipients.put("url", DocumentManager.getServerUrl(true) + "/IndexServlet?" + Map dataSpreadsheet = new HashMap<>(); + dataSpreadsheet.put("fileType", "csv"); + dataSpreadsheet.put("url", DocumentManager.getServerUrl(true) + "/IndexServlet?" + "type=csv"); if (isEnableDirectUrl) { - dataMailMergeRecipients.put("directUrl", DocumentManager.getServerUrl(false) + dataSpreadsheet.put("directUrl", DocumentManager.getServerUrl(false) + "/IndexServlet?type=csv"); } @@ -117,8 +117,8 @@ public class EditorServlet extends HttpServlet { // create token from the dataDocument object dataDocument.put("token", DocumentManager.createToken(dataDocument)); - // create token from the dataMailMergeRecipients object - dataMailMergeRecipients.put("token", DocumentManager.createToken(dataMailMergeRecipients)); + // create token from the dataSpreadsheet object + dataSpreadsheet.put("token", DocumentManager.createToken(dataSpreadsheet)); } Gson gson = new Gson(); @@ -128,7 +128,7 @@ public class EditorServlet extends HttpServlet { request.setAttribute("dataInsertImage", gson.toJson(dataInsertImage) .substring(1, gson.toJson(dataInsertImage).length() - 1)); request.setAttribute("dataDocument", gson.toJson(dataDocument)); - request.setAttribute("dataMailMergeRecipients", gson.toJson(dataMailMergeRecipients)); + request.setAttribute("dataSpreadsheet", gson.toJson(dataSpreadsheet)); request.setAttribute("usersForMentions", !user.getId() .equals("uid-0") ? gson.toJson(usersForMentions) : null); request.getRequestDispatcher("editor.jsp").forward(request, response); diff --git a/web/documentserver-example/java/src/main/webapp/editor.jsp b/web/documentserver-example/java/src/main/webapp/editor.jsp index 8a08b822..e90821d6 100644 --- a/web/documentserver-example/java/src/main/webapp/editor.jsp +++ b/web/documentserver-example/java/src/main/webapp/editor.jsp @@ -124,8 +124,10 @@ }; // the user is trying to select recipients data by clicking the Mail merge button - var onRequestMailMergeRecipients = function (event) { - docEditor.setMailMergeRecipients(${dataMailMergeRecipients}); // insert recipient data for mail merge into the file + var onRequestSelectSpreadsheet = function (event) { + var data = ${dataSpreadsheet}; + data.c = event.data.c; + docEditor.setRequestedSpreadsheet(data); // insert recipient data for mail merge into the file }; var onRequestSaveAs = function (event) { // the user is trying to save file by clicking Save Copy as... button @@ -246,7 +248,7 @@ "onMetaChange": onMetaChange, "onRequestInsertImage": onRequestInsertImage, "onRequestSelectDocument": onRequestSelectDocument, - "onRequestMailMergeRecipients": onRequestMailMergeRecipients, + "onRequestSelectSpreadsheet": onRequestSelectSpreadsheet, "onRequestRestore": onRequestRestore, "onRequestHistory": onRequestHistory, "onRequestHistoryData": onRequestHistoryData, diff --git a/web/documentserver-example/php/src/views/DocEditorView.php b/web/documentserver-example/php/src/views/DocEditorView.php index 5b50e8e3..89f29b19 100644 --- a/web/documentserver-example/php/src/views/DocEditorView.php +++ b/web/documentserver-example/php/src/views/DocEditorView.php @@ -209,7 +209,7 @@ final class DocEditorView extends View ]; // recipients data for mail merging - $dataMailMergeRecipients = $isEnableDirectUrl ? [ + $dataSpreadsheet = $isEnableDirectUrl ? [ "fileType" => "csv", "url" => serverPath(true) . "/csv", "directUrl" => serverPath(false) . "/csv", @@ -228,8 +228,8 @@ final class DocEditorView extends View $dataInsertImage["token"] = $jwtManager->jwtEncode($dataInsertImage); // encode the dataDocument object into the token $dataDocument["token"] = $jwtManager->jwtEncode($dataDocument); - // encode the dataMailMergeRecipients object into the token - $dataMailMergeRecipients["token"] = $jwtManager->jwtEncode($dataMailMergeRecipients); + // encode the dataSpreadsheet object into the token + $dataSpreadsheet["token"] = $jwtManager->jwtEncode($dataSpreadsheet); } $out = getHistory($filename, $filetype, $docKey, $fileuri, $isEnableDirectUrl); $history = $out[0]; @@ -274,7 +274,7 @@ final class DocEditorView extends View mb_strlen(json_encode($dataInsertImage)) - 2 ), "dataDocument" => json_encode($dataDocument), - "dataMailMergeRecipients" => json_encode($dataMailMergeRecipients), + "dataSpreadsheet" => json_encode($dataSpreadsheet), "fileNotFoundAlert" => !file_exists(getStoragePath($filename)) ? "alert('File not found'); return;" : "", "config" => json_encode($config), "history" => $historyLayout, diff --git a/web/documentserver-example/php/templates/docEditor.tpl b/web/documentserver-example/php/templates/docEditor.tpl index 16faa7e6..2d1787b6 100644 --- a/web/documentserver-example/php/templates/docEditor.tpl +++ b/web/documentserver-example/php/templates/docEditor.tpl @@ -150,9 +150,11 @@ }; // the user is trying to select recipients data by clicking the Mail merge button - var onRequestMailMergeRecipients = function (event) { + var onRequestSelectSpreadsheet = function (event) { // insert recipient data for mail merge into the file - docEditor.setMailMergeRecipients({dataMailMergeRecipients}); + var data = {dataSpreadsheet}; + data.c = event.data.c; + docEditor.setRequestedSpreadsheet(data); }; var onRequestSaveAs = function (event) { // the user is trying to save file by clicking Save Copy as... button @@ -229,7 +231,7 @@ 'onMetaChange': onMetaChange, 'onRequestInsertImage': onRequestInsertImage, 'onRequestSelectDocument': onRequestSelectDocument, - 'onRequestMailMergeRecipients': onRequestMailMergeRecipients, + 'onRequestSelectSpreadsheet': onRequestSelectSpreadsheet, 'onRequestReferenceData': onRequestReferenceData, 'onRequestRestore': onRequestRestore }; diff --git a/web/documentserver-example/python/src/views/actions.py b/web/documentserver-example/python/src/views/actions.py index 88a3571a..10b6f010 100755 --- a/web/documentserver-example/python/src/views/actions.py +++ b/web/documentserver-example/python/src/views/actions.py @@ -311,7 +311,7 @@ def edit(request): } # recipient data for mail merging - dataMailMergeRecipients = { + dataSpreadsheet = { 'fileType': 'csv', 'url': docManager.getServerUrl(True, request) + '/csv', 'directUrl': docManager.getServerUrl(False, request) + '/csv' @@ -327,7 +327,7 @@ def edit(request): edConfig['token'] = jwtManager.encode(edConfig) # encode the edConfig object into a token dataInsertImage['token'] = jwtManager.encode(dataInsertImage) # encode the dataInsertImage object into a token dataDocument['token'] = jwtManager.encode(dataDocument) # encode the dataDocument object into a token - dataMailMergeRecipients['token'] = jwtManager.encode(dataMailMergeRecipients) # encode the dataMailMergeRecipients object into a token + dataSpreadsheet['token'] = jwtManager.encode(dataSpreadsheet) # encode the dataSpreadsheet object into a token hist = historyManager.getHistoryObject(storagePath, filename, docKey, fileUri, isEnableDirectUrl, request) # get the document history @@ -339,7 +339,7 @@ def edit(request): 'apiUrl': config_manager.document_server_api_url().geturl(), # the absolute URL to the api 'dataInsertImage': json.dumps(dataInsertImage)[1 : len(json.dumps(dataInsertImage)) - 1], # the image which will be inserted into the document 'dataDocument': dataDocument, # document which will be compared with the current document - 'dataMailMergeRecipients': json.dumps(dataMailMergeRecipients), # recipient data for mail merging + 'dataSpreadsheet': json.dumps(dataSpreadsheet), # recipient data for mail merging 'usersForMentions': json.dumps(usersForMentions) if user.id !='uid-0' else None } return render(request, 'editor.html', context) # execute the "editor.html" template with context data diff --git a/web/documentserver-example/python/templates/editor.html b/web/documentserver-example/python/templates/editor.html index 7d87e6b6..722bf0d6 100755 --- a/web/documentserver-example/python/templates/editor.html +++ b/web/documentserver-example/python/templates/editor.html @@ -129,10 +129,10 @@ }; // the user is trying to select recipients data by clicking the Mail merge button - var onRequestMailMergeRecipients = function (event) { - docEditor.setMailMergeRecipients( // insert recipient data for mail merge into the file - {{ dataMailMergeRecipients | safe }} - ); + var onRequestSelectSpreadsheet = function (event) { + var data = {{ dataSpreadsheet | safe }}; + data.c = event.data.c; + docEditor.setRequestedSpreadsheet(data); // insert recipient data for mail merge into the file }; var onRequestSaveAs = function (event) { // the user is trying to save file by clicking Save Copy as... button @@ -220,7 +220,7 @@ 'onMetaChange': onMetaChange, 'onRequestInsertImage': onRequestInsertImage, 'onRequestSelectDocument': onRequestSelectDocument, - "onRequestMailMergeRecipients": onRequestMailMergeRecipients, + "onRequestSelectSpreadsheet": onRequestSelectSpreadsheet, 'onRequestRestore': onRequestRestore }; diff --git a/web/documentserver-example/ruby/app/models/file_model.rb b/web/documentserver-example/ruby/app/models/file_model.rb index 4d9885d7..65ce0d97 100755 --- a/web/documentserver-example/ruby/app/models/file_model.rb +++ b/web/documentserver-example/ruby/app/models/file_model.rb @@ -328,8 +328,8 @@ class FileModel end # get mail merge recipients information - def dataMailMergeRecipients - dataMailMergeRecipients = is_enable_direct_url == true ? { + def dataSpreadsheet + dataSpreadsheet = is_enable_direct_url == true ? { :fileType => "csv", # file type :url => DocumentHelper.get_server_url(true) + "/csv", # server url to the mail merge recipients file :directUrl => DocumentHelper.get_server_url(false) + "/csv" # direct url to the mail merge recipients file @@ -339,10 +339,10 @@ class FileModel } if JwtHelper.is_enabled # check if a secret key to generate token exists or not - dataMailMergeRecipients["token"] = JwtHelper.encode(dataMailMergeRecipients) # encode a payload object into a token and write it to the dataMailMergeRecipients object + dataSpreadsheet["token"] = JwtHelper.encode(dataSpreadsheet) # encode a payload object into a token and write it to the dataSpreadsheet object end - return dataMailMergeRecipients + return dataSpreadsheet end # get users data for mentions diff --git a/web/documentserver-example/ruby/app/views/home/editor.html.erb b/web/documentserver-example/ruby/app/views/home/editor.html.erb index 40cb3040..7fd218ec 100755 --- a/web/documentserver-example/ruby/app/views/home/editor.html.erb +++ b/web/documentserver-example/ruby/app/views/home/editor.html.erb @@ -114,8 +114,10 @@ }; // the user is trying to select recipients data by clicking the Mail merge button - var onRequestMailMergeRecipients = function (event) { - docEditor.setMailMergeRecipients(<%= raw @file.dataMailMergeRecipients.to_json %>); // insert recipient data for mail merge into the file + var onRequestSelectSpreadsheet = function (event) { + var data = <%= raw @file.dataSpreadsheet.to_json %>; + data.c = event.data.c; + docEditor.setRequestedSpreadsheet(data); // insert recipient data for mail merge into the file }; var onRequestSaveAs = function (event) { // the user is trying to save file by clicking Save Copy as... button @@ -201,7 +203,7 @@ 'onMetaChange': onMetaChange, 'onRequestInsertImage': onRequestInsertImage, 'onRequestSelectDocument': onRequestSelectDocument, - 'onRequestMailMergeRecipients': onRequestMailMergeRecipients, + 'onRequestSelectSpreadsheet': onRequestSelectSpreadsheet, 'onRequestRestore': onRequestRestore };