diff --git a/Disco.BI/BI/Extensions/JobActionExtensions.cs b/Disco.BI/BI/Extensions/JobActionExtensions.cs
index da500cf6..07410120 100644
--- a/Disco.BI/BI/Extensions/JobActionExtensions.cs
+++ b/Disco.BI/BI/Extensions/JobActionExtensions.cs
@@ -170,7 +170,7 @@ namespace Disco.BI.Extensions
j.JobMetaWarranty.ExternalLoggedDate = DateTime.Now;
j.JobMetaWarranty.ExternalName = WarrantyProvider.WarrantyProviderId;
- if (providerRef.Length > 100)
+ if (providerRef != null && providerRef.Length > 100)
j.JobMetaWarranty.ExternalReference = providerRef.Substring(0, 100);
else
j.JobMetaWarranty.ExternalReference = providerRef;
@@ -186,18 +186,18 @@ namespace Disco.BI.Extensions
Database.JobLogs.Add(jobLog);
}
}
- public static void OnLogWarranty(this Job j, DiscoDataContext Database, string FaultDescription, string CustomProviderName, string CustomProviderReference, OrganisationAddress Address, User TechUser)
+ public static void OnLogWarranty(this Job j, DiscoDataContext Database, string FaultDescription, string ManualProviderName, string ManualProviderReference, OrganisationAddress Address, User TechUser)
{
if (!j.CanLogWarranty())
throw new InvalidOperationException("Log Warranty was Denied");
j.JobMetaWarranty.ExternalLoggedDate = DateTime.Now;
- j.JobMetaWarranty.ExternalName = CustomProviderName;
+ j.JobMetaWarranty.ExternalName = ManualProviderName;
- if (CustomProviderReference != null && CustomProviderReference.Length > 100)
- j.JobMetaWarranty.ExternalReference = CustomProviderReference.Substring(0, 100);
+ if (ManualProviderReference != null && ManualProviderReference.Length > 100)
+ j.JobMetaWarranty.ExternalReference = ManualProviderReference.Substring(0, 100);
else
- j.JobMetaWarranty.ExternalReference = CustomProviderReference;
+ j.JobMetaWarranty.ExternalReference = ManualProviderReference;
// Write Log
JobLog jobLog = new JobLog()
@@ -205,7 +205,7 @@ namespace Disco.BI.Extensions
JobId = j.Id,
TechUserId = TechUser.UserId,
Timestamp = DateTime.Now,
- Comments = string.Format("####Custom Warranty Claim Submitted\r\nCustom Provider: **{0}**\r\nAddress: **{1}**\r\nReference: **{2}**\r\n___\r\n{3}", CustomProviderName, Address.Name, CustomProviderReference ?? "
+ View the Plugin Catalogue to discover and install warranty provider plugins.
+
+ View the Plugin Catalogue to discover and install repair provider plugins.
+ \r\n View the (Url.Action(MVC.Config.Plugins.Install())
+
+ #line default
+ #line hidden
+, 5032), false)
+);
+
+WriteLiteral(">Plugin Catalogue to discover and install warranty provider plugins.\r\n " +
+" \r\n View the (Url.Action(MVC.Config.Plugins.Install())
+
+ #line default
+ #line hidden
+, 7333), false)
+);
+
+WriteLiteral(">Plugin Catalogue to discover and install repair provider plugins.\r\n " +
+"
-
-
-
- \r\n \r\n \r\n \r\n @if (canConfig)
{
+ if (Model.WarrantyProviders.Count > 0)
+ {
@Html.DropDownListFor(model => model.DeviceModel.DefaultWarrantyProvider, Model.WarrantyProviders.ToSelectListItems(Model.DeviceModel.DefaultWarrantyProvider, true, "None"))
@AjaxHelpers.AjaxLoader()
+
+ }
+ else
+ {
+ No warranty provider plugins installed
+ }
+ if (canViewPlugins)
+ {
+
+
+
Default Repair Provider:
+
+ @if (canConfig)
+ {
+ if (Model.RepairProviders.Count > 0)
+ {
+ @Html.DropDownListFor(model => model.DeviceModel.DefaultRepairProvider, Model.RepairProviders.ToSelectListItems(Model.DeviceModel.DefaultRepairProvider, true, "None"))
+ @AjaxHelpers.AjaxLoader()
+
+ }
+ else
+ {
+
+
- @if (canConfig)
- {
- Type:
@@ -109,135 +217,18 @@
+ @if (canConfig)
+ {
+
+ using (Html.BeginForm(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, true, null), FormMethod.Post, new { enctype = "multipart/form-data" }))
+ {
+
+
+ }
+ }
-
- }
- @if (canConfig)
- {
-
-
-
- }
-
-
-
- @using (Html.BeginForm(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, true, null), FormMethod.Post, new { enctype = "multipart/form-data" }))
- {
-
-
- }
-
- Components
@Html.Partial(MVC.Config.DeviceModel.Views._DeviceComponentsTable, Model.DeviceComponentsModel)
diff --git a/Disco.Web/Areas/Config/Views/DeviceModel/Show.generated.cs b/Disco.Web/Areas/Config/Views/DeviceModel/Show.generated.cs
index 0d6aad20..f66158ad 100644
--- a/Disco.Web/Areas/Config/Views/DeviceModel/Show.generated.cs
+++ b/Disco.Web/Areas/Config/Views/DeviceModel/Show.generated.cs
@@ -50,6 +50,12 @@ namespace Disco.Web.Areas.Config.Views.DeviceModel
Authorization.Require(Claims.Config.DeviceModel.Show);
var canConfig = Authorization.Has(Claims.Config.DeviceModel.Configure);
+ var canViewPlugins = Authorization.Has(Claims.Config.Plugin.Install);
+
+ if (canConfig)
+ {
+ Html.BundleDeferred("~/ClientScripts/Modules/Disco-PropertyChangeHelpers");
+ }
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Device Models", MVC.Config.DeviceModel.Index(null), Model.DeviceModel.ToString());
@@ -71,7 +77,7 @@ WriteLiteral(">Id:\r\n \r\n \r\n");
WriteLiteral(" ");
- #line 15 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 21 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Html.DisplayFor(model => model.DeviceModel.Id));
@@ -81,7 +87,7 @@ WriteLiteral("\r\n \r\n \r\n \r\n
" \r\n \r\n ");
- #line 21 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 27 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
if (canConfig)
{
@@ -89,43 +95,66 @@ WriteLiteral("\r\n \r\n \r\n
#line default
#line hidden
- #line 23 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 29 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Html.EditorFor(model => model.DeviceModel.Description));
#line default
#line hidden
- #line 23 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 29 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
#line default
#line hidden
- #line 24 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 30 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(AjaxHelpers.AjaxSave());
#line default
#line hidden
- #line 24 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 30 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
#line default
#line hidden
- #line 25 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 31 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(AjaxHelpers.AjaxLoader());
#line default
#line hidden
- #line 25 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 31 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+
+
+ #line default
+ #line hidden
+WriteLiteral(@" \r\n");
+
+
+ #line 42 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
}
else
{
@@ -134,14 +163,14 @@ WriteLiteral("\r\n \r\n \r\n \r\n
#line default
#line hidden
- #line 29 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 45 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Html.DisplayFor(model => model.DeviceModel.Description));
#line default
#line hidden
- #line 29 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 45 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
}
@@ -154,7 +183,7 @@ WriteLiteral(" \r\n \r\n \r\n
WriteLiteral(" ");
- #line 37 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 53 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Html.DisplayFor(model => model.DeviceModel.Manufacturer));
@@ -166,7 +195,7 @@ WriteLiteral("\r\n \r\n \r\n \r\n
WriteLiteral(" ");
- #line 44 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 60 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Html.DisplayFor(model => model.DeviceModel.Model));
@@ -176,7 +205,7 @@ WriteLiteral("\r\n \r\n \r\n \r\n
"\r\n \r\n \r\n \r\n \r\n
WriteLiteral(" ");
- #line 50 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 66 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Model.DeviceCount == 1 ? "devices is" : "devices are");
@@ -194,13 +223,13 @@ WriteLiteral(" ");
WriteLiteral(" of this model type.\r\n");
- #line 51 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 67 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
#line default
#line hidden
- #line 51 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 67 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
if (Model.DeviceDecommissionedCount > 0)
{
@@ -214,7 +243,7 @@ WriteLiteral(" class=\"smallMessage\"");
WriteLiteral(">");
- #line 53 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 69 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Model.DeviceDecommissionedCount.ToString("n0"));
@@ -223,7 +252,7 @@ WriteLiteral(">");
WriteLiteral(" ");
- #line 53 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 69 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Model.DeviceDecommissionedCount == 1 ? "device is" : "devices are");
@@ -232,7 +261,7 @@ WriteLiteral(" ");
WriteLiteral(" decommissioned.\r\n");
- #line 54 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 70 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
}
@@ -242,7 +271,7 @@ WriteLiteral(" \r\n \r\n \r\n
"Date:\r\n \r\n \r\n ");
- #line 60 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 76 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
if (canConfig)
{
@@ -250,29 +279,54 @@ WriteLiteral(" \r\n \r\n
#line default
#line hidden
- #line 62 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 78 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Html.EditorFor(model => model.DeviceModel.DefaultPurchaseDate));
#line default
#line hidden
- #line 62 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 78 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
#line default
#line hidden
- #line 63 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 79 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(AjaxHelpers.AjaxLoader());
#line default
#line hidden
- #line 63 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 79 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+
+
+ #line default
+ #line hidden
+WriteLiteral(@" \r\n");
+
+
+ #line 93 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
}
else
{
@@ -281,14 +335,14 @@ WriteLiteral(" \r\n \r\n \r\n
#line default
#line hidden
- #line 67 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 96 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(CommonHelpers.FriendlyDate(Model.DeviceModel.DefaultPurchaseDate, "Unknown"));
#line default
#line hidden
- #line 67 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 96 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
}
@@ -299,37 +353,114 @@ WriteLiteral(" \r\n \r\n \r\n
"Provider:\r\n \r\n \r\n ");
- #line 74 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 103 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
if (canConfig)
{
+ if (Model.WarrantyProviders.Count > 0)
+ {
#line default
#line hidden
- #line 76 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 107 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Html.DropDownListFor(model => model.DeviceModel.DefaultWarrantyProvider, Model.WarrantyProviders.ToSelectListItems(Model.DeviceModel.DefaultWarrantyProvider, true, "None")));
#line default
#line hidden
- #line 76 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 107 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
#line default
#line hidden
- #line 77 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 108 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(AjaxHelpers.AjaxLoader());
#line default
#line hidden
- #line 77 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 108 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+
+
+ #line default
+ #line hidden
+WriteLiteral(@" \r\n");
+
+
+ #line 119 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ }
+ else
+ {
+
+
+ #line default
+ #line hidden
+WriteLiteral(" No warranty provider plugins installed\r\n");
+
+
+ #line 123 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ }
+ if (canViewPlugins)
+ {
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n \r\n \r\n Default Repair Pr" +
+"ovider:\r\n \r\n ");
+
+
+ #line 157 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ if (canConfig)
+ {
+ if (Model.RepairProviders.Count > 0)
+ {
+
+
+ #line default
+ #line hidden
+
+ #line 161 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ Write(Html.DropDownListFor(model => model.DeviceModel.DefaultRepairProvider, Model.RepairProviders.ToSelectListItems(Model.DeviceModel.DefaultRepairProvider, true, "None")));
+
+
+ #line default
+ #line hidden
+
+ #line 161 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+
+
+
+ #line default
+ #line hidden
+
+ #line 162 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ Write(AjaxHelpers.AjaxLoader());
+
+
+ #line default
+ #line hidden
+
+ #line 162 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+
+
+
+ #line default
+ #line hidden
+WriteLiteral(@" \r\n");
+
+
+ #line 173 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ }
+ else
+ {
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n \r\n
WriteLiteral(" ");
- #line 104 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 212 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Html.DisplayFor(model => model.DeviceModel.ModelType));
@@ -406,54 +704,43 @@ WriteLiteral("\r\n \r\n \r\n \r\n
WriteLiteral(" alt=\"Model Image\"");
-WriteAttribute("src", Tuple.Create(" src=\"", 3910), Tuple.Create("\"", 4007)
+WriteAttribute("src", Tuple.Create(" src=\"", 8619), Tuple.Create("\"", 8716)
- #line 111 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
-, Tuple.Create(Tuple.Create("", 3916), Tuple.Create \r\n");
+WriteLiteral(" />\r\n");
- #line 114 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
-
+ #line 220 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+
#line default
#line hidden
- #line 114 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
- if (canConfig)
- {
+ #line 220 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ if (canConfig)
+ {
#line default
#line hidden
-WriteLiteral(" \r\n \r\n");
+WriteLiteral(" \r\n \r\n \r\n\r\n\r\n \r\n " +
-" \r\n \r\n");
+WriteLiteral(" \r\n
\r\n");
- #line 123 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
-
-
- #line default
- #line hidden
-
- #line 123 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
- using (Html.BeginForm(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, true, null), FormMethod.Post, new { enctype = "multipart/form-data" }))
+ #line 223 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ using (Html.BeginForm(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, true, null), FormMethod.Post, new { enctype = "multipart/form-data" }))
{
#line default
#line hidden
-WriteLiteral(" \r\n");
-WriteLiteral(" \r\n");
- #line 127 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 227 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
}
+ }
#line default
#line hidden
-WriteLiteral(" Components
\r\n");
- #line 130 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
- }
-
-
- #line default
- #line hidden
-WriteLiteral(" \r\n");
-
-
- #line 132 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
-
-
- #line default
- #line hidden
-
- #line 132 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
- if (canConfig)
- {
-
-
- #line default
- #line hidden
-WriteLiteral("
-");
-
-WriteLiteral("
-");
-
-WriteLiteral("
-");
-
-
- #line 240 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
- }
-
-
- #line default
- #line hidden
-WriteLiteral("\r\nComponents
\r\n");
-
-
- #line 243 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 234 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Html.Partial(MVC.Config.DeviceModel.Views._DeviceComponentsTable, Model.DeviceComponentsModel));
@@ -681,13 +786,13 @@ WriteLiteral(" class=\"actionBar\"");
WriteLiteral(">\r\n");
- #line 245 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 236 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
#line default
#line hidden
- #line 245 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 236 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
if (Model.CanDelete)
{
@@ -695,14 +800,14 @@ WriteLiteral(">\r\n");
#line default
#line hidden
- #line 247 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 238 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Html.ActionLinkButton("Delete", MVC.API.DeviceModel.Delete(Model.DeviceModel.Id, true), "buttonDelete"));
#line default
#line hidden
- #line 247 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 238 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
}
@@ -712,7 +817,7 @@ WriteLiteral(">\r\n");
WriteLiteral(" ");
- #line 249 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 240 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
if (Model.DeviceCount > 0)
{
if (Authorization.Has(Claims.Device.Actions.Export))
@@ -722,14 +827,14 @@ WriteLiteral(" ");
#line default
#line hidden
- #line 253 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 244 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Html.ActionLinkButton("Export Devices", MVC.Device.Export(null, Disco.Models.Services.Devices.Exporting.DeviceExportTypes.Model, Model.DeviceModel.Id)));
#line default
#line hidden
- #line 253 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 244 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
}
if (Authorization.Has(Claims.Device.Search) && Model.DeviceCount > 0)
@@ -739,14 +844,14 @@ WriteLiteral(" ");
#line default
#line hidden
- #line 257 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 248 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
Write(Html.ActionLinkButton(string.Format("View {0} Device{1}", Model.DeviceCount, (Model.DeviceCount != 1 ? "s" : null)), MVC.Search.Query(Model.DeviceModel.Id.ToString(), "DeviceModel")));
#line default
#line hidden
- #line 257 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
+ #line 248 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml"
}
}
diff --git a/Disco.Web/ClientSource/Style/Job.css b/Disco.Web/ClientSource/Style/Job.css
index 48380dc2..abcdb53a 100644
--- a/Disco.Web/ClientSource/Style/Job.css
+++ b/Disco.Web/ClientSource/Style/Job.css
@@ -706,6 +706,24 @@
width: 600px;
height: 250px;
}
+#repairJobForm #repairDisclosedInformation table {
+ font-size: 0.9em;
+}
+#repairJobForm #repairDisclosedInformation table tr:not(:last-child) {
+ border-bottom: 1px dashed #aaa;
+}
+#repairJobForm #repairDisclosedInformation table th {
+ padding: 2px;
+ font-weight: bold;
+ width: 200px;
+}
+#repairJobForm #repairDisclosedInformation table td {
+ padding: 2px;
+}
+#repairJobRepairDescription #RepairDescription {
+ width: 600px;
+ height: 250px;
+}
#createJob_Container {
margin: 0 -20px;
}
diff --git a/Disco.Web/ClientSource/Style/Job.less b/Disco.Web/ClientSource/Style/Job.less
index ff68e370..27167d8c 100644
--- a/Disco.Web/ClientSource/Style/Job.less
+++ b/Disco.Web/ClientSource/Style/Job.less
@@ -735,6 +735,35 @@
}
}
+#repairJobForm {
+ #repairDisclosedInformation {
+ table {
+ font-size: 0.9em;
+
+ tr:not(:last-child) {
+ border-bottom: 1px dashed #aaa;
+ }
+
+ th {
+ padding: 2px;
+ font-weight: bold;
+ width: 200px;
+ }
+
+ td {
+ padding: 2px;
+ }
+ }
+ }
+}
+
+#repairJobRepairDescription {
+ #RepairDescription {
+ width: 600px;
+ height: 250px;
+ }
+}
+
#createJob_Container {
margin: 0 -20px;
diff --git a/Disco.Web/ClientSource/Style/Job.min.css b/Disco.Web/ClientSource/Style/Job.min.css
index b625badf..916c4064 100644
--- a/Disco.Web/ClientSource/Style/Job.min.css
+++ b/Disco.Web/ClientSource/Style/Job.min.css
@@ -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}#layout_PageHeading #Job_Show_Status{margin-left:20px;display:inline-block;height:50px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;font-size:.7em;text-transform:uppercase}#layout_PageHeading #Job_Show_Status span.icon{margin-right:6px}#layout_PageHeading #Job_Show_QueueStatus{display:inline-block;float:right;height:50px;font-size:.6em}#Job_List{padding-top:20px}#Job_List>.jobTable>h3{margin:30px 0 50px 20px!important}#Job_Show #Job_Show_Subjects{table-layout:fixed}#Job_Show #Job_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#Job_Show #Job_Show_Subjects>tbody>tr>td>div{position:relative}#Job_Show #Job_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#Job_Show #Job_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#Job_Show #Job_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Type>table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_1,#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_2{padding-left:16px;font-weight:bold}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_Update{margin-left:16px;font-size:.9em}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_Update_Dialog{display:none}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates{padding-bottom:6px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table>tbody>tr>td{vertical-align:middle}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table>tbody>tr>td:first-child{font-weight:bold;width:60px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_GenerateDocument_Container{padding-top:4px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_GenerateDocument_Container #Job_Show_GenerateDocument{padding:0}#Job_Show #Job_Show_Subjects #Job_Show_Device>div{padding-left:102px;min-height:100px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Model_Image{position:absolute;left:0;top:0;height:96px;width:96px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details{float:left}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HWar,#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HNWar{float:right;border-left:1px dashed #ddd;padding-left:4px;margin-right:2px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HWar_Details_Button,#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HNWar_Details_Button{font-size:.9em}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_DeviceHeld table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_DeviceHeld table>tbody>tr>td:first-child{width:62px}#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Flags{margin:4px 0;font-size:16px}#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Flags>i{cursor:default}#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Flags>i>.details{display:none}#Job_Show #Job_Show_Subjects #Job_Show_Subjects_Actions>td{padding-top:4px}#Job_Show #Job_Show_Subjects #Job_Show_Subjects_Actions #Job_Show_Device_Actions{padding-left:111px}#jobDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#jobDetailTabs #jobDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#jobDetailTabs #jobDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#jobDetailTabs #jobDetailTabItems>li>a{padding:5px 8px}#jobDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-top:none;background-color:#eee}#jobShowResources #CommentsContainer{padding:0;width:375px}#jobShowResources #Comments{height:300px;padding:0;border:1px solid #ccc;background-color:#fff}#jobShowResources #Comments div.commentOutput{height:249px;overflow:auto;background-color:#fafafa;color:#000}#jobShowResources #Comments div.commentOutput>div{padding:3px;margin:4px 6px;border-bottom:1px solid #ccc}#jobShowResources #Comments div.commentOutput>div span.author{color:#444;display:block;font-weight:bold;font-size:.95em;float:left}#jobShowResources #Comments div.commentOutput>div span.timestamp{display:block;float:right;font-size:.9em;font-style:italic}#jobShowResources #Comments div.commentOutput>div div.comment{clear:both;display:block;margin-left:4px}#jobShowResources #Comments div.commentOutput>div div.comment p{line-height:1.2em}#jobShowResources #Comments div.commentOutput>div:hover span.remove{opacity:.5}#jobShowResources #Comments div.commentOutput>div span.remove{font-size:1.2em;color:#e51400;margin-left:6px;cursor:pointer;opacity:0}#jobShowResources #Comments div.commentOutput>div span.remove:hover{opacity:1}#jobShowResources #Comments div.commentOutput>div:last-child{border-bottom:none}#jobShowResources #Comments.cannotAddLogs div.commentOutput{height:300px}#jobShowResources #Comments div.commentInput{border-top:1px solid #ccc;height:40px;padding:5px}#jobShowResources #Comments div.commentInput textarea.commentInput{border:0;padding:0;margin:0;width:325px;height:40px;min-height:40px;overflow:auto;float:left;resize:none}#jobShowResources #Comments div.commentInput span.action{color:#333;font-size:1.5em;display:block;margin:0;cursor:pointer;float:left;border:1px solid #fff;padding:.5em}#jobShowResources #Comments div.commentInput span.action:hover{color:#335a87;background-color:#ededed;border:1px solid #ccc}#jobShowResources #AttachmentsContainer{padding:0}#jobShowResources #Attachments{position:relative;height:300px;border-top:1px solid #ccc;border-right:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#fff}#jobShowResources #Attachments div.attachmentOutput{position:relative;height:249px;overflow:auto}#jobShowResources #Attachments div.attachmentOutput>a{display:block;float:left;height:48px;width:221px;padding:2px;margin:2px;font-size:.95em;border:1px solid #fff;color:#000;text-decoration:none}#jobShowResources #Attachments div.attachmentOutput>a span.comments,#jobShowResources #Attachments div.attachmentOutput>a span.author,#jobShowResources #Attachments div.attachmentOutput>a span.timestamp{display:block;float:left;width:168px;overflow:hidden;height:16px}#jobShowResources #Attachments div.attachmentOutput>a span.author{color:#888;width:150px}#jobShowResources #Attachments div.attachmentOutput>a span.timestamp{color:#888;font-style:italic}#jobShowResources #Attachments div.attachmentOutput>a span.icon{display:block;float:left;height:48px;width:48px;margin-right:2px}#jobShowResources #Attachments div.attachmentOutput>a span.icon img{height:48px;width:48px}#jobShowResources #Attachments div.attachmentOutput>a span.icon img.loading{display:none}#jobShowResources #Attachments div.attachmentOutput>a:hover{background-color:#ededed;border:1px solid #ccc}#jobShowResources #Attachments div.attachmentOutput>a:hover span.remove{opacity:.5}#jobShowResources #Attachments div.attachmentOutput>a span.remove{font-size:1.2em;color:#e51400;margin-left:2px;cursor:pointer;opacity:0}#jobShowResources #Attachments div.attachmentOutput>a span.remove:hover{opacity:1}#jobShowResources #Attachments.cannotAddAttachments div.attachmentOutput{height:300px}#jobShowResources #Attachments div.attachmentInput{border-top:1px solid #ccc;height:40px;background-color:#fff;padding:5px}#jobShowResources #Attachments div.attachmentInput span.action{color:#333;display:block;margin:0 4px 0 0;font-size:1.5em;cursor:pointer;float:right;border:1px solid #fff;padding:.5em}#jobShowResources #Attachments div.attachmentInput span.action:hover{color:#335a87;background-color:#ededed;border:1px solid #ccc}#Job_Show_Job_Actions_AddQueue_Dialog{height:400px}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker{position:absolute;width:250px;height:300px;overflow-y:auto;background-color:#fcfcfc;border:1px solid #ccc}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div{background-color:#fff;border-bottom:1px solid #ddd;padding:6px 0 6px 6px;cursor:pointer}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div:hover{background-color:#f4f4f4}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div.selected,#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div.selected:hover{background-color:#eee}#Job_Show_Job_Actions_AddQueue_Dialog .details{display:none;position:absolute;left:280px;top:30px}#Job_Show_Job_Actions_AddQueue_Dialog .details h4{margin-bottom:4px}#Job_Show_Job_Actions_AddQueue_Dialog .details>div{margin:5px 0}#Job_Show_Job_Actions_AddQueue_Dialog .details select{min-width:270px}#Job_Show_Job_Actions_AddQueue_Dialog .details textarea{min-width:270px;height:100px}#jobDetailTab-Queues #jobQueues{border:solid 1px #d8d8d8;border-collapse:collapse;table-layout:fixed}#jobDetailTab-Queues #jobQueues td{border:solid 1px #d8d8d8;background-color:#fff}#jobDetailTab-Queues #jobQueues th{background-color:#eee;border:solid 1px #d8d8d8}#jobDetailTab-Queues #jobQueues i.fa-edit{float:right;margin-top:4px;font-size:1.1em;cursor:pointer;display:none;color:#335a87}#jobDetailTab-Queues #jobQueues i.fa-edit:hover{color:#5e8cc2}#jobDetailTab-Queues #jobQueues td:hover i.fa-edit{display:inline-block}#jobDetailTab-Queues #jobQueues th.name{width:200px}#jobDetailTab-Queues #jobQueues th.sla{width:130px}#jobDetailTab-Queues #jobQueues tr.removed td{background-color:#f4f4f4}#jobDetailTab-Queues #jobQueues td.name{vertical-align:middle}#jobDetailTab-Queues #jobQueues td.name .fa-stack{line-height:1.6em}#jobDetailTab-Queues #jobQueues td.added .when,#jobDetailTab-Queues #jobQueues td.removed .when{font-style:italic;margin-top:4px;font-size:.9em}#jobDetailTab-Queues #jobQueues td.added .commentsRaw,#jobDetailTab-Queues #jobQueues td.removed .commentsRaw{display:none}#jobDetailTab-Queues #jobQueues td.removed.na{vertical-align:middle;text-align:center}#jobDetailTab-Queues #jobQueues td.sla{vertical-align:middle}#jobDetailTab-Queues #jobQueues td.sla.overdue{color:#e51400}#jobDetailTab-Queues>.none{text-align:center;padding:30px 0;font-style:italic;background-color:#fff}#Job_Show_Queues_Actions_EditAddedComment_Dialog h4,#Job_Show_Queues_Actions_EditRemovedComment_Dialog h4,#Job_Show_Queues_Actions_EditSla_Dialog h4{margin-bottom:4px}#Job_Show_Queues_Actions_EditAddedComment_Dialog_Comment{width:280px}#Job_Show_Queues_Actions_EditRemovedComment_Dialog_Comment{width:280px}#jobComponents{border:solid 1px #d8d8d8;border-collapse:collapse}#jobComponents td{border:solid 1px #d8d8d8;background-color:#fff}#jobComponents th{background-color:#eee;border:solid 1px #d8d8d8}#jobComponents tr th.actions{width:18px}#jobComponents tr input.description{width:400px}#jobComponents tr input.cost{width:150px}#jobComponents tr span.remove{font-size:1.5em;color:#e51400;cursor:pointer;opacity:.5}#jobComponents tr span.remove:hover{opacity:1}#jobComponents tr input.updating{background-position:right center;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEAALAPQAAP///zNah+Hm7dng6O7x9DddiTNah1d3nJqtw3+Xs8fS3k5vlm6JqaGzx4KatcrU4FFymDZciHGMq+ru8t/l7Pb3+V9+oeLo7vT2+MTP3LLB0dTc5fHz9gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA)}#jobComponents tr .totalCost{font-weight:bold}#jobWarrantyDetails{border:solid 1px #d8d8d8;border-collapse:collapse}#jobWarrantyDetails td{border:solid 1px #d8d8d8;background-color:#fff}#jobWarrantyDetails th{background-color:#eee;border:solid 1px #d8d8d8}#jobWarrantyDetails tr th{width:200px;text-align:right}#jobNonWarrantyFinance{border:solid 1px #d8d8d8;border-collapse:collapse}#jobNonWarrantyFinance td{border:solid 1px #d8d8d8;background-color:#fff}#jobNonWarrantyFinance th{background-color:#eee;border:solid 1px #d8d8d8}#jobNonWarrantyFinance tr th{width:200px;text-align:right}#jobNonWarrantyRepairs{border:solid 1px #d8d8d8;border-collapse:collapse}#jobNonWarrantyRepairs td{border:solid 1px #d8d8d8;background-color:#fff}#jobNonWarrantyRepairs th{background-color:#eee;border:solid 1px #d8d8d8}#jobNonWarrantyRepairs tr th{width:200px;text-align:right}#jobNonWarrantyInsurance{border:solid 1px #d8d8d8;border-collapse:collapse}#jobNonWarrantyInsurance td{border:solid 1px #d8d8d8;background-color:#fff}#jobNonWarrantyInsurance th{background-color:#eee;border:solid 1px #d8d8d8}#jobNonWarrantyInsurance tr th{width:200px;text-align:right}#jobNonWarrantyInsurance tr td textarea{width:400px}#jobFlags{border:solid 1px #d8d8d8;border-collapse:collapse}#jobFlags td{border:solid 1px #d8d8d8;background-color:#fff}#jobFlags th{background-color:#eee;border:solid 1px #d8d8d8}#jobFlags tr th{width:200px;text-align:right}#warrantyJobForm #warrantyDisclosedInformation table{font-size:.9em}#warrantyJobForm #warrantyDisclosedInformation table tr:not(:last-child){border-bottom:1px dashed #aaa}#warrantyJobForm #warrantyDisclosedInformation table th{padding:2px;font-weight:bold;width:200px}#warrantyJobForm #warrantyDisclosedInformation table td{padding:2px}#warrantyJobFaultDescription #FaultDescription{width:600px;height:250px}#createJob_Container{margin:0 -20px}#createJob_Container img.modelImage{width:64px;height:64px}#createJob_Container .createJob_Component{margin:0 10px;padding:5px 0;border-bottom:1px dashed #ccc}#createJob_Container .createJob_Component:last-child{border-bottom:none}#createJob_Container #createJob_Type{border:1px solid #ccc;background-color:#f2f2f2;padding:2px 4px}#createJob_Container #createJob_SubTypes{margin:-1px 0 0 20px;border:1px solid #ccc;border-top:none;padding:2px 4px;background-color:#f2f2f2}#createJob_Container #createJob_SubTypes .createJob_SubType{display:none}#createJob_Container #createJob_Type li,#createJob_Container #createJob_SubTypes li{margin:2px 0;padding:0 0 0 4px}#createJob_Container #createJob_Type li i,#createJob_Container #createJob_SubTypes li i{display:none;cursor:default;font-weight:normal}#createJob_Container #createJob_Type li:hover i,#createJob_Container #createJob_SubTypes li:hover i{display:inline-block}#createJob_Container #createJob_Type li.highlight,#createJob_Container #createJob_SubTypes li.highlight{background-color:#cddbec;font-weight:600;color:#000}#createJob_Container #createJob_Type li.highlight i,#createJob_Container #createJob_SubTypes li.highlight i{display:inline-block}#createJob_Container #createJob_SubTypes.isQuickLog li i{display:none}#createJob_Container #createJob_CommentsContainer #Comments{width:100%;min-width:500px}#createJob_Container #createJob_QuickLogAutoCloseContainer h3{margin-bottom:4px}#createJob_Container #createJob_QuickLogAutoCloseContainer input{margin-left:4px}#createJob_Container #createJob_QuickLogTaskTimeContainer{display:none;margin:4px 0 0 25px;padding:4px 4px;background-color:#f2f2f2;border-left:4px solid #d8d8d8}#createJob_Container #createJob_QuickLogTaskTimeContainer h4{display:inline-block;padding-right:10px}#createJob_Container #createJob_QuickLogTaskTimeContainer label{margin-right:15px}#createJob_Container #createJob_QuickLogTaskTimeContainer #createJob_TaskTimeOtherMinutesContainer{display:none}#createJob_Container #createJob_QuickLogTaskTimeContainer #createJob_TaskTimeOtherMinutes{width:50px}#createJobRedirect h1{margin-top:60px!important;margin-bottom:60px}#createJobRedirect>div{text-align:right}#createJobRedirect>div i{margin-right:10px}
\ No newline at end of file
+.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}#layout_PageHeading #Job_Show_Status{margin-left:20px;display:inline-block;height:50px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;font-size:.7em;text-transform:uppercase}#layout_PageHeading #Job_Show_Status span.icon{margin-right:6px}#layout_PageHeading #Job_Show_QueueStatus{display:inline-block;float:right;height:50px;font-size:.6em}#Job_List{padding-top:20px}#Job_List>.jobTable>h3{margin:30px 0 50px 20px!important}#Job_Show #Job_Show_Subjects{table-layout:fixed}#Job_Show #Job_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#Job_Show #Job_Show_Subjects>tbody>tr>td>div{position:relative}#Job_Show #Job_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#Job_Show #Job_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#Job_Show #Job_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Type>table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_1,#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_2{padding-left:16px;font-weight:bold}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_Update{margin-left:16px;font-size:.9em}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_Update_Dialog{display:none}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates{padding-bottom:6px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table>tbody>tr>td{vertical-align:middle}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table>tbody>tr>td:first-child{font-weight:bold;width:60px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_GenerateDocument_Container{padding-top:4px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_GenerateDocument_Container #Job_Show_GenerateDocument{padding:0}#Job_Show #Job_Show_Subjects #Job_Show_Device>div{padding-left:102px;min-height:100px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Model_Image{position:absolute;left:0;top:0;height:96px;width:96px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details{float:left}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HWar,#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HNWar{float:right;border-left:1px dashed #ddd;padding-left:4px;margin-right:2px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HWar_Details_Button,#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HNWar_Details_Button{font-size:.9em}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_DeviceHeld table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_DeviceHeld table>tbody>tr>td:first-child{width:62px}#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Flags{margin:4px 0;font-size:16px}#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Flags>i{cursor:default}#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Flags>i>.details{display:none}#Job_Show #Job_Show_Subjects #Job_Show_Subjects_Actions>td{padding-top:4px}#Job_Show #Job_Show_Subjects #Job_Show_Subjects_Actions #Job_Show_Device_Actions{padding-left:111px}#jobDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#jobDetailTabs #jobDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#jobDetailTabs #jobDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#jobDetailTabs #jobDetailTabItems>li>a{padding:5px 8px}#jobDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-top:none;background-color:#eee}#jobShowResources #CommentsContainer{padding:0;width:375px}#jobShowResources #Comments{height:300px;padding:0;border:1px solid #ccc;background-color:#fff}#jobShowResources #Comments div.commentOutput{height:249px;overflow:auto;background-color:#fafafa;color:#000}#jobShowResources #Comments div.commentOutput>div{padding:3px;margin:4px 6px;border-bottom:1px solid #ccc}#jobShowResources #Comments div.commentOutput>div span.author{color:#444;display:block;font-weight:bold;font-size:.95em;float:left}#jobShowResources #Comments div.commentOutput>div span.timestamp{display:block;float:right;font-size:.9em;font-style:italic}#jobShowResources #Comments div.commentOutput>div div.comment{clear:both;display:block;margin-left:4px}#jobShowResources #Comments div.commentOutput>div div.comment p{line-height:1.2em}#jobShowResources #Comments div.commentOutput>div:hover span.remove{opacity:.5}#jobShowResources #Comments div.commentOutput>div span.remove{font-size:1.2em;color:#e51400;margin-left:6px;cursor:pointer;opacity:0}#jobShowResources #Comments div.commentOutput>div span.remove:hover{opacity:1}#jobShowResources #Comments div.commentOutput>div:last-child{border-bottom:none}#jobShowResources #Comments.cannotAddLogs div.commentOutput{height:300px}#jobShowResources #Comments div.commentInput{border-top:1px solid #ccc;height:40px;padding:5px}#jobShowResources #Comments div.commentInput textarea.commentInput{border:0;padding:0;margin:0;width:325px;height:40px;min-height:40px;overflow:auto;float:left;resize:none}#jobShowResources #Comments div.commentInput span.action{color:#333;font-size:1.5em;display:block;margin:0;cursor:pointer;float:left;border:1px solid #fff;padding:.5em}#jobShowResources #Comments div.commentInput span.action:hover{color:#335a87;background-color:#ededed;border:1px solid #ccc}#jobShowResources #AttachmentsContainer{padding:0}#jobShowResources #Attachments{position:relative;height:300px;border-top:1px solid #ccc;border-right:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#fff}#jobShowResources #Attachments div.attachmentOutput{position:relative;height:249px;overflow:auto}#jobShowResources #Attachments div.attachmentOutput>a{display:block;float:left;height:48px;width:221px;padding:2px;margin:2px;font-size:.95em;border:1px solid #fff;color:#000;text-decoration:none}#jobShowResources #Attachments div.attachmentOutput>a span.comments,#jobShowResources #Attachments div.attachmentOutput>a span.author,#jobShowResources #Attachments div.attachmentOutput>a span.timestamp{display:block;float:left;width:168px;overflow:hidden;height:16px}#jobShowResources #Attachments div.attachmentOutput>a span.author{color:#888;width:150px}#jobShowResources #Attachments div.attachmentOutput>a span.timestamp{color:#888;font-style:italic}#jobShowResources #Attachments div.attachmentOutput>a span.icon{display:block;float:left;height:48px;width:48px;margin-right:2px}#jobShowResources #Attachments div.attachmentOutput>a span.icon img{height:48px;width:48px}#jobShowResources #Attachments div.attachmentOutput>a span.icon img.loading{display:none}#jobShowResources #Attachments div.attachmentOutput>a:hover{background-color:#ededed;border:1px solid #ccc}#jobShowResources #Attachments div.attachmentOutput>a:hover span.remove{opacity:.5}#jobShowResources #Attachments div.attachmentOutput>a span.remove{font-size:1.2em;color:#e51400;margin-left:2px;cursor:pointer;opacity:0}#jobShowResources #Attachments div.attachmentOutput>a span.remove:hover{opacity:1}#jobShowResources #Attachments.cannotAddAttachments div.attachmentOutput{height:300px}#jobShowResources #Attachments div.attachmentInput{border-top:1px solid #ccc;height:40px;background-color:#fff;padding:5px}#jobShowResources #Attachments div.attachmentInput span.action{color:#333;display:block;margin:0 4px 0 0;font-size:1.5em;cursor:pointer;float:right;border:1px solid #fff;padding:.5em}#jobShowResources #Attachments div.attachmentInput span.action:hover{color:#335a87;background-color:#ededed;border:1px solid #ccc}#Job_Show_Job_Actions_AddQueue_Dialog{height:400px}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker{position:absolute;width:250px;height:300px;overflow-y:auto;background-color:#fcfcfc;border:1px solid #ccc}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div{background-color:#fff;border-bottom:1px solid #ddd;padding:6px 0 6px 6px;cursor:pointer}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div:hover{background-color:#f4f4f4}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div.selected,#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div.selected:hover{background-color:#eee}#Job_Show_Job_Actions_AddQueue_Dialog .details{display:none;position:absolute;left:280px;top:30px}#Job_Show_Job_Actions_AddQueue_Dialog .details h4{margin-bottom:4px}#Job_Show_Job_Actions_AddQueue_Dialog .details>div{margin:5px 0}#Job_Show_Job_Actions_AddQueue_Dialog .details select{min-width:270px}#Job_Show_Job_Actions_AddQueue_Dialog .details textarea{min-width:270px;height:100px}#jobDetailTab-Queues #jobQueues{border:solid 1px #d8d8d8;border-collapse:collapse;table-layout:fixed}#jobDetailTab-Queues #jobQueues td{border:solid 1px #d8d8d8;background-color:#fff}#jobDetailTab-Queues #jobQueues th{background-color:#eee;border:solid 1px #d8d8d8}#jobDetailTab-Queues #jobQueues i.fa-edit{float:right;margin-top:4px;font-size:1.1em;cursor:pointer;display:none;color:#335a87}#jobDetailTab-Queues #jobQueues i.fa-edit:hover{color:#5e8cc2}#jobDetailTab-Queues #jobQueues td:hover i.fa-edit{display:inline-block}#jobDetailTab-Queues #jobQueues th.name{width:200px}#jobDetailTab-Queues #jobQueues th.sla{width:130px}#jobDetailTab-Queues #jobQueues tr.removed td{background-color:#f4f4f4}#jobDetailTab-Queues #jobQueues td.name{vertical-align:middle}#jobDetailTab-Queues #jobQueues td.name .fa-stack{line-height:1.6em}#jobDetailTab-Queues #jobQueues td.added .when,#jobDetailTab-Queues #jobQueues td.removed .when{font-style:italic;margin-top:4px;font-size:.9em}#jobDetailTab-Queues #jobQueues td.added .commentsRaw,#jobDetailTab-Queues #jobQueues td.removed .commentsRaw{display:none}#jobDetailTab-Queues #jobQueues td.removed.na{vertical-align:middle;text-align:center}#jobDetailTab-Queues #jobQueues td.sla{vertical-align:middle}#jobDetailTab-Queues #jobQueues td.sla.overdue{color:#e51400}#jobDetailTab-Queues>.none{text-align:center;padding:30px 0;font-style:italic;background-color:#fff}#Job_Show_Queues_Actions_EditAddedComment_Dialog h4,#Job_Show_Queues_Actions_EditRemovedComment_Dialog h4,#Job_Show_Queues_Actions_EditSla_Dialog h4{margin-bottom:4px}#Job_Show_Queues_Actions_EditAddedComment_Dialog_Comment{width:280px}#Job_Show_Queues_Actions_EditRemovedComment_Dialog_Comment{width:280px}#jobComponents{border:solid 1px #d8d8d8;border-collapse:collapse}#jobComponents td{border:solid 1px #d8d8d8;background-color:#fff}#jobComponents th{background-color:#eee;border:solid 1px #d8d8d8}#jobComponents tr th.actions{width:18px}#jobComponents tr input.description{width:400px}#jobComponents tr input.cost{width:150px}#jobComponents tr span.remove{font-size:1.5em;color:#e51400;cursor:pointer;opacity:.5}#jobComponents tr span.remove:hover{opacity:1}#jobComponents tr input.updating{background-position:right center;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEAALAPQAAP///zNah+Hm7dng6O7x9DddiTNah1d3nJqtw3+Xs8fS3k5vlm6JqaGzx4KatcrU4FFymDZciHGMq+ru8t/l7Pb3+V9+oeLo7vT2+MTP3LLB0dTc5fHz9gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA)}#jobComponents tr .totalCost{font-weight:bold}#jobWarrantyDetails{border:solid 1px #d8d8d8;border-collapse:collapse}#jobWarrantyDetails td{border:solid 1px #d8d8d8;background-color:#fff}#jobWarrantyDetails th{background-color:#eee;border:solid 1px #d8d8d8}#jobWarrantyDetails tr th{width:200px;text-align:right}#jobNonWarrantyFinance{border:solid 1px #d8d8d8;border-collapse:collapse}#jobNonWarrantyFinance td{border:solid 1px #d8d8d8;background-color:#fff}#jobNonWarrantyFinance th{background-color:#eee;border:solid 1px #d8d8d8}#jobNonWarrantyFinance tr th{width:200px;text-align:right}#jobNonWarrantyRepairs{border:solid 1px #d8d8d8;border-collapse:collapse}#jobNonWarrantyRepairs td{border:solid 1px #d8d8d8;background-color:#fff}#jobNonWarrantyRepairs th{background-color:#eee;border:solid 1px #d8d8d8}#jobNonWarrantyRepairs tr th{width:200px;text-align:right}#jobNonWarrantyInsurance{border:solid 1px #d8d8d8;border-collapse:collapse}#jobNonWarrantyInsurance td{border:solid 1px #d8d8d8;background-color:#fff}#jobNonWarrantyInsurance th{background-color:#eee;border:solid 1px #d8d8d8}#jobNonWarrantyInsurance tr th{width:200px;text-align:right}#jobNonWarrantyInsurance tr td textarea{width:400px}#jobFlags{border:solid 1px #d8d8d8;border-collapse:collapse}#jobFlags td{border:solid 1px #d8d8d8;background-color:#fff}#jobFlags th{background-color:#eee;border:solid 1px #d8d8d8}#jobFlags tr th{width:200px;text-align:right}#warrantyJobForm #warrantyDisclosedInformation table{font-size:.9em}#warrantyJobForm #warrantyDisclosedInformation table tr:not(:last-child){border-bottom:1px dashed #aaa}#warrantyJobForm #warrantyDisclosedInformation table th{padding:2px;font-weight:bold;width:200px}#warrantyJobForm #warrantyDisclosedInformation table td{padding:2px}#warrantyJobFaultDescription #FaultDescription{width:600px;height:250px}#repairJobForm #repairDisclosedInformation table{font-size:.9em}#repairJobForm #repairDisclosedInformation table tr:not(:last-child){border-bottom:1px dashed #aaa}#repairJobForm #repairDisclosedInformation table th{padding:2px;font-weight:bold;width:200px}#repairJobForm #repairDisclosedInformation table td{padding:2px}#repairJobRepairDescription #RepairDescription{width:600px;height:250px}#createJob_Container{margin:0 -20px}#createJob_Container img.modelImage{width:64px;height:64px}#createJob_Container .createJob_Component{margin:0 10px;padding:5px 0;border-bottom:1px dashed #ccc}#createJob_Container .createJob_Component:last-child{border-bottom:none}#createJob_Container #createJob_Type{border:1px solid #ccc;background-color:#f2f2f2;padding:2px 4px}#createJob_Container #createJob_SubTypes{margin:-1px 0 0 20px;border:1px solid #ccc;border-top:none;padding:2px 4px;background-color:#f2f2f2}#createJob_Container #createJob_SubTypes .createJob_SubType{display:none}#createJob_Container #createJob_Type li,#createJob_Container #createJob_SubTypes li{margin:2px 0;padding:0 0 0 4px}#createJob_Container #createJob_Type li i,#createJob_Container #createJob_SubTypes li i{display:none;cursor:default;font-weight:normal}#createJob_Container #createJob_Type li:hover i,#createJob_Container #createJob_SubTypes li:hover i{display:inline-block}#createJob_Container #createJob_Type li.highlight,#createJob_Container #createJob_SubTypes li.highlight{background-color:#cddbec;font-weight:600;color:#000}#createJob_Container #createJob_Type li.highlight i,#createJob_Container #createJob_SubTypes li.highlight i{display:inline-block}#createJob_Container #createJob_SubTypes.isQuickLog li i{display:none}#createJob_Container #createJob_CommentsContainer #Comments{width:100%;min-width:500px}#createJob_Container #createJob_QuickLogAutoCloseContainer h3{margin-bottom:4px}#createJob_Container #createJob_QuickLogAutoCloseContainer input{margin-left:4px}#createJob_Container #createJob_QuickLogTaskTimeContainer{display:none;margin:4px 0 0 25px;padding:4px 4px;background-color:#f2f2f2;border-left:4px solid #d8d8d8}#createJob_Container #createJob_QuickLogTaskTimeContainer h4{display:inline-block;padding-right:10px}#createJob_Container #createJob_QuickLogTaskTimeContainer label{margin-right:15px}#createJob_Container #createJob_QuickLogTaskTimeContainer #createJob_TaskTimeOtherMinutesContainer{display:none}#createJob_Container #createJob_QuickLogTaskTimeContainer #createJob_TaskTimeOtherMinutes{width:50px}#createJobRedirect h1{margin-top:60px!important;margin-bottom:60px}#createJobRedirect>div{text-align:right}#createJobRedirect>div i{margin-right:10px}
\ No newline at end of file
diff --git a/Disco.Web/Controllers/JobController.cs b/Disco.Web/Controllers/JobController.cs
index 891e2f1a..452a2034 100644
--- a/Disco.Web/Controllers/JobController.cs
+++ b/Disco.Web/Controllers/JobController.cs
@@ -1,5 +1,4 @@
using Disco.BI.Extensions;
-using Disco.Data.Repository;
using Disco.Models.BI.Job;
using Disco.Models.Repository;
using Disco.Models.Services.Jobs.JobLists;
@@ -8,6 +7,7 @@ using Disco.Services;
using Disco.Services.Authorization;
using Disco.Services.Jobs.JobLists;
using Disco.Services.Jobs.JobQueues;
+using Disco.Services.Plugins.Features.RepairProvider;
using Disco.Services.Plugins.Features.UIExtension;
using Disco.Services.Plugins.Features.WarrantyProvider;
using Disco.Services.Users;
@@ -503,7 +503,7 @@ namespace Disco.Web.Controllers
if (ModelState.IsValid)
{
- switch (m.WarrantyAction)
+ switch (m.SubmissionAction)
{
case "Update":
var updatedModel = new Models.Job.LogWarrantyModel()
@@ -528,15 +528,15 @@ namespace Disco.Web.Controllers
}
return View(updatedModel);
- case "Custom":
- if (string.IsNullOrWhiteSpace(m.CustomProviderName))
+ case "Manual":
+ if (string.IsNullOrWhiteSpace(m.ManualProviderName))
{
- ModelState.AddModelError("CustomProviderName", "The Custom Warranty Provider Name is required");
+ ModelState.AddModelError("ManualProviderName", "The Warranty Provider Name is required");
return View(Views.LogWarranty, m);
}
try
{
- m.Job.OnLogWarranty(Database, m.FaultDescription, m.CustomProviderName, m.CustomProviderReference, m.OrganisationAddress, m.TechUser);
+ m.Job.OnLogWarranty(Database, m.FaultDescription, m.ManualProviderName, m.ManualProviderReference, m.OrganisationAddress, m.TechUser);
Database.SaveChanges();
return RedirectToAction(MVC.Job.Show(m.JobId));
}
@@ -564,7 +564,7 @@ namespace Disco.Web.Controllers
if (warrantyProviderProperties != null)
{
- m.WarrantyProviderPropertiesJson = JsonConvert.SerializeObject(warrantyProviderProperties);
+ m.ProviderPropertiesJson = JsonConvert.SerializeObject(warrantyProviderProperties);
}
m.DiscloseProperties = p.SubmitJobDiscloseInfo(Database, m.Job, m.OrganisationAddress, m.TechUser, m.FaultDescription, warrantyProviderProperties);
return View(Views.LogWarrantyDisclose, m);
@@ -572,7 +572,7 @@ namespace Disco.Web.Controllers
case "Submit":
try
{
- m.Job.OnLogWarranty(Database, m.FaultDescription, m.WarrantyProvider, m.OrganisationAddress, m.TechUser, m.WarrantyProviderProperties());
+ m.Job.OnLogWarranty(Database, m.FaultDescription, m.WarrantyProvider, m.OrganisationAddress, m.TechUser, m.ProviderProperties());
Database.SaveChanges();
return RedirectToAction(MVC.Job.Show(m.JobId));
}
@@ -596,7 +596,7 @@ namespace Disco.Web.Controllers
[DiscoAuthorize(Claims.Job.Properties.WarrantyProperties.ProviderDetails)]
public virtual ActionResult WarrantyProviderJobDetails(int id)
{
- Models.Job.WarrantyProviderJobDetailsModel model = new Models.Job.WarrantyProviderJobDetailsModel();
+ Models.Job.ProviderJobDetailsModel model = new Models.Job.ProviderJobDetailsModel();
Job job = Database.Jobs.Include("Device.DeviceModel").Include("JobMetaWarranty").Include("JobSubTypes").Where(j => j.Id == id).FirstOrDefault();
if (job != null)
@@ -654,5 +654,185 @@ namespace Disco.Web.Controllers
}
#endregion
+ #region Log Repair
+ [DiscoAuthorize(Claims.Job.Actions.LogRepair)]
+ public virtual ActionResult LogRepair(int id, string RepairProviderId, int? OrganisationAddressId)
+ {
+ var m = new Models.Job.LogRepairModel()
+ {
+ JobId = id,
+ RepairProviderId = RepairProviderId,
+ OrganisationAddressId = OrganisationAddressId
+ };
+ m.UpdateModel(Database, false);
+ m.RepairDescription = m.Job.GenerateFaultDescription(Database);
+
+ if (m.RepairProvider != null)
+ {
+ using (var rp = m.RepairProvider.CreateInstance
-
-
diff --git a/Disco.Web/Views/Job/JobParts/Repairs.generated.cs b/Disco.Web/Views/Job/JobParts/Repairs.generated.cs
index 56d8e777..0c77f0ee 100644
--- a/Disco.Web/Views/Job/JobParts/Repairs.generated.cs
+++ b/Disco.Web/Views/Job/JobParts/Repairs.generated.cs
@@ -47,7 +47,7 @@ namespace Disco.Web.Views.Job.JobParts
#line 2 "..\..\Views\Job\JobParts\Repairs.cshtml"
- Authorization.Require(Claims.Job.ShowNonWarrantyFinance);
+ Authorization.Require(Claims.Job.ShowNonWarrantyRepairs);
Html.BundleDeferred("~/ClientScripts/Modules/Disco-PropertyChangeHelpers");
@@ -58,96 +58,112 @@ WriteLiteral("\r\n
-
- Repairer Name
-
-
- @if (Authorization.Has(Claims.Job.Properties.NonWarrantyProperties.RepairerName))
- {
- @Html.EditorFor(m => m.Job.JobMetaNonWarranty.RepairerName)
- @AjaxHelpers.AjaxSave()
- @AjaxHelpers.AjaxLoader()
-
- }
- else
- {
- if (string.IsNullOrWhiteSpace(Model.Job.JobMetaNonWarranty.RepairerName))
- {<Unknown/None>}
+ });
+
+ }
else
- {@Model.Job.JobMetaNonWarranty.RepairerName}
- }
-
-
-
- Repair Logged
-
-
- @CommonHelpers.FriendlyDate(Model.Job.JobMetaNonWarranty.RepairerLoggedDate, "Not Logged", "Job_JobMetaNonWarranty_RepairerLoggedDate")
-
-
-
+ Repair Reference
-
-
- @if (Authorization.Has(Claims.Job.Properties.NonWarrantyProperties.RepairerReference))
- {
- @Html.EditorFor(m => m.Job.JobMetaNonWarranty.RepairerReference)
- @AjaxHelpers.AjaxSave()
- @AjaxHelpers.AjaxLoader()
-
+ }
+ else
+ {
+ @CommonHelpers.FriendlyDate(Model.Job.JobMetaNonWarranty.RepairerLoggedDate, "Not Logged", null)
+ }
+
+
+
- Repair Reference
+
+
+ @if (Authorization.Has(Claims.Job.Properties.NonWarrantyProperties.RepairerReference))
+ {
+ @Html.EditorFor(m => m.Job.JobMetaNonWarranty.RepairerReference)
+ @AjaxHelpers.AjaxSave()
+ @AjaxHelpers.AjaxLoader()
+
- }
- else
- {
- if (string.IsNullOrWhiteSpace(Model.Job.JobMetaNonWarranty.RepairerReference))
- {<Unknown/None>}
+ });
+
+ }
else
- {@Model.Job.JobMetaNonWarranty.RepairerReference}
- }
-
-
-
+ {
+ if (string.IsNullOrWhiteSpace(Model.Job.JobMetaNonWarranty.RepairerReference))
+ {<Unknown/None>}
+ else
+ {@Model.Job.JobMetaNonWarranty.RepairerReference}
+ }
+
+
+ if (Model.Job.JobMetaNonWarranty.RepairerLoggedDate.HasValue)
+ {
+ Repair Completed
-
-
- @CommonHelpers.FriendlyDate(Model.Job.JobMetaNonWarranty.RepairerCompletedDate, "Not Completed", "Job_JobMetaNonWarranty_RepairerCompletedDate")
-
-
+
+ }
+ if (Authorization.Has(Claims.Job.Properties.NonWarrantyProperties.RepairProviderDetails))
+ {
+ Html.BundleDeferred("~/ClientScripts/Modules/Disco-AjaxHelperIcons");
+
+ }
+ }
+ else
+ {
+ Repair Completed
+
+
+ @if (Authorization.Has(Claims.Job.Properties.NonWarrantyProperties.RepairerCompletedDate))
+ {
+ @CommonHelpers.FriendlyDate(Model.Job.JobMetaNonWarranty.RepairerCompletedDate, "Not Completed", "Job_JobMetaNonWarranty_RepairerCompletedDate")
+ @AjaxHelpers.AjaxLoader()
+
+ }
+ else
+ {
+ @CommonHelpers.FriendlyDate(Model.Job.JobMetaNonWarranty.RepairerCompletedDate, "Not Completed", null)
+ }
+
+
+
+ }
Actions
+
+
+ @if (Model.Job.CanLogRepair())
+ {
+ @Html.ActionLinkSmallButton("Log Repair", MVC.Job.LogRepair(Model.Job.Id, null, null), "Job_Show_Repair_Actions_LogRepair_Button")
+ }
+ else
+ {
+ <None>
+ }
+
+ \r\n
\r\n\r\n");
+
+ #line 95 "..\..\Views\Job\JobParts\Repairs.cshtml"
+
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n");
+
+
+ #line 99 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ }
+ else
+ {
+
+
+ #line default
+ #line hidden
+
+ #line 102 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ Write(CommonHelpers.FriendlyDate(Model.Job.JobMetaNonWarranty.RepairerCompletedDate, "Not Completed", null));
+
+
+ #line default
+ #line hidden
+
+ #line 102 "..\..\Views\Job\JobParts\Repairs.cshtml"
+
+ }
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n \r\n");
+
+
+ #line 106 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ }
+ if (Authorization.Has(Claims.Job.Properties.NonWarrantyProperties.RepairProviderDetails))
+ {
+ Html.BundleDeferred("~/ClientScripts/Modules/Disco-AjaxHelperIcons");
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n \r\n");
+
+
+ #line 8 "..\..\Views\Job\JobParts\Repairs.cshtml"
+
+
+ #line default
+ #line hidden
+
+ #line 8 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ if (Model.Job.JobMetaNonWarranty.RepairerName != null || Model.Job.JobMetaNonWarranty.RepairerLoggedDate.HasValue || Model.Job.JobMetaNonWarranty.RepairerReference != null)
+ {
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n \r\n");
+
+WriteLiteral(" Repairer Name\r\n \r\n \r\n");
+WriteLiteral(">Repairer Name\r\n \r\n \r\n");
- #line 12 "..\..\Views\Job\JobParts\Repairs.cshtml"
-
-
- #line default
- #line hidden
-
- #line 12 "..\..\Views\Job\JobParts\Repairs.cshtml"
- if (Authorization.Has(Claims.Job.Properties.NonWarrantyProperties.RepairerName))
- {
+ #line 14 "..\..\Views\Job\JobParts\Repairs.cshtml"
#line default
#line hidden
#line 14 "..\..\Views\Job\JobParts\Repairs.cshtml"
- Write(Html.EditorFor(m => m.Job.JobMetaNonWarranty.RepairerName));
-
-
- #line default
- #line hidden
-
- #line 14 "..\..\Views\Job\JobParts\Repairs.cshtml"
-
-
-
- #line default
- #line hidden
-
- #line 15 "..\..\Views\Job\JobParts\Repairs.cshtml"
- Write(AjaxHelpers.AjaxSave());
-
-
- #line default
- #line hidden
-
- #line 15 "..\..\Views\Job\JobParts\Repairs.cshtml"
-
-
+ if (Authorization.Has(Claims.Job.Properties.NonWarrantyProperties.RepairerName))
+ {
+
#line default
#line hidden
#line 16 "..\..\Views\Job\JobParts\Repairs.cshtml"
- Write(AjaxHelpers.AjaxLoader());
+ Write(Html.EditorFor(m => m.Job.JobMetaNonWarranty.RepairerName));
#line default
#line hidden
#line 16 "..\..\Views\Job\JobParts\Repairs.cshtml"
-
+
+
+
+ #line default
+ #line hidden
+
+ #line 17 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ Write(AjaxHelpers.AjaxSave());
#line default
#line hidden
-WriteLiteral(" \r\n");
+" });\r\n \r\n");
- #line 27 "..\..\Views\Job\JobParts\Repairs.cshtml"
- }
- else
- {
- if (string.IsNullOrWhiteSpace(Model.Job.JobMetaNonWarranty.RepairerName))
+ #line 29 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ }
+ else
{
+ if (string.IsNullOrWhiteSpace(Model.Job.JobMetaNonWarranty.RepairerName))
+ {
#line default
#line hidden
@@ -158,133 +174,219 @@ WriteLiteral(" class=\"smallMessage\"");
WriteLiteral("><Unknown/None>");
- #line 31 "..\..\Views\Job\JobParts\Repairs.cshtml"
- }
+ #line 33 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ }
+ else
+ {
+
+ #line default
+ #line hidden
+
+ #line 35 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ Write(Model.Job.JobMetaNonWarranty.RepairerName);
+
+
+ #line default
+ #line hidden
+
+ #line 35 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ }
+ }
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n \r\n \r\n Repair Logged\r\n \r\n \r\n");
+
+
+ #line 43 "..\..\Views\Job\JobParts\Repairs.cshtml"
+
+
+ #line default
+ #line hidden
+
+ #line 43 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ if (Authorization.Has(Claims.Job.Properties.NonWarrantyProperties.RepairerLoggedDate))
+ {
+
+
+ #line default
+ #line hidden
+
+ #line 45 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ Write(CommonHelpers.FriendlyDate(Model.Job.JobMetaNonWarranty.RepairerLoggedDate, "Not Logged", "Job_JobMetaNonWarranty_RepairerLoggedDate"));
+
+
+ #line default
+ #line hidden
+
+ #line 45 "..\..\Views\Job\JobParts\Repairs.cshtml"
+
+
+
+ #line default
+ #line hidden
+
+ #line 46 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ Write(AjaxHelpers.AjaxLoader());
+
+
+ #line default
+ #line hidden
+
+ #line 46 "..\..\Views\Job\JobParts\Repairs.cshtml"
+
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n");
+
+
+ #line 50 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ }
else
{
+
#line default
#line hidden
- #line 33 "..\..\Views\Job\JobParts\Repairs.cshtml"
- Write(Model.Job.JobMetaNonWarranty.RepairerName);
+ #line 53 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ Write(CommonHelpers.FriendlyDate(Model.Job.JobMetaNonWarranty.RepairerLoggedDate, "Not Logged", null));
#line default
#line hidden
- #line 33 "..\..\Views\Job\JobParts\Repairs.cshtml"
- }
- }
+ #line 53 "..\..\Views\Job\JobParts\Repairs.cshtml"
+
+ }
#line default
#line hidden
-WriteLiteral(" \r\n \r\n \r\n");
+
+WriteLiteral(" \r\n \r\n \r\n Repair Logged\r\n \r\n \r\n");
-
-WriteLiteral(" ");
+WriteLiteral(">Repair Reference\r\n \r\n \r\n");
- #line 41 "..\..\Views\Job\JobParts\Repairs.cshtml"
- Write(CommonHelpers.FriendlyDate(Model.Job.JobMetaNonWarranty.RepairerLoggedDate, "Not Logged", "Job_JobMetaNonWarranty_RepairerLoggedDate"));
-
-
- #line default
- #line hidden
-WriteLiteral("\r\n \r\n \r\n \r\n");
+
+
+ #line 86 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ if (Model.Job.JobMetaNonWarranty.RepairerLoggedDate.HasValue)
{
-
- #line default
- #line hidden
-
- #line 69 "..\..\Views\Job\JobParts\Repairs.cshtml"
- Write(Model.Job.JobMetaNonWarranty.RepairerReference);
#line default
#line hidden
-
- #line 69 "..\..\Views\Job\JobParts\Repairs.cshtml"
- }
- }
-
-
- #line default
- #line hidden
-WriteLiteral(" \r\n \r\n Repair Reference\r\n \r\n \r\n");
-
-
- #line 48 "..\..\Views\Job\JobParts\Repairs.cshtml"
-
-
- #line default
- #line hidden
-
- #line 48 "..\..\Views\Job\JobParts\Repairs.cshtml"
- if (Authorization.Has(Claims.Job.Properties.NonWarrantyProperties.RepairerReference))
- {
+ #line 61 "..\..\Views\Job\JobParts\Repairs.cshtml"
#line default
#line hidden
- #line 50 "..\..\Views\Job\JobParts\Repairs.cshtml"
- Write(Html.EditorFor(m => m.Job.JobMetaNonWarranty.RepairerReference));
+ #line 61 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ if (Authorization.Has(Claims.Job.Properties.NonWarrantyProperties.RepairerReference))
+ {
+
+
+ #line default
+ #line hidden
+
+ #line 63 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ Write(Html.EditorFor(m => m.Job.JobMetaNonWarranty.RepairerReference));
#line default
#line hidden
- #line 50 "..\..\Views\Job\JobParts\Repairs.cshtml"
-
-
+ #line 63 "..\..\Views\Job\JobParts\Repairs.cshtml"
+
+
#line default
#line hidden
- #line 51 "..\..\Views\Job\JobParts\Repairs.cshtml"
- Write(AjaxHelpers.AjaxSave());
+ #line 64 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ Write(AjaxHelpers.AjaxSave());
#line default
#line hidden
- #line 51 "..\..\Views\Job\JobParts\Repairs.cshtml"
-
-
+ #line 64 "..\..\Views\Job\JobParts\Repairs.cshtml"
+
+
#line default
#line hidden
- #line 52 "..\..\Views\Job\JobParts\Repairs.cshtml"
- Write(AjaxHelpers.AjaxLoader());
+ #line 65 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ Write(AjaxHelpers.AjaxLoader());
#line default
#line hidden
- #line 52 "..\..\Views\Job\JobParts\Repairs.cshtml"
-
+ #line 65 "..\..\Views\Job\JobParts\Repairs.cshtml"
+
#line default
#line hidden
-WriteLiteral(" \r\n");
+" });\r\n \r\n");
- #line 63 "..\..\Views\Job\JobParts\Repairs.cshtml"
- }
- else
- {
- if (string.IsNullOrWhiteSpace(Model.Job.JobMetaNonWarranty.RepairerReference))
+ #line 76 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ }
+ else
{
+ if (string.IsNullOrWhiteSpace(Model.Job.JobMetaNonWarranty.RepairerReference))
+ {
#line default
#line hidden
@@ -295,109 +397,325 @@ WriteLiteral(" class=\"smallMessage\"");
WriteLiteral("><Unknown/None>");
- #line 67 "..\..\Views\Job\JobParts\Repairs.cshtml"
- }
- else
+ #line 80 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ }
+ else
+ {
+
+ #line default
+ #line hidden
+
+ #line 82 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ Write(Model.Job.JobMetaNonWarranty.RepairerReference);
+
+
+ #line default
+ #line hidden
+
+ #line 82 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ }
+ }
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n \r\n \r\n\r\n Repair Completed\r\n \r\n \r\n");
-
-WriteLiteral(" ");
+WriteLiteral(">Repair Completed\r\n \r\n \r\n");
- #line 77 "..\..\Views\Job\JobParts\Repairs.cshtml"
- Write(CommonHelpers.FriendlyDate(Model.Job.JobMetaNonWarranty.RepairerCompletedDate, "Not Completed", "Job_JobMetaNonWarranty_RepairerCompletedDate"));
-
-
- #line default
- #line hidden
-WriteLiteral("\r\n \r\n \r\n \r\n");
+
+
+ #line 121 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ }
+ }
+ else
+ {
+
+
+ #line default
+ #line hidden
+WriteLiteral(" Provider Details\r\n \r\n \r\n \r\n \r\n \r\n");
+
+
+ #line 139 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ }
+
+
+ #line default
+ #line hidden
+WriteLiteral("\r\n\r\n");
}
}
diff --git a/Disco.Web/Views/Job/JobParts/_Subject.cshtml b/Disco.Web/Views/Job/JobParts/_Subject.cshtml
index 99c4a7c4..83aa92f1 100644
--- a/Disco.Web/Views/Job/JobParts/_Subject.cshtml
+++ b/Disco.Web/Views/Job/JobParts/_Subject.cshtml
@@ -820,56 +820,7 @@
}
@if (Model.Job.CanLogRepair())
{
- @Html.ActionLinkSmallButton("Repairs Logged", MVC.API.Job.LogRepair(Model.Job.Id, null, null, true), "Job_Show_Job_Actions_LogRepair_Button")
- Actions\r\n \r\n \r\n");
+
+
+ #line 129 "..\..\Views\Job\JobParts\Repairs.cshtml"
+
+
+ #line default
+ #line hidden
+
+ #line 129 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ if (Model.Job.CanLogRepair())
+ {
+
+
+ #line default
+ #line hidden
+
+ #line 131 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ Write(Html.ActionLinkSmallButton("Log Repair", MVC.Job.LogRepair(Model.Job.Id, null, null), "Job_Show_Repair_Actions_LogRepair_Button"));
+
+
+ #line default
+ #line hidden
+
+ #line 131 "..\..\Views\Job\JobParts\Repairs.cshtml"
+
+ }
+ else
+ {
+
+
+ #line default
+ #line hidden
+WriteLiteral(" <None>\r\n");
+
+
+ #line 136 "..\..\Views\Job\JobParts\Repairs.cshtml"
+ }
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n Repairer Name:
- Repairer Reference:
- Repairer Name:
\r\n");
-
-WriteLiteral(" Repairer Reference:
\r\n");
-
-WriteLiteral("
| Internal Job Id: + | ++ @Model.JobId + | +
|---|---|
| Device Serial Number: + | ++ @Model.Job.Device.SerialNumber + | +
| Device Model: + | ++ @Model.Job.Device.DeviceModel.Manufacturer @Model.Job.Device.DeviceModel.Model + | +
| Technician: + | +
+ @Model.TechUser.DisplayName
+
+ Email Address: @Model.TechUser.EmailAddress
+ + Phone Number: @Model.TechUser.PhoneNumber + |
+
| Repair Address: + | +
+ @Html.DropDownListFor(model => model.OrganisationAddressId, Model.OrganisationAddresses.ToSelectListItems(Model.OrganisationAddressId, (Model.OrganisationAddress == null))) + @Html.ValidationMessageFor(m => m.OrganisationAddressId) +
+ @{
+ var oa = Model.OrganisationAddress;
+ if (oa != null)
+ {
+ @oa.Address
+
+ + @oa.Suburb, @oa.Postcode + + @oa.State, @oa.Country + } + } + |
+
| Repair Provider: + | +
+ @Html.DropDownListFor(model => model.RepairProviderId, Model.RepairProviders.ToSelectListItems(Model.RepairProviderId, AdditionalItems: new Dictionary + @Html.ValidationMessageFor(m => m.RepairProviderId) + @if (Model.RepairProviders.Count == 0 && Authorization.Has(Claims.Config.Plugin.Install)) + { +
+
+ }
+ + View the Plugin Catalogue to discover and install repair provider plugins. + + |
+
| Provider Name: | +
+ @Html.EditorFor(model => model.ManualProviderName) + @Html.ValidationMessageFor(m => m.ManualProviderName) + |
+
| Provider Job Reference: | +
+ @Html.EditorFor(model => model.ManualProviderReference) + @Html.ValidationMessageFor(m => m.ManualProviderReference) + |
+
|
+ @Html.EditorFor(model => model.RepairDescription) + @Html.ValidationMessageFor(m => m.RepairDescription) + |
+
| Internal Job Id:\r\n " + +" | \r\n\r\n"); + +WriteLiteral(" "); + + + #line 19 "..\..\Views\Job\LogRepair.cshtml" + Write(Model.JobId); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n
|---|---|
| Device Serial Number:\r\n | \r\n\r\n"); + +WriteLiteral(" "); + + + #line 26 "..\..\Views\Job\LogRepair.cshtml" + Write(Model.Job.Device.SerialNumber); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n
| Device Model:\r\n | \r\n\r\n"); + +WriteLiteral(" "); + + + #line 33 "..\..\Views\Job\LogRepair.cshtml" + Write(Model.Job.Device.DeviceModel.Manufacturer); + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 33 "..\..\Views\Job\LogRepair.cshtml" + Write(Model.Job.Device.DeviceModel.Model); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n
| Technician:\r\n | \r\n\r\n");
+
+WriteLiteral(" ");
+
+
+ #line 40 "..\..\Views\Job\LogRepair.cshtml"
+ Write(Model.TechUser.DisplayName);
+
+
+ #line default
+ #line hidden
+WriteLiteral("\r\n \r\n Email Address: ");
+
+
+ #line 42 "..\..\Views\Job\LogRepair.cshtml"
+ Write(Model.TechUser.EmailAddress);
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n \r\n Phone Number: "); + + + #line 43 "..\..\Views\Job\LogRepair.cshtml" + Write(Model.TechUser.PhoneNumber); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n
| Repair Address:\r\n | \r\n\r\n");
+
+WriteLiteral(" ");
+
+
+ #line 51 "..\..\Views\Job\LogRepair.cshtml"
+ Write(Html.DropDownListFor(model => model.OrganisationAddressId, Model.OrganisationAddresses.ToSelectListItems(Model.OrganisationAddressId, (Model.OrganisationAddress == null))));
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n"); + +WriteLiteral(" "); + + + #line 52 "..\..\Views\Job\LogRepair.cshtml" + Write(Html.ValidationMessageFor(m => m.OrganisationAddressId)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n");
+
+
+ #line 54 "..\..\Views\Job\LogRepair.cshtml"
+
+
+ #line default
+ #line hidden
+
+ #line 54 "..\..\Views\Job\LogRepair.cshtml"
+
+ var oa = Model.OrganisationAddress;
+ if (oa != null)
+ {
+
+
+ #line default
+ #line hidden
+WriteLiteral(" ");
+
+
+ #line 58 "..\..\Views\Job\LogRepair.cshtml"
+ Write(oa.Address);
+
+
+ #line default
+ #line hidden
+WriteLiteral("\r\n");
+
+WriteLiteral(" \r\n \r\n"); + +WriteLiteral(" "); + + + #line 60 "..\..\Views\Job\LogRepair.cshtml" + Write(oa.Suburb); + + + #line default + #line hidden +WriteLiteral(", "); + + + #line 60 "..\..\Views\Job\LogRepair.cshtml" + Write(oa.Postcode); + + + #line default + #line hidden +WriteLiteral("\r\n"); + +WriteLiteral(" \r\n"); + +WriteLiteral(" "); + + + #line 62 "..\..\Views\Job\LogRepair.cshtml" + Write(oa.State); + + + #line default + #line hidden +WriteLiteral(", "); + + + #line 62 "..\..\Views\Job\LogRepair.cshtml" + Write(oa.Country); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 63 "..\..\Views\Job\LogRepair.cshtml" + } + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n
| Repair Provider:\r\n | \r\n " + +"\r\n");
+
+WriteLiteral(" ");
+
+
+ #line 72 "..\..\Views\Job\LogRepair.cshtml"
+ Write(Html.DropDownListFor(model => model.RepairProviderId, Model.RepairProviders.ToSelectListItems(Model.RepairProviderId, AdditionalItems: new Dictionary \r\n"); + +WriteLiteral(" "); + + + #line 73 "..\..\Views\Job\LogRepair.cshtml" + Write(Html.ValidationMessageFor(m => m.RepairProviderId)); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 74 "..\..\Views\Job\LogRepair.cshtml" + + + #line default + #line hidden + + #line 74 "..\..\Views\Job\LogRepair.cshtml" + if (Model.RepairProviders.Count == 0 && Authorization.Has(Claims.Config.Plugin.Install)) + { + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n");
+
+
+ #line 81 "..\..\Views\Job\LogRepair.cshtml"
+ }
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n View the (Url.Action(MVC.Config.Plugins.Install()) + + #line default + #line hidden +, 3304), false) +); + +WriteLiteral(">Plugin Catalogue to discover and install repair provider plugins.\r\n " + +" \r\n | \r\n
| Provider Name: | \r\n " + +"\r\n");
+
+WriteLiteral(" ");
+
+
+ #line 89 "..\..\Views\Job\LogRepair.cshtml"
+ Write(Html.EditorFor(model => model.ManualProviderName));
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n"); + +WriteLiteral(" "); + + + #line 90 "..\..\Views\Job\LogRepair.cshtml" + Write(Html.ValidationMessageFor(m => m.ManualProviderName)); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n
| Provider Job Reference: | \r\n " + +"\r\n");
+
+WriteLiteral(" ");
+
+
+ #line 96 "..\..\Views\Job\LogRepair.cshtml"
+ Write(Html.EditorFor(model => model.ManualProviderReference));
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n"); + +WriteLiteral(" "); + + + #line 97 "..\..\Views\Job\LogRepair.cshtml" + Write(Html.ValidationMessageFor(m => m.ManualProviderReference)); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n
| \r\n");
+
+WriteLiteral(" ");
+
+
+ #line 108 "..\..\Views\Job\LogRepair.cshtml"
+ Write(Html.EditorFor(model => model.RepairDescription));
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n"); + +WriteLiteral(" "); + + + #line 109 "..\..\Views\Job\LogRepair.cshtml" + Write(Html.ValidationMessageFor(m => m.RepairDescription)); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n
| + Internal Job Id: + | ++ @Model.JobId + | +||
|---|---|---|---|
| + Device Serial Number: + | ++ @Model.Job.Device.SerialNumber + | +||
| + Device Model: + | ++ @Model.Job.Device.DeviceModel.Manufacturer @Model.Job.Device.DeviceModel.Model + | +||
| + Technician: + | +
+ @Model.TechUser.DisplayName
+
+ Email Address: @Model.TechUser.EmailAddress
+ + Phone Number: @Model.TechUser.PhoneNumber + |
+ ||
| + Repair Address: + | +
+
+ @Model.OrganisationAddress.Name
+
+
+ @Model.OrganisationAddress.Address
+ + @Model.OrganisationAddress.Suburb, @Model.OrganisationAddress.Postcode + @Model.OrganisationAddress.State, @Model.OrganisationAddress.Country + |
+ ||
| + Repair Provider: + | ++ @Model.RepairProvider.Name (@Model.RepairProvider.Id) @Model.RepairProvider.PluginManifest.Version.ToString(3) + | +||
| + Repair Description: + | ++ @Model.RepairDescription.ToMultilineString() + | +||
| + Disclosed Information + | +
+
+
+
|
+
| \r\n I" + +"nternal Job Id:\r\n | \r\n\r\n"); + +WriteLiteral(" "); + + + #line 23 "..\..\Views\Job\LogRepairDisclose.cshtml" + Write(Model.JobId); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n||
|---|---|---|---|
| \r\n Device Serial Number:\r\n | \r\n " + +"\r\n"); + +WriteLiteral(" "); + + + #line 31 "..\..\Views\Job\LogRepairDisclose.cshtml" + Write(Model.Job.Device.SerialNumber); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n||
| \r\n Device Model:\r\n | \r\n\r\n"); + +WriteLiteral(" "); + + + #line 39 "..\..\Views\Job\LogRepairDisclose.cshtml" + Write(Model.Job.Device.DeviceModel.Manufacturer); + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 39 "..\..\Views\Job\LogRepairDisclose.cshtml" + Write(Model.Job.Device.DeviceModel.Model); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n||
| \r\n Technician:\r\n | \r\n\r" +
+"\n");
+
+WriteLiteral(" ");
+
+
+ #line 47 "..\..\Views\Job\LogRepairDisclose.cshtml"
+ Write(Model.TechUser.DisplayName);
+
+
+ #line default
+ #line hidden
+WriteLiteral("\r\n \r\n Email Address: ");
+
+
+ #line 49 "..\..\Views\Job\LogRepairDisclose.cshtml"
+ Write(Model.TechUser.EmailAddress);
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n \r\n Phone Number: "); + + + #line 50 "..\..\Views\Job\LogRepairDisclose.cshtml" + Write(Model.TechUser.PhoneNumber); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n ||
| \r\n Repair Address:\r\n | \r\n|||
| \r\n " + +" Repair Provider:\r\n | \r\n\r\n"); + +WriteLiteral(" "); + + + #line 74 "..\..\Views\Job\LogRepairDisclose.cshtml" + Write(Model.RepairProvider.Name); + + + #line default + #line hidden +WriteLiteral(" ("); + + + #line 74 "..\..\Views\Job\LogRepairDisclose.cshtml" + Write(Model.RepairProvider.Id); + + + #line default + #line hidden +WriteLiteral(") "); + + + #line 74 "..\..\Views\Job\LogRepairDisclose.cshtml" + Write(Model.RepairProvider.PluginManifest.Version.ToString(3)); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n||
| \r\n Repair Description:\r\n | \r\n " + +"\r\n"); + +WriteLiteral(" "); + + + #line 82 "..\..\Views\Job\LogRepairDisclose.cshtml" + Write(Model.RepairDescription.ToMultilineString()); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n||
| \r\n Disclosed Information\r\n | \r\n " + +"\r\n \r\n \r\n \r\n
|
|
+
+ @Model.Error.Message
+
+ (show more)
+
+
+ |
+
| Internal Job Id: + | ++ @Model.JobId + | +
|---|---|
| Device Serial Number: + | ++ @Model.Job.Device.SerialNumber + | +
| Device Model: + | ++ @Model.Job.Device.DeviceModel.Manufacturer @Model.Job.Device.DeviceModel.Model + | +
| Technician: + | +
+ @Model.TechUser.DisplayName
+
+ Email Address: @Model.TechUser.EmailAddress
+ + Phone Number: @Model.TechUser.PhoneNumber + |
+
| Repair Address: + | +
+
+ @Model.OrganisationAddress.Name
+
+
+ @Model.OrganisationAddress.Address
+ + @Model.OrganisationAddress.Suburb, @Model.OrganisationAddress.Postcode + @Model.OrganisationAddress.State, @Model.OrganisationAddress.Country + |
+
| Repair Provider: + | ++ @if (Model.RepairProvider != null) + { + + @Model.RepairProvider.Name (@Model.RepairProvider.Id) @Model.RepairProvider.PluginManifest.Version.ToString(3) + + } + else + { + None Selected + } + | +
| Repair Description: + | ++ @Model.RepairDescription.ToMultilineString() + | +
| \r\n " +
+" \r\n ");
+
+
+ #line 13 "..\..\Views\Job\LogRepairError.cshtml"
+ Write(Model.Error.Message);
+
+
+ #line default
+ #line hidden
+WriteLiteral("\r\n \r\n (show more)\r\n \r\n \r\n
+ \r\n Error Type: "); + + + #line 18 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.Error.GetType().Name); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n Stack Trace:\r\n" + +" \r\n");
+
+WriteLiteral(" ");
+
+
+ #line 22 "..\..\Views\Job\LogRepairError.cshtml"
+ Write(Model.Error.StackTrace.ToMultilineString());
+
+
+ #line default
+ #line hidden
+WriteLiteral("\r\n \r\n");
+
+
+ #line 24 "..\..\Views\Job\LogRepairError.cshtml"
+
+
+ #line default
+ #line hidden
+
+ #line 24 "..\..\Views\Job\LogRepairError.cshtml"
+ if (Model.Error.InnerException != null)
+ {
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n"); + +WriteLiteral(" \r\n Inner Exceptio" +
+"n: ");
+
+
+ #line 28 "..\..\Views\Job\LogRepairError.cshtml"
+ Write(Model.Error.InnerException.Message);
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n");
+
+
+ #line 35 "..\..\Views\Job\LogRepairError.cshtml"
+ }
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n Error Type: "); + + + #line 29 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.Error.GetType().Name); + + + #line default + #line hidden +WriteLiteral(" \r\n Stack Trace:\r\n " + +" \r\n");
+
+WriteLiteral(" ");
+
+
+ #line 32 "..\..\Views\Job\LogRepairError.cshtml"
+ Write(Model.Error.InnerException.StackTrace);
+
+
+ #line default
+ #line hidden
+WriteLiteral("\r\n \r\n |
+
| Internal Job Id:\r\n | \r\n\r\n"); + +WriteLiteral(" "); + + + #line 57 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.JobId); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n
|---|---|
| Device Serial N" + +"umber:\r\n | \r\n\r\n"); + +WriteLiteral(" "); + + + #line 64 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.Job.Device.SerialNumber); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n
| Device Model:\r\n" + +" | \r\n\r\n"); + +WriteLiteral(" "); + + + #line 71 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.Job.Device.DeviceModel.Manufacturer); + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 71 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.Job.Device.DeviceModel.Model); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n
| Technician:\r\n " + +" | \r\n\r\n");
+
+WriteLiteral(" ");
+
+
+ #line 78 "..\..\Views\Job\LogRepairError.cshtml"
+ Write(Model.TechUser.DisplayName);
+
+
+ #line default
+ #line hidden
+WriteLiteral("\r\n \r\n Email Address: ");
+
+
+ #line 80 "..\..\Views\Job\LogRepairError.cshtml"
+ Write(Model.TechUser.EmailAddress);
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n \r\n Phone Number: "); + + + #line 81 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.TechUser.PhoneNumber); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n
| Repair Address:\r\n | \r\n\r\n \r\n");
+
+WriteLiteral(" ");
+
+
+ #line 90 "..\..\Views\Job\LogRepairError.cshtml"
+ Write(Model.OrganisationAddress.Name);
+
+
+ #line default
+ #line hidden
+WriteLiteral("\r\n \r\n \r\n ");
+
+
+ #line 92 "..\..\Views\Job\LogRepairError.cshtml"
+ Write(Model.OrganisationAddress.Address);
+
+
+ #line default
+ #line hidden
+WriteLiteral(" \r\n \r\n "); + + + #line 93 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.OrganisationAddress.Suburb); + + + #line default + #line hidden +WriteLiteral(", "); + + + #line 93 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.OrganisationAddress.Postcode); + + + #line default + #line hidden +WriteLiteral(" \r\n "); + + + #line 94 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.OrganisationAddress.State); + + + #line default + #line hidden +WriteLiteral(", "); + + + #line 94 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.OrganisationAddress.Country); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n " +
+"
| Repair Provider:\r\n | \r" + +"\n\r\n"); + + + #line 103 "..\..\Views\Job\LogRepairError.cshtml" + + + #line default + #line hidden + + #line 103 "..\..\Views\Job\LogRepairError.cshtml" + if (Model.RepairProvider != null) + { + + + #line default + #line hidden +WriteLiteral(" \r\n"); + +WriteLiteral(" "); + + + #line 106 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.RepairProvider.Name); + + + #line default + #line hidden +WriteLiteral(" ("); + + + #line 106 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.RepairProvider.Id); + + + #line default + #line hidden +WriteLiteral(") "); + + + #line 106 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.RepairProvider.PluginManifest.Version.ToString(3)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n"); + + + #line 108 "..\..\Views\Job\LogRepairError.cshtml" + } + else + { + + + #line default + #line hidden +WriteLiteral(" None Selected\r\n"); + + + #line 112 "..\..\Views\Job\LogRepairError.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" | \r\n
| Repair Descriptio" + +"n:\r\n | \r\n\r\n"); + +WriteLiteral(" "); + + + #line 119 "..\..\Views\Job\LogRepairError.cshtml" + Write(Model.RepairDescription.ToMultilineString()); + + + #line default + #line hidden +WriteLiteral("\r\n | \r\n
| Warranty Provider: |
- @Html.DropDownListFor(model => model.WarrantyProviderId, Model.WarrantyProviders.ToSelectListItems(Model.WarrantyProviderId, true, InstructionMessage: "Select a Provider", AdditionalItems: new Dictionary + @Html.DropDownListFor(model => model.WarrantyProviderId, Model.WarrantyProviders.ToSelectListItems(Model.WarrantyProviderId, AdditionalItems: new Dictionary @Html.ValidationMessageFor(m => m.WarrantyProviderId) + @if (Model.WarrantyProviders.Count == 0 && Authorization.Has(Claims.Config.Plugin.Install)) + { +
+
+ }
+ View the Plugin Catalogue to discover and install warranty provider plugins. + + |
|
|---|---|---|
| Custom Provider: | +Provider Name: |
- @Html.EditorFor(model => model.CustomProviderName) - @Html.ValidationMessageFor(m => m.CustomProviderName) + @Html.EditorFor(model => model.ManualProviderName) + @Html.ValidationMessageFor(m => m.ManualProviderName) |
| Provider Job Reference: |
- @Html.EditorFor(model => model.CustomProviderReference) - @Html.ValidationMessageFor(m => m.CustomProviderReference) + @Html.EditorFor(model => model.ManualProviderReference) + @Html.ValidationMessageFor(m => m.ManualProviderReference) |
|
| Custom Provider: | \r\n " + -"\r\n"); +WriteLiteral(" | |
| Provider Name: | \r\n " + +"\r\n");
WriteLiteral(" ");
- #line 81 "..\..\Views\Job\LogWarranty.cshtml"
- Write(Html.EditorFor(model => model.CustomProviderName));
+ #line 89 "..\..\Views\Job\LogWarranty.cshtml"
+ Write(Html.EditorFor(model => model.ManualProviderName));
#line default
@@ -379,8 +429,8 @@ WriteLiteral(" \r\n"); WriteLiteral(" "); - #line 82 "..\..\Views\Job\LogWarranty.cshtml" - Write(Html.ValidationMessageFor(m => m.CustomProviderName)); + #line 90 "..\..\Views\Job\LogWarranty.cshtml" + Write(Html.ValidationMessageFor(m => m.ManualProviderName)); #line default @@ -393,8 +443,8 @@ WriteLiteral(" | |
| Provider Job Refer
WriteLiteral(" ");
- #line 88 "..\..\Views\Job\LogWarranty.cshtml"
- Write(Html.EditorFor(model => model.CustomProviderReference));
+ #line 96 "..\..\Views\Job\LogWarranty.cshtml"
+ Write(Html.EditorFor(model => model.ManualProviderReference));
#line default
@@ -404,8 +454,8 @@ WriteLiteral(" \r\n"); WriteLiteral(" "); - #line 89 "..\..\Views\Job\LogWarranty.cshtml" - Write(Html.ValidationMessageFor(m => m.CustomProviderReference)); + #line 97 "..\..\Views\Job\LogWarranty.cshtml" + Write(Html.ValidationMessageFor(m => m.ManualProviderReference)); #line default @@ -413,7 +463,7 @@ WriteLiteral(" "); WriteLiteral("\r\n \r\n |