Bug Fix #68: Undetected Pages dialog scale

Automatically scales the undetected page preview based on the browser
size.
This commit is contained in:
Gary Sharp committed 2014-07-28 17:33:49 +10:00
1 parent 2d8dcb6900
commit 7062a40dfb
5 files changed
+90 -73

No files matched your search

@@ -70,12 +70,20 @@
var urlImporterUndetectedDelete = '@(Url.Action(MVC.API.DocumentTemplate.ImporterUndetectedDelete()))/';
var $undetectedPageDialog = $('#undetectedPageDialog').dialog({
modal: true,
height: 850,
width: 800,
resizable: false,
autoOpen: false
});
function resizeUndetectedPageDialog() {
var dialogHeight = Math.min($(window).height() - 120, 805);
$undetectedPageDialog.height(dialogHeight);
$undetectedPageDialog.find('.pagePreview').height(dialogHeight - 105);
}
resizeUndetectedPageDialog();
$(window).resize(resizeUndetectedPageDialog);
$dialogRemove = $('#dialogRemove').dialog({
resizable: false,
height: 140,
@@ -249,80 +249,85 @@ WriteLiteral("/\';\r\n var urlImporterUndetectedDelete = \'");
#line default
#line hidden
WriteLiteral("/\';\r\n var $undetectedPageDialog = $(\'#undetectedPageDialog\').dialog({\r\n " +
" modal: true,\r\n height: 850,\r\n width: 800,\r\n " +
" resizable: false,\r\n autoOpen: false\r\n });\r\n\r\n $di" +
"alogRemove = $(\'#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.observable(null);\r\n self.un" +
"detectedPages = ko.observableArray();\r\n self.noUndetectedPages = ko.c" +
"omputed(function () { return self.undetectedPages().length == 0 });\r\n " +
" self.selectNextPage = function () {\r\n var oldSelected = self.sel" +
"ectedUndetectedPage();\r\n var oldSelectedIndex = vm.undetectedPage" +
"s.indexOf(oldSelected);\r\n\r\n if (vm.undetectedPages().length > 1) " +
"{\r\n if (oldSelectedIndex + 1 <= vm.undetectedPages().length -" +
" 1)\r\n vm.selectedUndetectedPage(vm.undetectedPages()[oldS" +
"electedIndex + 1]);\r\n else\r\n vm.select" +
"edUndetectedPage(vm.undetectedPages()[oldSelectedIndex - 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 self.id = id;\r\n self" +
".timestamp = timestamp;\r\n self.timestampFuzzy = timestampFuzzy;\r\n " +
" self.thumbnailUrl = \"url(\" + urlUndetectedPageThumbnail + \"&id=\" + id + " +
"\")\";\r\n self.previewUrl = \"url(\" + urlUndetectedPagePreview + \"&id=\" +" +
" id + \")\";\r\n self.sourceUrl = urlUndetectedPageSource + \"&id=\" + id;\r" +
"\n self.select = function (e, d) {\r\n vm.selectedUndetec" +
"tedPage(self);\r\n $undetectedPageDialog.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(function () {\r\n retu" +
"rn urlDataIdLookupService + self.dialogTemplateId();\r\n });\r\n " +
" self.deletePage = function () {\r\n $undetectedPageDialog.dialog" +
"(\'option\', \'disabled\', true);\r\n\r\n $dialogRemove.dialog(\'option\', " +
"\'buttons\', {\r\n \"Remove\": function () {\r\n " +
" $dialogRemove.dialog(\"close\");\r\n var data = { id: self" +
".id };\r\n $.ajax({\r\n url: urlIm" +
"porterUndetectedDelete,\r\n dataType: \'json\',\r\n " +
" data: data,\r\n type: \'POST\',\r\n " +
" success: function (d) {\r\n " +
" if (d == \'OK\') {\r\n vm.selectNextPage();\r\n " +
" vm.undetectedPages.remove(self);\r\n " +
" } else {\r\n alert(\'Unable t" +
"o delete page: \' + d);\r\n }\r\n " +
" $undetectedPageDialog.dialog(\'option\', \'disabled\', false);\r\n " +
" },\r\n error: function (jqXHR, textS" +
"tatus, errorThrown) {\r\n alert(\'Unable to delete p" +
"age: \' + errorThrown);\r\n $undetectedPageDialog.di" +
"alog(\'option\', \'disabled\', false);\r\n }\r\n " +
" });\r\n },\r\n \"Cancel\": function (" +
" modal: true,\r\n width: 800,\r\n resizable: false,\r\n " +
" autoOpen: false\r\n });\r\n\r\n function resizeUndetectedPage" +
"Dialog() {\r\n var dialogHeight = Math.min($(window).height() - 120, 80" +
"5);\r\n $undetectedPageDialog.height(dialogHeight);\r\n $undet" +
"ectedPageDialog.find(\'.pagePreview\').height(dialogHeight - 105);\r\n }\r\n " +
" resizeUndetectedPageDialog();\r\n\r\n $(window).resize(resizeUndetectedP" +
"ageDialog);\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.observable(n" +
"ull);\r\n self.undetectedPages = ko.observableArray();\r\n sel" +
"f.noUndetectedPages = ko.computed(function () { return self.undetectedPages().le" +
"ngth == 0 });\r\n self.selectNextPage = function () {\r\n " +
"var oldSelected = self.selectedUndetectedPage();\r\n var oldSelecte" +
"dIndex = vm.undetectedPages.indexOf(oldSelected);\r\n\r\n if (vm.unde" +
"tectedPages().length > 1) {\r\n if (oldSelectedIndex + 1 <= vm." +
"undetectedPages().length - 1)\r\n vm.selectedUndetectedPage" +
"(vm.undetectedPages()[oldSelectedIndex + 1]);\r\n else\r\n " +
" vm.selectedUndetectedPage(vm.undetectedPages()[oldSelectedIndex" +
" - 1]);\r\n } else {\r\n $undetectedPageDialog.dia" +
"log(\'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 self." +
"id = id;\r\n self.timestamp = timestamp;\r\n self.timestampFuz" +
"zy = timestampFuzzy;\r\n self.thumbnailUrl = \"url(\" + urlUndetectedPage" +
"Thumbnail + \"&id=\" + id + \")\";\r\n self.previewUrl = \"url(\" + urlUndete" +
"ctedPagePreview + \"&id=\" + id + \")\";\r\n self.sourceUrl = urlUndetected" +
"PageSource + \"&id=\" + id;\r\n self.select = function (e, d) {\r\n " +
" vm.selectedUndetectedPage(self);\r\n $undetectedPageDialog." +
"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(function " +
"() {\r\n return urlDataIdLookupService + self.dialogTemplateId();\r\n" +
" });\r\n self.deletePage = function () {\r\n $u" +
"ndetectedPageDialog.dialog(\'option\', \'disabled\', true);\r\n\r\n $dial" +
"ogRemove.dialog(\'option\', \'buttons\', {\r\n \"Remove\": function (" +
") {\r\n $dialogRemove.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 = func" +
"tion () {\r\n var dtId = self.dialogTemplateId();\r\n " +
"var dId = self.dialogDataId();\r\n if (!dtId || !dId) {\r\n " +
" alert(\'Please specify a valid Document Type and Data Id\');\r\n " +
" } else {\r\n $undetectedPageDialog.dialog(\'option\', \'disa" +
"bled\', true);\r\n\r\n var data = { id: self.id, DocumentTemplateI" +
"d: dtId, DataId: dId };\r\n\r\n $.ajax({\r\n " +
" url: urlImporterUndetectedAssign,\r\n dataType: \'json\',\r\n " +
" data: data,\r\n type: \'POST\',\r\n " +
" success: function (d) {\r\n if (d ==" +
" \'OK\') {\r\n vm.selectNextPage();\r\n " +
" vm.undetectedPages.remove(self);\r\n } " +
"else {\r\n alert(\'Unable to assign page: \' + d);\r\n " +
" }\r\n $undetectedPageDialog." +
"dialog(\'option\', \'disabled\', false);\r\n },\r\n " +
" error: function (jqXHR, textStatus, errorThrown) {\r\n " +
" alert(\'Unable to assign page: \' + errorThrown);\r\n " +
" $undetectedPageDialog.dialog(\'option\', \'disabled\', false);\r\n " +
" }\r\n });\r\n\r\n }\r\n retu" +
"rn false;\r\n };\r\n }\r\n\r\n function init() {\r\n v" +
"m = new pageViewModel();\r\n\r\n $.ajax({\r\n url: \'");
" var data = { id: self.id };\r\n $.ajax({\r\n " +
" url: urlImporterUndetectedDelete,\r\n d" +
"ataType: \'json\',\r\n data: data,\r\n " +
" type: \'POST\',\r\n success: function (d) {\r\n " +
" if (d == \'OK\') {\r\n " +
" vm.selectNextPage();\r\n vm.undetectedPages.re" +
"move(self);\r\n } else {\r\n " +
" alert(\'Unable to delete page: \' + d);\r\n " +
" }\r\n $undetectedPageDialog.dialog(\'option\', \'dis" +
"abled\', false);\r\n },\r\n err" +
"or: function (jqXHR, textStatus, errorThrown) {\r\n " +
" alert(\'Unable to delete page: \' + errorThrown);\r\n " +
" $undetectedPageDialog.dialog(\'option\', \'disabled\', false);\r\n " +
" }\r\n });\r\n },\r\n " +
" \"Cancel\": function () {\r\n $dialogRemove.dialog(\"clo" +
"se\");\r\n $undetectedPageDialog.dialog(\'option\', \'disabled\'" +
", false);\r\n }\r\n });\r\n\r\n $dialog" +
"Remove.dialog(\'open\');\r\n\r\n return false;\r\n }\r\n " +
" self.assignPage = function () {\r\n var dtId = self.dialogTempl" +
"ateId();\r\n var dId = self.dialogDataId();\r\n if (!d" +
"tId || !dId) {\r\n alert(\'Please specify a valid Document Type " +
"and Data Id\');\r\n } else {\r\n $undetectedPageDia" +
"log.dialog(\'option\', \'disabled\', true);\r\n\r\n var data = { id: " +
"self.id, DocumentTemplateId: dtId, DataId: dId };\r\n\r\n $.ajax(" +
"{\r\n url: urlImporterUndetectedAssign,\r\n " +
" dataType: \'json\',\r\n data: data,\r\n " +
" type: \'POST\',\r\n success: function (d) {\r\n " +
" if (d == \'OK\') {\r\n vm.selectNex" +
"tPage();\r\n vm.undetectedPages.remove(self);\r\n " +
" } else {\r\n alert(\'Unable " +
"to assign page: \' + d);\r\n }\r\n " +
" $undetectedPageDialog.dialog(\'option\', \'disabled\', false);\r\n " +
" },\r\n error: function (jqXHR, textStatus, errorThr" +
"own) {\r\n alert(\'Unable to assign page: \' + errorThrow" +
"n);\r\n $undetectedPageDialog.dialog(\'option\', \'disable" +
"d\', false);\r\n }\r\n });\r\n\r\n " +
" }\r\n return false;\r\n };\r\n }\r\n\r\n functi" +
"on init() {\r\n vm = new pageViewModel();\r\n\r\n $.ajax({\r\n " +
" url: \'");
#line 204 "..\..\Areas\Config\Views\DocumentTemplate\UndetectedPages.cshtml"
#line 212 "..\..\Areas\Config\Views\DocumentTemplate\UndetectedPages.cshtml"
Write(Url.Action(MVC.API.DocumentTemplate.ImporterUndetectedFiles()));
+2
View File
@@ -856,8 +856,10 @@ div.logEventsViewport table.logEventsViewport > tbody > tr > td.eventType {
}
#undetectedPageDialog > .pagePreview {
height: 700px;
max-height: 700px;
background-position: top center;
background-repeat: no-repeat;
background-size: contain;
}
#undetectedPageDialog .actions {
border-top: 1px solid #d1d1d1;
+2
View File
@@ -963,8 +963,10 @@ div.logEventsViewport {
#undetectedPageDialog {
& > .pagePreview {
height: 700px;
max-height: 700px;
background-position: top center;
background-repeat: no-repeat;
background-size: contain;
}
.actions {
+1 -1
View File
@@ -1 +1 @@
.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}#updateAvailableContainer{float:right;border:1px dashed #ddd;background-color:#fff;font-size:.6em;line-height:1em;padding:10px 10px 4px 70px;text-align:right;height:50px}#updateAvailableContainer i{position:absolute;display:block;height:64px;width:64px;vertical-align:middle;margin-left:-70px;font-size:50px;color:#e51400}#updateAvailableContainer a.button{font-size:12px;margin-top:8px}.Config_HideAdvanced .Config_HideAdvanced_Item{display:none}.Config_LinkedGroup_Instance{margin:4px 0 8px 4px;padding:4px 0 4px 6px;border-left:4px solid #ccc;background-color:#fff}.Config_LinkedGroup_Instance div.code{margin-left:2px}#Config_LinkedGroup_Dialog h3{margin-bottom:6px}#Config_LinkedGroup_Dialog div.input{margin-top:12px}#expressionEditor #expressionEditorExceptionContainer{display:none;border:1px dashed #ff9696;background-color:#ffd8d8;margin:10px 0;padding:10px}#expressionEditor #expressionEditorContainer{border:1px solid #1e6dab;background-color:#f4f4f4;height:100px}.expressionTree span.dynatree-node span.dynatree-icon{background-image:url(data:image/png;base64,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);background-position-y:0}.expressionTree span.dynatree-node.object span.dynatree-icon{background-position-x:0}.expressionTree span.dynatree-node.parameter span.dynatree-icon{background-position-x:-16px}.expressionTree span.dynatree-node.function span.dynatree-icon{background-position-x:-32px}.expressionTree span.dynatree-node.property span.dynatree-icon{backgrounLine truncated
.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}#updateAvailableContainer{float:right;border:1px dashed #ddd;background-color:#fff;font-size:.6em;line-height:1em;padding:10px 10px 4px 70px;text-align:right;height:50px}#updateAvailableContainer i{position:absolute;display:block;height:64px;width:64px;vertical-align:middle;margin-left:-70px;font-size:50px;color:#e51400}#updateAvailableContainer a.button{font-size:12px;margin-top:8px}.Config_HideAdvanced .Config_HideAdvanced_Item{display:none}.Config_LinkedGroup_Instance{margin:4px 0 8px 4px;padding:4px 0 4px 6px;border-left:4px solid #ccc;background-color:#fff}.Config_LinkedGroup_Instance div.code{margin-left:2px}#Config_LinkedGroup_Dialog h3{margin-bottom:6px}#Config_LinkedGroup_Dialog div.input{margin-top:12px}#expressionEditor #expressionEditorExceptionContainer{display:none;border:1px dashed #ff9696;background-color:#ffd8d8;margin:10px 0;padding:10px}#expressionEditor #expressionEditorContainer{border:1px solid #1e6dab;background-color:#f4f4f4;height:100px}.expressionTree span.dynatree-node span.dynatree-icon{background-image:url(data:image/png;base64,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);background-position-y:0}.expressionTree span.dynatree-node.object span.dynatree-icon{background-position-x:0}.expressionTree span.dynatree-node.parameter span.dynatree-icon{background-position-x:-16px}.expressionTree span.dynatree-node.function span.dynatree-icon{background-position-x:-32px}.expressionTree span.dynatree-node.property span.dynatree-icon{backgrounLine truncated