Files
Disco/Disco.Web/Views/Device/DeviceParts/_Details.generated.cs
T
Gary Sharp f82b47dd46 Feature: Display detailed device hardware audit information
The device Details tab now displays processor, memory, disk and network adapter information collected at the previous enrolment
2020-11-29 16:45:10 +11:00

1195 lines
42 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.Device.DeviceParts
{
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/Device/DeviceParts/_Details.cshtml")]
public partial class _Details : Disco.Services.Web.WebViewPage<Disco.Web.Models.Device.ShowModel>
{
public _Details()
{
}
public override void Execute()
{
#line 2 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Authorization.Require(Claims.Device.ShowDetails);
var canConfig = Authorization.Has(Claims.Device.Properties.Details);
if (canConfig)
{
Html.BundleDeferred("~/ClientScripts/Modules/Disco-PropertyChangeHelpers");
}
var processors = Model.Device.DeviceDetails.Processors();
var physicalMemory = Model.Device.DeviceDetails.PhysicalMemory();
var diskDrives = Model.Device.DeviceDetails.DiskDrives();
var networkAdapters = Model.Device.DeviceDetails.NetworkAdapters();
var lanMacAddress = Model.Device.DeviceDetails.LanMacAddress();
var wlanMacAddress = Model.Device.DeviceDetails.WLanMacAddress();
#line default
#line hidden
WriteLiteral("\r\n<div");
WriteLiteral(" id=\"DeviceDetailTab-Details\"");
WriteLiteral(" class=\"DevicePart\"");
WriteLiteral(">\r\n <div");
WriteLiteral(" id=\"DeviceDetailTab-DetailsContainer\"");
WriteLiteral(">\r\n <table");
WriteLiteral(" class=\"tableData\"");
WriteLiteral(">\r\n <tbody>\r\n");
#line 23 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 23 "..\..\Views\Device\DeviceParts\_Details.cshtml"
if (processors != null)
{
#line default
#line hidden
WriteLiteral(" <tr>\r\n <th>Processors</th>\r\n " +
" <td");
WriteLiteral(" class=\"device_detail_processors\"");
WriteLiteral(">\r\n <table");
WriteLiteral(" class=\"tableData\"");
WriteLiteral(@">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
<th>Architecture</th>
<th>Max Clock Speed</th>
<th>Cores</th>
<th>Logical Processors</th>
</tr>
</thead>
<tbody>
");
#line 40 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 40 "..\..\Views\Device\DeviceParts\_Details.cshtml"
foreach (var processor in processors)
{
#line default
#line hidden
WriteLiteral(" <tr>\r\n " +
" <td>");
#line 43 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(processor.Name);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 44 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(processor.Description);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 45 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(processor.Architecture);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 46 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(processor.MaxClockSpeedFriendly());
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 47 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(processor.NumberOfCores.ToString("N0"));
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 48 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(processor.NumberOfLogicalProcessors.ToString("N0"));
#line default
#line hidden
WriteLiteral("</td>\r\n </tr>\r\n");
#line 50 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
#line default
#line hidden
WriteLiteral(" </tbody>\r\n </table>\r\n " +
" </td>\r\n </tr>\r\n");
#line 55 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
#line default
#line hidden
WriteLiteral(" ");
#line 56 "..\..\Views\Device\DeviceParts\_Details.cshtml"
if (physicalMemory != null)
{
#line default
#line hidden
WriteLiteral(" <tr");
WriteLiteral(" class=\"device_detail_memory\"");
WriteLiteral(">\r\n <th>Memory</th>\r\n <td>\r\n " +
" <table");
WriteLiteral(" class=\"tableData\"");
WriteLiteral(@">
<thead>
<tr>
<th>Location</th>
<th>Manufacturer</th>
<th>Part Number</th>
<th>Serial Number</th>
<th>Capacity</th>
<th>Clock Speed</th>
</tr>
</thead>
<tbody>
");
#line 73 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 73 "..\..\Views\Device\DeviceParts\_Details.cshtml"
foreach (var memory in physicalMemory)
{
#line default
#line hidden
WriteLiteral(" <tr>\r\n " +
" <td>");
#line 76 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(memory.DeviceLocator);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 77 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(memory.Manufacturer);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 78 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(memory.PartNumber);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 79 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(memory.SerialNumber);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 80 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(memory.CapacityFriendly());
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 81 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(memory.ConfiguredClockSpeed);
#line default
#line hidden
WriteLiteral("</td>\r\n </tr>\r\n");
#line 83 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
#line default
#line hidden
WriteLiteral(" </tbody>\r\n </table>\r\n " +
" </td>\r\n </tr>\r\n");
#line 88 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
#line default
#line hidden
WriteLiteral(" ");
#line 89 "..\..\Views\Device\DeviceParts\_Details.cshtml"
if (networkAdapters != null)
{
#line default
#line hidden
WriteLiteral(" <tr");
WriteLiteral(" class=\"device_detail_network_adapters\"");
WriteLiteral(">\r\n <th>Network Adapters</th>\r\n <td" +
">\r\n <table");
WriteLiteral(" class=\"tableData\"");
WriteLiteral(@">
<thead>
<tr>
<th>Connection</th>
<th>Manufacturer</th>
<th>Product</th>
<th>Speed</th>
<th>MAC Address</th>
</tr>
</thead>
<tbody>
");
#line 105 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 105 "..\..\Views\Device\DeviceParts\_Details.cshtml"
foreach (var adapter in networkAdapters)
{
#line default
#line hidden
WriteLiteral(" <tr>\r\n " +
" <td>\r\n");
WriteLiteral(" ");
#line 109 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(adapter.NetConnectionID ?? "N/A");
#line default
#line hidden
WriteLiteral(" ");
#line 109 "..\..\Views\Device\DeviceParts\_Details.cshtml"
if (adapter.IsWlanAdapter)
{
#line default
#line hidden
WriteLiteral("<i");
WriteLiteral(" class=\"fa fa-wifi\"");
WriteLiteral("></i>");
#line 110 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
#line default
#line hidden
WriteLiteral(" </td>\r\n " +
" <td>");
#line 112 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(adapter.Manufacturer);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 113 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(adapter.ProductName);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 114 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(adapter.SpeedFriendly());
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 115 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(adapter.MACAddress);
#line default
#line hidden
WriteLiteral("</td>\r\n </tr>\r\n");
#line 117 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
#line default
#line hidden
WriteLiteral(" </tbody>\r\n </table>\r\n " +
" </td>\r\n </tr>\r\n");
#line 122 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
else
{
if (lanMacAddress != null)
{
#line default
#line hidden
WriteLiteral(" <tr>\r\n <th>LAN MAC Address</th" +
">\r\n <td");
WriteLiteral(" class=\"pad code\"");
WriteLiteral(">");
#line 129 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(lanMacAddress);
#line default
#line hidden
WriteLiteral("</td>\r\n </tr>\r\n");
#line 131 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
if (wlanMacAddress != null)
{
#line default
#line hidden
WriteLiteral(" <tr>\r\n <th>WLAN MAC Address</t" +
"h>\r\n <td");
WriteLiteral(" class=\"pad code\"");
WriteLiteral(">");
#line 136 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(wlanMacAddress);
#line default
#line hidden
WriteLiteral("</td>\r\n </tr>\r\n");
#line 138 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
}
#line default
#line hidden
WriteLiteral(" ");
#line 140 "..\..\Views\Device\DeviceParts\_Details.cshtml"
if (diskDrives != null)
{
#line default
#line hidden
WriteLiteral(" <tr");
WriteLiteral(" class=\"device_detail_disk_drives\"");
WriteLiteral(">\r\n <th>Disk Drives</th>\r\n <td>\r\n " +
" <table");
WriteLiteral(" class=\"tableData\"");
WriteLiteral(@">
<thead>
<tr>
<th>Manufacturer</th>
<th>Model</th>
<th>Serial Number</th>
<th>Firmware</th>
<th>Type</th>
<th>Interface</th>
<th>Size</th>
</tr>
</thead>
<tbody>
");
#line 158 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 158 "..\..\Views\Device\DeviceParts\_Details.cshtml"
foreach (var disk in diskDrives)
{
#line default
#line hidden
WriteLiteral(" <tr>\r\n " +
" <td>");
#line 161 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(disk.Manufacturer);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 162 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(disk.Model);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 163 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(disk.SerialNumber);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 164 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(disk.FirmwareRevision);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 165 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(disk.MediaType);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 166 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(disk.InterfaceType);
#line default
#line hidden
WriteLiteral("</td>\r\n <td>");
#line 167 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(disk.SizeFriendly());
#line default
#line hidden
WriteLiteral("</td>\r\n </tr>\r\n");
#line 169 "..\..\Views\Device\DeviceParts\_Details.cshtml"
if (disk.Partitions != null)
{
// calculate stretched offsets
var minPartitionSize = (double)disk.Size * 0.1;
var diskSizeAdjusted = disk.Partitions.Sum(p => Math.Max(minPartitionSize, p.Size));
var diskAdjustedOffet = (double)0;
#line default
#line hidden
WriteLiteral(" <tr>\r\n " +
" <td");
WriteLiteral(" colspan=\"7\"");
WriteLiteral(">\r\n <div");
WriteLiteral(" class=\"partition\"");
WriteLiteral(">\r\n");
#line 178 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 178 "..\..\Views\Device\DeviceParts\_Details.cshtml"
foreach (var partition in disk.Partitions)
{
var logicalDisk = partition.LogicalDisk;
var offsetPercentage = Math.Round(((partition.StartingOffset + diskAdjustedOffet) / diskSizeAdjusted) * 100, 3);
var widthPercentage = Math.Round((Math.Max(minPartitionSize, partition.Size) / diskSizeAdjusted) * 100, 3);
var freeSpacePercentage = 0d;
if (partition.Size < minPartitionSize)
{
diskAdjustedOffet += minPartitionSize - partition.Size;
}
var partitionTitle = partition.Type;
var tags = new List<string>();
if (partition.BootPartition)
{
tags.Add("Boot");
}
if (partition.PrimaryParition)
{
tags.Add("Primary");
}
if (logicalDisk != null)
{
partitionTitle = string.Format("{0} {1}", logicalDisk.DeviceID, logicalDisk.VolumeName);
tags.Add(logicalDisk.SizeFriendly());
tags.Add(logicalDisk.FreeSpaceFriendly() + " Free");
tags.Add(logicalDisk.FileSystem);
tags.Add(logicalDisk.DriveType);
freeSpacePercentage = Math.Round(((double)logicalDisk.FreeSpace / logicalDisk.Size) * 100, 3);
}
else
{
tags.Add(partition.SizeFriendly());
}
var tag = string.Join(" | ", tags);
#line default
#line hidden
WriteLiteral(" <span");
WriteAttribute("title", Tuple.Create(" title=\"", 12225), Tuple.Create("\"", 12261)
#line 214 "..\..\Views\Device\DeviceParts\_Details.cshtml"
, Tuple.Create(Tuple.Create("", 12233), Tuple.Create<System.Object, System.Int32>(partitionTitle
#line default
#line hidden
, 12233), false)
, Tuple.Create(Tuple.Create(" ", 12250), Tuple.Create("&#xA", 12251), true)
#line 214 "..\..\Views\Device\DeviceParts\_Details.cshtml"
, Tuple.Create(Tuple.Create("", 12255), Tuple.Create<System.Object, System.Int32>(tag
#line default
#line hidden
, 12255), false)
);
WriteAttribute("style", Tuple.Create(" style=\"", 12262), Tuple.Create("\"", 12324)
, Tuple.Create(Tuple.Create("", 12270), Tuple.Create("left:", 12270), true)
#line 214 "..\..\Views\Device\DeviceParts\_Details.cshtml"
, Tuple.Create(Tuple.Create(" ", 12275), Tuple.Create<System.Object, System.Int32>(offsetPercentage
#line default
#line hidden
, 12276), false)
, Tuple.Create(Tuple.Create("", 12295), Tuple.Create("%;", 12295), true)
, Tuple.Create(Tuple.Create(" ", 12297), Tuple.Create("width:", 12298), true)
#line 214 "..\..\Views\Device\DeviceParts\_Details.cshtml"
, Tuple.Create(Tuple.Create(" ", 12304), Tuple.Create<System.Object, System.Int32>(widthPercentage
#line default
#line hidden
, 12305), false)
, Tuple.Create(Tuple.Create("", 12323), Tuple.Create("%", 12323), true)
);
WriteLiteral(">\r\n");
#line 215 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 215 "..\..\Views\Device\DeviceParts\_Details.cshtml"
if (freeSpacePercentage > 0.5)
{
#line default
#line hidden
WriteLiteral(" <span");
WriteLiteral(" class=\"freespace\"");
WriteAttribute("style", Tuple.Create(" style=\"", 12583), Tuple.Create("\"", 12658)
, Tuple.Create(Tuple.Create("", 12591), Tuple.Create("left:", 12591), true)
#line 217 "..\..\Views\Device\DeviceParts\_Details.cshtml"
, Tuple.Create(Tuple.Create(" ", 12596), Tuple.Create<System.Object, System.Int32>(100 - freeSpacePercentage
#line default
#line hidden
, 12597), false)
, Tuple.Create(Tuple.Create("", 12625), Tuple.Create("%;", 12625), true)
, Tuple.Create(Tuple.Create(" ", 12627), Tuple.Create("width:", 12628), true)
#line 217 "..\..\Views\Device\DeviceParts\_Details.cshtml"
, Tuple.Create(Tuple.Create(" ", 12634), Tuple.Create<System.Object, System.Int32>(freeSpacePercentage
#line default
#line hidden
, 12635), false)
, Tuple.Create(Tuple.Create("", 12657), Tuple.Create("%", 12657), true)
);
WriteLiteral("></span>\r\n");
#line 218 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
#line default
#line hidden
WriteLiteral(" <span");
WriteLiteral(" class=\"details\"");
WriteLiteral(">\r\n <strong>");
#line 220 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(partitionTitle);
#line default
#line hidden
WriteLiteral("</strong>\r\n <b" +
"r />\r\n");
WriteLiteral(" ");
#line 222 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(tag);
#line default
#line hidden
WriteLiteral("\r\n </span>\r\n " +
" </span>\r\n");
#line 225 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
#line default
#line hidden
WriteLiteral(" </div>\r\n " +
" </td>\r\n </" +
"tr>\r\n");
#line 229 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
}
#line default
#line hidden
WriteLiteral(" </tbody>\r\n </table>\r\n " +
" </td>\r\n </tr>\r\n");
#line 235 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
#line default
#line hidden
WriteLiteral(" <tr>\r\n <th>AC Adapter</th>\r\n " +
" <td");
WriteLiteral(" class=\"pad\"");
WriteLiteral(">\r\n");
#line 239 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 239 "..\..\Views\Device\DeviceParts\_Details.cshtml"
if (canConfig)
{
#line default
#line hidden
#line 241 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(Html.TextBox("DeviceDetail_ACAdapter", Model.Device.DeviceDetails.ACAdapter()));
#line default
#line hidden
#line 241 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 241 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(AjaxHelpers.AjaxSave());
#line default
#line hidden
#line 241 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 241 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(AjaxHelpers.AjaxLoader());
#line default
#line hidden
#line 241 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
WriteLiteral(" <script>\r\n $(function () {" +
"\r\n document.DiscoFunctions.PropertyChangeHelper($" +
"(\'#DeviceDetail_ACAdapter\'), \'Unknown\', \'");
#line 244 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(Url.Action(MVC.API.Device.UpdateDetailACAdapter(Model.Device.SerialNumber, null)));
#line default
#line hidden
WriteLiteral("\', \'DetailACAdapter\');\r\n });\r\n " +
" </script>\r\n");
#line 247 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
else
{
#line default
#line hidden
#line 250 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(Model.Device.DeviceDetails.ACAdapter() ?? "Unknown");
#line default
#line hidden
#line 250 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
#line default
#line hidden
WriteLiteral(" </td>\r\n </tr>\r\n <tr>\r\n " +
" <th>Battery</th>\r\n <td");
WriteLiteral(" class=\"pad\"");
WriteLiteral(">\r\n");
#line 257 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 257 "..\..\Views\Device\DeviceParts\_Details.cshtml"
if (canConfig)
{
#line default
#line hidden
#line 259 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(Html.TextBox("DeviceDetail_Battery", Model.Device.DeviceDetails.Battery()));
#line default
#line hidden
#line 259 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 259 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(AjaxHelpers.AjaxSave());
#line default
#line hidden
#line 259 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 259 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(AjaxHelpers.AjaxLoader());
#line default
#line hidden
#line 259 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
WriteLiteral(" <script>\r\n $(function () {" +
"\r\n document.DiscoFunctions.PropertyChangeHelper($" +
"(\'#DeviceDetail_Battery\'), \'Unknown\', \'");
#line 262 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(Url.Action(MVC.API.Device.UpdateDetailBattery(Model.Device.SerialNumber, null)));
#line default
#line hidden
WriteLiteral("\', \'DetailBattery\');\r\n });\r\n " +
" </script>\r\n");
#line 265 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
else
{
#line default
#line hidden
#line 268 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(Model.Device.DeviceDetails.Battery() ?? "Unknown");
#line default
#line hidden
#line 268 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
#line default
#line hidden
WriteLiteral(" </td>\r\n </tr>\r\n <tr>\r\n " +
" <th>Keyboard</th>\r\n <td");
WriteLiteral(" class=\"pad\"");
WriteLiteral(">\r\n");
#line 275 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 275 "..\..\Views\Device\DeviceParts\_Details.cshtml"
if (canConfig)
{
#line default
#line hidden
#line 277 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(Html.TextBox("DeviceDetail_Keyboard", Model.Device.DeviceDetails.Keyboard()));
#line default
#line hidden
#line 277 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 277 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(AjaxHelpers.AjaxSave());
#line default
#line hidden
#line 277 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 277 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(AjaxHelpers.AjaxLoader());
#line default
#line hidden
#line 277 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
WriteLiteral(" <script>\r\n $(function () {" +
"\r\n document.DiscoFunctions.PropertyChangeHelper($" +
"(\'#DeviceDetail_Keyboard\'), \'Unknown\', \'");
#line 280 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(Url.Action(MVC.API.Device.UpdateDetailKeyboard(Model.Device.SerialNumber, null)));
#line default
#line hidden
WriteLiteral("\', \'DetailKeyboard\');\r\n });\r\n " +
" </script>\r\n");
#line 283 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
else
{
#line default
#line hidden
#line 286 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(Model.Device.DeviceDetails.Keyboard() ?? "Unknown");
#line default
#line hidden
#line 286 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
#line default
#line hidden
WriteLiteral(" </td>\r\n </tr>\r\n");
#line 290 "..\..\Views\Device\DeviceParts\_Details.cshtml"
#line default
#line hidden
#line 290 "..\..\Views\Device\DeviceParts\_Details.cshtml"
if (Model.Device.LastEnrolDate.HasValue)
{
#line default
#line hidden
WriteLiteral(" <tr>\r\n <td");
WriteLiteral(" colspan=\"2\"");
WriteLiteral("><em>Details collected ");
#line 293 "..\..\Views\Device\DeviceParts\_Details.cshtml"
Write(CommonHelpers.FriendlyDate(Model.Device.LastEnrolDate));
#line default
#line hidden
WriteLiteral(" at time of last enrolment</em></td>\r\n </tr>\r\n");
#line 295 "..\..\Views\Device\DeviceParts\_Details.cshtml"
}
#line default
#line hidden
WriteLiteral(" </tbody>\r\n </table>\r\n </div>\r\n <script>\r\n $(\'#Dev" +
"iceDetailTabItems\').append(\'<li><a href=\"#DeviceDetailTab-Details\">Details</a></" +
"li>\');\r\n </script>\r\n</div>\r\n");
}
}
}
#pragma warning restore 1591