Files
Disco/Disco.Web/Views/Job/JobParts/Components.generated.cs
2025-07-31 16:18:32 +10:00

463 lines
18 KiB
C#

#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Disco.Web.Views.Job.JobParts
{
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
using System.Web.Helpers;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using System.Web.Mvc.Html;
using System.Web.Routing;
using System.Web.Security;
using System.Web.UI;
using System.Web.WebPages;
using Disco;
using Disco.Models.Repository;
using Disco.Services;
using Disco.Services.Authorization;
using Disco.Services.Web;
using Disco.Web;
using Disco.Web.Extensions;
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
[System.Web.WebPages.PageVirtualPathAttribute("~/Views/Job/JobParts/Components.cshtml")]
public partial class Components : Disco.Services.Web.WebViewPage<Disco.Web.Models.Job.ShowModel>
{
public Components()
{
}
public override void Execute()
{
#line 2 "..\..\Views\Job\JobParts\Components.cshtml"
Authorization.Require(Claims.Job.ShowNonWarrantyComponents);
var hasEdit = Authorization.Has(Claims.Job.Properties.NonWarrantyProperties.EditComponents);
var hasAdd = Authorization.Has(Claims.Job.Properties.NonWarrantyProperties.AddComponents);
if (hasEdit)
{
Html.BundleDeferred("~/ClientScripts/Modules/jQuery-NumberFormatter");
}
#line default
#line hidden
WriteLiteral("\r\n<table");
WriteLiteral(" id=\"jobComponents\"");
WriteLiteral(" data-addurl=\"");
#line 13 "..\..\Views\Job\JobParts\Components.cshtml"
Write(Url.Action(MVC.API.Job.ComponentAdd(Model.Job.Id, null, null)));
#line default
#line hidden
WriteLiteral("\"");
WriteLiteral(" data-removeurl=\"");
#line 13 "..\..\Views\Job\JobParts\Components.cshtml"
Write(Url.Action(MVC.API.Job.ComponentRemove()));
#line default
#line hidden
WriteLiteral("\"");
WriteLiteral(" data-updateurl=\"");
#line 13 "..\..\Views\Job\JobParts\Components.cshtml"
Write(Url.Action(MVC.API.Job.ComponentUpdate()));
#line default
#line hidden
WriteLiteral("\"");
WriteLiteral(">\r\n <tr>\r\n <th>\r\n Description\r\n </th>\r\n <th>\r\n" +
" Cost\r\n </th>\r\n");
#line 21 "..\..\Views\Job\JobParts\Components.cshtml"
#line default
#line hidden
#line 21 "..\..\Views\Job\JobParts\Components.cshtml"
if (hasEdit)
{
#line default
#line hidden
WriteLiteral(" <th");
WriteLiteral(" class=\"actions\"");
WriteLiteral(">\r\n &nbsp;\r\n </th>\r\n");
#line 26 "..\..\Views\Job\JobParts\Components.cshtml"
}
#line default
#line hidden
WriteLiteral(" </tr>\r\n");
#line 28 "..\..\Views\Job\JobParts\Components.cshtml"
#line default
#line hidden
#line 28 "..\..\Views\Job\JobParts\Components.cshtml"
if (hasEdit)
{
foreach (var jc in Model.Job.JobComponents)
{
#line default
#line hidden
WriteLiteral(" <tr");
WriteLiteral(" data-jobcomponentid=\"");
#line 32 "..\..\Views\Job\JobParts\Components.cshtml"
Write(jc.Id);
#line default
#line hidden
WriteLiteral("\"");
WriteLiteral(">\r\n <td>\r\n <input");
WriteLiteral(" type=\"text\"");
WriteLiteral(" class=\"description\"");
WriteAttribute("value", Tuple.Create(" value=\"", 1109), Tuple.Create("\"", 1132)
#line 34 "..\..\Views\Job\JobParts\Components.cshtml"
, Tuple.Create(Tuple.Create("", 1117), Tuple.Create<System.Object, System.Int32>(jc.Description
#line default
#line hidden
, 1117), false)
);
WriteLiteral(" />\r\n </td>\r\n <td>\r\n <input");
WriteLiteral(" type=\"text\"");
WriteLiteral(" class=\"cost\"");
WriteAttribute("value", Tuple.Create(" value=\"", 1234), Tuple.Create("\"", 1264)
#line 37 "..\..\Views\Job\JobParts\Components.cshtml"
, Tuple.Create(Tuple.Create("", 1242), Tuple.Create<System.Object, System.Int32>(jc.Cost.ToString("C")
#line default
#line hidden
, 1242), false)
);
WriteLiteral(" />\r\n </td>\r\n <td>\r\n <span");
WriteLiteral(" class=\"remove fa fa-times-circle\"");
WriteLiteral("></span>\r\n </td>\r\n </tr>\r\n");
#line 43 "..\..\Views\Job\JobParts\Components.cshtml"
}
}
else
{
foreach (var jc in Model.Job.JobComponents)
{
#line default
#line hidden
WriteLiteral(" <tr");
WriteLiteral(" data-jobcomponentid=\"");
#line 49 "..\..\Views\Job\JobParts\Components.cshtml"
Write(jc.Id);
#line default
#line hidden
WriteLiteral("\"");
WriteLiteral(">\r\n <td>\r\n <span");
WriteLiteral(" class=\"description\"");
WriteLiteral(">");
#line 51 "..\..\Views\Job\JobParts\Components.cshtml"
Write(jc.Description);
#line default
#line hidden
WriteLiteral("</span>\r\n </td>\r\n <td>\r\n <span");
WriteLiteral(" class=\"cost\"");
WriteLiteral(">");
#line 54 "..\..\Views\Job\JobParts\Components.cshtml"
Write(jc.Cost.ToString("C"));
#line default
#line hidden
WriteLiteral("</span>\r\n </td>\r\n </tr>\r\n");
#line 57 "..\..\Views\Job\JobParts\Components.cshtml"
}
}
#line default
#line hidden
WriteLiteral("\r\n <tr>\r\n <td>\r\n");
#line 62 "..\..\Views\Job\JobParts\Components.cshtml"
#line default
#line hidden
#line 62 "..\..\Views\Job\JobParts\Components.cshtml"
if (hasEdit && hasAdd)
{
#line default
#line hidden
WriteLiteral(" <a");
WriteLiteral(" href=\"#\"");
WriteLiteral(" id=\"jobComponentsAdd\"");
WriteLiteral(">Add Component</a>\r\n");
#line 65 "..\..\Views\Job\JobParts\Components.cshtml"
}
#line default
#line hidden
WriteLiteral(" &nbsp;\r\n </td>\r\n <td");
WriteAttribute("colspan", Tuple.Create(" colspan=\"", 2047), Tuple.Create("\"", 2075)
#line 68 "..\..\Views\Job\JobParts\Components.cshtml"
, Tuple.Create(Tuple.Create("", 2057), Tuple.Create<System.Object, System.Int32>(hasEdit ? 2 : 1
#line default
#line hidden
, 2057), false)
);
WriteLiteral(" class=\"totalCost\"");
WriteLiteral(">\r\n Total: <span");
WriteLiteral(" id=\"jobComponentsTotalCost\"");
WriteLiteral(">\r\n");
#line 70 "..\..\Views\Job\JobParts\Components.cshtml"
#line default
#line hidden
#line 70 "..\..\Views\Job\JobParts\Components.cshtml"
if (!hasEdit)
{
#line default
#line hidden
#line 72 "..\..\Views\Job\JobParts\Components.cshtml"
Write(Model.Job.JobComponentsTotalCost().ToString("C"));
#line default
#line hidden
#line 72 "..\..\Views\Job\JobParts\Components.cshtml"
}
#line default
#line hidden
WriteLiteral(" </span>\r\n </td>\r\n </tr>\r\n</table>\r\n");
#line 78 "..\..\Views\Job\JobParts\Components.cshtml"
if (hasEdit)
{
#line default
#line hidden
WriteLiteral(" <div");
WriteLiteral(" id=\"dialogRemoveComponent\"");
WriteLiteral(" title=\"Remove this Component?\"");
WriteLiteral(">\r\n <p>\r\n <i");
WriteLiteral(" class=\"fa fa-exclamation-triangle fa-lg\"");
WriteLiteral("></i>&nbsp;Are you sure?\r\n </p>\r\n </div>\r\n");
WriteLiteral(" <script");
WriteLiteral(" type=\"text/javascript\"");
WriteLiteral(">\r\n $(function () {\r\n const $jobComponents = $(\'#jobComponents\'" +
");\r\n\r\n $jobComponents.on(\'change\', \'input\', updateComponent);\r\n " +
" $jobComponents.on(\'focus\', \'input\', function () { $(this).select() });\r\n\r\n" +
"\r\n $jobComponents.on(\'click\', \'span.remove\', removeComponent);\r\n\r\n " +
" $(\'#jobComponentsAdd\').click(function () {\r\n const jc = " +
"$(\'<tr><td><input type=\"text\" class=\"description\" /></td><td><input type=\"text\" " +
"class=\"cost\" /></td><td><span class=\"remove fa fa-times-circle\"></span></td></tr" +
">\');\r\n jc.find(\'input\').focus(function () { $(this).select() })\r\n" +
" jc.insertBefore($jobComponents.find(\'tr\').last());\r\n " +
" jc.find(\'input.description\').focus();\r\n return false;\r\n " +
" });\r\n\r\n $(\'#dialogRemoveComponent\').dialog({\r\n r" +
"esizable: false,\r\n height: 140,\r\n modal: true,\r\n " +
" autoOpen: false\r\n });\r\n\r\n function removeCom" +
"ponent() {\r\n const componentRow = $(this).closest(\'tr\');\r\n " +
" const id = componentRow.attr(\'data-jobcomponentid\');\r\n i" +
"f (id) {\r\n var $dialogRemoveComponent = $(\'#dialogRemoveCompo" +
"nent\');\r\n $dialogRemoveComponent.dialog(\"enable\");\r\n " +
" $dialogRemoveComponent.dialog(\'option\', \'buttons\', {\r\n " +
" \"Remove\": function () {\r\n $dialogRemoveCompo" +
"nent.dialog(\"disable\");\r\n $dialogRemoveComponent.dial" +
"og(\"option\", \"buttons\", null);\r\n\r\n async function rem" +
"oveComponentAsync(id) {\r\n\r\n const body = new Form" +
"Data();\r\n body.append(\'__RequestVerificationToken" +
"\', document.body.dataset.antiforgery);\r\n body.app" +
"end(\'id\', id);\r\n\r\n const response = await fetch($" +
"jobComponents.attr(\'data-removeurl\'), {\r\n met" +
"hod: \'POST\',\r\n body: body\r\n " +
" });\r\n\r\n if (response.ok) {\r\n " +
" componentRow.remove();\r\n " +
" updateTotalCost();\r\n } else {\r\n " +
" alert(\'Unable to remove component: \' + response.statu" +
"sText);\r\n }\r\n $dia" +
"logRemoveComponent.dialog(\"close\");\r\n }\r\n " +
" removeComponentAsync(id);\r\n },\r\n " +
" Cancel: function () {\r\n $dialogRemoveC" +
"omponent.dialog(\"close\");\r\n }\r\n });\r\n\r" +
"\n $dialogRemoveComponent.dialog(\'open\');\r\n\r\n }" +
" else {\r\n // New - Remove\r\n componentRow.r" +
"emove();\r\n updateTotalCost();\r\n }\r\n " +
" }\r\n function updateTotalCost() {\r\n var totalCost = 0;" +
"\r\n\r\n $jobComponents.find(\'input.cost\').each(function () {\r\n " +
" var v = $(this).val();\r\n v = $.parseNumber(v, {" +
" format: \'#,##0.00\', locale: \'au\' });\r\n if (!isNaN(v))\r\n " +
" totalCost += v;\r\n });\r\n var tot" +
"alCostFormatted = $.formatNumber(totalCost, { format: \'#,##0.00\', locale: \'au\' }" +
");\r\n $(\'#jobComponentsTotalCost\').text(\'$\' + totalCostFormatted);" +
"\r\n }\r\n function updateComponent() {\r\n var c" +
"omponentRow = $(this).closest(\'tr\');\r\n\r\n componentRow.find(\'input" +
"\').attr(\'disabled\', true).addClass(\'updating\');\r\n\r\n var id = comp" +
"onentRow.attr(\'data-jobcomponentid\');\r\n if (id) {\r\n " +
" // Update\r\n async function updateComponentAsync(id, des" +
"cription, cost) {\r\n const body = new FormData();\r\n " +
" body.append(\'__RequestVerificationToken\', document.body.dataset" +
".antiforgery);\r\n body.append(\'id\', id);\r\n " +
" body.append(\'description\', description);\r\n body.a" +
"ppend(\'cost\', cost);\r\n\r\n const response = await fetch($jo" +
"bComponents.attr(\'data-updateurl\'), {\r\n method: \'POST" +
"\',\r\n body: body\r\n });\r\n\r\n " +
" componentRow.find(\'input\').attr(\'disabled\', false).removeClas" +
"s(\'updating\');\r\n\r\n if (response.ok) {\r\n " +
" const component = await response.json();\r\n " +
"componentRow.find(\'input.description\').val(component.Description);\r\n " +
" componentRow.find(\'input.cost\').val(component.Cost);\r\n " +
" } else {\r\n alert(\'Unable to update comp" +
"onent: \' + response.statusText);\r\n }\r\n " +
" updateTotalCost();\r\n }\r\n\r\n updateComp" +
"onentAsync(id, componentRow.find(\'input.description\').val(), componentRow.find(\'" +
"input.cost\').val());\r\n } else {\r\n // Add\r\n " +
" async function addComponentAsync(description, cost) {\r\n " +
" const body = new FormData();\r\n body.append" +
"(\'__RequestVerificationToken\', document.body.dataset.antiforgery);\r\n " +
" body.append(\'description\', description);\r\n bo" +
"dy.append(\'cost\', cost);\r\n\r\n const response = await fetch" +
"($jobComponents.attr(\'data-addurl\'), {\r\n method: \'POS" +
"T\',\r\n body: body\r\n });\r\n\r\n " +
" componentRow.find(\'input\').attr(\'disabled\', false).removeCla" +
"ss(\'updating\');\r\n\r\n if (response.ok) {\r\n " +
" const component = await response.json();\r\n " +
" componentRow.attr(\'data-jobcomponentid\', component.Id);\r\n " +
" componentRow.find(\'input.description\').val(component.Description);\r\n " +
" componentRow.find(\'input.cost\').val(component.Cost);\r\n " +
" } else {\r\n alert(\'Unable to add c" +
"omponent: \' + response.statusText);\r\n }\r\n " +
" updateTotalCost();\r\n }\r\n addCompon" +
"entAsync(componentRow.find(\'input.description\').val(), componentRow.find(\'input." +
"cost\').val())\r\n }\r\n }\r\n updateTotalCost();\r" +
"\n\r\n });\r\n </script>\r\n");
#line 232 "..\..\Views\Job\JobParts\Components.cshtml"
}
#line default
#line hidden
}
}
}
#pragma warning restore 1591