From 5510d348856edf72bfce9974b08abcc6cc8ec3c0 Mon Sep 17 00:00:00 2001
From: Gary Sharp
Date: Mon, 2 Jun 2014 19:06:07 +1000
Subject: [PATCH] Bug Fix: Document Generation and SignalR iFrame
Performing page navigation (within an iFrame, or the top window) causes
the foreverFrame transport in SignalR to abort which takes several
seconds to reconnect. Popup windows are now used to navigate to Document
Generation API when the foreverFrame transport is in use.
---
.../Views/Device/DeviceParts/_Subject.cshtml | 22 +-
.../Device/DeviceParts/_Subject.generated.cs | 334 ++++++------
Disco.Web/Views/Job/JobParts/_Subject.cshtml | 22 +-
.../Views/Job/JobParts/_Subject.generated.cs | 480 +++++++++---------
.../Views/User/UserParts/_Subject.cshtml | 22 +-
.../User/UserParts/_Subject.generated.cs | 164 +++---
6 files changed, 571 insertions(+), 473 deletions(-)
diff --git a/Disco.Web/Views/Device/DeviceParts/_Subject.cshtml b/Disco.Web/Views/Device/DeviceParts/_Subject.cshtml
index e6143531..794543b9 100644
--- a/Disco.Web/Views/Device/DeviceParts/_Subject.cshtml
+++ b/Disco.Web/Views/Device/DeviceParts/_Subject.cshtml
@@ -228,10 +228,30 @@
$(function () {
var generatePdfUrl = '@Url.Action(MVC.API.Device.GeneratePdf(Model.Device.SerialNumber.ToString(), null))?DocumentTemplateId=';
var $documentTemplates = $('#Device_Show_GenerateDocument');
+ var $generationHost;
+
$documentTemplates.change(function () {
var v = $documentTemplates.val();
if (v) {
- window.location.href = generatePdfUrl + v;
+ var url = generatePdfUrl + v;
+
+ if ($.connection && $.connection.hub && $.connection.hub.transport &&
+ $.connection.hub.transport.name == 'foreverFrame') {
+ // SignalR active with foreverFrame transport - use popup window
+ window.open(url, '_blank', 'height=150,width=250,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');
+ } else {
+ // use iFrame
+ if (!$generationHost) {
+ $generationHost = $('
\r\n");
- #line 475 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 495 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -1855,7 +1867,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" });\r\n });\r\n \r\n");
- #line 508 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 528 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -1864,13 +1876,13 @@ WriteLiteral(">\r\n $(function () {\r\n
WriteLiteral("\r\n");
- #line 510 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 530 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
- #line 510 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 530 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanCloseNormally())
{
@@ -1878,14 +1890,14 @@ WriteLiteral("\r\n");
#line default
#line hidden
- #line 512 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 532 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Close", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_Close_Button"));
#line default
#line hidden
- #line 512 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 532 "..\..\Views\Job\JobParts\_Subject.cshtml"
@@ -1931,7 +1943,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" });\r\n });\r\n \r\n");
- #line 549 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 569 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -1940,7 +1952,7 @@ WriteLiteral(">\r\n $(function () {\r\n
WriteLiteral(" ");
- #line 550 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 570 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanReopen())
{
@@ -1948,14 +1960,14 @@ WriteLiteral(" ");
#line default
#line hidden
- #line 552 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 572 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Reopen Job", MVC.API.Job.Reopen(Model.Job.Id, true), "Job_Show_Job_Actions_Reopen_Button"));
#line default
#line hidden
- #line 552 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 572 "..\..\Views\Job\JobParts\_Subject.cshtml"
@@ -2002,7 +2014,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" });\r\n \r\n");
- #line 590 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 610 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2011,7 +2023,7 @@ WriteLiteral(">\r\n $(function () {\r\n
WriteLiteral(" ");
- #line 591 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 611 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanDelete())
{
@@ -2019,14 +2031,14 @@ WriteLiteral(" ");
#line default
#line hidden
- #line 593 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 613 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Delete", MVC.API.Job.Delete(Model.Job.Id, true), "Job_Show_Job_Actions_Delete_Button"));
#line default
#line hidden
- #line 593 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 613 "..\..\Views\Job\JobParts\_Subject.cshtml"
@@ -2074,7 +2086,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" \r\n");
- #line 631 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 651 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2083,7 +2095,7 @@ WriteLiteral(">\r\n $(function () {\r\n
WriteLiteral(" ");
- #line 632 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 652 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanAddQueues() && Model.AvailableQueues != null && Model.AvailableQueues.Count > 0)
{
@@ -2097,14 +2109,14 @@ WriteLiteral(" ");
#line default
#line hidden
- #line 640 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 660 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Add to Queue", MVC.API.JobQueueJob.AddJob(), "Job_Show_Job_Actions_AddQueue_Button"));
#line default
#line hidden
- #line 640 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 660 "..\..\Views\Job\JobParts\_Subject.cshtml"
@@ -2121,13 +2133,13 @@ WriteLiteral(" title=\"Add Job to Queue\"");
WriteLiteral(">\r\n");
- #line 642 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 662 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
- #line 642 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 662 "..\..\Views\Job\JobParts\_Subject.cshtml"
using (Html.BeginForm(MVC.API.JobQueueJob.AddJob()))
{
@@ -2152,14 +2164,14 @@ WriteLiteral(" type=\"hidden\"");
WriteLiteral(" name=\"JobId\"");
-WriteAttribute("value", Tuple.Create(" value=\"", 42293), Tuple.Create("\"", 42314)
+WriteAttribute("value", Tuple.Create(" value=\"", 43645), Tuple.Create("\"", 43666)
- #line 645 "..\..\Views\Job\JobParts\_Subject.cshtml"
- , Tuple.Create(Tuple.Create("", 42301), Tuple.Create(Model.Job.Id
+ #line 665 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ , Tuple.Create(Tuple.Create("", 43653), Tuple.Create(Model.Job.Id
#line default
#line hidden
-, 42301), false)
+, 43653), false)
);
WriteLiteral(" />\r\n");
@@ -2171,13 +2183,13 @@ WriteLiteral(" class=\"queuePicker\"");
WriteLiteral(">\r\n");
- #line 647 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 667 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
- #line 647 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 667 "..\..\Views\Job\JobParts\_Subject.cshtml"
foreach (var jobQueue in Model.AvailableQueues.OrderBy(jq => jq.Name))
{
@@ -2191,7 +2203,7 @@ WriteLiteral(" class=\"queue\"");
WriteLiteral(" data-queueid=\"");
- #line 649 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 669 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(jobQueue.Id);
@@ -2202,7 +2214,7 @@ WriteLiteral("\"");
WriteLiteral(" data-queuesla=\"");
- #line 649 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 669 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(jobQueue.DefaultSLAExpiry.HasValue ? jobQueue.DefaultSLAExpiry.Value.ToString() : null);
@@ -2213,7 +2225,7 @@ WriteLiteral("\"");
WriteLiteral(" data-queuepriority=\"");
- #line 649 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 669 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(jobQueue.Priority.ToString());
@@ -2223,32 +2235,32 @@ WriteLiteral("\"");
WriteLiteral(">\r\n (jobQueue.Icon
+ #line 670 "..\..\Views\Job\JobParts\_Subject.cshtml"
+, Tuple.Create(Tuple.Create("", 44149), Tuple.Create(jobQueue.Icon
#line default
#line hidden
-, 42797), false)
-, Tuple.Create(Tuple.Create(" ", 42813), Tuple.Create("fa-fw", 42814), true)
-, Tuple.Create(Tuple.Create(" ", 42819), Tuple.Create("fa-lg", 42820), true)
-, Tuple.Create(Tuple.Create(" ", 42825), Tuple.Create("d-", 42826), true)
+, 44149), false)
+, Tuple.Create(Tuple.Create(" ", 44165), Tuple.Create("fa-fw", 44166), true)
+, Tuple.Create(Tuple.Create(" ", 44171), Tuple.Create("fa-lg", 44172), true)
+, Tuple.Create(Tuple.Create(" ", 44177), Tuple.Create("d-", 44178), true)
- #line 650 "..\..\Views\Job\JobParts\_Subject.cshtml"
- , Tuple.Create(Tuple.Create("", 42828), Tuple.Create(jobQueue.IconColour
+ #line 670 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ , Tuple.Create(Tuple.Create("", 44180), Tuple.Create(jobQueue.IconColour
#line default
#line hidden
-, 42828), false)
+, 44180), false)
);
WriteLiteral("> ");
- #line 650 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 670 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(jobQueue.Name);
@@ -2257,7 +2269,7 @@ WriteLiteral(">");
WriteLiteral("\r\n \r\n");
- #line 652 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 672 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2275,7 +2287,7 @@ WriteLiteral(">\r\n \r\n
WriteLiteral(" ");
- #line 657 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 677 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.DropDownList("Priority", priorityItems));
@@ -2283,27 +2295,27 @@ WriteLiteral(" ");
#line hidden
WriteLiteral(" (priorityValue.ToLower()
+ #line 677 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ , Tuple.Create(Tuple.Create("", 44566), Tuple.Create(priorityValue.ToLower()
#line default
#line hidden
-, 43214), false)
+, 44566), false)
);
-WriteAttribute("title", Tuple.Create(" title=\"", 43241), Tuple.Create("\"", 43274)
+WriteAttribute("title", Tuple.Create(" title=\"", 44593), Tuple.Create("\"", 44626)
- #line 657 "..\..\Views\Job\JobParts\_Subject.cshtml"
- , Tuple.Create(Tuple.Create("", 43249), Tuple.Create(priorityValue
+ #line 677 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ , Tuple.Create(Tuple.Create("", 44601), Tuple.Create(priorityValue
#line default
#line hidden
-, 43249), false)
-, Tuple.Create(Tuple.Create(" ", 43265), Tuple.Create("Priority", 43266), true)
+, 44601), false)
+, Tuple.Create(Tuple.Create(" ", 44617), Tuple.Create("Priority", 44618), true)
);
WriteLiteral("> \r\n
\r\n \r\n " +
@@ -2312,7 +2324,7 @@ WriteLiteral(">\r\n
\r\n
WriteLiteral(" ");
- #line 661 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 681 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.DropDownList("SLAExpiresMinutes", slaOptions));
@@ -2324,7 +2336,7 @@ WriteLiteral("\r\n \r\n
WriteLiteral(" ");
- #line 665 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 685 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.TextArea("Comment"));
@@ -2333,7 +2345,7 @@ WriteLiteral(" ");
WriteLiteral("\r\n \r\n \r\n");
- #line 668 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 688 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2390,7 +2402,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" \r\n");
- #line 739 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 759 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2399,7 +2411,7 @@ WriteLiteral(">\r\n $(function () {\r\n
WriteLiteral(" ");
- #line 740 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 760 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanLogWarranty())
{
@@ -2407,14 +2419,14 @@ WriteLiteral(" ");
#line default
#line hidden
- #line 742 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 762 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Log Warranty", MVC.Job.LogWarranty(Model.Job.Id, null, null), "Job_Show_Job_Actions_LogWarranty_Button"));
#line default
#line hidden
- #line 742 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 762 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2424,7 +2436,7 @@ WriteLiteral(" ");
WriteLiteral(" ");
- #line 744 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 764 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanWarrantyCompleted())
{
@@ -2432,14 +2444,14 @@ WriteLiteral(" ");
#line default
#line hidden
- #line 746 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 766 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Warranty Complete", MVC.API.Job.UpdateWarrantyExternalCompletedDate(Model.Job.Id, "Now", true), "Job_Show_Job_Actions_WarrantyComplete_Button", "alert"));
#line default
#line hidden
- #line 746 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 766 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2449,7 +2461,7 @@ WriteLiteral(" ");
WriteLiteral(" ");
- #line 748 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 768 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanInsuranceClaimFormSent())
{
@@ -2457,14 +2469,14 @@ WriteLiteral(" ");
#line default
#line hidden
- #line 750 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 770 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Insurance Claim Sent", MVC.API.Job.UpdateInsuranceClaimFormSentDate(Model.Job.Id, "Now", true), "Job_Show_Job_Actions_InsuranceClaimSent_Button", "alert"));
#line default
#line hidden
- #line 750 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 770 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2474,7 +2486,7 @@ WriteLiteral(" ");
WriteLiteral(" ");
- #line 752 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 772 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanLogRepair())
{
@@ -2482,14 +2494,14 @@ WriteLiteral(" ");
#line default
#line hidden
- #line 754 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 774 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Repairs Logged", MVC.API.Job.LogRepair(Model.Job.Id, null, null, true), "Job_Show_Job_Actions_LogRepair_Button"));
#line default
#line hidden
- #line 754 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 774 "..\..\Views\Job\JobParts\_Subject.cshtml"
@@ -2506,13 +2518,13 @@ WriteLiteral(" title=\"Repairs Logged\"");
WriteLiteral(">\r\n");
- #line 756 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 776 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
- #line 756 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 776 "..\..\Views\Job\JobParts\_Subject.cshtml"
using (Html.BeginForm(MVC.API.Job.LogRepair(Model.Job.Id, null, null, true)))
{
@@ -2544,7 +2556,7 @@ WriteLiteral(" name=\"RepairerReference\"");
WriteLiteral(" />\r\n \r\n");
- #line 766 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 786 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2582,7 +2594,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" });\r\n });\r\n \r\n");
- #line 804 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 824 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2591,7 +2603,7 @@ WriteLiteral(">\r\n $(function () {\r\n
WriteLiteral(" ");
- #line 805 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 825 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanRepairComplete())
{
@@ -2599,14 +2611,14 @@ WriteLiteral(" ");
#line default
#line hidden
- #line 807 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 827 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Repairs Complete", MVC.API.Job.UpdateNonWarrantyRepairerCompletedDate(Model.Job.Id, "Now", true), "Job_Show_Job_Actions_RepairComplete_Button", "alert"));
#line default
#line hidden
- #line 807 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 827 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2616,7 +2628,7 @@ WriteLiteral(" ");
WriteLiteral(" ");
- #line 809 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 829 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanConvertHWarToHNWar())
{
@@ -2624,14 +2636,14 @@ WriteLiteral(" ");
#line default
#line hidden
- #line 811 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 831 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Convert to Non-Warranty", MVC.API.Job.ConvertHWarToHNWar(Model.Job.Id, true), "Job_Show_Job_Actions_ConvertToHNWar_Button"));
#line default
#line hidden
- #line 811 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 831 "..\..\Views\Job\JobParts\_Subject.cshtml"
@@ -2679,7 +2691,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" \r\n });\r\n \r\n");
- #line 851 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 871 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2688,13 +2700,13 @@ WriteLiteral(">\r\n $(function () {\r\n
WriteLiteral(" \r\n");
- #line 853 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 873 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
- #line 853 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 873 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.Device != null)
{
@@ -2708,13 +2720,13 @@ WriteLiteral(" id=\"Job_Show_Device_Actions\"");
WriteLiteral(">\r\n");
- #line 856 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 876 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
- #line 856 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 876 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanDeviceHeld())
{
@@ -2722,14 +2734,14 @@ WriteLiteral(">\r\n");
#line default
#line hidden
- #line 858 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 878 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Device Held", MVC.API.Job.DeviceHeld(Model.Job.Id, true), "Job_Show_Device_Actions_Held_Button"));
#line default
#line hidden
- #line 858 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 878 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2739,7 +2751,7 @@ WriteLiteral(">\r\n");
WriteLiteral(" ");
- #line 860 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 880 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanDeviceReadyForReturn())
{
@@ -2747,14 +2759,14 @@ WriteLiteral(" ");
#line default
#line hidden
- #line 862 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 882 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Device Ready For Return", MVC.API.Job.DeviceReadyForReturn(Model.Job.Id, true), "Job_Show_Device_Actions_DeviceReadyForReturn_Button", "alert"));
#line default
#line hidden
- #line 862 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 882 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2764,7 +2776,7 @@ WriteLiteral(" ");
WriteLiteral(" ");
- #line 864 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 884 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanDeviceReturned())
{
@@ -2772,14 +2784,14 @@ WriteLiteral(" ");
#line default
#line hidden
- #line 866 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 886 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Device Returned", MVC.API.Job.DeviceReturned(Model.Job.Id, true), "Job_Show_Device_Actions_DeviceReturned_Button", Model.Job.CanDeviceReadyForReturn() ? null : "alert"));
#line default
#line hidden
- #line 866 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 886 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2789,7 +2801,7 @@ WriteLiteral(" ");
WriteLiteral(" \r\n");
- #line 869 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 889 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2798,7 +2810,7 @@ WriteLiteral(" \r\n");
WriteLiteral(" ");
- #line 870 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 890 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.User != null)
{
@@ -2812,13 +2824,13 @@ WriteLiteral(" id=\"Job_Show_User_Actions\"");
WriteLiteral(">\r\n\r\n\r\n");
- #line 875 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 895 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
- #line 875 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 895 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanWaitingForUserAction())
{
@@ -2846,13 +2858,13 @@ WriteLiteral(" title=\"Waiting for User Action\"");
WriteLiteral(">\r\n");
- #line 879 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 899 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
- #line 879 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 899 "..\..\Views\Job\JobParts\_Subject.cshtml"
using (Html.BeginForm(MVC.API.Job.WaitingForUserAction(Model.Job.Id, null, true)))
{
@@ -2870,7 +2882,7 @@ WriteLiteral(" class=\"block\"");
WriteLiteral(">\r\n \r\n");
- #line 885 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 905 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2905,7 +2917,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" });\r\n \r\n");
- #line 918 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 938 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2914,7 +2926,7 @@ WriteLiteral(">\r\n $(function () {\r\n
WriteLiteral(" ");
- #line 919 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 939 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanNotWaitingForUserAction())
{
@@ -2942,13 +2954,13 @@ WriteLiteral(" title=\"Not Waiting for User Action\"");
WriteLiteral(">\r\n");
- #line 923 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 943 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
- #line 923 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 943 "..\..\Views\Job\JobParts\_Subject.cshtml"
using (Html.BeginForm(MVC.API.Job.NotWaitingForUserAction(Model.Job.Id, null, true)))
{
@@ -2966,7 +2978,7 @@ WriteLiteral(" class=\"block\"");
WriteLiteral(">\r\n \r\n");
- #line 929 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 949 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -3002,7 +3014,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" });\r\n \r\n");
- #line 963 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 983 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -3011,7 +3023,7 @@ WriteLiteral(">\r\n $(function () {\r\n
WriteLiteral("\r\n \r\n");
- #line 966 "..\..\Views\Job\JobParts\_Subject.cshtml"
+ #line 986 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
diff --git a/Disco.Web/Views/User/UserParts/_Subject.cshtml b/Disco.Web/Views/User/UserParts/_Subject.cshtml
index 3c4ec70f..179deb65 100644
--- a/Disco.Web/Views/User/UserParts/_Subject.cshtml
+++ b/Disco.Web/Views/User/UserParts/_Subject.cshtml
@@ -73,10 +73,30 @@
$(function () {
var generatePdfUrl = '@Url.Action(MVC.API.User.GeneratePdf(Model.User.UserId, null))?DocumentTemplateId=';
var $documentTemplates = $('#User_Show_GenerateDocument');
+ var $generationHost;
+
$documentTemplates.change(function () {
var v = $documentTemplates.val();
if (v) {
- window.location.href = generatePdfUrl + v;
+ var url = generatePdfUrl + v;
+
+ if ($.connection && $.connection.hub && $.connection.hub.transport &&
+ $.connection.hub.transport.name == 'foreverFrame') {
+ // SignalR active with foreverFrame transport - use popup window
+ window.open(url, '_blank', 'height=150,width=250,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');
+ } else {
+ // use iFrame
+ if (!$generationHost) {
+ $generationHost = $('')
+ .attr({ 'src': url, 'title': 'Document Generation Host' })
+ .addClass('hidden')
+ .appendTo('body')
+ .contents();
+ } else {
+ $generationHost[0].location.href = url;
+ }
+ }
+
$documentTemplates.val('').blur();
}
});
diff --git a/Disco.Web/Views/User/UserParts/_Subject.generated.cs b/Disco.Web/Views/User/UserParts/_Subject.generated.cs
index 01044cb2..e51b5ca3 100644
--- a/Disco.Web/Views/User/UserParts/_Subject.generated.cs
+++ b/Disco.Web/Views/User/UserParts/_Subject.generated.cs
@@ -329,22 +329,36 @@ WriteLiteral(">\r\n $(function () {\r\n
#line default
#line hidden
-WriteLiteral(@"?DocumentTemplateId=';
- var $documentTemplates = $('#User_Show_GenerateDocument');
- $documentTemplates.change(function () {
- var v = $documentTemplates.val();
- if (v) {
- window.location.href = generatePdfUrl + v;
- $documentTemplates.val('').blur();
- }
- });
- });
-
-
-");
+WriteLiteral("?DocumentTemplateId=\';\r\n var $documentTemplate" +
+"s = $(\'#User_Show_GenerateDocument\');\r\n var $" +
+"generationHost;\r\n\r\n $documentTemplates.change" +
+"(function () {\r\n var v = $documentTemplat" +
+"es.val();\r\n if (v) {\r\n " +
+" var url = generatePdfUrl + v;\r\n\r\n " +
+" if ($.connection && $.connection.hub && $.connection.hub.t" +
+"ransport &&\r\n $.connection.hu" +
+"b.transport.name == \'foreverFrame\') {\r\n " +
+" // SignalR active with foreverFrame transport - use popup window\r\n " +
+" window.open(url, \'_blank\', \'height=150," +
+"width=250,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no" +
+"\');\r\n } else {\r\n " +
+" // use iFrame\r\n " +
+" if (!$generationHost) {\r\n " +
+" $generationHost = $(\'\')\r\n " +
+" .attr({ \'src\': url, \'title\': \'Document Generation Host\' })\r\n " +
+" .addClass(\'hidden\')\r\n " +
+" .appendTo(\'body\')\r\n " +
+" .contents();\r\n " +
+" } else {\r\n " +
+" $generationHost[0].location.href = url;\r\n " +
+" }\r\n }\r\n\r\n " +
+" $documentTemplates.val(\'\').blur();\r\n " +
+" }\r\n });\r\n " +
+" });\r\n \r\n " +
+" \r\n");
- #line 86 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 106 "..\..\Views\User\UserParts\_Subject.cshtml"
}
@@ -357,13 +371,13 @@ WriteLiteral(" id=\"User_Show_Details_Actions\"");
WriteLiteral(">\r\n");
- #line 88 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 108 "..\..\Views\User\UserParts\_Subject.cshtml"
#line default
#line hidden
- #line 88 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 108 "..\..\Views\User\UserParts\_Subject.cshtml"
if (Model.User.CanCreateJob())
{
Html.BundleDeferred("~/ClientScripts/Modules/Disco-CreateJob");
@@ -372,14 +386,14 @@ WriteLiteral(">\r\n");
#line default
#line hidden
- #line 91 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 111 "..\..\Views\User\UserParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Create Job", MVC.Job.Create(Model.PrimaryDeviceSerialNumber, Model.User.UserId), "User_Show_Details_Actions_CreateJob_Button"));
#line default
#line hidden
- #line 91 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 111 "..\..\Views\User\UserParts\_Subject.cshtml"
if (currentDeviceAssignments.Count > 1)
{
@@ -418,13 +432,13 @@ WriteLiteral(" class=\"none\"");
WriteLiteral(">\r\n");
- #line 103 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 123 "..\..\Views\User\UserParts\_Subject.cshtml"
#line default
#line hidden
- #line 103 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 123 "..\..\Views\User\UserParts\_Subject.cshtml"
foreach (var assignment in currentDeviceAssignments)
{
@@ -438,7 +452,7 @@ WriteLiteral(" class=\"CreateJob_Assignment clearfix\"");
WriteLiteral(" data-createjoburl=\"");
- #line 105 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 125 "..\..\Views\User\UserParts\_Subject.cshtml"
Write(Url.Action(MVC.Job.Create(assignment.DeviceSerialNumber, Model.User.UserId)));
@@ -452,14 +466,14 @@ WriteLiteral(" class=\"CreateJob_Assignment_Image\"");
WriteLiteral(" alt=\"Model Image\"");
-WriteAttribute("src", Tuple.Create(" src=\"", 6488), Tuple.Create("\"", 6609)
+WriteAttribute("src", Tuple.Create(" src=\"", 7908), Tuple.Create("\"", 8029)
- #line 106 "..\..\Views\User\UserParts\_Subject.cshtml"
- , Tuple.Create(Tuple.Create("", 6494), Tuple.Create(Url.Action(MVC.API.DeviceModel.Image(assignment.Device.DeviceModel.Id, assignment.Device.DeviceModel.ImageHash()))
+ #line 126 "..\..\Views\User\UserParts\_Subject.cshtml"
+ , Tuple.Create(Tuple.Create("", 7914), Tuple.Create(Url.Action(MVC.API.DeviceModel.Image(assignment.Device.DeviceModel.Id, assignment.Device.DeviceModel.ImageHash()))
#line default
#line hidden
-, 6494), false)
+, 7914), false)
);
WriteLiteral(" />\r\n
");
- #line 114 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 134 "..\..\Views\User\UserParts\_Subject.cshtml"
Write(assignment.Device.SerialNumber);
@@ -488,7 +502,7 @@ WriteLiteral(@">
WriteLiteral(" (");
- #line 114 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 134 "..\..\Views\User\UserParts\_Subject.cshtml"
Write(assignment.Device.ComputerName);
@@ -504,7 +518,7 @@ WriteLiteral(@" )
");
- #line 121 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 141 "..\..\Views\User\UserParts\_Subject.cshtml"
Write(assignment.Device.DeviceModel.ToString());
@@ -519,13 +533,13 @@ WriteLiteral(@"
");
- #line 127 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 147 "..\..\Views\User\UserParts\_Subject.cshtml"
#line default
#line hidden
- #line 127 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 147 "..\..\Views\User\UserParts\_Subject.cshtml"
if (!string.IsNullOrEmpty(assignment.Device.AssetNumber))
{
@@ -535,7 +549,7 @@ WriteLiteral(@"
WriteLiteral(" ");
- #line 129 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 149 "..\..\Views\User\UserParts\_Subject.cshtml"
Write(assignment.Device.AssetNumber);
@@ -544,7 +558,7 @@ WriteLiteral("
WriteLiteral(" \r\n");
- #line 130 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 150 "..\..\Views\User\UserParts\_Subject.cshtml"
}
else
{
@@ -559,7 +573,7 @@ WriteLiteral(" class=\"smallMessage\"");
WriteLiteral(">Unknown\r\n");
- #line 134 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 154 "..\..\Views\User\UserParts\_Subject.cshtml"
}
@@ -573,7 +587,7 @@ WriteLiteral(@" <
");
- #line 140 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 160 "..\..\Views\User\UserParts\_Subject.cshtml"
Write(CommonHelpers.FriendlyDate(assignment.AssignedDate));
@@ -589,7 +603,7 @@ WriteLiteral(@"
");
- #line 147 "..\..\Views\User\UserParts\_Subject.cshtml"
+ #line 167 "..\..\Views\User\UserParts\_Subject.cshtml"
}
@@ -626,7 +640,7 @@ WriteLiteral("