diff --git a/CHANGELOG.md b/CHANGELOG.md index 87aa6e8b..ded64ef3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Change Log +- csharp: handling conversion -9 error - java-spring: handling conversion -9 error - java: handling conversion -9 error - ruby: handling conversion -9 error diff --git a/web/documentserver-example/csharp/App_Themes/media.css b/web/documentserver-example/csharp/App_Themes/media.css index 705085cc..d5bde136 100644 --- a/web/documentserver-example/csharp/App_Themes/media.css +++ b/web/documentserver-example/csharp/App_Themes/media.css @@ -502,6 +502,17 @@ justify-content: space-between; align-items: center; } + .buttonsMobile.indent { + margin-bottom: 0; + flex-wrap: nowrap; + } + .button.file-type:hover, + .button.file-type { + height: 28px; + width: 100px; + margin-bottom: 10px !important; + font-size: 9px; + } .button.gray{ margin: 0; } diff --git a/web/documentserver-example/csharp/App_Themes/stylesheet.css b/web/documentserver-example/csharp/App_Themes/stylesheet.css index 69c00e00..f245f2d4 100644 --- a/web/documentserver-example/csharp/App_Themes/stylesheet.css +++ b/web/documentserver-example/csharp/App_Themes/stylesheet.css @@ -230,6 +230,33 @@ label .checkbox { color: #FF6F3D; } +.button.file-type { + font-size: 11px; + color: #FFFFFF; + padding: 8px 8px; + margin-right: 10px; +} + +.button.file-type.disable { + cursor: default; +} + +.button.file-type.pale { + opacity: 30%; +} + +.button.file-type.document { + background: #446995; +} + +.button.file-type.spreadsheet { + background: #40865C; +} + +.button.file-type.presentation { + background: #AA5252; +} + .upload-panel { float: left; padding: 24px 0; @@ -745,6 +772,16 @@ html { margin-left: 25px; } +.buttonsMobile.indent{ + padding-left: 35px; + margin-top: 10px; + margin-bottom: 10px; +} + +.invisible { + display: none; +} + .tooltip { background: #FFFFFF; border-radius: 5px; diff --git a/web/documentserver-example/csharp/Default.aspx b/web/documentserver-example/csharp/Default.aspx index 4bb5b0df..569b77e3 100644 --- a/web/documentserver-example/csharp/Default.aspx +++ b/web/documentserver-example/csharp/Default.aspx @@ -297,6 +297,15 @@
After these steps are completed, you can work with your document.
1. Loading the file. The loading speed depends on file size and additional elements it contains. +
2. Conversion. The file is converted to OOXML so that you can edit it. diff --git a/web/documentserver-example/csharp/Default.aspx.cs b/web/documentserver-example/csharp/Default.aspx.cs index da98636f..24324d3b 100644 --- a/web/documentserver-example/csharp/Default.aspx.cs +++ b/web/documentserver-example/csharp/Default.aspx.cs @@ -437,7 +437,14 @@ namespace OnlineEditorsExample var lang = context.Request.Cookies.GetOrDefault("ulang", null); var extension = (Path.GetExtension(_fileName).ToLower() ?? "").Trim('.'); - var internalExtension = "ooxml"; + string conversionExtension = "ooxml"; // set the default conversion extension as ooxml + object fileExt; + + // change the conversion extension if it was provided in the request body + if (body.TryGetValue("fileExt", out fileExt) && !String.IsNullOrEmpty(fileExt.ToString())) + { + conversionExtension = fileExt.ToString(); + } // check if the file with such an extension can be converted if (ConvertExts.Contains("." + extension)) @@ -454,7 +461,7 @@ namespace OnlineEditorsExample // get the url and file type of the converted file Dictionary newFileData; - var result = ServiceConverter.GetConvertedData(fileUrl.ToString() , extension, internalExtension, key, true, out newFileData, filePass, lang); + var result = ServiceConverter.GetConvertedData(fileUrl.ToString() , extension, conversionExtension, key, true, out newFileData, filePass, lang); if (result != 100) { return "{ \"step\" : \"" + result + "\", \"filename\" : \"" + _fileName + "\"}"; diff --git a/web/documentserver-example/csharp/DocumentConverter.cs b/web/documentserver-example/csharp/DocumentConverter.cs index a59c2495..580f77af 100644 --- a/web/documentserver-example/csharp/DocumentConverter.cs +++ b/web/documentserver-example/csharp/DocumentConverter.cs @@ -231,6 +231,10 @@ namespace ASC.Api.DocumentConverter switch (errorCode) { + case -9: + // public const int c_nErrorConversionOutputFormatError = -9; + errorMessage = String.Format(errorMessageTemplate, "Error conversion output format"); + break; case -8: // public const int c_nErrorFileVKey = -8; errorMessage = String.Format(errorMessageTemplate, "Error document VKey"); diff --git a/web/documentserver-example/csharp/script/jscript.js b/web/documentserver-example/csharp/script/jscript.js index 2491c400..db4f1f1f 100644 --- a/web/documentserver-example/csharp/script/jscript.js +++ b/web/documentserver-example/csharp/script/jscript.js @@ -87,7 +87,7 @@ if (typeof jQuery != "undefined") { }); var timer = null; - var checkConvert = function (filePass) { + var checkConvert = function (filePass, fileType) { filePass = filePass ? filePass : null; if (timer != null) { clearTimeout(timer); @@ -116,7 +116,7 @@ if (typeof jQuery != "undefined") { contentType: "text/xml", type: "post", dataType: "json", - data: JSON.stringify({ filename: fileName, filePass: filePass }), + data: JSON.stringify({ filename: fileName, filePass: filePass, fileExt: fileType }), url: requestAddress, complete: function (data) { var responseText = data.responseText; @@ -132,6 +132,12 @@ if (typeof jQuery != "undefined") { } return; } else { + if (response.error.includes("Error conversion output format")) { + jq("#select-file-type").removeClass("invisible"); + jq("#step2").removeClass("current"); + jq("#hiddenFileName").attr("placeholder", filePass); + return; + } jq(".current").removeClass("current"); jq(".step:not(.done)").addClass("error"); jq("#mainProgress .error-message").show().find("span").text(response.error); @@ -143,7 +149,7 @@ if (typeof jQuery != "undefined") { jq("#hiddenFileName").val(response.filename); if (response.step && response.step < 100) { - checkConvert(filePass); + checkConvert(filePass, fileType); } else { jq("#step2").addClass("done").removeClass("current"); loadScripts(); @@ -213,6 +219,15 @@ if (typeof jQuery != "undefined") { }); }; + jq(document).on("click", ".file-type:not(.disable)", function () { + const currentElement = jq(this); + var fileType = currentElement.attr("data"); + var filePass = jq("#hiddenFileName").attr("placeholder"); + jq('.file-type').addClass(["disable", "pale"]); + currentElement.removeClass("pale"); + checkConvert(filePass, fileType); + }); + jq(document).on("click", "#enterPass", function () { var filePass = jq("#filePass").val(); if (filePass) {