hide decommissioned device profiles and batches by default when updating a devices batch or profile
This commit is contained in:
@@ -10,9 +10,11 @@ namespace Disco.Models.UI.Device
|
|||||||
Repository.Device Device { get; set; }
|
Repository.Device Device { get; set; }
|
||||||
|
|
||||||
List<Repository.DeviceProfile> DeviceProfiles { get; set; }
|
List<Repository.DeviceProfile> DeviceProfiles { get; set; }
|
||||||
|
HashSet<int> DecommissionedDeviceProfileIds { get; set; }
|
||||||
OrganisationAddress DeviceProfileDefaultOrganisationAddress { get; set; }
|
OrganisationAddress DeviceProfileDefaultOrganisationAddress { get; set; }
|
||||||
|
|
||||||
List<Repository.DeviceBatch> DeviceBatches { get; set; }
|
List<Repository.DeviceBatch> DeviceBatches { get; set; }
|
||||||
|
HashSet<int> DecommissionedDeviceBatchIds { get; set; }
|
||||||
|
|
||||||
JobTableModel Jobs { get; set; }
|
JobTableModel Jobs { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -213,6 +213,10 @@
|
|||||||
background-color: #cddbec;
|
background-color: #cddbec;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
#Device_Show_Policies_Profile_Actions_Update_Dialog label,
|
||||||
|
#Device_Show_Policies_Batch_Actions_Update_Dialog label {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
#DeviceDetailTab-JobsContainer div.jobTable {
|
#DeviceDetailTab-JobsContainer div.jobTable {
|
||||||
margin: -1px;
|
margin: -1px;
|
||||||
border: 1px solid #ddd;
|
border: 1px solid #ddd;
|
||||||
|
|||||||
@@ -185,6 +185,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
label {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#DeviceDetailTab-JobsContainer {
|
#DeviceDetailTab-JobsContainer {
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -245,10 +245,30 @@ namespace Disco.Web.Controllers
|
|||||||
//}
|
//}
|
||||||
|
|
||||||
if (Authorization.Has(Claims.Device.Properties.DeviceProfile))
|
if (Authorization.Has(Claims.Device.Properties.DeviceProfile))
|
||||||
m.DeviceProfiles = Database.DeviceProfiles.ToList();
|
{
|
||||||
|
var profiles = Database.DeviceProfiles.Select(dp =>
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Profile = dp,
|
||||||
|
DecommissionedCount = dp.Devices.Count(d => d.DecommissionedDate.HasValue),
|
||||||
|
DeviceCount = dp.Devices.Count(),
|
||||||
|
}).ToList();
|
||||||
|
m.DeviceProfiles = profiles.Select(p => p.Profile).OrderBy(p => p.Name).ToList();
|
||||||
|
m.DecommissionedDeviceProfileIds = new HashSet<int>(profiles.Where(p => p.DeviceCount > 0 && p.DecommissionedCount == p.DeviceCount).Select(p => p.Profile.Id));
|
||||||
|
}
|
||||||
|
|
||||||
if (Authorization.Has(Claims.Device.Properties.DeviceBatch))
|
if (Authorization.Has(Claims.Device.Properties.DeviceBatch))
|
||||||
m.DeviceBatches = Database.DeviceBatches.ToList();
|
{
|
||||||
|
var batches = Database.DeviceBatches.Select(db =>
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Batch = db,
|
||||||
|
DecommissionedCount = db.Devices.Count(d => d.DecommissionedDate.HasValue),
|
||||||
|
DeviceCount = db.Devices.Count(),
|
||||||
|
}).ToList();
|
||||||
|
m.DeviceBatches = batches.Select(b => b.Batch).OrderBy(b => b.Name).ToList();
|
||||||
|
m.DecommissionedDeviceBatchIds = new HashSet<int>(batches.Where(b => b.DeviceCount > 0 && b.DecommissionedCount == b.DeviceCount).Select(b => b.Batch.Id));
|
||||||
|
}
|
||||||
|
|
||||||
if (Authorization.Has(Claims.Device.ShowJobs))
|
if (Authorization.Has(Claims.Device.ShowJobs))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -14,11 +14,13 @@ namespace Disco.Web.Models.Device
|
|||||||
public Disco.Models.Repository.Device Device { get; set; }
|
public Disco.Models.Repository.Device Device { get; set; }
|
||||||
|
|
||||||
public List<Disco.Models.Repository.DeviceProfile> DeviceProfiles { get; set; }
|
public List<Disco.Models.Repository.DeviceProfile> DeviceProfiles { get; set; }
|
||||||
|
public HashSet<int> DecommissionedDeviceProfileIds { get; set; }
|
||||||
public Disco.Models.BI.Config.OrganisationAddress DeviceProfileDefaultOrganisationAddress { get; set; }
|
public Disco.Models.BI.Config.OrganisationAddress DeviceProfileDefaultOrganisationAddress { get; set; }
|
||||||
public List<PluginFeatureManifest> DeviceProfileCertificateProviders { get; set; }
|
public List<PluginFeatureManifest> DeviceProfileCertificateProviders { get; set; }
|
||||||
public List<PluginFeatureManifest> DeviceProfileWirelessProfileProviders { get; set; }
|
public List<PluginFeatureManifest> DeviceProfileWirelessProfileProviders { get; set; }
|
||||||
|
|
||||||
public List<Disco.Models.Repository.DeviceBatch> DeviceBatches { get; set; }
|
public List<Disco.Models.Repository.DeviceBatch> DeviceBatches { get; set; }
|
||||||
|
public HashSet<int> DecommissionedDeviceBatchIds { get; set; }
|
||||||
public JobTableModel Jobs { get; set; }
|
public JobTableModel Jobs { get; set; }
|
||||||
public List<Disco.Models.Repository.DeviceCertificate> Certificates { get; set; }
|
public List<Disco.Models.Repository.DeviceCertificate> Certificates { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -393,11 +393,23 @@
|
|||||||
<ul class="none">
|
<ul class="none">
|
||||||
@foreach (var dp in Model.DeviceProfiles.OrderBy(i => i.Name))
|
@foreach (var dp in Model.DeviceProfiles.OrderBy(i => i.Name))
|
||||||
{
|
{
|
||||||
<li>
|
var isDecommissioned = Model.DecommissionedDeviceProfileIds.Contains(dp.Id);
|
||||||
<input type="radio" data-deviceprofileid="@dp.Id" name="DeviceProfile" id="DeviceProfile_@(dp.Id)" /><label for="DeviceProfile_@(dp.Id)" title="Distribution: @(dp.DistributionType)">@dp.Name</label>
|
<li class="@(isDecommissioned ? "hidden" : null)">
|
||||||
|
<label title="Distribution: @(dp.DistributionType)">
|
||||||
|
<input type="radio" data-deviceprofileid="@dp.Id" name="DeviceProfile" />
|
||||||
|
@dp.Name
|
||||||
|
</label>
|
||||||
</li>
|
</li>
|
||||||
|
if (isDecommissioned)
|
||||||
|
{
|
||||||
|
<li class="hidden decommissioned-padding"></li>
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</ul>
|
</ul>
|
||||||
|
@if (Model.DecommissionedDeviceProfileIds.Count > 0)
|
||||||
|
{
|
||||||
|
<a class="button small show-decommissioned" href="#">Show Decommissioned</a>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
@@ -442,6 +454,16 @@
|
|||||||
dialogContainers.removeClass('selected');
|
dialogContainers.removeClass('selected');
|
||||||
$(this).closest('li').addClass('selected');
|
$(this).closest('li').addClass('selected');
|
||||||
});
|
});
|
||||||
|
buttonDialog.find('.show-decommissioned')
|
||||||
|
.click(function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var $this = $(this);
|
||||||
|
buttonDialog.find('ul.none')
|
||||||
|
.find('li.hidden').removeClass('hidden')
|
||||||
|
.filter('.decommissioned-padding').remove();
|
||||||
|
$this.remove();
|
||||||
|
return false;
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
dialogInputs.filter('[data-deviceprofileid=' + currentProfile + ']').prop('checked', true).change();
|
dialogInputs.filter('[data-deviceprofileid=' + currentProfile + ']').prop('checked', true).change();
|
||||||
@@ -523,11 +545,23 @@
|
|||||||
<ul class="none">
|
<ul class="none">
|
||||||
@foreach (var db in Model.DeviceBatches.OrderBy(i => i.Name))
|
@foreach (var db in Model.DeviceBatches.OrderBy(i => i.Name))
|
||||||
{
|
{
|
||||||
<li>
|
var isDecommissioned = Model.DecommissionedDeviceBatchIds.Contains(db.Id);
|
||||||
<input type="radio" data-devicebatchid="@db.Id" name="DeviceBatch" id="DeviceBatch_@(db.Id)" /><label for="DeviceBatch_@(db.Id)" title="Purchased: @(db.PurchaseDate.ToLongDateString())">@db.Name</label>
|
<li class="@(isDecommissioned ? "hidden" : null)">
|
||||||
|
<label title="Purchased: @(db.PurchaseDate.ToLongDateString())">
|
||||||
|
<input type="radio" data-devicebatchid="@db.Id" name="DeviceBatch" />
|
||||||
|
@db.Name
|
||||||
|
</label>
|
||||||
</li>
|
</li>
|
||||||
|
if (isDecommissioned)
|
||||||
|
{
|
||||||
|
<li class="hidden decommissioned-padding"></li>
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</ul>
|
</ul>
|
||||||
|
@if (Model.DecommissionedDeviceBatchIds.Count > 0)
|
||||||
|
{
|
||||||
|
<a class="button small show-decommissioned" href="#">Show Decommissioned</a>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
@@ -572,6 +606,16 @@
|
|||||||
dialogContainers.removeClass('selected');
|
dialogContainers.removeClass('selected');
|
||||||
$(this).closest('li').addClass('selected');
|
$(this).closest('li').addClass('selected');
|
||||||
});
|
});
|
||||||
|
buttonDialog.find('.show-decommissioned')
|
||||||
|
.click(function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var $this = $(this);
|
||||||
|
buttonDialog.find('ul.none')
|
||||||
|
.find('li.hidden').removeClass('hidden')
|
||||||
|
.filter('.decommissioned-padding').remove();
|
||||||
|
$this.remove();
|
||||||
|
return false;
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!!currentBatch) {
|
if (!!currentBatch) {
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user