Files

117 lines
5.2 KiB
Plaintext

@model Disco.Web.Areas.Config.Models.DeviceBatch.IndexModel
@{
Authorization.Require(Claims.Config.DeviceBatch.Show);
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Device Batches");
var hasDecommissionedBatches = Model.DeviceBatches.Any(db => db.DeviceCount > 0 && db.DeviceDecommissionedCount >= db.DeviceCount);
var showTags = hasDecommissionedBatches || Model.DeviceBatches.Any(i => i.IsLinked);
}
<div id="Config_DeviceBatches">
@if (Model.DeviceBatches.Count == 0)
{
<div class="form" style="width: 450px; padding: 100px 0;">
<h2>No device batches are configured</h2>
</div>
}
else
{
if (hasDecommissionedBatches)
{
<a id="Config_DeviceBatches_ShowDecommissioned" href="#" class="button small">Show Decommissioned (@(Model.DeviceBatches.Count(db => db.DeviceCount > 0 && db.DeviceDecommissionedCount >= db.DeviceCount)))</a>
<script>
$(function () {
$('#Config_DeviceBatches_ShowDecommissioned').click(function () {
$(this).remove();
$('#Config_DeviceBatches_List')
.find('tr.hidden').removeClass('hidden')
.filter('.decommissioned-padding').remove();
return false;
}).detach().appendTo('#layout_PageHeading');
})
</script>
}
<table id="Config_DeviceBatches_List" class="tableData">
<tr>
<th>Name</th>
<th>Default Model</th>
<th>Purchase Date</th>
<th>Warranty Expires</th>
<th>Insurance Expires</th>
<th>Device Count</th>
@if (showTags)
{
<th>&nbsp;</th>
}
</tr>
@foreach (var item in Model.DeviceBatches)
{
var isDecommissioned = item.DeviceCount > 0 && item.DeviceDecommissionedCount >= item.DeviceCount;
<tr class="@(isDecommissioned ? "hidden" : null)">
<td>
@Html.ActionLink(item.Name, MVC.Config.DeviceBatch.Index(item.Id))
</td>
<td>
@item.DefaultDeviceModel
</td>
<td>
@CommonHelpers.FriendlyDate(item.PurchaseDate)
</td>
<td>
@CommonHelpers.FriendlyDate(item.WarrantyExpires, "Unknown")
</td>
<td>
@CommonHelpers.FriendlyDate(item.InsuredUntil, item.InsuranceSupplier == null ? "N/A" : "Unknown")
@(item.InsuranceSupplier == null ? string.Empty : string.Format("[{0}]", item.InsuranceSupplier))
</td>
<td>
@if (item.DeviceCount > 0 && Authorization.Has(Claims.Device.Search))
{
<span>@Html.ActionLink(string.Format("View {0}", item.DeviceCount), MVC.Search.Query(item.Id.ToString(), "DeviceBatch"))</span>
}
else
{
<span>@item.DeviceCount.ToString("n0")</span>
}
@if (item.PurchaseUnitQuantity.HasValue)
{
<span>/ @(item.PurchaseUnitQuantity.Value.ToString("n0"))</span>
}
@if (item.DeviceDecommissionedCount > 0)
{
<span class="smallMessage" title="@(item.DeviceDecommissionedCount.ToString("n0")) Decommissioned">(@(item.DeviceDecommissionedCount.ToString("n0")))</span>
}
</td>
@if (showTags)
{
<td>
@if (item.IsLinked)
{
<i class="fa fa-link fa-lg success" title="Is Linked"></i>
}
@if (isDecommissioned)
{
<i class="fa fa-minus-square fa-lg alert" title="Decommissioned"></i>
}
</td>
}
</tr>
if (isDecommissioned)
{
<tr class="hidden decommissioned-padding"></tr>
}
}
</table>
}
</div>
@if (Authorization.HasAny(Claims.Config.DeviceBatch.Create, Claims.Config.DeviceBatch.ShowTimeline))
{
<div class="actionBar">
@if (Authorization.Has(Claims.Config.DeviceBatch.ShowTimeline) && Model.DeviceBatches.Count > 0)
{
@Html.ActionLinkButton("Timeline", MVC.Config.DeviceBatch.Timeline())
}
@if (Authorization.HasAll(Claims.Config.DeviceBatch.Create, Claims.Config.DeviceBatch.Configure))
{
@Html.ActionLinkButton("Create Device Batch", MVC.Config.DeviceBatch.Create())
}
</div>
}