feature: custom device models
This commit is contained in:
@@ -58,7 +58,7 @@ namespace Disco.Data.Repository
|
|||||||
{
|
{
|
||||||
if (Database.DeviceModels.Count() == 0)
|
if (Database.DeviceModels.Count() == 0)
|
||||||
{
|
{
|
||||||
Database.DeviceModels.Add(new DeviceModel { Manufacturer = "Unknown", Model = "Unknown", Description = "Unknown Device Model" });
|
Database.DeviceModels.Add(new DeviceModel { Manufacturer = "Unknown", Model = "Unknown", Description = "Unknown Device Model", ModelType = "Unknown" });
|
||||||
}
|
}
|
||||||
UpdateDeviceModelConfiguration(Database);
|
UpdateDeviceModelConfiguration(Database);
|
||||||
// Removed: 2013-01-14 G#
|
// Removed: 2013-01-14 G#
|
||||||
|
|||||||
@@ -194,6 +194,7 @@
|
|||||||
<Compile Include="UI\Config\DeviceModel\ConfigDeviceModelIndexModelItem.cs" />
|
<Compile Include="UI\Config\DeviceModel\ConfigDeviceModelIndexModelItem.cs" />
|
||||||
<Compile Include="UI\Config\DeviceModel\ConfigDeviceModelComponentsModel.cs" />
|
<Compile Include="UI\Config\DeviceModel\ConfigDeviceModelComponentsModel.cs" />
|
||||||
<Compile Include="UI\Config\DeviceModel\ConfigDeviceModelShowModel.cs" />
|
<Compile Include="UI\Config\DeviceModel\ConfigDeviceModelShowModel.cs" />
|
||||||
|
<Compile Include="UI\Config\DeviceModel\ConfigDeviceModelCreateModel.cs" />
|
||||||
<Compile Include="UI\Config\DeviceProfile\ConfigDeviceProfileCreateModel.cs" />
|
<Compile Include="UI\Config\DeviceProfile\ConfigDeviceProfileCreateModel.cs" />
|
||||||
<Compile Include="UI\Config\DeviceProfile\ConfigDeviceProfileDefaultsModel.cs" />
|
<Compile Include="UI\Config\DeviceProfile\ConfigDeviceProfileDefaultsModel.cs" />
|
||||||
<Compile Include="UI\Config\DeviceProfile\ConfigDeviceProfileIndexModel.cs" />
|
<Compile Include="UI\Config\DeviceProfile\ConfigDeviceProfileIndexModel.cs" />
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ namespace Disco.Models.Repository
|
|||||||
{
|
{
|
||||||
public class DeviceModel
|
public class DeviceModel
|
||||||
{
|
{
|
||||||
|
public static readonly string CustomModelType = "Custom";
|
||||||
|
|
||||||
[Key]
|
[Key]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
[StringLength(500)]
|
[StringLength(500)]
|
||||||
@@ -17,11 +19,6 @@ namespace Disco.Models.Repository
|
|||||||
public string Model { get; set; }
|
public string Model { get; set; }
|
||||||
[StringLength(40)]
|
[StringLength(40)]
|
||||||
public string ModelType { get; set; }
|
public string ModelType { get; set; }
|
||||||
|
|
||||||
// Remove Reliance On!
|
|
||||||
// Removed: 2013-01-14 G#
|
|
||||||
//[Obsolete("Image to be removed from the Database")]
|
|
||||||
//public byte[] Image { get; set; }
|
|
||||||
|
|
||||||
[DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd}", HtmlEncode = false)]
|
[DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd}", HtmlEncode = false)]
|
||||||
public DateTime? DefaultPurchaseDate { get; set; }
|
public DateTime? DefaultPurchaseDate { get; set; }
|
||||||
@@ -40,11 +37,14 @@ namespace Disco.Models.Repository
|
|||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(this.Description))
|
if (string.IsNullOrWhiteSpace(Description))
|
||||||
{
|
{
|
||||||
return string.Format("{0} {1}", this.Manufacturer, this.Model);
|
return $"{Manufacturer} {Model}";
|
||||||
}
|
}
|
||||||
return this.Description;
|
return Description;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool IsCustomModel()
|
||||||
|
=> CustomModelType.Equals(ModelType, StringComparison.Ordinal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
namespace Disco.Models.UI.Config.DeviceModel
|
||||||
|
{
|
||||||
|
public interface ConfigDeviceModelCreateModel : BaseUIModel
|
||||||
|
{
|
||||||
|
string Description { get; set; }
|
||||||
|
string Manufacturer { get; set; }
|
||||||
|
string ManufacturerModel { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -38,6 +38,7 @@ namespace Disco.Services.Authorization
|
|||||||
{ "Config.DeviceFlag.Show", new Tuple<Func<RoleClaims, bool>, Action<RoleClaims, bool>, string, string, bool>(c => c.Config.DeviceFlag.Show, (c, v) => c.Config.DeviceFlag.Show = v, "Show Device Flags", "Can show device flags", false) },
|
{ "Config.DeviceFlag.Show", new Tuple<Func<RoleClaims, bool>, Action<RoleClaims, bool>, string, string, bool>(c => c.Config.DeviceFlag.Show, (c, v) => c.Config.DeviceFlag.Show = v, "Show Device Flags", "Can show device flags", false) },
|
||||||
{ "Config.DeviceModel.ConfigureComponents", new Tuple<Func<RoleClaims, bool>, Action<RoleClaims, bool>, string, string, bool>(c => c.Config.DeviceModel.ConfigureComponents, (c, v) => c.Config.DeviceModel.ConfigureComponents = v, "Configure Device Model Components", "Can configure device model components", false) },
|
{ "Config.DeviceModel.ConfigureComponents", new Tuple<Func<RoleClaims, bool>, Action<RoleClaims, bool>, string, string, bool>(c => c.Config.DeviceModel.ConfigureComponents, (c, v) => c.Config.DeviceModel.ConfigureComponents = v, "Configure Device Model Components", "Can configure device model components", false) },
|
||||||
{ "Config.DeviceModel.Configure", new Tuple<Func<RoleClaims, bool>, Action<RoleClaims, bool>, string, string, bool>(c => c.Config.DeviceModel.Configure, (c, v) => c.Config.DeviceModel.Configure = v, "Configure Device Models", "Can configure device models", false) },
|
{ "Config.DeviceModel.Configure", new Tuple<Func<RoleClaims, bool>, Action<RoleClaims, bool>, string, string, bool>(c => c.Config.DeviceModel.Configure, (c, v) => c.Config.DeviceModel.Configure = v, "Configure Device Models", "Can configure device models", false) },
|
||||||
|
{ "Config.DeviceModel.CreateCustom", new Tuple<Func<RoleClaims, bool>, Action<RoleClaims, bool>, string, string, bool>(c => c.Config.DeviceModel.CreateCustom, (c, v) => c.Config.DeviceModel.CreateCustom = v, "Create Custom Device Models", "Can create custom device models", false) },
|
||||||
{ "Config.DeviceModel.Delete", new Tuple<Func<RoleClaims, bool>, Action<RoleClaims, bool>, string, string, bool>(c => c.Config.DeviceModel.Delete, (c, v) => c.Config.DeviceModel.Delete = v, "Delete Device Models", "Can delete device models", false) },
|
{ "Config.DeviceModel.Delete", new Tuple<Func<RoleClaims, bool>, Action<RoleClaims, bool>, string, string, bool>(c => c.Config.DeviceModel.Delete, (c, v) => c.Config.DeviceModel.Delete = v, "Delete Device Models", "Can delete device models", false) },
|
||||||
{ "Config.DeviceModel.Show", new Tuple<Func<RoleClaims, bool>, Action<RoleClaims, bool>, string, string, bool>(c => c.Config.DeviceModel.Show, (c, v) => c.Config.DeviceModel.Show = v, "Show Device Models", "Can show device models", false) },
|
{ "Config.DeviceModel.Show", new Tuple<Func<RoleClaims, bool>, Action<RoleClaims, bool>, string, string, bool>(c => c.Config.DeviceModel.Show, (c, v) => c.Config.DeviceModel.Show = v, "Show Device Models", "Can show device models", false) },
|
||||||
{ "Config.DeviceProfile.ConfigureComputerNameTemplate", new Tuple<Func<RoleClaims, bool>, Action<RoleClaims, bool>, string, string, bool>(c => c.Config.DeviceProfile.ConfigureComputerNameTemplate, (c, v) => c.Config.DeviceProfile.ConfigureComputerNameTemplate = v, "Configure Computer Name Templates", "Can configure computer name templates for device profiles", false) },
|
{ "Config.DeviceProfile.ConfigureComputerNameTemplate", new Tuple<Func<RoleClaims, bool>, Action<RoleClaims, bool>, string, string, bool>(c => c.Config.DeviceProfile.ConfigureComputerNameTemplate, (c, v) => c.Config.DeviceProfile.ConfigureComputerNameTemplate = v, "Configure Computer Name Templates", "Can configure computer name templates for device profiles", false) },
|
||||||
@@ -259,6 +260,7 @@ namespace Disco.Services.Authorization
|
|||||||
new ClaimNavigatorItem("Config.DeviceModel", "Device Models", "Permissions related to Device Models", false, new List<IClaimNavigatorItem>() {
|
new ClaimNavigatorItem("Config.DeviceModel", "Device Models", "Permissions related to Device Models", false, new List<IClaimNavigatorItem>() {
|
||||||
new ClaimNavigatorItem("Config.DeviceModel.ConfigureComponents", false),
|
new ClaimNavigatorItem("Config.DeviceModel.ConfigureComponents", false),
|
||||||
new ClaimNavigatorItem("Config.DeviceModel.Configure", false),
|
new ClaimNavigatorItem("Config.DeviceModel.Configure", false),
|
||||||
|
new ClaimNavigatorItem("Config.DeviceModel.CreateCustom", false),
|
||||||
new ClaimNavigatorItem("Config.DeviceModel.Delete", false),
|
new ClaimNavigatorItem("Config.DeviceModel.Delete", false),
|
||||||
new ClaimNavigatorItem("Config.DeviceModel.Show", false)
|
new ClaimNavigatorItem("Config.DeviceModel.Show", false)
|
||||||
}),
|
}),
|
||||||
@@ -584,6 +586,7 @@ namespace Disco.Services.Authorization
|
|||||||
c.Config.DeviceFlag.Show = true;
|
c.Config.DeviceFlag.Show = true;
|
||||||
c.Config.DeviceModel.ConfigureComponents = true;
|
c.Config.DeviceModel.ConfigureComponents = true;
|
||||||
c.Config.DeviceModel.Configure = true;
|
c.Config.DeviceModel.Configure = true;
|
||||||
|
c.Config.DeviceModel.CreateCustom = true;
|
||||||
c.Config.DeviceModel.Delete = true;
|
c.Config.DeviceModel.Delete = true;
|
||||||
c.Config.DeviceModel.Show = true;
|
c.Config.DeviceModel.Show = true;
|
||||||
c.Config.DeviceProfile.ConfigureComputerNameTemplate = true;
|
c.Config.DeviceProfile.ConfigureComputerNameTemplate = true;
|
||||||
@@ -914,6 +917,11 @@ namespace Disco.Services.Authorization
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string Configure = "Config.DeviceModel.Configure";
|
public const string Configure = "Config.DeviceModel.Configure";
|
||||||
|
|
||||||
|
/// <summary>Create Custom Device Models
|
||||||
|
/// <para>Can create custom device models</para>
|
||||||
|
/// </summary>
|
||||||
|
public const string CreateCustom = "Config.DeviceModel.CreateCustom";
|
||||||
|
|
||||||
/// <summary>Delete Device Models
|
/// <summary>Delete Device Models
|
||||||
/// <para>Can delete device models</para>
|
/// <para>Can delete device models</para>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
+3
@@ -9,6 +9,9 @@
|
|||||||
[ClaimDetails("Configure Device Model Components", "Can configure device model components")]
|
[ClaimDetails("Configure Device Model Components", "Can configure device model components")]
|
||||||
public bool ConfigureComponents { get; set; }
|
public bool ConfigureComponents { get; set; }
|
||||||
|
|
||||||
|
[ClaimDetails("Create Custom Device Models", "Can create custom device models")]
|
||||||
|
public bool CreateCustom { get; set; }
|
||||||
|
|
||||||
[ClaimDetails("Delete Device Models", "Can delete device models")]
|
[ClaimDetails("Delete Device Models", "Can delete device models")]
|
||||||
public bool Delete { get; set; }
|
public bool Delete { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -77,14 +77,14 @@ namespace Disco.Services
|
|||||||
ModelType = ModelType.Trim();
|
ModelType = ModelType.Trim();
|
||||||
|
|
||||||
// Already Exists?
|
// Already Exists?
|
||||||
var deviceModel = DeviceModelsSet.FirstOrDefault(dm => dm.Manufacturer == Manufacturer && dm.Model == Model);
|
var deviceModel = DeviceModelsSet.Where(dm => dm.ModelType != DeviceModel.CustomModelType).FirstOrDefault(dm => dm.Manufacturer == Manufacturer && dm.Model == Model);
|
||||||
if (deviceModel == null)
|
if (deviceModel == null)
|
||||||
{
|
{
|
||||||
// Ensure only one thread/request at a time
|
// Ensure only one thread/request at a time
|
||||||
lock (_CreateDeviceModelLock)
|
lock (_CreateDeviceModelLock)
|
||||||
{
|
{
|
||||||
// Check again now that lock is enforced
|
// Check again now that lock is enforced
|
||||||
deviceModel = DeviceModelsSet.FirstOrDefault(dm => dm.Manufacturer == Manufacturer && dm.Model == Model);
|
deviceModel = DeviceModelsSet.Where(dm => dm.ModelType != DeviceModel.CustomModelType).FirstOrDefault(dm => dm.Manufacturer == Manufacturer && dm.Model == Model);
|
||||||
|
|
||||||
if (deviceModel == null)
|
if (deviceModel == null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -116,5 +116,13 @@ namespace Disco
|
|||||||
.Select(s => s.Score(Test, Fuzziness))
|
.Select(s => s.Score(Test, Fuzziness))
|
||||||
.Average();
|
.Average();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string NullOrTrimmed(this string value)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(value))
|
||||||
|
return null;
|
||||||
|
else
|
||||||
|
return value.Trim();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
{
|
{
|
||||||
|
|
||||||
const string pDescription = "description";
|
const string pDescription = "description";
|
||||||
|
const string pManufacturer = "manufacturer";
|
||||||
|
const string pModel = "model";
|
||||||
const string pDefaultPurchaseDate = "defaultpurchasedate";
|
const string pDefaultPurchaseDate = "defaultpurchasedate";
|
||||||
const string pDefaultWarrantyProvider = "defaultwarrantyprovider";
|
const string pDefaultWarrantyProvider = "defaultwarrantyprovider";
|
||||||
const string pDefaultRepairProvider = "defaultrepairprovider";
|
const string pDefaultRepairProvider = "defaultrepairprovider";
|
||||||
@@ -40,6 +42,12 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
case pDescription:
|
case pDescription:
|
||||||
UpdateDescription(deviceModel, value);
|
UpdateDescription(deviceModel, value);
|
||||||
break;
|
break;
|
||||||
|
case pManufacturer:
|
||||||
|
UpdateManufacturer(deviceModel, value);
|
||||||
|
break;
|
||||||
|
case pModel:
|
||||||
|
UpdateModel(deviceModel, value);
|
||||||
|
break;
|
||||||
case pDefaultPurchaseDate:
|
case pDefaultPurchaseDate:
|
||||||
UpdateDefaultPurchaseDate(deviceModel, value);
|
UpdateDefaultPurchaseDate(deviceModel, value);
|
||||||
break;
|
break;
|
||||||
@@ -72,13 +80,25 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
#region Update Shortcut Methods
|
#region Update Shortcut Methods
|
||||||
|
|
||||||
[DiscoAuthorize(Claims.Config.DeviceModel.Configure)]
|
[DiscoAuthorize(Claims.Config.DeviceModel.Configure)]
|
||||||
public virtual ActionResult UpdateDescription(int id, string Description = null, bool redirect = false)
|
public virtual ActionResult UpdateDescription(int id, string Description = null, bool redirect = false)
|
||||||
{
|
{
|
||||||
return Update(id, pDescription, Description, redirect);
|
return Update(id, pDescription, Description, redirect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[DiscoAuthorize(Claims.Config.DeviceModel.Configure)]
|
||||||
|
public virtual ActionResult UpdateManufacturer(int id, string manufacturer = null, bool redirect = false)
|
||||||
|
{
|
||||||
|
return Update(id, pManufacturer, manufacturer, redirect);
|
||||||
|
}
|
||||||
|
|
||||||
|
[DiscoAuthorize(Claims.Config.DeviceModel.Configure)]
|
||||||
|
public virtual ActionResult UpdateModel(int id, string model = null, bool redirect = false)
|
||||||
|
{
|
||||||
|
return Update(id, pModel, model, redirect);
|
||||||
|
}
|
||||||
|
|
||||||
[DiscoAuthorize(Claims.Config.DeviceModel.Configure)]
|
[DiscoAuthorize(Claims.Config.DeviceModel.Configure)]
|
||||||
public virtual ActionResult UpdateDefaultPurchaseDate(int id, string DefaultPurchaseDate = null, bool redirect = false)
|
public virtual ActionResult UpdateDefaultPurchaseDate(int id, string DefaultPurchaseDate = null, bool redirect = false)
|
||||||
{
|
{
|
||||||
@@ -100,7 +120,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Update Properties
|
#region Update Properties
|
||||||
private void UpdateDescription(Disco.Models.Repository.DeviceModel deviceModel, string Description)
|
private void UpdateDescription(DeviceModel deviceModel, string Description)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(Description))
|
if (string.IsNullOrWhiteSpace(Description))
|
||||||
deviceModel.Description = null;
|
deviceModel.Description = null;
|
||||||
@@ -108,7 +128,29 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
deviceModel.Description = Description;
|
deviceModel.Description = Description;
|
||||||
Database.SaveChanges();
|
Database.SaveChanges();
|
||||||
}
|
}
|
||||||
private void UpdateDefaultPurchaseDate(Disco.Models.Repository.DeviceModel deviceModel, string DefaultPurchaseDate)
|
private void UpdateManufacturer(DeviceModel deviceModel, string manufacturer)
|
||||||
|
{
|
||||||
|
if (!deviceModel.IsCustomModel())
|
||||||
|
throw new InvalidCastException("Cannot update Manufacturer for a non-custom device model.");
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(manufacturer))
|
||||||
|
deviceModel.Manufacturer = null;
|
||||||
|
else
|
||||||
|
deviceModel.Manufacturer = manufacturer;
|
||||||
|
Database.SaveChanges();
|
||||||
|
}
|
||||||
|
private void UpdateModel(DeviceModel deviceModel, string model)
|
||||||
|
{
|
||||||
|
if (!deviceModel.IsCustomModel())
|
||||||
|
throw new InvalidCastException("Cannot update Model for a non-custom device model.");
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(model))
|
||||||
|
deviceModel.Model = null;
|
||||||
|
else
|
||||||
|
deviceModel.Model = model;
|
||||||
|
Database.SaveChanges();
|
||||||
|
}
|
||||||
|
private void UpdateDefaultPurchaseDate(DeviceModel deviceModel, string DefaultPurchaseDate)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(DefaultPurchaseDate))
|
if (string.IsNullOrEmpty(DefaultPurchaseDate))
|
||||||
{
|
{
|
||||||
@@ -128,7 +170,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
Database.SaveChanges();
|
Database.SaveChanges();
|
||||||
}
|
}
|
||||||
private void UpdateDefaultWarrantyProvider(Disco.Models.Repository.DeviceModel deviceModel, string DefaultWarrantyProvider)
|
private void UpdateDefaultWarrantyProvider(DeviceModel deviceModel, string DefaultWarrantyProvider)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(DefaultWarrantyProvider))
|
if (string.IsNullOrEmpty(DefaultWarrantyProvider))
|
||||||
{
|
{
|
||||||
@@ -142,7 +184,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
Database.SaveChanges();
|
Database.SaveChanges();
|
||||||
}
|
}
|
||||||
private void UpdateDefaultRepairProvider(Disco.Models.Repository.DeviceModel deviceModel, string DefaultRepairProvider)
|
private void UpdateDefaultRepairProvider(DeviceModel deviceModel, string DefaultRepairProvider)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(DefaultRepairProvider))
|
if (string.IsNullOrEmpty(DefaultRepairProvider))
|
||||||
{
|
{
|
||||||
@@ -192,7 +234,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
return File(Links.ClientSource.Style.Images.DeviceTypes.Unknown_png, "image/png");
|
return File(Links.ClientSource.Style.Images.DeviceTypes.Unknown_png, "image/png");
|
||||||
}
|
}
|
||||||
|
|
||||||
[DiscoAuthorize(Claims.Config.DeviceModel.Configure), HttpPost]
|
[DiscoAuthorize(Claims.Config.DeviceModel.Configure), HttpPost]
|
||||||
public virtual ActionResult Image(int id, bool redirect, HttpPostedFileBase Image)
|
public virtual ActionResult Image(int id, bool redirect, HttpPostedFileBase Image)
|
||||||
{
|
{
|
||||||
@@ -232,7 +274,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
#region Actions
|
#region Actions
|
||||||
|
|
||||||
[DiscoAuthorize(Claims.Config.DeviceModel.Delete)]
|
[DiscoAuthorize(Claims.Config.DeviceModel.Delete)]
|
||||||
public virtual ActionResult Delete(int id, Nullable<bool> redirect = false)
|
public virtual ActionResult Delete(int id, bool? redirect = false)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -292,7 +334,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
Cost = Cost.Substring(Cost.IndexOf("$") + 1);
|
Cost = Cost.Substring(Cost.IndexOf("$") + 1);
|
||||||
decimal.TryParse(Cost, out cost);
|
decimal.TryParse(Cost, out cost);
|
||||||
|
|
||||||
var dc = new Disco.Models.Repository.DeviceComponent()
|
var dc = new DeviceComponent()
|
||||||
{
|
{
|
||||||
Description = Description,
|
Description = Description,
|
||||||
Cost = cost
|
Cost = cost
|
||||||
|
|||||||
@@ -19,6 +19,11 @@ namespace Disco.Web.Areas.Config
|
|||||||
"Config/DeviceModel/GenericComponents",
|
"Config/DeviceModel/GenericComponents",
|
||||||
new { controller = "DeviceModel", action = "GenericComponents" }
|
new { controller = "DeviceModel", action = "GenericComponents" }
|
||||||
);
|
);
|
||||||
|
context.MapRoute(
|
||||||
|
"Config_DeviceModel_Create",
|
||||||
|
"Config/DeviceModel/Create",
|
||||||
|
new { controller = "DeviceModel", action = "Create" }
|
||||||
|
);
|
||||||
context.MapRoute(
|
context.MapRoute(
|
||||||
"Config_DeviceModel",
|
"Config_DeviceModel",
|
||||||
"Config/DeviceModel/{id}",
|
"Config/DeviceModel/{id}",
|
||||||
@@ -27,7 +32,7 @@ namespace Disco.Web.Areas.Config
|
|||||||
context.MapRoute(
|
context.MapRoute(
|
||||||
"Config_DeviceBatch_Create",
|
"Config_DeviceBatch_Create",
|
||||||
"Config/DeviceBatch/Create",
|
"Config/DeviceBatch/Create",
|
||||||
new { controller = "DeviceBatch", action = "Create", id = UrlParameter.Optional }
|
new { controller = "DeviceBatch", action = "Create" }
|
||||||
);
|
);
|
||||||
context.MapRoute(
|
context.MapRoute(
|
||||||
"Config_DeviceBatch_Timeline",
|
"Config_DeviceBatch_Timeline",
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Disco.Models.UI.Config.DeviceModel;
|
using Disco.Models.Repository;
|
||||||
|
using Disco.Models.UI.Config.DeviceModel;
|
||||||
using Disco.Services;
|
using Disco.Services;
|
||||||
using Disco.Services.Authorization;
|
using Disco.Services.Authorization;
|
||||||
using Disco.Services.Plugins;
|
using Disco.Services.Plugins;
|
||||||
@@ -36,7 +37,7 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
{
|
{
|
||||||
DeviceModelId = m.DeviceModel.Id,
|
DeviceModelId = m.DeviceModel.Id,
|
||||||
DeviceComponents = Database.DeviceComponents.Include("JobSubTypes").Where(dc => dc.DeviceModelId == m.DeviceModel.Id).ToList(),
|
DeviceComponents = Database.DeviceComponents.Include("JobSubTypes").Where(dc => dc.DeviceModelId == m.DeviceModel.Id).ToList(),
|
||||||
JobSubTypes = Database.JobSubTypes.Where(jst => jst.JobTypeId == Disco.Models.Repository.JobType.JobTypeIds.HNWar).ToList()
|
JobSubTypes = Database.JobSubTypes.Where(jst => jst.JobTypeId == JobType.JobTypeIds.HNWar).ToList()
|
||||||
};
|
};
|
||||||
|
|
||||||
m.CanDelete = m.DeviceModel.CanDelete(Database);
|
m.CanDelete = m.DeviceModel.CanDelete(Database);
|
||||||
@@ -46,7 +47,7 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
m.BulkGenerateDocumentTemplates = Database.DocumentTemplates.Where(t => !t.IsHidden).ToList();
|
m.BulkGenerateDocumentTemplates = Database.DocumentTemplates.Where(t => !t.IsHidden).ToList();
|
||||||
|
|
||||||
// UI Extensions
|
// UI Extensions
|
||||||
UIExtensions.ExecuteExtensions<ConfigDeviceModelShowModel>(this.ControllerContext, m);
|
UIExtensions.ExecuteExtensions<ConfigDeviceModelShowModel>(ControllerContext, m);
|
||||||
|
|
||||||
return View(MVC.Config.DeviceModel.Views.Show, m);
|
return View(MVC.Config.DeviceModel.Views.Show, m);
|
||||||
}
|
}
|
||||||
@@ -55,23 +56,60 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
var m = Models.DeviceModel.IndexModel.Build(Database);
|
var m = Models.DeviceModel.IndexModel.Build(Database);
|
||||||
|
|
||||||
// UI Extensions
|
// UI Extensions
|
||||||
UIExtensions.ExecuteExtensions<ConfigDeviceModelIndexModel>(this.ControllerContext, m);
|
UIExtensions.ExecuteExtensions<ConfigDeviceModelIndexModel>(ControllerContext, m);
|
||||||
|
|
||||||
return View(m);
|
return View(m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[DiscoAuthorizeAll(Claims.Config.DeviceModel.CreateCustom, Claims.Config.DeviceModel.Configure)]
|
||||||
|
[HttpGet]
|
||||||
|
public virtual ActionResult Create()
|
||||||
|
{
|
||||||
|
var m = new Models.DeviceModel.CreateModel();
|
||||||
|
|
||||||
|
// UI Extensions
|
||||||
|
UIExtensions.ExecuteExtensions<ConfigDeviceModelCreateModel>(ControllerContext, m);
|
||||||
|
|
||||||
|
return View(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
[DiscoAuthorizeAll(Claims.Config.DeviceModel.CreateCustom, Claims.Config.DeviceModel.Configure)]
|
||||||
|
[HttpPost, ValidateAntiForgeryToken]
|
||||||
|
public virtual ActionResult Create(Models.DeviceModel.CreateModel model)
|
||||||
|
{
|
||||||
|
if (ModelState.IsValid)
|
||||||
|
{
|
||||||
|
var deviceModel = new DeviceModel()
|
||||||
|
{
|
||||||
|
Description = model.Description.NullOrTrimmed(),
|
||||||
|
Manufacturer = model.Manufacturer.NullOrTrimmed(),
|
||||||
|
Model = model.ManufacturerModel.NullOrTrimmed(),
|
||||||
|
ModelType = DeviceModel.CustomModelType,
|
||||||
|
};
|
||||||
|
|
||||||
|
Database.DeviceModels.Add(deviceModel);
|
||||||
|
Database.SaveChanges();
|
||||||
|
return RedirectToAction(MVC.Config.DeviceModel.Index(deviceModel.Id));
|
||||||
|
}
|
||||||
|
|
||||||
|
// UI Extensions
|
||||||
|
UIExtensions.ExecuteExtensions<ConfigDeviceModelCreateModel>(ControllerContext, model);
|
||||||
|
|
||||||
|
return View(model);
|
||||||
|
}
|
||||||
|
|
||||||
[DiscoAuthorize(Claims.Config.DeviceModel.Show)]
|
[DiscoAuthorize(Claims.Config.DeviceModel.Show)]
|
||||||
public virtual ActionResult GenericComponents()
|
public virtual ActionResult GenericComponents()
|
||||||
{
|
{
|
||||||
var m = new Models.DeviceModel.ComponentsModel()
|
var m = new Models.DeviceModel.ComponentsModel()
|
||||||
{
|
{
|
||||||
DeviceComponents = Database.DeviceComponents.Include("JobSubTypes").Where(dc => !dc.DeviceModelId.HasValue).ToList(),
|
DeviceComponents = Database.DeviceComponents.Include("JobSubTypes").Where(dc => !dc.DeviceModelId.HasValue).ToList(),
|
||||||
JobSubTypes = Database.JobSubTypes.Where(jst => jst.JobTypeId == Disco.Models.Repository.JobType.JobTypeIds.HNWar).ToList()
|
JobSubTypes = Database.JobSubTypes.Where(jst => jst.JobTypeId == JobType.JobTypeIds.HNWar).ToList()
|
||||||
};
|
};
|
||||||
|
|
||||||
// UI Extensions
|
// UI Extensions
|
||||||
UIExtensions.ExecuteExtensions<ConfigDeviceModelComponentsModel>(this.ControllerContext, m);
|
UIExtensions.ExecuteExtensions<ConfigDeviceModelComponentsModel>(ControllerContext, m);
|
||||||
|
|
||||||
return View(m);
|
return View(m);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
using Disco.Models.UI.Config.DeviceModel;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Disco.Web.Areas.Config.Models.DeviceModel
|
||||||
|
{
|
||||||
|
public class CreateModel : ConfigDeviceModelCreateModel
|
||||||
|
{
|
||||||
|
[Required, StringLength(500)]
|
||||||
|
public string Description { get; set; }
|
||||||
|
[StringLength(200)]
|
||||||
|
public string Manufacturer { get; set; }
|
||||||
|
[StringLength(200)]
|
||||||
|
public string ManufacturerModel { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
@model Disco.Web.Areas.Config.Models.DeviceModel.CreateModel
|
||||||
|
@{
|
||||||
|
Authorization.RequireAll(Claims.Config.DeviceModel.CreateCustom, Claims.Config.DeviceModel.Configure);
|
||||||
|
|
||||||
|
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Device Models", MVC.Config.DeviceModel.Index(null), "Create Custom");
|
||||||
|
}
|
||||||
|
@using (Html.BeginForm())
|
||||||
|
{
|
||||||
|
@Html.AntiForgeryToken()
|
||||||
|
<div class="form" style="width: 450px">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Name / Description:
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
@Html.TextBoxFor(model => model.Description)<br />@Html.ValidationMessageFor(model => model.Description)
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Manufacturer:
|
||||||
|
</th>
|
||||||
|
<td>@Html.TextBoxFor(model => model.Manufacturer)<br />@Html.ValidationMessageFor(model => model.Manufacturer)
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Model:
|
||||||
|
</th>
|
||||||
|
<td>@Html.TextBoxFor(model => model.ManufacturerModel)<br />@Html.ValidationMessageFor(model => model.ManufacturerModel)
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<p class="actions">
|
||||||
|
<input type="submit" class="button" value="Create Custom" />
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function () {
|
||||||
|
$('#Description').focus().select();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
}
|
||||||
@@ -0,0 +1,177 @@
|
|||||||
|
#pragma warning disable 1591
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace Disco.Web.Areas.Config.Views.DeviceModel
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Text;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Helpers;
|
||||||
|
using System.Web.Mvc;
|
||||||
|
using System.Web.Mvc.Ajax;
|
||||||
|
using System.Web.Mvc.Html;
|
||||||
|
using System.Web.Routing;
|
||||||
|
using System.Web.Security;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.WebPages;
|
||||||
|
using Disco;
|
||||||
|
using Disco.Models.Repository;
|
||||||
|
using Disco.Services;
|
||||||
|
using Disco.Services.Authorization;
|
||||||
|
using Disco.Services.Web;
|
||||||
|
using Disco.Web;
|
||||||
|
using Disco.Web.Extensions;
|
||||||
|
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
|
||||||
|
[System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Config/Views/DeviceModel/Create.cshtml")]
|
||||||
|
public partial class Create : Disco.Services.Web.WebViewPage<Disco.Web.Areas.Config.Models.DeviceModel.CreateModel>
|
||||||
|
{
|
||||||
|
public Create()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public override void Execute()
|
||||||
|
{
|
||||||
|
|
||||||
|
#line 2 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml"
|
||||||
|
|
||||||
|
Authorization.RequireAll(Claims.Config.DeviceModel.CreateCustom, Claims.Config.DeviceModel.Configure);
|
||||||
|
|
||||||
|
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Device Models", MVC.Config.DeviceModel.Index(null), "Create Custom");
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 7 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml"
|
||||||
|
using (Html.BeginForm())
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 9 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml"
|
||||||
|
Write(Html.AntiForgeryToken());
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 9 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <div");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"form\"");
|
||||||
|
|
||||||
|
WriteLiteral(" style=\"width: 450px\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <table>\r\n <tr>\r\n <th>\r\n N" +
|
||||||
|
"ame / Description:\r\n </th>\r\n <td>\r\n");
|
||||||
|
|
||||||
|
WriteLiteral(" ");
|
||||||
|
|
||||||
|
|
||||||
|
#line 17 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml"
|
||||||
|
Write(Html.TextBoxFor(model => model.Description));
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("<br />");
|
||||||
|
|
||||||
|
|
||||||
|
#line 17 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml"
|
||||||
|
Write(Html.ValidationMessageFor(model => model.Description));
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("\r\n </td>\r\n </tr>\r\n <tr>\r\n <th" +
|
||||||
|
">\r\n Manufacturer:\r\n </th>\r\n <td" +
|
||||||
|
">");
|
||||||
|
|
||||||
|
|
||||||
|
#line 24 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml"
|
||||||
|
Write(Html.TextBoxFor(model => model.Manufacturer));
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("<br />");
|
||||||
|
|
||||||
|
|
||||||
|
#line 24 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml"
|
||||||
|
Write(Html.ValidationMessageFor(model => model.Manufacturer));
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("\r\n </td>\r\n </tr>\r\n <tr>\r\n <th" +
|
||||||
|
">\r\n Model:\r\n </th>\r\n <td>");
|
||||||
|
|
||||||
|
|
||||||
|
#line 31 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml"
|
||||||
|
Write(Html.TextBoxFor(model => model.ManufacturerModel));
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("<br />");
|
||||||
|
|
||||||
|
|
||||||
|
#line 31 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml"
|
||||||
|
Write(Html.ValidationMessageFor(model => model.ManufacturerModel));
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("\r\n </td>\r\n </tr>\r\n </table>\r\n <p");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"actions\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <input");
|
||||||
|
|
||||||
|
WriteLiteral(" type=\"submit\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button\"");
|
||||||
|
|
||||||
|
WriteLiteral(" value=\"Create Custom\"");
|
||||||
|
|
||||||
|
WriteLiteral(" />\r\n </p>\r\n </div>\r\n");
|
||||||
|
|
||||||
|
WriteLiteral(" <script");
|
||||||
|
|
||||||
|
WriteLiteral(" type=\"text/javascript\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n $(function () {\r\n $(\'#Description\').focus().select();\r\n " +
|
||||||
|
" });\r\n </script>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 44 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#pragma warning restore 1591
|
||||||
@@ -64,4 +64,8 @@
|
|||||||
</table>
|
</table>
|
||||||
<div class="actionBar">
|
<div class="actionBar">
|
||||||
@Html.ActionLinkButton("Generic Components", MVC.Config.DeviceModel.GenericComponents())
|
@Html.ActionLinkButton("Generic Components", MVC.Config.DeviceModel.GenericComponents())
|
||||||
|
@if (Authorization.HasAll(Claims.Config.DeviceModel.CreateCustom, Claims.Config.DeviceModel.Configure))
|
||||||
|
{
|
||||||
|
@Html.ActionLinkButton("Create Custom Device Model", MVC.Config.DeviceModel.Create())
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
@@ -304,7 +304,38 @@ Write(Html.ActionLinkButton("Generic Components", MVC.Config.DeviceModel.Generic
|
|||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
WriteLiteral("\r\n</div>");
|
WriteLiteral("\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 67 "..\..\Areas\Config\Views\DeviceModel\Index.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 67 "..\..\Areas\Config\Views\DeviceModel\Index.cshtml"
|
||||||
|
if (Authorization.HasAll(Claims.Config.DeviceModel.CreateCustom, Claims.Config.DeviceModel.Configure))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 69 "..\..\Areas\Config\Views\DeviceModel\Index.cshtml"
|
||||||
|
Write(Html.ActionLinkButton("Create Custom Device Model", MVC.Config.DeviceModel.Create()));
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 69 "..\..\Areas\Config\Views\DeviceModel\Index.cshtml"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("</div>");
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
var canConfig = Authorization.Has(Claims.Config.DeviceModel.Configure);
|
var canConfig = Authorization.Has(Claims.Config.DeviceModel.Configure);
|
||||||
var canViewPlugins = Authorization.Has(Claims.Config.Plugin.Install);
|
var canViewPlugins = Authorization.Has(Claims.Config.Plugin.Install);
|
||||||
|
var isCustom = Model.DeviceModel.IsCustomModel();
|
||||||
|
|
||||||
if (canConfig)
|
if (canConfig)
|
||||||
{
|
{
|
||||||
@@ -47,44 +48,82 @@
|
|||||||
{
|
{
|
||||||
@Html.DisplayFor(model => model.DeviceModel.Description)
|
@Html.DisplayFor(model => model.DeviceModel.Description)
|
||||||
}
|
}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>
|
<th>
|
||||||
Manufacturer:
|
Manufacturer:
|
||||||
</th>
|
</th>
|
||||||
<td>
|
<td>
|
||||||
@Html.DisplayFor(model => model.DeviceModel.Manufacturer)
|
@if (isCustom && canConfig)
|
||||||
</td>
|
{
|
||||||
</tr>
|
@Html.EditorFor(model => model.DeviceModel.Manufacturer)
|
||||||
<tr>
|
@AjaxHelpers.AjaxSave()
|
||||||
<th>
|
@AjaxHelpers.AjaxLoader()
|
||||||
Model:
|
<script>
|
||||||
</th>
|
$(function () {
|
||||||
<td>
|
document.DiscoFunctions.PropertyChangeHelper(
|
||||||
@Html.DisplayFor(model => model.DeviceModel.Model)
|
$('#DeviceModel_Manufacturer'),
|
||||||
</td>
|
'Manufacturer',
|
||||||
</tr>
|
'@Url.Action(MVC.API.DeviceModel.UpdateManufacturer(Model.DeviceModel.Id))',
|
||||||
<tr>
|
'manufacturer'
|
||||||
<th>Statistics</th>
|
);
|
||||||
<td>
|
});
|
||||||
<div><strong>@Model.DeviceCount.ToString("n0")</strong> @(Model.DeviceCount == 1 ? "devices is" : "devices are") of this model type.</div>
|
</script>
|
||||||
@if (Model.DeviceDecommissionedCount > 0)
|
}
|
||||||
{
|
else
|
||||||
<div class="smallMessage">@Model.DeviceDecommissionedCount.ToString("n0") @(Model.DeviceDecommissionedCount == 1 ? "device is" : "devices are") decommissioned.</div>
|
{
|
||||||
}
|
@Html.DisplayFor(model => model.DeviceModel.Manufacturer)
|
||||||
</td>
|
}
|
||||||
</tr>
|
</td>
|
||||||
<tr>
|
</tr>
|
||||||
<th>
|
<tr>
|
||||||
Default Purchase Date:
|
<th>
|
||||||
</th>
|
Model:
|
||||||
<td>
|
</th>
|
||||||
@if (canConfig)
|
<td>
|
||||||
{
|
@if (isCustom && canConfig)
|
||||||
@Html.EditorFor(model => model.DeviceModel.DefaultPurchaseDate)
|
{
|
||||||
@AjaxHelpers.AjaxLoader()
|
@Html.EditorFor(model => model.DeviceModel.Model)
|
||||||
<script>
|
@AjaxHelpers.AjaxSave()
|
||||||
|
@AjaxHelpers.AjaxLoader()
|
||||||
|
<script>
|
||||||
|
$(function () {
|
||||||
|
document.DiscoFunctions.PropertyChangeHelper(
|
||||||
|
$('#DeviceModel_Model'),
|
||||||
|
'Model',
|
||||||
|
'@Url.Action(MVC.API.DeviceModel.UpdateModel(Model.DeviceModel.Id))',
|
||||||
|
'model'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
@Html.DisplayFor(model => model.DeviceModel.Model)
|
||||||
|
}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Statistics</th>
|
||||||
|
<td>
|
||||||
|
<div><strong>@Model.DeviceCount.ToString("n0")</strong> @(Model.DeviceCount == 1 ? "devices is" : "devices are") of this model type.</div>
|
||||||
|
@if (Model.DeviceDecommissionedCount > 0)
|
||||||
|
{
|
||||||
|
<div class="smallMessage">@Model.DeviceDecommissionedCount.ToString("n0") @(Model.DeviceDecommissionedCount == 1 ? "device is" : "devices are") decommissioned.</div>
|
||||||
|
}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Default Purchase Date:
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
@if (canConfig)
|
||||||
|
{
|
||||||
|
@Html.EditorFor(model => model.DeviceModel.DefaultPurchaseDate)
|
||||||
|
@AjaxHelpers.AjaxLoader()
|
||||||
|
<script>
|
||||||
$(function () {
|
$(function () {
|
||||||
var dateField = $('#DeviceModel_DefaultPurchaseDate');
|
var dateField = $('#DeviceModel_DefaultPurchaseDate');
|
||||||
document.DiscoFunctions.DateChangeHelper(
|
document.DiscoFunctions.DateChangeHelper(
|
||||||
@@ -96,26 +135,26 @@
|
|||||||
true
|
true
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@CommonHelpers.FriendlyDate(Model.DeviceModel.DefaultPurchaseDate, "Unknown")
|
@CommonHelpers.FriendlyDate(Model.DeviceModel.DefaultPurchaseDate, "Unknown")
|
||||||
}
|
}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>
|
<th>
|
||||||
Default Warranty Provider:
|
Default Warranty Provider:
|
||||||
</th>
|
</th>
|
||||||
<td>
|
<td>
|
||||||
@if (canConfig)
|
@if (canConfig)
|
||||||
{
|
{
|
||||||
if (Model.WarrantyProviders.Count > 0)
|
if (Model.WarrantyProviders.Count > 0)
|
||||||
{
|
{
|
||||||
@Html.DropDownListFor(model => model.DeviceModel.DefaultWarrantyProvider, Model.WarrantyProviders.ToSelectListItems(Model.DeviceModel.DefaultWarrantyProvider, true, "None"))
|
@Html.DropDownListFor(model => model.DeviceModel.DefaultWarrantyProvider, Model.WarrantyProviders.ToSelectListItems(Model.DeviceModel.DefaultWarrantyProvider, true, "None"))
|
||||||
@AjaxHelpers.AjaxLoader()
|
@AjaxHelpers.AjaxLoader()
|
||||||
<script>
|
<script>
|
||||||
$(function () {
|
$(function () {
|
||||||
document.DiscoFunctions.PropertyChangeHelper(
|
document.DiscoFunctions.PropertyChangeHelper(
|
||||||
$('#DeviceModel_DefaultWarrantyProvider'),
|
$('#DeviceModel_DefaultWarrantyProvider'),
|
||||||
@@ -124,54 +163,54 @@
|
|||||||
'DefaultWarrantyProvider'
|
'DefaultWarrantyProvider'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<span class="smallMessage">No warranty provider plugins installed</span>
|
<span class="smallMessage">No warranty provider plugins installed</span>
|
||||||
}
|
}
|
||||||
if (canViewPlugins)
|
if (canViewPlugins)
|
||||||
{
|
{
|
||||||
<div class="info-box">
|
<div class="info-box">
|
||||||
<p class="fa-p">
|
<p class="fa-p">
|
||||||
<i class="fa fa-info-circle"></i>View the <a href="@(Url.Action(MVC.Config.Plugins.Install()))">Plugin Catalogue</a> to discover and install warranty provider plugins.
|
<i class="fa fa-info-circle"></i>View the <a href="@(Url.Action(MVC.Config.Plugins.Install()))">Plugin Catalogue</a> to discover and install warranty provider plugins.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (Model.DeviceModel.DefaultWarrantyProvider == null)
|
|
||||||
{
|
|
||||||
<span class="smallMessage"><None Specified></span>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var provider = Model.WarrantyProviders.FirstOrDefault(wp => wp.Id == Model.DeviceModel.DefaultWarrantyProvider);
|
|
||||||
if (provider == null)
|
|
||||||
{
|
|
||||||
<span class="smallMessage"><None Specified></span>
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@provider.Name
|
if (Model.DeviceModel.DefaultWarrantyProvider == null)
|
||||||
|
{
|
||||||
|
<span class="smallMessage"><None Specified></span>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var provider = Model.WarrantyProviders.FirstOrDefault(wp => wp.Id == Model.DeviceModel.DefaultWarrantyProvider);
|
||||||
|
if (provider == null)
|
||||||
|
{
|
||||||
|
<span class="smallMessage"><None Specified></span>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
@provider.Name
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
</td>
|
||||||
}
|
</tr>
|
||||||
</td>
|
<tr>
|
||||||
</tr>
|
<th>
|
||||||
<tr>
|
Default Repair Provider:
|
||||||
<th>
|
</th>
|
||||||
Default Repair Provider:
|
<td>
|
||||||
</th>
|
@if (canConfig)
|
||||||
<td>
|
{
|
||||||
@if (canConfig)
|
if (Model.RepairProviders.Count > 0)
|
||||||
{
|
{
|
||||||
if (Model.RepairProviders.Count > 0)
|
@Html.DropDownListFor(model => model.DeviceModel.DefaultRepairProvider, Model.RepairProviders.ToSelectListItems(Model.DeviceModel.DefaultRepairProvider, true, "None"))
|
||||||
{
|
@AjaxHelpers.AjaxLoader()
|
||||||
@Html.DropDownListFor(model => model.DeviceModel.DefaultRepairProvider, Model.RepairProviders.ToSelectListItems(Model.DeviceModel.DefaultRepairProvider, true, "None"))
|
<script>
|
||||||
@AjaxHelpers.AjaxLoader()
|
|
||||||
<script>
|
|
||||||
$(function () {
|
$(function () {
|
||||||
document.DiscoFunctions.PropertyChangeHelper(
|
document.DiscoFunctions.PropertyChangeHelper(
|
||||||
$('#DeviceModel_DefaultRepairProvider'),
|
$('#DeviceModel_DefaultRepairProvider'),
|
||||||
@@ -180,68 +219,68 @@
|
|||||||
'DefaultRepairProvider'
|
'DefaultRepairProvider'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<div>No repair provider plugins installed</div>
|
<div>No repair provider plugins installed</div>
|
||||||
}
|
}
|
||||||
if (canViewPlugins)
|
if (canViewPlugins)
|
||||||
{
|
{
|
||||||
<div class="info-box">
|
<div class="info-box">
|
||||||
<p class="fa-p">
|
<p class="fa-p">
|
||||||
<i class="fa fa-info-circle"></i>View the <a href="@(Url.Action(MVC.Config.Plugins.Install()))">Plugin Catalogue</a> to discover and install repair provider plugins.
|
<i class="fa fa-info-circle"></i>View the <a href="@(Url.Action(MVC.Config.Plugins.Install()))">Plugin Catalogue</a> to discover and install repair provider plugins.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (Model.DeviceModel.DefaultRepairProvider == null)
|
|
||||||
{
|
|
||||||
<span class="smallMessage"><None Specified></span>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var provider = Model.RepairProviders.FirstOrDefault(wp => wp.Id == Model.DeviceModel.DefaultRepairProvider);
|
|
||||||
if (provider == null)
|
|
||||||
{
|
|
||||||
<span class="smallMessage"><None Specified></span>
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@provider.Name
|
if (Model.DeviceModel.DefaultRepairProvider == null)
|
||||||
|
{
|
||||||
|
<span class="smallMessage"><None Specified></span>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var provider = Model.RepairProviders.FirstOrDefault(wp => wp.Id == Model.DeviceModel.DefaultRepairProvider);
|
||||||
|
if (provider == null)
|
||||||
|
{
|
||||||
|
<span class="smallMessage"><None Specified></span>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
@provider.Name
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
</td>
|
||||||
}
|
</tr>
|
||||||
</td>
|
<tr>
|
||||||
</tr>
|
<th>
|
||||||
<tr>
|
Type:
|
||||||
<th>
|
</th>
|
||||||
Type:
|
<td>
|
||||||
</th>
|
@Html.DisplayFor(model => model.DeviceModel.ModelType)
|
||||||
<td>
|
</td>
|
||||||
@Html.DisplayFor(model => model.DeviceModel.ModelType)
|
</tr>
|
||||||
</td>
|
<tr>
|
||||||
</tr>
|
<th>
|
||||||
<tr>
|
Image:
|
||||||
<th>
|
</th>
|
||||||
Image:
|
<td>
|
||||||
</th>
|
<img alt="Model Image" src="@Url.Action(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, Model.DeviceModel.ImageHash()))" />
|
||||||
<td>
|
@if (canConfig)
|
||||||
<img alt="Model Image" src="@Url.Action(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, Model.DeviceModel.ImageHash()))" />
|
{
|
||||||
@if (canConfig)
|
<hr />
|
||||||
{
|
using (Html.BeginForm(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, true, null), FormMethod.Post, new { enctype = "multipart/form-data" }))
|
||||||
<hr />
|
{
|
||||||
using (Html.BeginForm(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, true, null), FormMethod.Post, new { enctype = "multipart/form-data" }))
|
<input type="file" name="Image" id="Image" style="width: 220px;" />
|
||||||
{
|
<input class="button small" type="submit" value="Upload Image" />
|
||||||
<input type="file" name="Image" id="Image" style="width: 220px;" />
|
}
|
||||||
<input class="button small" type="submit" value="Upload Image" />
|
}
|
||||||
}
|
</td>
|
||||||
}
|
</tr>
|
||||||
</td>
|
</table>
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
<h2>Components</h2>
|
<h2>Components</h2>
|
||||||
@Html.Partial(MVC.Config.DeviceModel.Views._DeviceComponentsTable, Model.DeviceComponentsModel)
|
@Html.Partial(MVC.Config.DeviceModel.Views._DeviceComponentsTable, Model.DeviceComponentsModel)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -242,6 +242,7 @@
|
|||||||
<Compile Include="Areas\Config\Models\AuthorizationRole\IndexModel.cs" />
|
<Compile Include="Areas\Config\Models\AuthorizationRole\IndexModel.cs" />
|
||||||
<Compile Include="Areas\Config\Models\AuthorizationRole\ShowModel.cs" />
|
<Compile Include="Areas\Config\Models\AuthorizationRole\ShowModel.cs" />
|
||||||
<Compile Include="Areas\Config\Models\Config\IndexModel.cs" />
|
<Compile Include="Areas\Config\Models\Config\IndexModel.cs" />
|
||||||
|
<Compile Include="Areas\Config\Models\DeviceModel\CreateModel.cs" />
|
||||||
<Compile Include="Areas\Config\Models\DocumentTemplate\BulkGenerateModel.cs" />
|
<Compile Include="Areas\Config\Models\DocumentTemplate\BulkGenerateModel.cs" />
|
||||||
<Compile Include="Areas\Config\Models\DocumentTemplate\CreatePackageModel.cs" />
|
<Compile Include="Areas\Config\Models\DocumentTemplate\CreatePackageModel.cs" />
|
||||||
<Compile Include="Areas\Config\Models\DocumentTemplate\ExportModel.cs" />
|
<Compile Include="Areas\Config\Models\DocumentTemplate\ExportModel.cs" />
|
||||||
@@ -286,6 +287,11 @@
|
|||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Areas\Config\Views\DeviceModel\Create.generated.cs">
|
||||||
|
<DependentUpon>Create.cshtml</DependentUpon>
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Areas\Config\Views\DocumentTemplate\BulkGenerate.generated.cs">
|
<Compile Include="Areas\Config\Views\DocumentTemplate\BulkGenerate.generated.cs">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
@@ -1379,6 +1385,10 @@
|
|||||||
<Generator>RazorGenerator</Generator>
|
<Generator>RazorGenerator</Generator>
|
||||||
<LastGenOutput>Show.generated.cs</LastGenOutput>
|
<LastGenOutput>Show.generated.cs</LastGenOutput>
|
||||||
</None>
|
</None>
|
||||||
|
<None Include="Areas\Config\Views\DeviceModel\Create.cshtml">
|
||||||
|
<Generator>RazorGenerator</Generator>
|
||||||
|
<LastGenOutput>Create.generated.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
<None Include="Areas\Config\Views\DocumentTemplate\BulkGenerate.cshtml">
|
<None Include="Areas\Config\Views\DocumentTemplate\BulkGenerate.cshtml">
|
||||||
<Generator>RazorGenerator</Generator>
|
<Generator>RazorGenerator</Generator>
|
||||||
<LastGenOutput>BulkGenerate.generated.cs</LastGenOutput>
|
<LastGenOutput>BulkGenerate.generated.cs</LastGenOutput>
|
||||||
@@ -1713,7 +1723,7 @@
|
|||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="ClientSource\Scripts\Modules\qrcode.min.js">
|
<Content Include="ClientSource\Scripts\Modules\qrcode.min.js">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<None Include="ClientSource\Scripts\Modules\Shadowbox.js" />
|
<None Include="ClientSource\Scripts\Modules\Shadowbox.js" />
|
||||||
<Content Include="ClientSource\Scripts\Modules\Shadowbox.js" Condition=" '$(Configuration)' == 'Debug' " />
|
<Content Include="ClientSource\Scripts\Modules\Shadowbox.js" Condition=" '$(Configuration)' == 'Debug' " />
|
||||||
|
|||||||
@@ -73,6 +73,18 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
[NonAction]
|
[NonAction]
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public virtual System.Web.Mvc.ActionResult UpdateManufacturer()
|
||||||
|
{
|
||||||
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateManufacturer);
|
||||||
|
}
|
||||||
|
[NonAction]
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public virtual System.Web.Mvc.ActionResult UpdateModel()
|
||||||
|
{
|
||||||
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateModel);
|
||||||
|
}
|
||||||
|
[NonAction]
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public virtual System.Web.Mvc.ActionResult UpdateDefaultPurchaseDate()
|
public virtual System.Web.Mvc.ActionResult UpdateDefaultPurchaseDate()
|
||||||
{
|
{
|
||||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateDefaultPurchaseDate);
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateDefaultPurchaseDate);
|
||||||
@@ -149,6 +161,8 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
{
|
{
|
||||||
public readonly string Update = "Update";
|
public readonly string Update = "Update";
|
||||||
public readonly string UpdateDescription = "UpdateDescription";
|
public readonly string UpdateDescription = "UpdateDescription";
|
||||||
|
public readonly string UpdateManufacturer = "UpdateManufacturer";
|
||||||
|
public readonly string UpdateModel = "UpdateModel";
|
||||||
public readonly string UpdateDefaultPurchaseDate = "UpdateDefaultPurchaseDate";
|
public readonly string UpdateDefaultPurchaseDate = "UpdateDefaultPurchaseDate";
|
||||||
public readonly string UpdateDefaultWarrantyProvider = "UpdateDefaultWarrantyProvider";
|
public readonly string UpdateDefaultWarrantyProvider = "UpdateDefaultWarrantyProvider";
|
||||||
public readonly string UpdateDefaultRepairProvider = "UpdateDefaultRepairProvider";
|
public readonly string UpdateDefaultRepairProvider = "UpdateDefaultRepairProvider";
|
||||||
@@ -167,6 +181,8 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
{
|
{
|
||||||
public const string Update = "Update";
|
public const string Update = "Update";
|
||||||
public const string UpdateDescription = "UpdateDescription";
|
public const string UpdateDescription = "UpdateDescription";
|
||||||
|
public const string UpdateManufacturer = "UpdateManufacturer";
|
||||||
|
public const string UpdateModel = "UpdateModel";
|
||||||
public const string UpdateDefaultPurchaseDate = "UpdateDefaultPurchaseDate";
|
public const string UpdateDefaultPurchaseDate = "UpdateDefaultPurchaseDate";
|
||||||
public const string UpdateDefaultWarrantyProvider = "UpdateDefaultWarrantyProvider";
|
public const string UpdateDefaultWarrantyProvider = "UpdateDefaultWarrantyProvider";
|
||||||
public const string UpdateDefaultRepairProvider = "UpdateDefaultRepairProvider";
|
public const string UpdateDefaultRepairProvider = "UpdateDefaultRepairProvider";
|
||||||
@@ -202,6 +218,26 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public readonly string Description = "Description";
|
public readonly string Description = "Description";
|
||||||
public readonly string redirect = "redirect";
|
public readonly string redirect = "redirect";
|
||||||
}
|
}
|
||||||
|
static readonly ActionParamsClass_UpdateManufacturer s_params_UpdateManufacturer = new ActionParamsClass_UpdateManufacturer();
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public ActionParamsClass_UpdateManufacturer UpdateManufacturerParams { get { return s_params_UpdateManufacturer; } }
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public class ActionParamsClass_UpdateManufacturer
|
||||||
|
{
|
||||||
|
public readonly string id = "id";
|
||||||
|
public readonly string manufacturer = "manufacturer";
|
||||||
|
public readonly string redirect = "redirect";
|
||||||
|
}
|
||||||
|
static readonly ActionParamsClass_UpdateModel s_params_UpdateModel = new ActionParamsClass_UpdateModel();
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public ActionParamsClass_UpdateModel UpdateModelParams { get { return s_params_UpdateModel; } }
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public class ActionParamsClass_UpdateModel
|
||||||
|
{
|
||||||
|
public readonly string id = "id";
|
||||||
|
public readonly string model = "model";
|
||||||
|
public readonly string redirect = "redirect";
|
||||||
|
}
|
||||||
static readonly ActionParamsClass_UpdateDefaultPurchaseDate s_params_UpdateDefaultPurchaseDate = new ActionParamsClass_UpdateDefaultPurchaseDate();
|
static readonly ActionParamsClass_UpdateDefaultPurchaseDate s_params_UpdateDefaultPurchaseDate = new ActionParamsClass_UpdateDefaultPurchaseDate();
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public ActionParamsClass_UpdateDefaultPurchaseDate UpdateDefaultPurchaseDateParams { get { return s_params_UpdateDefaultPurchaseDate; } }
|
public ActionParamsClass_UpdateDefaultPurchaseDate UpdateDefaultPurchaseDateParams { get { return s_params_UpdateDefaultPurchaseDate; } }
|
||||||
@@ -345,6 +381,34 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
return callInfo;
|
return callInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
partial void UpdateManufacturerOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string manufacturer, bool redirect);
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
public override System.Web.Mvc.ActionResult UpdateManufacturer(int id, string manufacturer, bool redirect)
|
||||||
|
{
|
||||||
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateManufacturer);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "manufacturer", manufacturer);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect);
|
||||||
|
UpdateManufacturerOverride(callInfo, id, manufacturer, redirect);
|
||||||
|
return callInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
partial void UpdateModelOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string model, bool redirect);
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
public override System.Web.Mvc.ActionResult UpdateModel(int id, string model, bool redirect)
|
||||||
|
{
|
||||||
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateModel);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "model", model);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect);
|
||||||
|
UpdateModelOverride(callInfo, id, model, redirect);
|
||||||
|
return callInfo;
|
||||||
|
}
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
partial void UpdateDefaultPurchaseDateOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string DefaultPurchaseDate, bool redirect);
|
partial void UpdateDefaultPurchaseDateOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string DefaultPurchaseDate, bool redirect);
|
||||||
|
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
public class ActionNamesClass
|
public class ActionNamesClass
|
||||||
{
|
{
|
||||||
public readonly string Index = "Index";
|
public readonly string Index = "Index";
|
||||||
|
public readonly string Create = "Create";
|
||||||
public readonly string GenericComponents = "GenericComponents";
|
public readonly string GenericComponents = "GenericComponents";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,6 +90,7 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
public class ActionNameConstants
|
public class ActionNameConstants
|
||||||
{
|
{
|
||||||
public const string Index = "Index";
|
public const string Index = "Index";
|
||||||
|
public const string Create = "Create";
|
||||||
public const string GenericComponents = "GenericComponents";
|
public const string GenericComponents = "GenericComponents";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,6 +103,14 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
{
|
{
|
||||||
public readonly string id = "id";
|
public readonly string id = "id";
|
||||||
}
|
}
|
||||||
|
static readonly ActionParamsClass_Create s_params_Create = new ActionParamsClass_Create();
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public ActionParamsClass_Create CreateParams { get { return s_params_Create; } }
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public class ActionParamsClass_Create
|
||||||
|
{
|
||||||
|
public readonly string model = "model";
|
||||||
|
}
|
||||||
static readonly ViewsClass s_views = new ViewsClass();
|
static readonly ViewsClass s_views = new ViewsClass();
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public ViewsClass Views { get { return s_views; } }
|
public ViewsClass Views { get { return s_views; } }
|
||||||
@@ -112,11 +122,13 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
public class _ViewNamesClass
|
public class _ViewNamesClass
|
||||||
{
|
{
|
||||||
public readonly string _DeviceComponentsTable = "_DeviceComponentsTable";
|
public readonly string _DeviceComponentsTable = "_DeviceComponentsTable";
|
||||||
|
public readonly string Create = "Create";
|
||||||
public readonly string GenericComponents = "GenericComponents";
|
public readonly string GenericComponents = "GenericComponents";
|
||||||
public readonly string Index = "Index";
|
public readonly string Index = "Index";
|
||||||
public readonly string Show = "Show";
|
public readonly string Show = "Show";
|
||||||
}
|
}
|
||||||
public readonly string _DeviceComponentsTable = "~/Areas/Config/Views/DeviceModel/_DeviceComponentsTable.cshtml";
|
public readonly string _DeviceComponentsTable = "~/Areas/Config/Views/DeviceModel/_DeviceComponentsTable.cshtml";
|
||||||
|
public readonly string Create = "~/Areas/Config/Views/DeviceModel/Create.cshtml";
|
||||||
public readonly string GenericComponents = "~/Areas/Config/Views/DeviceModel/GenericComponents.cshtml";
|
public readonly string GenericComponents = "~/Areas/Config/Views/DeviceModel/GenericComponents.cshtml";
|
||||||
public readonly string Index = "~/Areas/Config/Views/DeviceModel/Index.cshtml";
|
public readonly string Index = "~/Areas/Config/Views/DeviceModel/Index.cshtml";
|
||||||
public readonly string Show = "~/Areas/Config/Views/DeviceModel/Show.cshtml";
|
public readonly string Show = "~/Areas/Config/Views/DeviceModel/Show.cshtml";
|
||||||
@@ -140,6 +152,29 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
return callInfo;
|
return callInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
partial void CreateOverride(T4MVC_System_Web_Mvc_ActionResult callInfo);
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
public override System.Web.Mvc.ActionResult Create()
|
||||||
|
{
|
||||||
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Create);
|
||||||
|
CreateOverride(callInfo);
|
||||||
|
return callInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
partial void CreateOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, Disco.Web.Areas.Config.Models.DeviceModel.CreateModel model);
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
public override System.Web.Mvc.ActionResult Create(Disco.Web.Areas.Config.Models.DeviceModel.CreateModel model)
|
||||||
|
{
|
||||||
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Create);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "model", model);
|
||||||
|
CreateOverride(callInfo, model);
|
||||||
|
return callInfo;
|
||||||
|
}
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
partial void GenericComponentsOverride(T4MVC_System_Web_Mvc_ActionResult callInfo);
|
partial void GenericComponentsOverride(T4MVC_System_Web_Mvc_ActionResult callInfo);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user