377 lines
17 KiB
C#
377 lines
17 KiB
C#
#pragma warning disable 1591
|
|
//------------------------------------------------------------------------------
|
|
// <auto-generated>
|
|
// This code was generated by a tool.
|
|
// Runtime Version:4.0.30319.42000
|
|
//
|
|
// Changes to this file may cause incorrect behavior and will be lost if
|
|
// the code is regenerated.
|
|
// </auto-generated>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace Disco.Web.Areas.Config.Views.DocumentTemplate
|
|
{
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Text;
|
|
using System.Web;
|
|
using System.Web.Helpers;
|
|
using System.Web.Mvc;
|
|
using System.Web.Mvc.Ajax;
|
|
using System.Web.Mvc.Html;
|
|
using System.Web.Routing;
|
|
using System.Web.Security;
|
|
using System.Web.UI;
|
|
using System.Web.WebPages;
|
|
using Disco;
|
|
using Disco.Models.Repository;
|
|
using Disco.Services;
|
|
using Disco.Services.Authorization;
|
|
using Disco.Services.Web;
|
|
using Disco.Web;
|
|
using Disco.Web.Extensions;
|
|
|
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
|
|
[System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Config/Views/DocumentTemplate/UndetectedPages.cshtml")]
|
|
public partial class UndetectedPages : Disco.Services.Web.WebViewPage<Disco.Web.Areas.Config.Models.DocumentTemplate.UndetectedPagesModel>
|
|
{
|
|
public UndetectedPages()
|
|
{
|
|
}
|
|
public override void Execute()
|
|
{
|
|
|
|
#line 2 "..\..\Areas\Config\Views\DocumentTemplate\UndetectedPages.cshtml"
|
|
|
|
Authorization.Require(Claims.Config.DocumentTemplate.UndetectedPages);
|
|
|
|
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Document Templates", MVC.Config.DocumentTemplate.Index(), "Undetected Pages");
|
|
Html.BundleDeferred("~/ClientScripts/Modules/Knockout");
|
|
Html.BundleDeferred("~/ClientScripts/Modules/jQuery-SignalR");
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n<div");
|
|
|
|
WriteLiteral(" id=\"undetectedPagesContainer\"");
|
|
|
|
WriteLiteral("\r\n data-urlundetectedfiles=\"");
|
|
|
|
|
|
#line 10 "..\..\Areas\Config\Views\DocumentTemplate\UndetectedPages.cshtml"
|
|
Write(Url.Action(MVC.API.DocumentTemplate.ImporterUndetectedFiles()));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\"");
|
|
|
|
WriteLiteral("\r\n data-urlundetectedpagethumbnail=\"");
|
|
|
|
|
|
#line 11 "..\..\Areas\Config\Views\DocumentTemplate\UndetectedPages.cshtml"
|
|
Write(new HtmlString(Url.Action(MVC.API.DocumentTemplate.ImporterUndetectedFile(null, false, true))));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\"");
|
|
|
|
WriteLiteral("\r\n data-urlundetectedpagepreview=\"");
|
|
|
|
|
|
#line 12 "..\..\Areas\Config\Views\DocumentTemplate\UndetectedPages.cshtml"
|
|
Write(new HtmlString(Url.Action(MVC.API.DocumentTemplate.ImporterUndetectedFile(null, false, false))));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\"");
|
|
|
|
WriteLiteral("\r\n data-urlundetectedpagesource=\"");
|
|
|
|
|
|
#line 13 "..\..\Areas\Config\Views\DocumentTemplate\UndetectedPages.cshtml"
|
|
Write(new HtmlString(Url.Action(MVC.API.DocumentTemplate.ImporterUndetectedFile(null, true, false))));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\"");
|
|
|
|
WriteLiteral("\r\n data-urldataidlookupservice=\"");
|
|
|
|
|
|
#line 14 "..\..\Areas\Config\Views\DocumentTemplate\UndetectedPages.cshtml"
|
|
Write(Url.Action(MVC.API.DocumentTemplate.ImporterUndetectedDataIdLookup()));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("/\"");
|
|
|
|
WriteLiteral("\r\n data-urlimporterundetectedassign=\"");
|
|
|
|
|
|
#line 15 "..\..\Areas\Config\Views\DocumentTemplate\UndetectedPages.cshtml"
|
|
Write(Url.Action(MVC.API.DocumentTemplate.ImporterUndetectedAssign()));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("/\"");
|
|
|
|
WriteLiteral("\r\n data-urlimporterundetecteddelete=\"");
|
|
|
|
|
|
#line 16 "..\..\Areas\Config\Views\DocumentTemplate\UndetectedPages.cshtml"
|
|
Write(Url.Action(MVC.API.DocumentTemplate.ImporterUndetectedDelete()));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\"");
|
|
|
|
WriteLiteral(">\r\n <div");
|
|
|
|
WriteLiteral(" id=\"noUndetectedPages\"");
|
|
|
|
WriteLiteral(" data-bind=\"visible: noUndetectedPages\"");
|
|
|
|
WriteLiteral(">\r\n <h3>No Undetected Pages</h3>\r\n </div>\r\n <ul");
|
|
|
|
WriteLiteral(" id=\"undetectedPages\"");
|
|
|
|
WriteLiteral(" class=\"clearfix\"");
|
|
|
|
WriteLiteral(" data-bind=\"visible: !noUndetectedPages(), foreach: { data: undetectedPages }\"");
|
|
|
|
WriteLiteral(">\r\n <li");
|
|
|
|
WriteLiteral(" class=\"undetectedPage\"");
|
|
|
|
WriteLiteral(" data-bind=\"style: { backgroundImage: thumbnailUrl }, click: select\"");
|
|
|
|
WriteLiteral(">\r\n <div");
|
|
|
|
WriteLiteral(" class=\"pageDetails\"");
|
|
|
|
WriteLiteral(" data-bind=\"text: timestampFuzzy, attr: { title: timestamp }\"");
|
|
|
|
WriteLiteral(">\r\n </div>\r\n </li>\r\n </ul>\r\n</div>\r\n<div");
|
|
|
|
WriteLiteral(" id=\"undetectedPageDialog\"");
|
|
|
|
WriteLiteral(" data-bind=\"with: selectedUndetectedPage\"");
|
|
|
|
WriteLiteral(">\r\n <div");
|
|
|
|
WriteLiteral(" class=\"pagePreview\"");
|
|
|
|
WriteLiteral(" data-bind=\"style: { backgroundImage: previewUrl }\"");
|
|
|
|
WriteLiteral(">\r\n </div>\r\n <div");
|
|
|
|
WriteLiteral(" class=\"actions\"");
|
|
|
|
WriteLiteral(">\r\n <a");
|
|
|
|
WriteLiteral(" href=\"#\"");
|
|
|
|
WriteLiteral(" class=\"button\"");
|
|
|
|
WriteLiteral(" target=\"_blank\"");
|
|
|
|
WriteLiteral(" data-bind=\"attr: { href: sourceUrl }\"");
|
|
|
|
WriteLiteral(">Download</a>\r\n <a");
|
|
|
|
WriteLiteral(" href=\"#\"");
|
|
|
|
WriteLiteral(" class=\"button\"");
|
|
|
|
WriteLiteral(" id=\"dialogDeleteButton\"");
|
|
|
|
WriteLiteral(" data-bind=\"click: deletePage\"");
|
|
|
|
WriteLiteral(">Delete</a>\r\n </div>\r\n <div");
|
|
|
|
WriteLiteral(" class=\"actions\"");
|
|
|
|
WriteLiteral(">\r\n Type: ");
|
|
|
|
|
|
#line 35 "..\..\Areas\Config\Views\DocumentTemplate\UndetectedPages.cshtml"
|
|
Write(Html.DropDownList("dialogDocumentTemplateId", Model.DocumentTemplatesSelectListItems, new Dictionary<string, object> { { "data-bind", "value: dialogTemplateId" } }));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n Data:\r\n <input");
|
|
|
|
WriteLiteral(" id=\"dialogDataId\"");
|
|
|
|
WriteLiteral(" type=\"text\"");
|
|
|
|
WriteLiteral(" data-bind=\"value: dialogDataId, autocomplete: { source: dialogDataIdService, min" +
|
|
"Length: 2, position: { my: \'left bottom\', at: \'left top\' } }\"");
|
|
|
|
WriteLiteral(" />\r\n <button");
|
|
|
|
WriteLiteral(" type=\"button\"");
|
|
|
|
WriteLiteral(" class=\"button\"");
|
|
|
|
WriteLiteral(" id=\"dialogAssignButton\"");
|
|
|
|
WriteLiteral(" data-bind=\"click: assignPage\"");
|
|
|
|
WriteLiteral(">Assign</button>\r\n </div>\r\n</div>\r\n<div");
|
|
|
|
WriteLiteral(" id=\"dialogRemove\"");
|
|
|
|
WriteLiteral(" title=\"Delete this Page?\"");
|
|
|
|
WriteLiteral(">\r\n <p>\r\n <i");
|
|
|
|
WriteLiteral(" class=\"fa fa-exclamation-triangle fa-lg warning\"");
|
|
|
|
WriteLiteral("></i>\r\n Are you sure?\r\n </p>\r\n</div>\r\n<script");
|
|
|
|
WriteLiteral(" type=\"text/javascript\"");
|
|
|
|
WriteLiteral(@">
|
|
ko.bindingHandlers.autocomplete = {
|
|
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
|
|
var autocompleteOptions = ko.utils.unwrapObservable(valueAccessor());
|
|
if (autocompleteOptions.source)
|
|
autocompleteOptions.source = ko.utils.unwrapObservable(autocompleteOptions.source);
|
|
$element = $(element);
|
|
if (!$element.is('.ui-autocomplete-input')) {
|
|
autocompleteOptions.select = function (e, ui) {
|
|
allBindingsAccessor().value(ui.item.value);
|
|
return false;
|
|
}
|
|
$element.autocomplete(autocompleteOptions);
|
|
} else {
|
|
// Update Source Option Only
|
|
if (autocompleteOptions.source)
|
|
$element.autocomplete('option', 'source', autocompleteOptions.source);
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
<script");
|
|
|
|
WriteLiteral(" type=\"text/javascript\"");
|
|
|
|
WriteLiteral(">\r\n $(function () {\r\n\r\n const vm = new pageViewModel();\r\n const " +
|
|
"$undetectedPagesContainer = $(undetectedPagesContainer);\r\n const urlUndet" +
|
|
"ectedFiles = $undetectedPagesContainer.attr(\'data-urlundetectedfiles\');\r\n " +
|
|
" const urlUndetectedPageThumbnail = $undetectedPagesContainer.attr(\'data-urlunde" +
|
|
"tectedpagethumbnail\');\r\n const urlUndetectedPagePreview = $undetectedPage" +
|
|
"sContainer.attr(\'data-urlundetectedpagepreview\');\r\n const urlUndetectedPa" +
|
|
"geSource = $undetectedPagesContainer.attr(\'data-urlundetectedpagesource\');\r\n " +
|
|
" const urlDataIdLookupService = $undetectedPagesContainer.attr(\'data-urldatai" +
|
|
"dlookupservice\');\r\n const urlImporterUndetectedAssign = $undetectedPagesC" +
|
|
"ontainer.attr(\'data-urlimporterundetectedassign\');\r\n const urlImporterUnd" +
|
|
"etectedDelete = $undetectedPagesContainer.attr(\'data-urlimporterundetecteddelete" +
|
|
"\');\r\n const $undetectedPageDialog = $(\'#undetectedPageDialog\').dialog({\r\n" +
|
|
" modal: true,\r\n width: 800,\r\n resizable: false," +
|
|
"\r\n autoOpen: false\r\n });\r\n\r\n function resizeUndetectedP" +
|
|
"ageDialog() {\r\n var dialogHeight = Math.min($(window).height() - 120," +
|
|
" 805);\r\n $undetectedPageDialog.height(dialogHeight);\r\n $un" +
|
|
"detectedPageDialog.find(\'.pagePreview\').height(dialogHeight - 105);\r\n }\r\n" +
|
|
" resizeUndetectedPageDialog();\r\n\r\n $(window).resize(resizeUndetect" +
|
|
"edPageDialog);\r\n\r\n $dialogRemove = $(\'#dialogRemove\').dialog({\r\n " +
|
|
" resizable: false,\r\n height: 140,\r\n modal: true,\r\n " +
|
|
" autoOpen: false\r\n });\r\n\r\n function pageViewModel() {\r\n " +
|
|
" var self = this;\r\n\r\n self.selectedUndetectedPage = ko.observabl" +
|
|
"e(null);\r\n self.undetectedPages = ko.observableArray();\r\n " +
|
|
"self.noUndetectedPages = ko.computed(function () { return self.undetectedPages()" +
|
|
".length == 0 });\r\n self.selectNextPage = function () {\r\n " +
|
|
" var oldSelected = self.selectedUndetectedPage();\r\n var oldSele" +
|
|
"ctedIndex = vm.undetectedPages.indexOf(oldSelected);\r\n\r\n if (vm.u" +
|
|
"ndetectedPages().length > 1) {\r\n if (oldSelectedIndex + 1 <= " +
|
|
"vm.undetectedPages().length - 1)\r\n vm.selectedUndetectedP" +
|
|
"age(vm.undetectedPages()[oldSelectedIndex + 1]);\r\n else\r\n " +
|
|
" vm.selectedUndetectedPage(vm.undetectedPages()[oldSelectedIn" +
|
|
"dex - 1]);\r\n } else {\r\n $undetectedPageDialog." +
|
|
"dialog(\'close\');\r\n vm.selectedUndetectedPage(null);\r\n " +
|
|
" }\r\n }\r\n }\r\n\r\n function undetectedPageViewModel(" +
|
|
"id, timestamp, timestampFuzzy) {\r\n var self = this;\r\n\r\n se" +
|
|
"lf.id = id;\r\n self.timestamp = timestamp;\r\n self.timestamp" +
|
|
"Fuzzy = timestampFuzzy;\r\n self.thumbnailUrl = \"url(\" + urlUndetectedP" +
|
|
"ageThumbnail + \"&id=\" + id + \")\";\r\n self.previewUrl = \"url(\" + urlUnd" +
|
|
"etectedPagePreview + \"&id=\" + id + \")\";\r\n self.sourceUrl = urlUndetec" +
|
|
"tedPageSource + \"&id=\" + id;\r\n self.select = function (e, d) {\r\n " +
|
|
" vm.selectedUndetectedPage(self);\r\n $undetectedPageDial" +
|
|
"og.dialog(\'open\');\r\n }\r\n\r\n // Dialog Properties\r\n " +
|
|
" self.dialogTemplateId = ko.observable(null);\r\n self.dialogDataId =" +
|
|
" ko.observable(null);\r\n self.dialogDataIdService = ko.computed(functi" +
|
|
"on () {\r\n return urlDataIdLookupService + self.dialogTemplateId()" +
|
|
";\r\n });\r\n self.deletePage = function () {\r\n " +
|
|
" $dialogRemove.dialog(\'option\', \'buttons\', {\r\n \"Remove\": func" +
|
|
"tion () {\r\n $dialogRemove.dialog(\"close\");\r\n\r\n " +
|
|
" async function removeAsync() {\r\n\r\n const" +
|
|
" body = new FormData();\r\n body.append(\'__RequestVerif" +
|
|
"icationToken\', document.body.dataset.antiforgery);\r\n " +
|
|
"body.append(\'id\', self.id);\r\n\r\n try {\r\n " +
|
|
" const response = await fetch(urlImporterUndetectedDelete, {\r\n " +
|
|
" method: \'POST\',\r\n " +
|
|
" body: body\r\n });\r\n " +
|
|
" if (!response.ok) {\r\n alert(\'Unable " +
|
|
"to delete page: \' + response.statusText);\r\n r" +
|
|
"eturn;\r\n }\r\n vm.se" +
|
|
"lectNextPage();\r\n vm.undetectedPages.remove(self)" +
|
|
";\r\n } catch (e) {\r\n al" +
|
|
"ert(\'Unable to delete page: \' + e);\r\n }\r\n " +
|
|
" }\r\n removeAsync(self.id);\r\n " +
|
|
" },\r\n \"Cancel\": function () {\r\n $dial" +
|
|
"ogRemove.dialog(\"close\");\r\n $undetectedPageDialog.dialog(" +
|
|
"\'option\', \'disabled\', false);\r\n }\r\n });\r\n\r\n " +
|
|
" $dialogRemove.dialog(\'open\');\r\n\r\n return false;\r\n " +
|
|
" }\r\n self.assignPage = async function () {\r\n v" +
|
|
"ar dtId = self.dialogTemplateId();\r\n var dId = self.dialogDataId(" +
|
|
");\r\n if (!dtId || !dId) {\r\n alert(\'Please spec" +
|
|
"ify a valid Document Type and Data Id\');\r\n } else {\r\n " +
|
|
" const body = new FormData();\r\n body.append(\'__Request" +
|
|
"VerificationToken\', document.body.dataset.antiforgery);\r\n bod" +
|
|
"y.append(\'id\', self.id);\r\n body.append(\'documentTemplateId\', " +
|
|
"dtId);\r\n body.append(\'dataId\', dId);\r\n\r\n t" +
|
|
"ry {\r\n const response = await fetch(urlImporterUndetected" +
|
|
"Assign, {\r\n method: \'POST\',\r\n " +
|
|
" body: body\r\n });\r\n if (respons" +
|
|
"e.ok) {\r\n vm.selectNextPage();\r\n " +
|
|
" vm.undetectedPages.remove(self);\r\n } else {\r\n " +
|
|
" alert(\'Unable to assign page: \' + response.statusText);\r\n" +
|
|
" }\r\n } catch (e) {\r\n " +
|
|
" alert(\'Unable to assign page: \' + e);\r\n }\r\n " +
|
|
" }\r\n return false;\r\n };\r\n }\r\n\r\n async" +
|
|
" function init() {\r\n const body = new FormData();\r\n body.a" +
|
|
"ppend(\'__RequestVerificationToken\', document.body.dataset.antiforgery);\r\n " +
|
|
" const response = await fetch(urlUndetectedFiles, {\r\n method:" +
|
|
" \'POST\',\r\n body: body\r\n });\r\n\r\n if (!respon" +
|
|
"se.ok) {\r\n alert(\'Unable to load content: \' + response.statusText" +
|
|
");\r\n return;\r\n }\r\n\r\n const content = await " +
|
|
"response.json();\r\n\r\n if (content.length > 0) {\r\n for (" +
|
|
"var i = 0; i < content.length; i++) {\r\n var c = content[i];\r\n" +
|
|
" var up = new undetectedPageViewModel(c.Id, c.Timestamp, c.Ti" +
|
|
"mestampFuzzy);\r\n vm.undetectedPages.push(up);\r\n " +
|
|
" }\r\n }\r\n\r\n ko.applyBindings(vm);\r\n\r\n var fileI" +
|
|
"d = window.location.hash;\r\n if (fileId) {\r\n fileId = f" +
|
|
"ileId.substr(1);\r\n for (var i = 0; i < vm.undetectedPages().lengt" +
|
|
"h; i++) {\r\n var up = vm.undetectedPages()[i];\r\n " +
|
|
" if (up.id == fileId) {\r\n up.select();\r\n " +
|
|
" return;\r\n }\r\n }\r\n }\r\n " +
|
|
" }\r\n\r\n init();\r\n });\r\n</script>\r\n");
|
|
|
|
}
|
|
}
|
|
}
|
|
#pragma warning restore 1591
|