diff --git a/web/documentserver-example/csharp-mvc/Content/stylesheet.css b/web/documentserver-example/csharp-mvc/Content/stylesheet.css index fc6efba8..055dd92d 100644 --- a/web/documentserver-example/csharp-mvc/Content/stylesheet.css +++ b/web/documentserver-example/csharp-mvc/Content/stylesheet.css @@ -167,7 +167,7 @@ label .checkbox { background-image: url("images/file_docxf.svg"); } -.create-sample { +.side-option { color: #666666; line-height: 24px; } diff --git a/web/documentserver-example/csharp-mvc/Controllers/HomeController.cs b/web/documentserver-example/csharp-mvc/Controllers/HomeController.cs index 931ce08b..0ba4c9d1 100644 --- a/web/documentserver-example/csharp-mvc/Controllers/HomeController.cs +++ b/web/documentserver-example/csharp-mvc/Controllers/HomeController.cs @@ -16,6 +16,7 @@ * */ +using System; using System.IO; using System.Web.Mvc; using OnlineEditorsExampleMVC.Helpers; @@ -31,13 +32,14 @@ namespace OnlineEditorsExampleMVC.Controllers } // viewing file in the editor - public ActionResult Editor(string fileName, string editorsMode, string editorsType) + public ActionResult Editor(string fileName, string editorsMode, string editorsType, string directUrl) { var file = new FileModel { Mode = editorsMode, // editor mode: edit or view Type = editorsType, // editor type: desktop, mobile, embedded - FileName = Path.GetFileName(fileName) // file name + FileName = Path.GetFileName(fileName), // file name + IsEnabledDirectUrl = directUrl != null ? Convert.ToBoolean(directUrl) : false }; return View("Editor", file); diff --git a/web/documentserver-example/csharp-mvc/Helpers/DocManagerHelper.cs b/web/documentserver-example/csharp-mvc/Helpers/DocManagerHelper.cs index b7c56aa2..091cec8e 100644 --- a/web/documentserver-example/csharp-mvc/Helpers/DocManagerHelper.cs +++ b/web/documentserver-example/csharp-mvc/Helpers/DocManagerHelper.cs @@ -442,5 +442,11 @@ namespace OnlineEditorsExampleMVC.Helpers } return languages; } + + public static string GetDirectUrl() + { + string isEnabledDirectUrl = HttpUtility.ParseQueryString(HttpContext.Current.Request.Url.Query).Get("directUrl"); + return isEnabledDirectUrl != null ? isEnabledDirectUrl : "false"; + } } } \ No newline at end of file diff --git a/web/documentserver-example/csharp-mvc/Models/FileModel.cs b/web/documentserver-example/csharp-mvc/Models/FileModel.cs index bfc0c69b..5eb723b1 100755 --- a/web/documentserver-example/csharp-mvc/Models/FileModel.cs +++ b/web/documentserver-example/csharp-mvc/Models/FileModel.cs @@ -33,6 +33,7 @@ namespace OnlineEditorsExampleMVC.Models { public string Mode { get; set; } // editor mode public string Type { get; set; } // editor type + public bool IsEnabledDirectUrl { get; set; } // is enabled direct url // get file url for Document Server public string FileUri @@ -126,7 +127,7 @@ namespace OnlineEditorsExampleMVC.Models { { "title", FileName }, { "url", DownloadUrl }, - { "directUrl", directUrl }, + { "directUrl", IsEnabledDirectUrl ? directUrl : "" }, { "fileType", ext.Trim('.') }, { "key", Key }, { @@ -286,7 +287,10 @@ namespace OnlineEditorsExampleMVC.Models } dataObj.Add("url", prevFileUrl); - dataObj.Add("directUrl", directPrevFileUrl); + if (IsEnabledDirectUrl) + { + dataObj.Add("directUrl", directPrevFileUrl); + } dataObj.Add("version", i); if (i > 1) // check if the version number is greater than 1 (the file was modified) { @@ -304,11 +308,15 @@ namespace OnlineEditorsExampleMVC.Models obj.Add("user", change.Count > 0 ? change["user"] : null); var prev = (Dictionary)histData[(i - 2).ToString()]; // get the history data from the previous file version - dataObj.Add("previous", new Dictionary() { // write information about previous file version to the data object + dataObj.Add("previous", IsEnabledDirectUrl ? new Dictionary() { // write information about previous file version to the data object with direct url { "fileType", prev["fileType"] }, { "key", prev["key"] }, // write key and url information about previous file version { "url", prev["url"] }, { "directUrl", prev["directUrl"] }, + } : new Dictionary() { // write information about previous file version to the data object without direct url + { "fileType", prev["fileType"] }, + { "key", prev["key"] }, // write key and url information about previous file version + { "url", prev["url"] }, }); // write the path to the diff.zip archive with differences in this file version var changesUrl = DocManagerHelper.GetHistoryDownloadUrl(FileName, (i - 1).ToString(), "diff.zip"); @@ -359,10 +367,14 @@ namespace OnlineEditorsExampleMVC.Models var dataCompareFile = new Dictionary { { "fileType", "docx" }, - { "url", compareFileUrl.ToString() }, - { "directUrl", directCompareFileUrl.ToString()} + { "url", compareFileUrl.ToString() } }; + if (IsEnabledDirectUrl) + { + dataCompareFile.Add("directUrl", directCompareFileUrl.ToString()); + } + if (JwtManager.Enabled) // if the secret key to generate token exists { var compareFileToken = JwtManager.Encode(dataCompareFile); // encode the dataCompareFile object into the token @@ -396,10 +408,14 @@ namespace OnlineEditorsExampleMVC.Models var logoConfig = new Dictionary { { "fileType", "png"}, - { "url", mailMergeUrl.ToString()}, - { "directUrl", directMailMergeUrl.ToString()} + { "url", mailMergeUrl.ToString()} }; + if (IsEnabledDirectUrl) + { + logoConfig.Add("directUrl", directMailMergeUrl.ToString()); + } + if (JwtManager.Enabled) // if the secret key to generate token exists { var token = JwtManager.Encode(logoConfig); // encode logoConfig into the token @@ -437,10 +453,14 @@ namespace OnlineEditorsExampleMVC.Models var mailMergeConfig = new Dictionary { { "fileType", "csv" }, - { "url", mailMergeUrl.ToString()}, - { "directUrl", directMailMergeUrl.ToString()} + { "url", mailMergeUrl.ToString()} }; + if (IsEnabledDirectUrl) + { + mailMergeConfig.Add("directUrl", directMailMergeUrl.ToString()); + } + if (JwtManager.Enabled) // if the secret key to generate token exists { var mailmergeToken = JwtManager.Encode(mailMergeConfig); // encode mailMergeConfig into the token diff --git a/web/documentserver-example/csharp-mvc/Scripts/jscript.js b/web/documentserver-example/csharp-mvc/Scripts/jscript.js index b4889c08..e74170c9 100644 --- a/web/documentserver-example/csharp-mvc/Scripts/jscript.js +++ b/web/documentserver-example/csharp-mvc/Scripts/jscript.js @@ -16,11 +16,24 @@ * */ +var directUrl; + if (typeof jQuery != "undefined") { jq = jQuery.noConflict(); + directUrl = getUrlVars()["directUrl"] == "true"; + mustReload = false; + if (directUrl) + jq("#directUrl").prop("checked", directUrl); + else + directUrl = jq("#directUrl").prop("checked"); + + jq("#directUrl").change(function () { + window.location = "?directUrl=" + jq(this).prop("checked"); + }); + jq(function () { jq('#fileupload').fileupload({ dataType: 'json', @@ -219,7 +232,7 @@ if (typeof jQuery != "undefined") { jq(document).on("click", "#beginEdit:not(.disable)", function () { var fileId = encodeURIComponent(jq('#hiddenFileName').val()); - var url = UrlEditor + "?fileName=" + fileId; + var url = UrlEditor + "?fileName=" + fileId + "&directUrl=" + directUrl; window.open(url, "_blank"); jq('#hiddenFileName').val(""); jq.unblockUI(); @@ -227,7 +240,7 @@ if (typeof jQuery != "undefined") { jq(document).on("click", "#beginView:not(.disable)", function () { var fileId = encodeURIComponent(jq('#hiddenFileName').val()); - var url = UrlEditor + "?editorsMode=view&fileName=" + fileId; + var url = UrlEditor + "?editorsMode=view&fileName=" + fileId + "&directUrl=" + directUrl; window.open(url, "_blank"); jq('#hiddenFileName').val(""); jq.unblockUI(); @@ -235,7 +248,7 @@ if (typeof jQuery != "undefined") { jq(document).on("click", "#beginEmbedded:not(.disable)", function () { var fileId = encodeURIComponent(jq('#hiddenFileName').val()); - var url = UrlEditor + "?editorsType=embedded&editorsMode=embedded&fileName=" + fileId; + var url = UrlEditor + "?editorsType=embedded&editorsMode=embedded&fileName=" + fileId + "&directUrl=" + directUrl; jq("#mainProgress").addClass("embedded"); jq("#beginEmbedded").addClass("disable"); @@ -289,6 +302,17 @@ if (typeof jQuery != "undefined") { } }; + function getUrlVars() { + var vars = [], hash; + var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); + for (var i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + vars.push(hash[0]); + vars[hash[0]] = hash[1]; + } + return vars; + }; + var fileList = jq("tr.tableRow"); var mouseIsOverTooltip = false; @@ -304,7 +328,7 @@ if (typeof jQuery != "undefined") { }); } } else { - jq(".info").mouseover(function (event) { + jq("#info").mouseover(function (event) { if (fileList.length > 0) { if (hideTooltipTimeout != null) { clearTimeout(hideTooltipTimeout); diff --git a/web/documentserver-example/csharp-mvc/Views/Home/Index.aspx b/web/documentserver-example/csharp-mvc/Views/Home/Index.aspx index 18a621a2..bdb37e78 100644 --- a/web/documentserver-example/csharp-mvc/Views/Home/Index.aspx +++ b/web/documentserver-example/csharp-mvc/Views/Home/Index.aspx @@ -86,7 +86,7 @@ Username - + + + + + + @@ -156,7 +164,8 @@ <% foreach (var storedFile in storedFiles) { - var editUrl = "doceditor.aspx?fileID=" + HttpUtility.UrlEncode(storedFile.Name); + var isEnabledDirectUrl = DocManagerHelper.GetDirectUrl(); + var editUrl = "doceditor.aspx?fileID=" + HttpUtility.UrlEncode(storedFile.Name); var docType = FileUtility.GetFileType(storedFile.Name).ToString().ToLower(); var ext = Path.GetExtension(storedFile.Name).ToLower(); var canEdit = DocManagerHelper.EditedExts.Contains(ext); @@ -165,42 +174,42 @@ - " target="_blank"> + " target="_blank"> <%= storedFile.Name %> <% if (canEdit) { %> - " target="_blank"> + " target="_blank"> Open in editor for full size screens - " target="_blank"> + " target="_blank"> Open in editor for mobile devices - " target="_blank"> + " target="_blank"> Open in editor for comment <% if (docType == "word") { %> - " target="_blank"> + " target="_blank"> Open in editor for review <% } else if (docType == "cell") { %> - " target="_blank"> + " target="_blank"> Open in editor without access to change the filter <% } %> <% if (docType == "word") { %> - " target="_blank"> + " target="_blank"> Open in editor without content control modification @@ -212,7 +221,7 @@ <% } %> <% if (isFillFormDoc) { %> - " target="_blank"> + " target="_blank"> Open in editor for filling in forms @@ -222,7 +231,7 @@ <% } else if (isFillFormDoc) { %> - " target="_blank"> + " target="_blank"> Open in editor for filling in forms for mobile devices @@ -230,7 +239,7 @@ - " target="_blank"> + " target="_blank"> Open in editor for filling in forms @@ -238,17 +247,17 @@ <% } %> - " target="_blank"> + " target="_blank"> Open in viewer for full size screens - " target="_blank"> + " target="_blank"> Open in viewer for mobile devices - " target="_blank"> + " target="_blank"> Open in embedded mode