#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.17929
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Disco.Web.Areas.Config.Views.DeviceModel
{
    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.0.0")]
    [System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Config/Views/DeviceModel/_DeviceComponentsTable.cshtml")]
    public class DeviceComponentsTable : System.Web.Mvc.WebViewPage<Disco.Web.Areas.Config.Models.DeviceModel.ComponentsModel>
    {
        public DeviceComponentsTable()
        {
        }
        public override void Execute()
        {
            
            #line 2 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
  
    Html.BundleDeferred("~/ClientScripts/Modules/Disco-jQueryExtensions");

            
            #line default
            #line hidden
WriteLiteral("\r\n<table");

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

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

            
            #line 5 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
                                             Write(Model.DeviceModelId.HasValue ? Model.DeviceModelId.Value.ToString() : string.Empty);

            
            #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        <th>\r\n            Job Types\r\n        </" +
"th>\r\n        <th");

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

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

            
            #line 20 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
    
            
            #line default
            #line hidden
            
            #line 20 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
     foreach (var item in Model.DeviceComponents)
    {

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

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

            
            #line 22 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
                               Write(item.Id);

            
            #line default
            #line hidden
WriteLiteral("\"");

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

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

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

WriteAttribute("value", Tuple.Create(" value=\"", 710), Tuple.Create("\"", 735)
            
            #line 24 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
, Tuple.Create(Tuple.Create("", 718), Tuple.Create<System.Object, System.Int32>(item.Description
            
            #line default
            #line hidden
, 718), false)
);

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

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

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

WriteAttribute("value", Tuple.Create(" value=\"", 825), Tuple.Create("\"", 857)
            
            #line 27 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
, Tuple.Create(Tuple.Create("", 833), Tuple.Create<System.Object, System.Int32>(item.Cost.ToString("C")
            
            #line default
            #line hidden
, 833), false)
);

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

WriteAttribute("class", Tuple.Create(" class=\"", 921), Tuple.Create("\"", 992)
, Tuple.Create(Tuple.Create("", 929), Tuple.Create("edit", 929), true)
            
            #line 30 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
, Tuple.Create(Tuple.Create("", 933), Tuple.Create<System.Object, System.Int32>(item.JobSubTypes.Count > 0 ? " editAlert" : string.Empty
            
            #line default
            #line hidden
, 933), false)
);

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

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

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

            
            #line 36 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
    }

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

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

WriteLiteral(">\r\n            <a");

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

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

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

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

WriteLiteral(@">
    $(function () {
        var $deviceComponents = $('#deviceComponents');

        $('#addDeviceComponent').click(function () {
            var dc = $('<tr><td><input type=""text"" class=""description"" /></td><td><input type=""text"" class=""cost"" /></td><td><span class=""edit""></span></td><td><span class=""remove""></span></td></tr>');
            dc.find('input').focus(function () { $(this).select() })
            dc.insertBefore($deviceComponents.find('tr').last());
            dc.find('input.description').focus();
            return false;
        });

        var removeComponentConfirmed = function (id, row) {
            var data = { id: id };
            $.ajax({
                url: '");

            
            #line 58 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
                 Write(Url.Action(MVC.API.DeviceModel.ComponentRemove()));

            
            #line default
            #line hidden
WriteLiteral("\',\r\n                dataType: \'json\',\r\n                data: data,\r\n             " +
"   success: function (d) {\r\n                    if (d == \'OK\') {\r\n              " +
"          row.remove();\r\n                    } else {\r\n                        a" +
"lert(\'Unable to remove component: \' + d);\r\n                    }\r\n              " +
"  },\r\n                error: function (jqXHR, textStatus, errorThrown) {\r\n      " +
"              alert(\'Unable to remove component: \' + textStatus);\r\n             " +
"   }\r\n            });\r\n        }\r\n        var removeComponent = function () {\r\n " +
"           var componentRow = $(this).closest(\'tr\');\r\n            var id = compo" +
"nentRow.attr(\'data-devicecomponentid\');\r\n            if (id) {\r\n                " +
"var dialog = $(\"#dialogConfirmRemove\");\r\n                var buttons = dialog.di" +
"alog(\"option\", \"buttons\");\r\n                buttons[\'Remove\'] = function () { re" +
"moveComponentConfirmed(id, componentRow); $(this).dialog(\"close\"); };\r\n         " +
"       var buttons = dialog.dialog(\"option\", \"buttons\", buttons);\r\n             " +
"   dialog.dialog(\'open\');\r\n            } else {\r\n                // New - Remove" +
"\r\n                componentRow.remove();\r\n            }\r\n        }\r\n        var " +
"updateComponent = function () {\r\n            var componentRow = $(this).closest(" +
"\'tr\');\r\n            componentRow.find(\'input\').attr(\'disabled\', true).addClass(\'" +
"updating\');\r\n\r\n            var id = componentRow.attr(\'data-devicecomponentid\');" +
"\r\n            if (id) {\r\n                // Update\r\n                var data = {" +
"\r\n                    id: id,\r\n                    Description: componentRow.fin" +
"d(\'input.description\').val(),\r\n                    Cost: componentRow.find(\'inpu" +
"t.cost\').val()\r\n                };\r\n                $.ajax({\r\n                  " +
"  url: \'");

            
            #line 100 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
                     Write(Url.Action(MVC.API.DeviceModel.ComponentUpdate()));

            
            #line default
            #line hidden
WriteLiteral(@"',
                    dataType: 'json',
                    type: 'POST',
                    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
                id = componentRow.closest('table').attr('data-devicemodelid');
                var data = {
                    id: id,
                    Description: componentRow.find('input.description').val(),
                    Cost: componentRow.find('input.cost').val()
                };
                $.ajax({
                    url: '");

            
            #line 126 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
                     Write(Url.Action(MVC.API.DeviceModel.ComponentAdd(null, null, null)));

            
            #line default
            #line hidden
WriteLiteral(@"',
                    dataType: 'json',
                    type: 'POST',
                    data: data,
                    success: function (d) {
                        componentRow.find('input').attr('disabled', false).removeClass('updating');
                        if (d.Result == 'OK') {
                            componentRow.attr('data-devicecomponentid', 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);
                    }
                });
            }
        }
        var editComponentJobTypes = function () {
            var edit$this = $(this);
            var componentRow = edit$this.closest('tr');

            var id = componentRow.attr('data-devicecomponentid');

            if (id) {
                var data = {
                    id: id
                };
                $.ajax({
                    url: '");

            
            #line 157 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
                     Write(Url.Action(MVC.API.DeviceModel.Component()));

            
            #line default
            #line hidden
WriteLiteral("\',\r\n                    dataType: \'json\',\r\n                    data: data,\r\n     " +
"               success: function (d) {\r\n                        componentRow.fin" +
"d(\'input\').attr(\'disabled\', false).removeClass(\'updating\');\r\n                   " +
"     if (d.Result == \'OK\') {\r\n                            $dialogUpdateJobTypes " +
"= $(\'#dialogUpdateJobTypes\');\r\n                            $dialogUpdateJobTypes" +
".find(\'input:checked\').each(function () { $(this).prop(\'checked\', false) });\r\n  " +
"                          for (var i = 0; i < d.Component.JobSubTypes.length; i+" +
"+) {\r\n                                var sjt = d.Component.JobSubTypes[i];\r\n   " +
"                             $dialogUpdateJobTypes.find(\'#SubTypes_\' + sjt).prop" +
"(\'checked\', true);\r\n                            }\r\n                            $" +
"(\'#CheckboxBulkSelect_dialogUpdateJobTypes\').checkboxBulkSelect(\'update\');\r\n    " +
"                        var buttons = $dialogUpdateJobTypes.dialog(\"option\", \"bu" +
"ttons\");\r\n                            buttons[\'Save\'] = function () {\r\n         " +
"                       $dialogUpdateJobTypes.dialog(\"disable\");\r\n               " +
"                 var selectedSJTs = [];\r\n                                $dialog" +
"UpdateJobTypes.find(\'input:checked\').each(function () { selectedSJTs.push($(this" +
").val()) });\r\n\r\n                                var data = {\r\n                  " +
"                  id: id,\r\n                                    JobSubTypes: sele" +
"ctedSJTs\r\n                                };\r\n                                $." +
"ajax({\r\n                                    url: \'");

            
            #line 181 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
                                     Write(Url.Action(MVC.API.DeviceModel.ComponentUpdateJobSubTypes()));

            
            #line default
            #line hidden
WriteLiteral("\',\r\n                                    dataType: \'json\',\r\n                      " +
"              type: \'POST\',\r\n                                    traditional: tr" +
"ue,\r\n                                    data: data,\r\n                          " +
"          success: function (d) {\r\n                                        if (d" +
".Result == \'OK\') {\r\n                                            if (d.Component." +
"JobSubTypes.length > 0) {\r\n                                                edit$" +
"this.addClass(\'editAlert\');\r\n                                            } else " +
"{\r\n                                                edit$this.removeClass(\'editAl" +
"ert\');\r\n                                            }\r\n                         " +
"                   $dialogUpdateJobTypes.dialog(\"enable\");\r\n                    " +
"                        $dialogUpdateJobTypes.dialog(\"close\");\r\n                " +
"                        } else {\r\n                                            al" +
"ert(\'Unable to update component sub types: \' + d.Result);\r\n                     " +
"                   }\r\n                                    },\r\n                  " +
"                  error: function (jqXHR, textStatus, errorThrown) {\r\n          " +
"                              alert(\'Unable to update component sub types: \' + t" +
"extStatus);\r\n                                    }\r\n                            " +
"    });\r\n                            };\r\n                            var buttons" +
" = $dialogUpdateJobTypes.dialog(\"option\", \"buttons\", buttons);\r\n                " +
"            $dialogUpdateJobTypes.dialog(\'open\');\r\n                        } els" +
"e {\r\n                            alert(\'Unable to load component: \' + d.Result);" +
"\r\n                        }\r\n                    },\r\n                    error: " +
"function (jqXHR, textStatus, errorThrown) {\r\n                        alert(\'Unab" +
"le to load component: \' + textStatus);\r\n                    }\r\n                }" +
");\r\n            }\r\n\r\n        }\r\n\r\n        $(\"#dialogConfirmRemove\").dialog({\r\n  " +
"          resizable: false,\r\n            height: 140,\r\n            modal: true,\r" +
"\n            autoOpen: false,\r\n            buttons: {\r\n                \"Remove\":" +
" function () {\r\n                    $(this).dialog(\"close\");\r\n                }," +
"\r\n                Cancel: function () {\r\n                    $(this).dialog(\"clo" +
"se\");\r\n                }\r\n            }\r\n        });\r\n\r\n        $(\'#dialogUpdate" +
"JobTypes\').dialog({\r\n            resizable: false,\r\n            modal: true,\r\n  " +
"          autoOpen: false,\r\n            width: 550,\r\n            buttons: {\r\n   " +
"             \"Save\": function () {\r\n                    $(this).dialog(\"close\");" +
"\r\n                },\r\n                Cancel: function () {\r\n                   " +
" $(this).dialog(\"close\");\r\n                }\r\n            }\r\n        });\r\n\r\n    " +
"    $(\'#CheckboxBulkSelect_dialogUpdateJobTypes\').checkboxBulkSelect({ parentSel" +
"ector: \'div\' });\r\n\r\n        $deviceComponents.on(\'change\', \'input\', updateCompon" +
"ent);\r\n        $deviceComponents.on(\'focus\', \'input\', function () { $(this).sele" +
"ct(); });\r\n\r\n        $deviceComponents.on(\'click\', \'span.remove\', removeComponen" +
"t);\r\n        $deviceComponents.on(\'click\', \'span.edit\', editComponentJobTypes);\r" +
"\n    });\r\n</script>\r\n<div");

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

WriteLiteral(" title=\"Update Job Types\"");

WriteLiteral(">\r\n    <div>\r\n        <h2>\r\n            Hardware Non-Warranty Job Types</h2>\r\n");

WriteLiteral("        ");

            
            #line 261 "..\..\Areas\Config\Views\DeviceModel\_DeviceComponentsTable.cshtml"
   Write(CommonHelpers.CheckBoxList("SubTypes", Model.JobSubTypes.ToSelectListItems(), 2));

            
            #line default
            #line hidden
WriteLiteral("\r\n        <br />\r\n        <span");

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

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

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

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

WriteLiteral(" title=\"Delete 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        This item will be permanently deleted and cannot be recovered. " +
"Are you sure?</p>\r\n</div>\r\n");

        }
    }
}
#pragma warning restore 1591
