@model Disco.Web.Areas.Config.Models.DeviceBatch.ShowModel @{ Authorization.Require(Claims.Config.DeviceBatch.Show); ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Device Batches", MVC.Config.DeviceBatch.Index(null), Model.DeviceBatch.ToString()); var canConfig = Authorization.Has(Claims.Config.DeviceBatch.Configure); var canDeviceModelShow = Authorization.Has(Claims.Config.DeviceModel.Show); if (canConfig) { Html.BundleDeferred("~/ClientScripts/Modules/Disco-PropertyChangeHelpers"); Html.BundleDeferred("~/ClientScripts/Modules/Disco-AjaxHelperIcons"); Html.BundleDeferred("~/ClientScripts/Modules/tinymce"); } }
Id: @Html.DisplayFor(model => model.DeviceBatch.Id)
Name: @if (canConfig) { @Html.EditorFor(model => model.DeviceBatch.Name) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() } else { @Model.DeviceBatch.Name }
Default Device Model: @if (canConfig) { @Html.DropDownListFor(model => model.DeviceBatch.DefaultDeviceModelId, Model.DeviceModels.ToSelectListItems(null, true)) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() } else { if (Model.DefaultDeviceModel == null) {<None Specified>} else {@Model.DefaultDeviceModel.ToString(); } }
Devices added offline will default to this Device Model. Once a device enrols the Device Model will be accurately represented.
Devices @if (Model.DeviceModelMembers.Count > 0) { @foreach (var membership in Model.DeviceModelMembers.OrderByDescending(dmm => dmm.DeviceCount)) { }
Model Device Count Decommissioned
@if (canDeviceModelShow) { @Html.ActionLink(membership.DeviceModel.ToString(), MVC.Config.DeviceModel.Index(membership.DeviceModel.Id)) } else { @membership.DeviceModel.ToString() } @membership.DeviceCount.ToString("n0") @membership.DeviceDecommissionedCount.ToString("n0")
Total Models: @Model.DeviceModelMembers.Count.ToString("n0") @Model.DeviceCount.ToString("n0") @Model.DeviceDecommissionedCount.ToString("n0")
} else {
No device models are referenced in this batch.
} @if (Model.DeviceBatch.UnitQuantity.HasValue && Model.DeviceBatch.UnitQuantity.Value > Model.DeviceCount) { var missingCount = Model.DeviceBatch.UnitQuantity.Value - Model.DeviceCount;
@Model.DeviceCount.ToString("n0") of @(Model.DeviceBatch.UnitQuantity.Value.ToString("n0")) purchased devices are managed by Disco. @missingCount.ToString("n0") @(missingCount == 1 ? "is" : "are") not managed.
}
Purchase:
Purchase Date: @if (canConfig) { @Html.EditorFor(model => model.DeviceBatch.PurchaseDate) @AjaxHelpers.AjaxLoader() } else { @CommonHelpers.FriendlyDate(Model.DeviceBatch.PurchaseDate) }
Supplier: @if (canConfig) { @Html.EditorFor(model => model.DeviceBatch.Supplier) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() } else { if (string.IsNullOrEmpty(Model.DeviceBatch.Supplier)) {<None Specified>} else {@Model.DeviceBatch.Supplier} }
Unit Cost: @if (canConfig) { @Html.EditorFor(model => model.DeviceBatch.UnitCost) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() } else { if (!Model.DeviceBatch.UnitCost.HasValue) {<None Specified>} else {@Model.DeviceBatch.UnitCost.Value.ToString("C")} }
Quantity: @if (canConfig) { @Html.EditorFor(model => model.DeviceBatch.UnitQuantity) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() } else { if (!Model.DeviceBatch.UnitQuantity.HasValue) {<None Specified>} else {@Model.DeviceBatch.UnitQuantity.Value.ToString("n0")} }
Details @AjaxHelpers.AjaxLoader("ajaxPurchaseDetails")
@if (canConfig) { @Html.EditorFor(model => model.DeviceBatch.PurchaseDetails) } else { if (string.IsNullOrEmpty(Model.DeviceBatch.PurchaseDetails)) {<None Specified>} else {@(new HtmlString(Model.DeviceBatch.PurchaseDetails))} }
Warranty:
Valid Until: @if (canConfig) { @Html.EditorFor(model => model.DeviceBatch.WarrantyValidUntil) @AjaxHelpers.AjaxLoader() } else { @CommonHelpers.FriendlyDate(Model.DeviceBatch.WarrantyValidUntil, "Unknown") }
Details @AjaxHelpers.AjaxLoader("ajaxWarrantyDetails")
@if (canConfig) { @Html.EditorFor(model => model.DeviceBatch.WarrantyDetails) } else { if (string.IsNullOrEmpty(Model.DeviceBatch.WarrantyDetails)) {<None Specified>} else {@(new HtmlString(Model.DeviceBatch.WarrantyDetails))} }
Insurance:
Supplier: @if (canConfig) { @Html.EditorFor(model => model.DeviceBatch.InsuranceSupplier) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() } else { if (string.IsNullOrEmpty(Model.DeviceBatch.InsuranceSupplier)) {<None Specified>} else {@Model.DeviceBatch.InsuranceSupplier; } }
Insured Date: @if (canConfig) { @Html.EditorFor(model => model.DeviceBatch.InsuredDate) @AjaxHelpers.AjaxLoader() } else { @CommonHelpers.FriendlyDate(Model.DeviceBatch.InsuredDate, "Unknown") }
Insured Until: @if (canConfig) { @Html.EditorFor(model => model.DeviceBatch.InsuredUntil) @AjaxHelpers.AjaxLoader() } else { @CommonHelpers.FriendlyDate(Model.DeviceBatch.InsuredUntil, "Unknown") }
Details @AjaxHelpers.AjaxLoader("ajaxInsuranceDetails")
@if (canConfig) { @Html.EditorFor(model => model.DeviceBatch.InsuranceDetails) } else { if (string.IsNullOrEmpty(Model.DeviceBatch.InsuranceDetails)) {<None Specified>} else {@(new HtmlString(Model.DeviceBatch.InsuranceDetails))} }
Comments:
@AjaxHelpers.AjaxLoader("ajaxComments")
@if (canConfig) { @Html.EditorFor(model => model.DeviceBatch.Comments) } else { if (string.IsNullOrEmpty(Model.DeviceBatch.Comments)) {<None Specified>} else {@(new HtmlString(Model.DeviceBatch.Comments))} }
@if (Model.CanDelete) { @Html.ActionLinkButton("Delete", MVC.API.DeviceBatch.Delete(Model.DeviceBatch.Id, true), "buttonDelete") } @if (Model.DeviceCount > 0) { if (Authorization.Has(Claims.Device.Actions.Export)) { @Html.ActionLinkButton("Export Devices", MVC.API.DeviceBatch.ExportDevices(Model.DeviceBatch.Id)) } if (Authorization.Has(Claims.Device.Search)) { @Html.ActionLinkButton("View Devices", MVC.Search.Query(Model.DeviceBatch.Id.ToString(), "DeviceBatch")) } }