#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.18033
//
//     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.BI.Extensions;
    using Disco.Models.Repository;
    using Disco.Web;
    using Disco.Web.Extensions;
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.4.0")]
    [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Job/JobParts/Components.cshtml")]
    public partial class Components : System.Web.Mvc.WebViewPage<Disco.Web.Models.Job.ShowModel>
    {
        public Components()
        {
        }
        public override void Execute()
        {
            
            #line 2 "..\..\Views\Job\JobParts\Components.cshtml"
  
    Html.BundleDeferred("~/ClientScripts/Modules/jQuery-NumberFormatter");
    
            
            #line default
            #line hidden
WriteLiteral("\r\n<table");

WriteLiteral(" id=\"jobComponents\"");

WriteLiteral(">\r\n    <tr>\r\n        <th>\r\n            Description\r\n        </th>\r\n        <th>\r\n" +
"            Cost\r\n        </th>\r\n        <th");

WriteLiteral(" class=\"actions\"");

WriteLiteral(">\r\n            &nbsp;\r\n        </th>\r\n    </tr>\r\n");

            
            #line 17 "..\..\Views\Job\JobParts\Components.cshtml"
    
            
            #line default
            #line hidden
            
            #line 17 "..\..\Views\Job\JobParts\Components.cshtml"
     foreach (var jc in Model.Job.JobComponents)
    {

            
            #line default
            #line hidden
WriteLiteral("        <tr");

WriteLiteral(" data-jobcomponentid=\"");

            
            #line 19 "..\..\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=\"", 513), Tuple.Create("\"", 536)
            
            #line 21 "..\..\Views\Job\JobParts\Components.cshtml"
, Tuple.Create(Tuple.Create("", 521), Tuple.Create<System.Object, System.Int32>(jc.Description
            
            #line default
            #line hidden
, 521), false)
);

WriteLiteral(" />\r\n            </td>\r\n            <td>\r\n                <input");

WriteLiteral(" type=\"text\"");

WriteLiteral(" class=\"cost\"");

WriteAttribute("value", Tuple.Create(" value=\"", 626), Tuple.Create("\"", 656)
            
            #line 24 "..\..\Views\Job\JobParts\Components.cshtml"
, Tuple.Create(Tuple.Create("", 634), Tuple.Create<System.Object, System.Int32>(jc.Cost.ToString("C")
            
            #line default
            #line hidden
, 634), false)
);

WriteLiteral(" />\r\n            </td>\r\n            <td>\r\n                <span");

WriteLiteral(" class=\"remove\"");

WriteLiteral("></span>\r\n            </td>\r\n        </tr>\r\n");

            
            #line 30 "..\..\Views\Job\JobParts\Components.cshtml"
    }

            
            #line default
            #line hidden
WriteLiteral("    <tr>\r\n        <td>\r\n            <a");

WriteLiteral(" href=\"#\"");

WriteLiteral(" id=\"jobComponentsAdd\"");

WriteLiteral(">Add Component</a>\r\n        </td>\r\n        <td");

WriteLiteral(" colspan=\"2\"");

WriteLiteral(" class=\"totalCost\"");

WriteLiteral(">\r\n            Total: <span");

WriteLiteral(" id=\"jobComponentsTotalCost\"");

WriteLiteral("></span>\r\n        </td>\r\n    </tr>\r\n</table>\r\n<div");

WriteLiteral(" id=\"dialogRemoveComponent\"");

WriteLiteral(" title=\"Remove this Component?\"");

WriteLiteral(">\r\n    <p>\r\n        <span");

WriteLiteral(" class=\"ui-icon ui-icon-alert\"");

WriteLiteral(" style=\"float: left; margin: 0 7px 20px 0;\"");

WriteLiteral("></span>\r\n        Are you sure?</p>\r\n</div>\r\n<script");

WriteLiteral(" type=\"text/javascript\"");

WriteLiteral(">\r\n    $(function () {\r\n        var $jobComponents = $(\'#jobComponents\');\r\n\r\n    " +
"    $jobComponents.on(\'change\', \'input\', updateComponent);\r\n        $jobComponen" +
"ts.on(\'focus\', \'input\', function () { $(this).select() });\r\n\r\n\r\n        $jobComp" +
"onents.on(\'click\', \'span.remove\', removeComponent);\r\n\r\n        $(\'#jobComponents" +
"Add\').click(function () {\r\n            var jc = $(\'<tr><td><input type=\"text\" cl" +
"ass=\"description\" /></td><td><input type=\"text\" class=\"cost\" /></td><td><span cl" +
"ass=\"remove\"></span></td></tr>\');\r\n            jc.find(\'input\').focus(function (" +
") { $(this).select() })\r\n            jc.insertBefore($jobComponents.find(\'tr\').l" +
"ast());\r\n            jc.find(\'input.description\').focus();\r\n            return f" +
"alse;\r\n        });\r\n\r\n        $(\'#dialogRemoveComponent\').dialog({\r\n            " +
"resizable: false,\r\n            height: 140,\r\n            modal: true,\r\n         " +
"   autoOpen: false\r\n        });\r\n\r\n        function removeComponent() {\r\n       " +
"     var componentRow = $(this).closest(\'tr\');\r\n            var id = componentRo" +
"w.attr(\'data-jobcomponentid\');\r\n            if (id) {\r\n                var data " +
"= { id: id };\r\n\r\n                var $dialogRemoveComponent = $(\'#dialogRemoveCo" +
"mponent\');\r\n                $dialogRemoveComponent.dialog(\"enable\");\r\n          " +
"      $dialogRemoveComponent.dialog(\'option\', \'buttons\', {\r\n                    " +
"\"Remove\": function () {\r\n                        $dialogRemoveComponent.dialog(\"" +
"disable\");\r\n                        $dialogRemoveComponent.dialog(\"option\", \"but" +
"tons\", null);\r\n                        $.ajax({\r\n                            url" +
": \'");

            
            #line 83 "..\..\Views\Job\JobParts\Components.cshtml"
                             Write(Url.Action(MVC.API.Job.ComponentRemove()));

            
            #line default
            #line hidden
WriteLiteral("\',\r\n                            dataType: \'json\',\r\n                            da" +
"ta: data,\r\n                            success: function (d) {\r\n                " +
"                if (d == \'OK\') {\r\n                                    componentR" +
"ow.remove();\r\n                                    updateTotalCost();\r\n          " +
"                      } else {\r\n                                    alert(\'Unabl" +
"e to remove component: \' + d);\r\n                                }\r\n             " +
"                   $dialogRemoveComponent.dialog(\"close\");\r\n                    " +
"        },\r\n                            error: function (jqXHR, textStatus, erro" +
"rThrown) {\r\n                                alert(\'Unable to remove component: \'" +
" + textStatus);\r\n                                $dialogRemoveComponent.dialog(\"" +
"close\");\r\n                            }\r\n                        });\r\n          " +
"          },\r\n                    Cancel: function () {\r\n                       " +
" $dialogRemoveComponent.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.remove();\r" +
"\n                updateTotalCost();\r\n            }\r\n        }\r\n        function " +
"updateTotalCost() {\r\n            var totalCost = 0;\r\n\r\n            $jobComponent" +
"s.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 totalCostFormatted = $.formatNumber(totalCost, { format: \'#," +
"##0.00\', locale: \'au\' });\r\n            $(\'#jobComponentsTotalCost\').text(\'$\' + t" +
"otalCostFormatted);\r\n        }\r\n        function updateComponent() {\r\n          " +
"  var componentRow = $(this).closest(\'tr\');\r\n\r\n            componentRow.find(\'in" +
"put\').attr(\'disabled\', true).addClass(\'updating\');\r\n\r\n            var id = compo" +
"nentRow.attr(\'data-jobcomponentid\');\r\n            if (id) {\r\n                // " +
"Update\r\n                var data = {\r\n                    id: id,\r\n             " +
"       Description: componentRow.find(\'input.description\').val(),\r\n             " +
"       Cost: componentRow.find(\'input.cost\').val()\r\n                };\r\n        " +
"        $.ajax({\r\n                    url: \'");

            
            #line 140 "..\..\Views\Job\JobParts\Components.cshtml"
                     Write(Url.Action(MVC.API.Job.ComponentUpdate()));

            
            #line default
            #line hidden
WriteLiteral(@"',
                    dataType: 'json',
                    data: data,
                    success: function (d) {
                        componentRow.find('input').attr('disabled', false).removeClass('updating');
                        if (d.Result == 'OK') {
                            componentRow.find('input.description').val(d.Component.Description);
                            componentRow.find('input.cost').val(d.Component.Cost);
                        } else {
                            alert('Unable to update component: ' + d.Result);
                        }
                    },
                    error: function (jqXHR, textStatus, errorThrown) {
                        alert('Unable to update component: ' + textStatus);
                    }
                });
            } else {
                // Add
                var data = {
                    id: id,
                    Description: componentRow.find('input.description').val(),
                    Cost: componentRow.find('input.cost').val()
                };
                $.ajax({
                    url: '");

            
            #line 164 "..\..\Views\Job\JobParts\Components.cshtml"
                     Write(Url.Action(MVC.API.Job.ComponentAdd(Model.Job.Id, null, null)));

            
            #line default
            #line hidden
WriteLiteral(@"',
                    dataType: 'json',
                    data: data,
                    success: function (d) {
                        componentRow.find('input').attr('disabled', false).removeClass('updating');
                        if (d.Result == 'OK') {
                            componentRow.attr('data-jobcomponentid', d.Component.Id);
                            componentRow.find('input.description').val(d.Component.Description);
                            componentRow.find('input.cost').val(d.Component.Cost);
                        } else {
                            alert('Unable to add component: ' + d.Result);
                        }
                    },
                    error: function (jqXHR, textStatus, errorThrown) {
                        alert('Unable to add component: ' + textStatus);
                    }
                });
            }
            updateTotalCost();
        }
        updateTotalCost();

    });
</script>
");

        }
    }
}
#pragma warning restore 1591
