diff --git a/.gitmodules b/.gitmodules index 43b3007ad..6dd796ec1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,7 +5,6 @@ [submodule "web/documentserver-example/nodejs/public/assets/document-formats"] path = web/documentserver-example/nodejs/public/assets/document-formats url = https://github.com/ONLYOFFICE/document-formats - branch = feature/v8.0 [submodule "web/documentserver-example/csharp-mvc/assets/document-templates"] path = web/documentserver-example/csharp-mvc/assets/document-templates url = https://github.com/ONLYOFFICE/document-templates diff --git a/CHANGELOG.md b/CHANGELOG.md index 79fe928aa..50a1eb67b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,21 @@ # Change Log +## 1.9.0 +- nodejs: filling by default +- nodejs: docxf, oform as pdf documentType +- nodejs: creating and editing pdf instead docxf +- nodejs: wopi formsubmit icon +- nodejs: close editor +- en-GB, sr-Cyrl-RS skin languages +- switching from filling to editing +- fill permission in embedded mode + ## 1.8.0 - nodejs: pdf, djvu, xps, oxps as pdf documentType - nodejs: filling pdf - version number to page meta - ar skin languages -- sr-Latn-CS skin languages +- sr-Latn-RS skin languages - getting history via api - using a repo with a list of formats - convert after uploading only tagged formats diff --git a/web/documentserver-example/csharp-mvc/Models/FileModel.cs b/web/documentserver-example/csharp-mvc/Models/FileModel.cs index 2438ffcd7..e77f4b86f 100755 --- a/web/documentserver-example/csharp-mvc/Models/FileModel.cs +++ b/web/documentserver-example/csharp-mvc/Models/FileModel.cs @@ -157,7 +157,7 @@ public string GetDocConfig(HttpRequest request, UrlHelper url) { "download", !user.deniedPermissions.Contains("download") }, { "edit", canEdit && (editorsMode == "edit" || editorsMode == "view" || editorsMode == "filter" || editorsMode == "blockcontent") }, { "print", !user.deniedPermissions.Contains("print") }, - { "fillForms", editorsMode != "view" && editorsMode != "comment" && editorsMode != "embedded" && editorsMode != "blockcontent" }, + { "fillForms", editorsMode != "view" && editorsMode != "comment" && editorsMode != "blockcontent" }, { "modifyFilter", editorsMode != "filter" }, { "modifyContentControl", editorsMode != "blockcontent" }, { "review", canEdit && (editorsMode == "edit" || editorsMode == "review") }, diff --git a/web/documentserver-example/csharp-mvc/Views/Home/Editor.aspx b/web/documentserver-example/csharp-mvc/Views/Home/Editor.aspx index ab0c80333..c66888a8d 100644 --- a/web/documentserver-example/csharp-mvc/Views/Home/Editor.aspx +++ b/web/documentserver-example/csharp-mvc/Views/Home/Editor.aspx @@ -68,7 +68,7 @@ // the user is trying to switch the document from the viewing into the editing mode var onRequestEditRights = function () { - location.href = location.href.replace(RegExp("editorsMode=view\&?", "i"), ""); + location.href = location.href.replace(RegExp("editorsMode=\\w+\&?", "i"), "") + "&editorsMode=edit"; }; // an error or some other specific event occurs diff --git a/web/documentserver-example/csharp-mvc/web.appsettings.config b/web/documentserver-example/csharp-mvc/web.appsettings.config index d7b27dba9..7a8a9ca1f 100644 --- a/web/documentserver-example/csharp-mvc/web.appsettings.config +++ b/web/documentserver-example/csharp-mvc/web.appsettings.config @@ -1,7 +1,7 @@ - + @@ -15,7 +15,7 @@ - + diff --git a/web/documentserver-example/csharp/DocEditor.aspx b/web/documentserver-example/csharp/DocEditor.aspx index c0bddc2f7..12759feb9 100644 --- a/web/documentserver-example/csharp/DocEditor.aspx +++ b/web/documentserver-example/csharp/DocEditor.aspx @@ -86,7 +86,7 @@ // the user is trying to switch the document from the viewing into the editing mode var onRequestEditRights = function () { - location.href = location.href.replace(RegExp("editorsMode=view\&?", "i"), ""); + location.href = location.href.replace(RegExp("editorsMode=\\w+\&?", "i"), "") + "&editorsMode=edit"; }; // an error or some other specific event occurs diff --git a/web/documentserver-example/csharp/DocEditor.aspx.cs b/web/documentserver-example/csharp/DocEditor.aspx.cs index c492ba11f..260246d66 100755 --- a/web/documentserver-example/csharp/DocEditor.aspx.cs +++ b/web/documentserver-example/csharp/DocEditor.aspx.cs @@ -225,7 +225,7 @@ protected void Page_Load(object sender, EventArgs e) { "download", !user.deniedPermissions.Contains("download") }, { "edit", canEdit && (editorsMode == "edit" || editorsMode =="view" || editorsMode == "filter" || editorsMode == "blockcontent") }, { "print", !user.deniedPermissions.Contains("print") }, - { "fillForms", editorsMode != "view" && editorsMode != "comment" && editorsMode != "embedded" && editorsMode != "blockcontent" }, + { "fillForms", editorsMode != "view" && editorsMode != "comment" && editorsMode != "blockcontent" }, { "modifyFilter", editorsMode != "filter" }, { "modifyContentControl", editorsMode != "blockcontent" }, { "review", canEdit && (editorsMode == "edit" || editorsMode == "review") }, diff --git a/web/documentserver-example/csharp/settings.config b/web/documentserver-example/csharp/settings.config index 7cbdfa66f..f788c9ea0 100644 --- a/web/documentserver-example/csharp/settings.config +++ b/web/documentserver-example/csharp/settings.config @@ -1,7 +1,7 @@ - + @@ -14,7 +14,7 @@ - + diff --git a/web/documentserver-example/java-spring/src/main/java/com/onlyoffice/integration/services/configurers/implementations/DefaultFileConfigurer.java b/web/documentserver-example/java-spring/src/main/java/com/onlyoffice/integration/services/configurers/implementations/DefaultFileConfigurer.java index 9651dcb8d..798e895f4 100755 --- a/web/documentserver-example/java-spring/src/main/java/com/onlyoffice/integration/services/configurers/implementations/DefaultFileConfigurer.java +++ b/web/documentserver-example/java-spring/src/main/java/com/onlyoffice/integration/services/configurers/implementations/DefaultFileConfigurer.java @@ -120,7 +120,6 @@ private Permission updatePermissions(final Permission userPermissions, final Act userPermissions.setFillForms( !action.equals(Action.view) && !action.equals(Action.comment) - && !action.equals(Action.embedded) && !action.equals(Action.blockcontent) ); diff --git a/web/documentserver-example/java-spring/src/main/resources/application.properties b/web/documentserver-example/java-spring/src/main/resources/application.properties index 1c4be58d9..512b7f40a 100755 --- a/web/documentserver-example/java-spring/src/main/resources/application.properties +++ b/web/documentserver-example/java-spring/src/main/resources/application.properties @@ -1,4 +1,4 @@ -server.version=1.8.0 +server.version=1.9.0 server.address= server.port=4000 @@ -25,7 +25,7 @@ files.docservice.token-use-for-request=true files.docservice.verify-peer-off=true -files.docservice.languages=en:English|ar:Arabic|hy:Armenian|az:Azerbaijani|eu:Basque|be:Belarusian|bg:Bulgarian|ca:Catalan|zh:Chinese (Simplified)|zh-TW:Chinese (Traditional)|cs:Czech|da:Danish|nl:Dutch|fi:Finnish|fr:French|gl:Galego|de:German|el:Greek|hu:Hungarian|id:Indonesian|it:Italian|ja:Japanese|ko:Korean|lo:Lao|lv:Latvian|ms:Malay (Malaysia)|no:Norwegian|pl:Polish|pt:Portuguese (Brazil)|pt-PT:Portuguese (Portugal)|ro:Romanian|ru:Russian|sr-Latn-CS:Serbian|si:Sinhala (Sri Lanka)|sk:Slovak|sl:Slovenian|es:Spanish|sv:Swedish|tr:Turkish|uk:Ukrainian|vi:Vietnamese|aa-AA:Test Language +files.docservice.languages=en:English|ar:Arabic|hy:Armenian|az:Azerbaijani|eu:Basque|be:Belarusian|bg:Bulgarian|ca:Catalan|zh:Chinese (Simplified)|zh-TW:Chinese (Traditional)|cs:Czech|da:Danish|nl:Dutch|en-GB:English (United Kingdom)|fi:Finnish|fr:French|gl:Galego|de:German|el:Greek|hu:Hungarian|id:Indonesian|it:Italian|ja:Japanese|ko:Korean|lo:Lao|lv:Latvian|ms:Malay (Malaysia)|no:Norwegian|pl:Polish|pt:Portuguese (Brazil)|pt-PT:Portuguese (Portugal)|ro:Romanian|ru:Russian|sr-Cyrl-RS:Serbian (Cyrillic)|sr-Latn-RS:Serbian (Latin)|si:Sinhala (Sri Lanka)|sk:Slovak|sl:Slovenian|es:Spanish|sv:Swedish|tr:Turkish|uk:Ukrainian|vi:Vietnamese|aa-AA:Test Language spring.datasource.url=jdbc:h2:mem:usersdb spring.datasource.driverClassName=org.h2.Driver 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 0f80fb6a6..e1214b808 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 @@ -52,7 +52,7 @@ // the user is trying to switch the document from the viewing into the editing mode var onRequestEditRights = function () { - location.href = location.href.replace(RegExp("\&?action=view", "i"), ""); + location.href = location.href.replace(RegExp("\&?action=\\w+", "i"), "") + "&action=edit"; }; // an error or some other specific event occurs diff --git a/web/documentserver-example/java/src/main/java/entities/FileModel.java b/web/documentserver-example/java/src/main/java/entities/FileModel.java index 5c6e9f972..f79db8549 100755 --- a/web/documentserver-example/java/src/main/java/entities/FileModel.java +++ b/web/documentserver-example/java/src/main/java/entities/FileModel.java @@ -291,7 +291,7 @@ public Permissions(final String modeParam, final String typeParam, final Boolean edit = canEdit && (modeParam.equals("edit") || modeParam.equals("view") || modeParam.equals("filter") || modeParam.equals("blockcontent")); print = !user.getDeniedPermissions().contains("print"); - fillForms = !modeParam.equals("view") && !modeParam.equals("comment") && !modeParam.equals("embedded") + fillForms = !modeParam.equals("view") && !modeParam.equals("comment") && !modeParam.equals("blockcontent"); modifyFilter = !modeParam.equals("filter"); modifyContentControl = !modeParam.equals("blockcontent"); diff --git a/web/documentserver-example/java/src/main/resources/settings.properties b/web/documentserver-example/java/src/main/resources/settings.properties index 887aad312..a6f0b1b6d 100644 --- a/web/documentserver-example/java/src/main/resources/settings.properties +++ b/web/documentserver-example/java/src/main/resources/settings.properties @@ -1,4 +1,4 @@ -version=1.8.0 +version=1.9.0 filesize-max=5242880 storage-folder=app_data @@ -13,7 +13,7 @@ files.docservice.url.api=web-apps/apps/api/documents/api.js files.docservice.url.preloader=web-apps/apps/api/documents/cache-scripts.html files.docservice.url.example= -files.docservice.languages=en:English|ar:Arabic|hy:Armenian|az:Azerbaijani|eu:Basque|be:Belarusian|bg:Bulgarian|ca:Catalan|zh:Chinese (Simplified)|zh-TW:Chinese (Traditional)|cs:Czech|da:Danish|nl:Dutch|fi:Finnish|fr:French|gl:Galego|de:German|el:Greek|hu:Hungarian|id:Indonesian|it:Italian|ja:Japanese|ko:Korean|lo:Lao|lv:Latvian|ms:Malay (Malaysia)|no:Norwegian|pl:Polish|pt:Portuguese (Brazil)|pt-PT:Portuguese (Portugal)|ro:Romanian|ru:Russian|sr-Latn-CS:Serbian|si:Sinhala (Sri Lanka)|sk:Slovak|sl:Slovenian|es:Spanish|sv:Swedish|tr:Turkish|uk:Ukrainian|vi:Vietnamese|aa-AA:Test Language +files.docservice.languages=en:English|ar:Arabic|hy:Armenian|az:Azerbaijani|eu:Basque|be:Belarusian|bg:Bulgarian|ca:Catalan|zh:Chinese (Simplified)|zh-TW:Chinese (Traditional)|cs:Czech|da:Danish|nl:Dutch|en-GB:English (United Kingdom)|fi:Finnish|fr:French|gl:Galego|de:German|el:Greek|hu:Hungarian|id:Indonesian|it:Italian|ja:Japanese|ko:Korean|lo:Lao|lv:Latvian|ms:Malay (Malaysia)|no:Norwegian|pl:Polish|pt:Portuguese (Brazil)|pt-PT:Portuguese (Portugal)|ro:Romanian|ru:Russian|sr-Cyrl-RS:Serbian (Cyrillic)|sr-Latn-RS:Serbian (Latin)|si:Sinhala (Sri Lanka)|sk:Slovak|sl:Slovenian|es:Spanish|sv:Swedish|tr:Turkish|uk:Ukrainian|vi:Vietnamese|aa-AA:Test Language files.docservice.secret= files.docservice.header=Authorization diff --git a/web/documentserver-example/java/src/main/webapp/editor.jsp b/web/documentserver-example/java/src/main/webapp/editor.jsp index ef0dca055..d0449bef1 100644 --- a/web/documentserver-example/java/src/main/webapp/editor.jsp +++ b/web/documentserver-example/java/src/main/webapp/editor.jsp @@ -58,7 +58,7 @@ // the user is trying to switch the document from the viewing into the editing mode var onRequestEditRights = function () { - location.href = location.href.replace(RegExp("mode=view\&?", "i"), ""); + location.href = location.href.replace(RegExp("mode=\\w+\&?", "i"), "") + "&mode=edit"; }; // an error or some other specific event occurs diff --git a/web/documentserver-example/nodejs/app.js b/web/documentserver-example/nodejs/app.js index a3d77cfee..70f31c3f3 100755 --- a/web/documentserver-example/nodejs/app.js +++ b/web/documentserver-example/nodejs/app.js @@ -984,7 +984,7 @@ app.get('/editor', (req, res) => { // define a handler for editing document const fName = req.DocManager.createDemo(!!req.query.sample, fileExt, userid, name, false); // get the redirect path - const redirectPath = `${req.DocManager.getServerUrl()}/editor?fileName=` + const redirectPath = `${req.DocManager.getServerUrl()}/editor?mode=edit&fileName=` + `${encodeURIComponent(fName)}${req.DocManager.getCustomParams()}`; res.redirect(redirectPath); return; @@ -999,11 +999,14 @@ app.get('/editor', (req, res) => { // define a handler for editing document const key = req.DocManager.getKey(fileName); const url = req.DocManager.getDownloadUrl(fileName, true); const directUrl = req.DocManager.getDownloadUrl(fileName); - let mode = req.query.mode || 'edit'; // mode: view/edit/review/comment/fillForms/embedded + + // check if this file can be filled + const canFill = fileUtility.getFillExtensions().indexOf(fileExt.slice(1)) !== -1; + let mode = req.query.mode || (canFill ? 'fillForms' : 'edit'); // mode: view/edit/review/comment/fillForms/embedded let canEdit = fileUtility.getEditExtensions().indexOf(fileExt.slice(1)) !== -1; // check if this file can be edited if (((!canEdit && mode === 'edit') || mode === 'fillForms') - && fileUtility.getFillExtensions().indexOf(fileExt.slice(1)) !== -1) { + && canFill) { mode = 'fillForms'; canEdit = true; } @@ -1012,7 +1015,7 @@ app.get('/editor', (req, res) => { // define a handler for editing document } let submitForm = false; - if (mode === 'fillForms') { + if (mode === 'fillForms' || mode === 'embedded') { submitForm = userid === 'uid-1'; } @@ -1041,7 +1044,7 @@ app.get('/editor', (req, res) => { // define a handler for editing document chat: userid !== 'uid-0', coEditing: mode === 'view' && userid === 'uid-0' ? { mode: 'strict', change: false } : null, comment: mode !== 'view' && mode !== 'fillForms' && mode !== 'embedded' && mode !== 'blockcontent', - fillForms: mode !== 'view' && mode !== 'comment' && mode !== 'embedded' && mode !== 'blockcontent', + fillForms: mode !== 'view' && mode !== 'comment' && mode !== 'blockcontent', modifyFilter: mode !== 'filter', modifyContentControl: mode !== 'blockcontent', copy: !user.deniedPermissions.includes('copy'), @@ -1067,6 +1070,7 @@ app.get('/editor', (req, res) => { // define a handler for editing document ? JSON.stringify({ fileName, userAddress: req.DocManager.curUserHostAddress() }) : null, instanceId: userid !== 'uid-0' ? req.DocManager.getInstanceId() : null, protect: !user.deniedPermissions.includes('protect'), + close: user.close, }, dataInsertImage: { fileType: 'png', diff --git a/web/documentserver-example/nodejs/config/default.json b/web/documentserver-example/nodejs/config/default.json index 0fe19dcbb..0880dc509 100644 --- a/web/documentserver-example/nodejs/config/default.json +++ b/web/documentserver-example/nodejs/config/default.json @@ -1,5 +1,5 @@ { - "version": "1.8.0", + "version": "1.9.0", "log": { "appenders": [ { @@ -51,6 +51,7 @@ "cs": "Czech", "da": "Danish", "nl": "Dutch", + "en-GB": "English (United Kingdom)", "fi": "Finnish", "fr": "French", "gl": "Galego", @@ -70,7 +71,8 @@ "pt-PT": "Portuguese (Portugal)", "ro": "Romanian", "ru": "Russian", - "sr-Latn-CS": "Serbian", + "sr-Cyrl-RS": "Serbian (Cyrillic)", + "sr-Latn-RS": "Serbian (Latin)", "si": "Sinhala (Sri Lanka)", "sk": "Slovak", "sl": "Slovenian", diff --git a/web/documentserver-example/nodejs/helpers/users.js b/web/documentserver-example/nodejs/helpers/users.js index 8d7bd7f6f..301cc3079 100644 --- a/web/documentserver-example/nodejs/helpers/users.js +++ b/web/documentserver-example/nodejs/helpers/users.js @@ -30,6 +30,7 @@ class User { descriptions, templates, avatar, + close, ) { this.id = id; this.name = name; @@ -43,6 +44,7 @@ class User { this.descriptions = descriptions; this.templates = templates; this.avatar = avatar; + this.close = close; } } @@ -99,7 +101,21 @@ const descrUser0 = [ ]; const users = [ - new User('uid-1', 'John Smith', 'smith@example.com', null, null, {}, null, null, [], descrUser1, true, true), + new User( + 'uid-1', + 'John Smith', + 'smith@example.com', + null, + null, + {}, + null, + null, + [], + descrUser1, + true, + true, + { visible: false }, + ), new User( 'uid-2', 'Mark Pottato', @@ -117,6 +133,7 @@ const users = [ descrUser2, false, true, + {}, ), new User( 'uid-3', @@ -135,8 +152,9 @@ const users = [ descrUser3, false, false, + {}, ), - new User('uid-0', null, null, null, null, {}, [], null, ['protect'], descrUser0, false, false), + new User('uid-0', null, null, null, null, {}, [], null, ['protect'], descrUser0, false, false, null), ]; // get a list of all the users diff --git a/web/documentserver-example/nodejs/public/assets/document-formats b/web/documentserver-example/nodejs/public/assets/document-formats index d81437e6d..2b592018a 160000 --- a/web/documentserver-example/nodejs/public/assets/document-formats +++ b/web/documentserver-example/nodejs/public/assets/document-formats @@ -1 +1 @@ -Subproject commit d81437e6d35d8d8fda23cee3e30312302046da33 +Subproject commit 2b592018adbf03d9d6a9f1ab69b1e9d8af73e22c diff --git a/web/documentserver-example/nodejs/public/assets/document-templates b/web/documentserver-example/nodejs/public/assets/document-templates index 1fc823afa..c9fc1ee6b 160000 --- a/web/documentserver-example/nodejs/public/assets/document-templates +++ b/web/documentserver-example/nodejs/public/assets/document-templates @@ -1 +1 @@ -Subproject commit 1fc823afa909e4c49551e4e5b945189a21ff1999 +Subproject commit c9fc1ee6beac118a7d9472f971a61cd2eb285293 diff --git a/web/documentserver-example/nodejs/public/images/file_docxf.svg b/web/documentserver-example/nodejs/public/images/file_docxf.svg deleted file mode 100644 index ab5f02686..000000000 --- a/web/documentserver-example/nodejs/public/images/file_docxf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web/documentserver-example/nodejs/public/images/file_pdf.svg b/web/documentserver-example/nodejs/public/images/file_pdf.svg new file mode 100644 index 000000000..33694e18d --- /dev/null +++ b/web/documentserver-example/nodejs/public/images/file_pdf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/web/documentserver-example/nodejs/public/images/wopi-formsubmit.svg b/web/documentserver-example/nodejs/public/images/wopi-formsubmit.svg new file mode 100644 index 000000000..8d58f94e1 --- /dev/null +++ b/web/documentserver-example/nodejs/public/images/wopi-formsubmit.svg @@ -0,0 +1,4 @@ + + + + diff --git a/web/documentserver-example/nodejs/public/stylesheets/stylesheet.css b/web/documentserver-example/nodejs/public/stylesheets/stylesheet.css index 2be31b736..0247a96f5 100644 --- a/web/documentserver-example/nodejs/public/stylesheets/stylesheet.css +++ b/web/documentserver-example/nodejs/public/stylesheets/stylesheet.css @@ -162,7 +162,7 @@ label .checkbox { } .try-editor.form { - background-image: url("../images/file_docxf.svg"); + background-image: url("../images/file_pdf.svg"); } .side-option { diff --git a/web/documentserver-example/nodejs/views/config.ejs b/web/documentserver-example/nodejs/views/config.ejs index fbfd44221..57614b948 100755 --- a/web/documentserver-example/nodejs/views/config.ejs +++ b/web/documentserver-example/nodejs/views/config.ejs @@ -39,6 +39,7 @@ "customization": { "about": true, "comments": true, + "close": <%- JSON.stringify(editor.close) %>, "feedback": true, "forcesave": false, "goback": { diff --git a/web/documentserver-example/nodejs/views/editor.ejs b/web/documentserver-example/nodejs/views/editor.ejs index 8d6032aec..98f8f455e 100644 --- a/web/documentserver-example/nodejs/views/editor.ejs +++ b/web/documentserver-example/nodejs/views/editor.ejs @@ -57,6 +57,11 @@ document.title = title + (event.data ? "*" : ""); }; + var onRequestClose = function () { // close editor + docEditor.destroyEditor(); + innerAlert("Document editor closed successfully"); + }; + var onMetaChange = function (event) { // the meta information of the document is changed via the meta command if (event.data.favorite) { var favorite = !!event.data.favorite; @@ -69,7 +74,7 @@ }; var onRequestEditRights = function () { // the user is trying to switch the document from the viewing into the editing mode - location.href = location.href.replace(RegExp("mode=view\&?", "i"), ""); + location.href = location.href.replace(RegExp("mode=\\w+\&?", "i"), "") + "&mode=edit"; }; var onRequestHistory = function (event) { // the user is trying to show the document version history @@ -372,6 +377,7 @@ }; if (<%- JSON.stringify(editor.userid) %> != null) { + config.events.onRequestClose = onRequestClose; config.events.onRequestEditRights = onRequestEditRights; config.events.onRequestHistory = onRequestHistory; config.events.onRequestHistoryData = onRequestHistoryData; diff --git a/web/documentserver-example/nodejs/views/index.ejs b/web/documentserver-example/nodejs/views/index.ejs index b69de87ca..3cd23dba1 100755 --- a/web/documentserver-example/nodejs/views/index.ejs +++ b/web/documentserver-example/nodejs/views/index.ejs @@ -58,7 +58,7 @@ Presentation
  • - PDF form + PDF form