feature: custom details first-class
custom details (such as those from the UserDetails plugin) can now be more deeply integrated throughtout the system
This commit is contained in:
@@ -5,7 +5,7 @@ using Disco.Models.UI.Device;
|
||||
using Disco.Services;
|
||||
using Disco.Services.Authorization;
|
||||
using Disco.Services.Devices.Exporting;
|
||||
using Disco.Services.Plugins;
|
||||
using Disco.Services.Plugins.Features.DetailsProvider;
|
||||
using Disco.Services.Plugins.Features.UIExtension;
|
||||
using Disco.Services.Users;
|
||||
using Disco.Services.Web;
|
||||
@@ -205,9 +205,16 @@ namespace Disco.Web.Controllers
|
||||
Database.Configuration.LazyLoadingEnabled = true;
|
||||
|
||||
m.Device = Database.Devices
|
||||
.Include("DeviceModel").Include("DeviceProfile").Include("DeviceBatch").Include("DeviceDetails")
|
||||
.Include("DeviceUserAssignments.AssignedUser.UserFlagAssignments").Include("AssignedUser.UserFlagAssignments").Include("DeviceCertificates")
|
||||
.Include("DeviceAttachments.TechUser").Include("DeviceAttachments.DocumentTemplate")
|
||||
.Include("DeviceModel")
|
||||
.Include("DeviceProfile")
|
||||
.Include("DeviceBatch")
|
||||
.Include("DeviceDetails")
|
||||
.Include("DeviceUserAssignments.AssignedUser.UserFlagAssignments")
|
||||
.Include("AssignedUser.UserFlagAssignments")
|
||||
.Include("AssignedUser.UserDetails")
|
||||
.Include("DeviceCertificates")
|
||||
.Include("DeviceAttachments.TechUser")
|
||||
.Include("DeviceAttachments.DocumentTemplate")
|
||||
.FirstOrDefault(d => d.SerialNumber == id);
|
||||
|
||||
if (m.Device == null)
|
||||
@@ -262,6 +269,9 @@ namespace Disco.Web.Controllers
|
||||
m.DeviceProfileWirelessProfileProviders = m.Device.DeviceProfile.GetWirelessProfileProviders().ToList();
|
||||
}
|
||||
|
||||
// Populate Custom Details
|
||||
m.PopulateDetails(Database);
|
||||
|
||||
// UI Extensions
|
||||
UIExtensions.ExecuteExtensions<DeviceShowModel>(this.ControllerContext, m);
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ using Disco.Services.Jobs.JobLists;
|
||||
using Disco.Services.Jobs.JobQueues;
|
||||
using Disco.Services.Jobs.Statistics;
|
||||
using Disco.Services.Logging;
|
||||
using Disco.Services.Plugins.Features.DetailsProvider;
|
||||
using Disco.Services.Plugins.Features.RepairProvider;
|
||||
using Disco.Services.Plugins.Features.UIExtension;
|
||||
using Disco.Services.Plugins.Features.WarrantyProvider;
|
||||
@@ -298,9 +299,21 @@ namespace Disco.Web.Controllers
|
||||
var m = new Models.Job.ShowModel();
|
||||
|
||||
m.Job = Database.Jobs
|
||||
.Include("Device.DeviceModel").Include("Device.DeviceBatch").Include("DeviceHeldTechUser").Include("DeviceReadyForReturnTechUser").Include("DeviceReturnedTechUser")
|
||||
.Include("OpenedTechUser").Include("ClosedTechUser").Include("JobType").Include("JobSubTypes").Include("User.UserFlagAssignments").Include("JobLogs.TechUser")
|
||||
.Include("JobAttachments.TechUser").Include("JobAttachments.DocumentTemplate")
|
||||
.Include("Device.DeviceModel")
|
||||
.Include("Device.DeviceBatch")
|
||||
.Include("Device.DeviceDetails")
|
||||
.Include("DeviceHeldTechUser")
|
||||
.Include("DeviceReadyForReturnTechUser")
|
||||
.Include("DeviceReturnedTechUser")
|
||||
.Include("OpenedTechUser")
|
||||
.Include("ClosedTechUser")
|
||||
.Include("JobType")
|
||||
.Include("JobSubTypes")
|
||||
.Include("User.UserFlagAssignments")
|
||||
.Include("User.UserDetails")
|
||||
.Include("JobLogs.TechUser")
|
||||
.Include("JobAttachments.TechUser")
|
||||
.Include("JobAttachments.DocumentTemplate")
|
||||
.FirstOrDefault(j => j.Id == id.Value);
|
||||
|
||||
if (m.Job == null)
|
||||
@@ -364,6 +377,9 @@ namespace Disco.Web.Controllers
|
||||
m.LocationOptions = ManagedJobList.OpenJobsTable(j => j).Items.Cast<JobTableStatusItemModel>().JobLocationReferences(Database.DiscoConfiguration.JobPreferences.LocationList).ToList();
|
||||
}
|
||||
|
||||
// Populate Custom Details
|
||||
m.PopulateDetails(Database);
|
||||
|
||||
// UI Extensions
|
||||
UIExtensions.ExecuteExtensions<JobShowModel>(this.ControllerContext, m);
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ using Disco.Services;
|
||||
using Disco.Services.Authorization;
|
||||
using Disco.Services.Authorization.Roles;
|
||||
using Disco.Services.Interop.ActiveDirectory;
|
||||
using Disco.Services.Plugins.Features.DetailsProvider;
|
||||
using Disco.Services.Plugins.Features.UIExtension;
|
||||
using Disco.Services.Users;
|
||||
using Disco.Services.Users.UserFlags;
|
||||
@@ -56,10 +57,12 @@ namespace Disco.Web.Controllers
|
||||
.Include("DeviceUserAssignments.Device.DeviceModel")
|
||||
.Include("DeviceUserAssignments.Device.DeviceProfile")
|
||||
.Include("DeviceUserAssignments.Device.DeviceBatch")
|
||||
.Include("DeviceUserAssignments.Device.DeviceDetails")
|
||||
.Include("UserAttachments.TechUser")
|
||||
.Include("UserAttachments.DocumentTemplate")
|
||||
.Include("UserFlagAssignments.AddedUser")
|
||||
.Include("UserFlagAssignments.RemovedUser")
|
||||
.Include("UserDetails")
|
||||
.FirstOrDefault(um => um.UserId == id);
|
||||
|
||||
if (m.User == null)
|
||||
@@ -110,6 +113,9 @@ namespace Disco.Web.Controllers
|
||||
m.DocumentTemplatePackages = m.User.AvailableDocumentTemplatePackages(Database, UserService.CurrentUser);
|
||||
}
|
||||
|
||||
// Populate Custom Details
|
||||
m.PopulateDetails(Database);
|
||||
|
||||
// UI Extensions
|
||||
UIExtensions.ExecuteExtensions<UserShowModel>(this.ControllerContext, m);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user