@model Disco.Web.Areas.Config.Models.DeviceProfile.ShowModel @using Disco.Services.Devices.ManagedGroups; @using Disco.Web.Areas.Config.Models.Shared; @{ Authorization.Require(Claims.Config.DeviceProfile.Show); ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Device Profiles", MVC.Config.DeviceProfile.Index(null), Model.DeviceProfile.ToString()); var canConfig = Authorization.Has(Claims.Config.DeviceProfile.Configure); var canConfigExpression = Authorization.Has(Claims.Config.DeviceProfile.ConfigureComputerNameTemplate); var canDelete = (Authorization.Has(Claims.Config.DeviceProfile.Delete) && Model.CanDelete); var hideAdvanced = Model.DeviceProfile.AssignedUsersLinkedGroup == null && Model.DeviceProfile.DevicesLinkedGroup == null; if (canConfig) { Html.BundleDeferred("~/Style/Fancytree"); Html.BundleDeferred("~/ClientScripts/Modules/jQuery-Fancytree"); } }
@if (hideAdvanced) { }
Id: @Html.DisplayFor(model => model.DeviceProfile.Id)
Name: @if (canConfig) { @Html.TextBoxFor(model => model.DeviceProfile.Name) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() } else { @Model.DeviceProfile.Name }
Short Name: @if (canConfig) { @Html.TextBoxFor(model => model.DeviceProfile.ShortName) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() } else { @Model.DeviceProfile.ShortName }
Description: @if (canConfig) { @Html.TextBoxFor(model => model.DeviceProfile.Description) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() } else { @Model.DeviceProfile.Description }
Members
@Model.DeviceCount.ToString("n0") @(Model.DeviceCount == 1 ? "devices is a member" : "devices are members") of this profile.
@if (Model.DeviceDecommissionedCount > 0) {
@Model.DeviceDecommissionedCount.ToString("n0") @(Model.DeviceDecommissionedCount == 1 ? "device is" : "devices are") decommissioned.
}
Distribution Type: @if (canConfig) { @Html.DropDownList("DeviceProfile_DistributionType", Model.DeviceProfileDistributionTypes) @AjaxHelpers.AjaxLoader() } else { @Model.DeviceProfile.DistributionType.ToString() }
Address: @if (canConfig) { @Html.DropDownListFor(m => m.DeviceProfile.DefaultOrganisationAddress, Model.OrganisationAddresses.ToSelectListItems(Model.DeviceProfile.DefaultOrganisationAddress, true, "None")) @AjaxHelpers.AjaxLoader() } else { if (Model.DefaultOrganisationAddress == null) { <None Specified> } else { @Model.DefaultOrganisationAddress.ToString() } }
Allocate Certificates: @if (canConfig) { @Html.DropDownListFor(model => model.DeviceProfile.CertificateProviderId, Model.CertificateProviders.ToSelectListItems(null, true, "Not Allocated")) @AjaxHelpers.AjaxLoader() } else { if (string.IsNullOrEmpty(Model.DeviceProfile.CertificateProviderId)) { <None Allocated> } else { var cp = Model.CertificateProviders.FirstOrDefault(p => p.Id == Model.DeviceProfile.CertificateProviderId); if (cp == null) { <None Allocated> } else { @cp.Name } } }
Computer Name
Template Expression:
@if (canConfig && canConfigExpression) { @Html.TextBoxFor(model => model.DeviceProfile.ComputerNameTemplate) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader()   } else {
@if (string.IsNullOrWhiteSpace(Model.DeviceProfile.ComputerNameTemplate)) { <None Specified> } else { @Model.DeviceProfile.ComputerNameTemplate }
}
@if (canConfig) { } else { } @AjaxHelpers.AjaxLoader()
Note: Computer names are only changed when Active Directory accounts are provisioned.
Policies
@if (canConfig) { } else { } @AjaxHelpers.AjaxLoader()
@if (canConfig) { } else { } @AjaxHelpers.AjaxLoader()
@if (canConfig) { } else { } @AjaxHelpers.AjaxLoader()
Organisational Unit: @if (canConfig) {
@Model.FriendlyOrganisationalUnitName
Change@AjaxHelpers.AjaxLoader()
@AjaxHelpers.AjaxLoader() Loading Organisational Units
} else {
@Model.FriendlyOrganisationalUnitName
}
@if (canConfig) { } else { } @AjaxHelpers.AjaxLoader()
Linked Groups:
@Html.Partial(MVC.Config.Shared.Views.LinkedGroupInstance, new LinkedGroupModel() { CanConfigure = canConfig, CategoryDescription = DeviceProfileDevicesManagedGroup.GetCategoryDescription(Model.DeviceProfile), Description = DeviceProfileDevicesManagedGroup.GetDescription(Model.DeviceProfile), ManagedGroup = Model.DevicesLinkedGroup, UpdateUrl = Url.Action(MVC.API.DeviceProfile.UpdateDevicesLinkedGroup(Model.DeviceProfile.Id, redirect: true)) }) @Html.Partial(MVC.Config.Shared.Views.LinkedGroupInstance, new LinkedGroupModel() { CanConfigure = canConfig, CategoryDescription = DeviceProfileAssignedUsersManagedGroup.GetCategoryDescription(Model.DeviceProfile), Description = DeviceProfileAssignedUsersManagedGroup.GetDescription(Model.DeviceProfile), ManagedGroup = Model.AssignedUsersLinkedGroup, UpdateUrl = Url.Action(MVC.API.DeviceProfile.UpdateAssignedUsersLinkedGroup(Model.DeviceProfile.Id, redirect: true)) }) @if (canConfig) { @Html.Partial(MVC.Config.Shared.Views.LinkedGroupShared) }
@if (canDelete) {

This item will be permanently deleted and cannot be recovered. Are you sure?

}
@if (canDelete) { @Html.ActionLinkButton("Delete", MVC.API.DeviceProfile.Delete(Model.DeviceProfile.Id, true), "buttonDelete") } @if (Authorization.Has(Claims.Device.Actions.Export)) { @Html.ActionLinkButton("Export Devices", MVC.Device.Export(null, Disco.Models.Services.Devices.Exporting.DeviceExportTypes.Profile, Model.DeviceProfile.Id)) } @if (Authorization.Has(Claims.Device.Search) && Model.DeviceCount > 0) { @Html.ActionLinkButton(string.Format("View {0} Device{1}", Model.DeviceCount, (Model.DeviceCount != 1 ? "s" : null)), MVC.Search.Query(Model.DeviceProfile.Id.ToString(), "DeviceProfile")) }