feature: device document template bulk generation
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Globalization;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace Disco.Models.Repository
|
namespace Disco.Models.Repository
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Disco.Models.Services.Authorization;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Disco.Models.Services.Authorization;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
|||||||
@@ -7,13 +7,22 @@ namespace Disco.Models.UI.Config.DocumentTemplate
|
|||||||
Repository.DocumentTemplate DocumentTemplate { get; set; }
|
Repository.DocumentTemplate DocumentTemplate { get; set; }
|
||||||
int TemplatePageCount { get; set; }
|
int TemplatePageCount { get; set; }
|
||||||
|
|
||||||
List<ItemWithCount<Repository.UserFlag>> UserFlags { get; set; }
|
|
||||||
List<ItemWithCount<Repository.DeviceProfile>> DeviceProfiles { get; set; }
|
List<ItemWithCount<Repository.DeviceProfile>> DeviceProfiles { get; set; }
|
||||||
List<ItemWithCount<Repository.DeviceBatch>> DeviceBatches { get; set; }
|
List<ItemWithCount<Repository.DeviceBatch>> DeviceBatches { get; set; }
|
||||||
List<ItemWithCount<Repository.DocumentTemplate>> DocumentTemplates { get; set; }
|
List<ItemWithCount<Repository.DocumentTemplate>> DocumentTemplates { get; set; }
|
||||||
List<ItemWithCount<string>> UserDetails { get; set; }
|
List<ItemWithCount<string>> UserDetails { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface ConfigDocumentTemplateBulkGenerateUser : ConfigDocumentTemplateBulkGenerate
|
||||||
|
{
|
||||||
|
List<ItemWithCount<Repository.UserFlag>> UserFlags { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface ConfigDocumentTemplateBulkGenerateDevice : ConfigDocumentTemplateBulkGenerate
|
||||||
|
{
|
||||||
|
List<ItemWithCount<Repository.DeviceFlag>> DeviceFlags { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class ItemWithCount<T>
|
public class ItemWithCount<T>
|
||||||
{
|
{
|
||||||
public T Item { get; set; }
|
public T Item { get; set; }
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using Disco.Data.Repository;
|
using Disco.Data.Repository;
|
||||||
using Disco.Models.Repository;
|
using Disco.Models.Repository;
|
||||||
using Disco.Services.Authorization;
|
|
||||||
using Disco.Services.Devices.DeviceFlags;
|
using Disco.Services.Devices.DeviceFlags;
|
||||||
using Disco.Services.Expressions;
|
using Disco.Services.Expressions;
|
||||||
using Disco.Services.Logging;
|
using Disco.Services.Logging;
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
using Disco.Data.Repository;
|
using Disco.Data.Repository;
|
||||||
using Disco.Models.Repository;
|
using Disco.Models.Repository;
|
||||||
using Disco.Models.Services.Documents;
|
using Disco.Models.Services.Documents;
|
||||||
using Disco.Models.UI.Config.DocumentTemplate;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Disco.Data.Repository;
|
using Disco.Data.Repository;
|
||||||
using Disco.Models.Services.Interop.DiscoServices;
|
|
||||||
using Disco.Services.Interop.DiscoServices;
|
using Disco.Services.Interop.DiscoServices;
|
||||||
using Disco.Services.Tasks;
|
using Disco.Services.Tasks;
|
||||||
using Quartz;
|
using Quartz;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using Disco.Data.Repository;
|
using Disco.Data.Repository;
|
||||||
using Disco.Models.Repository;
|
using Disco.Models.Repository;
|
||||||
using Disco.Services.Authorization;
|
|
||||||
using Disco.Services.Expressions;
|
using Disco.Services.Expressions;
|
||||||
using Disco.Services.Logging;
|
using Disco.Services.Logging;
|
||||||
using Disco.Services.Users;
|
using Disco.Services.Users;
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Disco.Models.BI.Config;
|
using Disco.Models.BI.Config;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Web.Mvc;
|
using System.Web.Mvc;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ using Disco.Services.Devices.DeviceFlags;
|
|||||||
using Disco.Services.Exporting;
|
using Disco.Services.Exporting;
|
||||||
using Disco.Services.Interop.ActiveDirectory;
|
using Disco.Services.Interop.ActiveDirectory;
|
||||||
using Disco.Services.Tasks;
|
using Disco.Services.Tasks;
|
||||||
using Disco.Services.Users.UserFlags;
|
|
||||||
using Disco.Services.Web;
|
using Disco.Services.Web;
|
||||||
using Disco.Web.Areas.API.Models.Shared;
|
using Disco.Web.Areas.API.Models.Shared;
|
||||||
using Disco.Web.Areas.Config.Models.DeviceFlag;
|
using Disco.Web.Areas.Config.Models.DeviceFlag;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,5 @@
|
|||||||
using Disco.Models.Repository;
|
using Disco.Models.Repository;
|
||||||
using Disco.Services;
|
using Disco.Services;
|
||||||
using Disco.Services.Authorization;
|
|
||||||
using Disco.Services.Web;
|
using Disco.Services.Web;
|
||||||
using System;
|
using System;
|
||||||
using System.Data.Entity;
|
using System.Data.Entity;
|
||||||
|
|||||||
+3
-3
@@ -1,11 +1,11 @@
|
|||||||
namespace Disco.Web.Areas.API.Models.DocumentTemplate
|
namespace Disco.Web.Areas.API.Models.DocumentTemplate
|
||||||
{
|
{
|
||||||
public class BulkGenerateUserModel
|
public class BulkGenerateItemModel
|
||||||
{
|
{
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
public string UserEmailAddress { get; set; }
|
public string UserEmailAddress { get; set; }
|
||||||
public string DisplayName { get; set; }
|
public string UserDisplayName { get; set; }
|
||||||
public string Scope { get; set; }
|
public string Scope { get; set; }
|
||||||
public bool IsError { get; set; }
|
public bool IsError { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
using Disco.Models.UI.Config.DeviceBatch;
|
using Disco.Models.UI.Config.DeviceBatch;
|
||||||
using Disco.Services;
|
using Disco.Services;
|
||||||
using Disco.Services.Authorization;
|
using Disco.Services.Authorization;
|
||||||
using Disco.Services.Devices;
|
|
||||||
using Disco.Services.Devices.ManagedGroups;
|
using Disco.Services.Devices.ManagedGroups;
|
||||||
using Disco.Services.Plugins.Features.UIExtension;
|
using Disco.Services.Plugins.Features.UIExtension;
|
||||||
using Disco.Services.Web;
|
using Disco.Services.Web;
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Disco.Models.Areas.Config.UI.DeviceFlag;
|
using Disco.Models.Areas.Config.UI.DeviceFlag;
|
||||||
using Disco.Models.Repository;
|
|
||||||
using Disco.Models.Services.Devices.DeviceFlag;
|
using Disco.Models.Services.Devices.DeviceFlag;
|
||||||
using Disco.Models.UI.Config.DeviceFlag;
|
using Disco.Models.UI.Config.DeviceFlag;
|
||||||
using Disco.Services.Authorization;
|
using Disco.Services.Authorization;
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ModelState.AddModelError("Id", "A Document Template Package with this Id already exists.");
|
ModelState.AddModelError(nameof(model.Id), "A Document Template Package with this Id already exists.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,67 +219,134 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
return View(model);
|
return View(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ConfigDocumentTemplateBulkGenerate BuildBulkGenerateModel(DocumentTemplate documentTemplate, DiscoDataContext database, AuthorizationToken authorization)
|
public static (string viewName, ConfigDocumentTemplateBulkGenerate model) BuildBulkGenerateModel(DocumentTemplate documentTemplate, DiscoDataContext database, AuthorizationToken authorization)
|
||||||
{
|
{
|
||||||
var model = new BulkGenerateModel()
|
BulkGenerateModel model;
|
||||||
{
|
string viewName;
|
||||||
DocumentTemplate = documentTemplate,
|
|
||||||
};
|
|
||||||
|
|
||||||
model.TemplatePageCount = model.DocumentTemplate.PdfPageHasAttachmentId(database).Count;
|
if (documentTemplate.Scope == DocumentTemplate.DocumentTemplateScopes.User)
|
||||||
model.UserFlags = database.UserFlags.Select(f => new ItemWithCount<UserFlag>()
|
|
||||||
{
|
{
|
||||||
Item = f,
|
authorization.Require(Claims.User.Actions.GenerateDocuments);
|
||||||
Count = f.UserFlagAssignments.Where(a => a.RemovedDate == null).Count(),
|
model = new BulkGenerateUserModel()
|
||||||
}).ToList();
|
|
||||||
model.DeviceProfiles = database.DeviceProfiles.Select(p => new ItemWithCount<DeviceProfile>()
|
|
||||||
{
|
|
||||||
Item = p,
|
|
||||||
Count = p.Devices.Where(d => d.AssignedUserId != null).Count(),
|
|
||||||
}).ToList();
|
|
||||||
model.DeviceBatches = database.DeviceBatches.Select(p => new ItemWithCount<DeviceBatch>()
|
|
||||||
{
|
|
||||||
Item = p,
|
|
||||||
Count = p.Devices.Where(d => d.AssignedUserId != null).Count(),
|
|
||||||
}).ToList();
|
|
||||||
model.DocumentTemplates = database.DocumentTemplates.Select(dt => new ItemWithCount<DocumentTemplate>()
|
|
||||||
{
|
|
||||||
Item = dt,
|
|
||||||
}).ToList();
|
|
||||||
foreach (var record in model.DocumentTemplates)
|
|
||||||
{
|
|
||||||
switch (record.Item.AttachmentType)
|
|
||||||
{
|
{
|
||||||
case AttachmentTypes.Device:
|
UserFlags = database.UserFlags.Select(f => new ItemWithCount<UserFlag>()
|
||||||
record.Count = database.DeviceAttachments.Where(a => a.DocumentTemplateId == record.Item.Id).Select(a => a.Device.AssignedUser).Distinct().Count();
|
{
|
||||||
break;
|
Item = f,
|
||||||
case AttachmentTypes.Job:
|
Count = f.UserFlagAssignments.Where(a => a.RemovedDate == null).Count(),
|
||||||
record.Count = database.JobAttachments.Where(a => a.DocumentTemplateId == record.Item.Id).Select(a => a.Job.User).Distinct().Count();
|
}).ToList(),
|
||||||
break;
|
};
|
||||||
case AttachmentTypes.User:
|
model.DeviceProfiles = database.DeviceProfiles.Select(p => new ItemWithCount<DeviceProfile>()
|
||||||
record.Count = database.UserAttachments.Where(a => a.DocumentTemplateId == record.Item.Id).Select(a => a.User).Distinct().Count();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw new NotSupportedException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (authorization.Has(Claims.User.ShowDetails))
|
|
||||||
{
|
|
||||||
model.UserDetails = database.UserDetails.Where(d => d.Scope == "Details").GroupBy(d => d.Key).Select(g => new ItemWithCount<string>()
|
|
||||||
{
|
{
|
||||||
Item = g.Key,
|
Item = p,
|
||||||
Count = g.Count(),
|
Count = p.Devices.Where(d => d.AssignedUserId != null).Count(),
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
model.DeviceBatches = database.DeviceBatches.Select(p => new ItemWithCount<DeviceBatch>()
|
||||||
|
{
|
||||||
|
Item = p,
|
||||||
|
Count = p.Devices.Where(d => d.AssignedUserId != null).Count(),
|
||||||
|
}).ToList();
|
||||||
|
model.DocumentTemplates = database.DocumentTemplates.Select(dt => new ItemWithCount<DocumentTemplate>()
|
||||||
|
{
|
||||||
|
Item = dt,
|
||||||
|
}).ToList();
|
||||||
|
foreach (var record in model.DocumentTemplates)
|
||||||
|
{
|
||||||
|
switch (record.Item.AttachmentType)
|
||||||
|
{
|
||||||
|
case AttachmentTypes.Device:
|
||||||
|
record.Count = database.DeviceAttachments.Where(a => a.DocumentTemplateId == record.Item.Id).Select(a => a.Device.AssignedUser).Distinct().Count();
|
||||||
|
break;
|
||||||
|
case AttachmentTypes.Job:
|
||||||
|
record.Count = database.JobAttachments.Where(a => a.DocumentTemplateId == record.Item.Id).Select(a => a.Job.User).Distinct().Count();
|
||||||
|
break;
|
||||||
|
case AttachmentTypes.User:
|
||||||
|
record.Count = database.UserAttachments.Where(a => a.DocumentTemplateId == record.Item.Id).Select(a => a.User).Distinct().Count();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new NotSupportedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (authorization.Has(Claims.User.ShowDetails))
|
||||||
|
{
|
||||||
|
model.UserDetails = database.UserDetails.Where(d => d.Scope == "Details").GroupBy(d => d.Key).Select(g => new ItemWithCount<string>()
|
||||||
|
{
|
||||||
|
Item = g.Key,
|
||||||
|
Count = g.Count(),
|
||||||
|
}).ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
model.UserDetails = new List<ItemWithCount<string>>();
|
||||||
|
}
|
||||||
|
viewName = MVC.Config.DocumentTemplate.Views.BulkGenerateUser;
|
||||||
|
}
|
||||||
|
else if (documentTemplate.Scope == DocumentTemplate.DocumentTemplateScopes.Device)
|
||||||
|
{
|
||||||
|
authorization.Require(Claims.Device.Actions.GenerateDocuments);
|
||||||
|
model = new BulkGenerateDeviceModel()
|
||||||
|
{
|
||||||
|
DeviceFlags = database.DeviceFlags.Select(f => new ItemWithCount<DeviceFlag>()
|
||||||
|
{
|
||||||
|
Item = f,
|
||||||
|
Count = f.DeviceFlagAssignments.Where(a => a.RemovedDate == null).Count(),
|
||||||
|
}).ToList(),
|
||||||
|
};
|
||||||
|
model.DeviceProfiles = database.DeviceProfiles.Select(p => new ItemWithCount<DeviceProfile>()
|
||||||
|
{
|
||||||
|
Item = p,
|
||||||
|
Count = p.Devices.Count(),
|
||||||
|
}).ToList();
|
||||||
|
model.DeviceBatches = database.DeviceBatches.Select(p => new ItemWithCount<DeviceBatch>()
|
||||||
|
{
|
||||||
|
Item = p,
|
||||||
|
Count = p.Devices.Count(),
|
||||||
|
}).ToList();
|
||||||
|
model.DocumentTemplates = database.DocumentTemplates.Select(dt => new ItemWithCount<DocumentTemplate>()
|
||||||
|
{
|
||||||
|
Item = dt,
|
||||||
|
}).ToList();
|
||||||
|
foreach (var record in model.DocumentTemplates)
|
||||||
|
{
|
||||||
|
switch (record.Item.AttachmentType)
|
||||||
|
{
|
||||||
|
case AttachmentTypes.Device:
|
||||||
|
record.Count = database.DeviceAttachments.Where(a => a.DocumentTemplateId == record.Item.Id).Select(a => a.Device).Distinct().Count();
|
||||||
|
break;
|
||||||
|
case AttachmentTypes.Job:
|
||||||
|
record.Count = database.JobAttachments.Where(a => a.DocumentTemplateId == record.Item.Id).Select(a => a.Job.Device).Distinct().Count();
|
||||||
|
break;
|
||||||
|
case AttachmentTypes.User:
|
||||||
|
record.Count = database.UserAttachments.Where(a => a.DocumentTemplateId == record.Item.Id).SelectMany(a => a.User.DeviceUserAssignments).Where(a => a.UnassignedDate == null).Select(a => a.DeviceSerialNumber).Distinct().Count();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new NotSupportedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (authorization.Has(Claims.User.ShowDetails))
|
||||||
|
{
|
||||||
|
model.UserDetails = database.UserDetails.Where(d => d.Scope == "Details").GroupBy(d => d.Key).Select(g => new ItemWithCount<string>()
|
||||||
|
{
|
||||||
|
Item = g.Key,
|
||||||
|
Count = g.Select(i => i.User).SelectMany(u => u.DeviceUserAssignments).Where(a => a.UnassignedDate == null).Count(),
|
||||||
|
}).ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
model.UserDetails = new List<ItemWithCount<string>>();
|
||||||
|
}
|
||||||
|
viewName = MVC.Config.DocumentTemplate.Views.BulkGenerateDevice;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
throw new NotSupportedException("Only user and device scoped document templates can be bulk generated using this method");
|
||||||
model.UserDetails = new List<ItemWithCount<string>>();
|
|
||||||
}
|
|
||||||
|
|
||||||
return model;
|
model.DocumentTemplate = documentTemplate;
|
||||||
|
|
||||||
|
model.TemplatePageCount = model.DocumentTemplate.PdfPageHasAttachmentId(database).Count;
|
||||||
|
|
||||||
|
return (viewName, model);
|
||||||
}
|
}
|
||||||
|
|
||||||
[DiscoAuthorizeAll(Claims.Config.DocumentTemplate.BulkGenerate, Claims.User.Actions.GenerateDocuments)]
|
[DiscoAuthorizeAll(Claims.Config.DocumentTemplate.BulkGenerate)]
|
||||||
public virtual ActionResult BulkGenerate(string id)
|
public virtual ActionResult BulkGenerate(string id)
|
||||||
{
|
{
|
||||||
var documentTemplate = Database.DocumentTemplates.FirstOrDefault(at => at.Id == id);
|
var documentTemplate = Database.DocumentTemplates.FirstOrDefault(at => at.Id == id);
|
||||||
@@ -287,16 +354,15 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
if (documentTemplate == null)
|
if (documentTemplate == null)
|
||||||
throw new ArgumentException("Invalid Document Template Id", nameof(id));
|
throw new ArgumentException("Invalid Document Template Id", nameof(id));
|
||||||
|
|
||||||
if (documentTemplate.Scope != DocumentTemplate.DocumentTemplateScopes.User)
|
if (documentTemplate.Scope != DocumentTemplate.DocumentTemplateScopes.User && documentTemplate.Scope != DocumentTemplate.DocumentTemplateScopes.Device)
|
||||||
throw new NotSupportedException("Only user-scoped document templates can be bulk generated using this method");
|
throw new NotSupportedException("Only user-scoped document templates can be bulk generated using this method");
|
||||||
|
|
||||||
|
var (viewName, model) = BuildBulkGenerateModel(documentTemplate, Database, Authorization);
|
||||||
var model = BuildBulkGenerateModel(documentTemplate, Database, Authorization);
|
|
||||||
|
|
||||||
// UI Extensions
|
// UI Extensions
|
||||||
UIExtensions.ExecuteExtensions(ControllerContext, model);
|
UIExtensions.ExecuteExtensions(ControllerContext, model);
|
||||||
|
|
||||||
return View(MVC.Config.DocumentTemplate.Views.BulkGenerate, model);
|
return View(viewName, model);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Disco.Models.Repository;
|
using Disco.Models.Services.Jobs.JobQueues;
|
||||||
using Disco.Models.Services.Jobs.JobQueues;
|
|
||||||
using Disco.Models.UI.Config.JobQueue;
|
using Disco.Models.UI.Config.JobQueue;
|
||||||
using Disco.Services.Authorization;
|
using Disco.Services.Authorization;
|
||||||
using Disco.Services.Extensions;
|
using Disco.Services.Extensions;
|
||||||
|
|||||||
@@ -7,10 +7,19 @@ namespace Disco.Web.Areas.Config.Models.DocumentTemplate
|
|||||||
{
|
{
|
||||||
public Disco.Models.Repository.DocumentTemplate DocumentTemplate { get; set; }
|
public Disco.Models.Repository.DocumentTemplate DocumentTemplate { get; set; }
|
||||||
public int TemplatePageCount { get; set; }
|
public int TemplatePageCount { get; set; }
|
||||||
public List<ItemWithCount<Disco.Models.Repository.UserFlag>> UserFlags { get; set; }
|
|
||||||
public List<ItemWithCount<Disco.Models.Repository.DeviceProfile>> DeviceProfiles { get; set; }
|
public List<ItemWithCount<Disco.Models.Repository.DeviceProfile>> DeviceProfiles { get; set; }
|
||||||
public List<ItemWithCount<Disco.Models.Repository.DeviceBatch>> DeviceBatches { get; set; }
|
public List<ItemWithCount<Disco.Models.Repository.DeviceBatch>> DeviceBatches { get; set; }
|
||||||
public List<ItemWithCount<Disco.Models.Repository.DocumentTemplate>> DocumentTemplates { get; set; }
|
public List<ItemWithCount<Disco.Models.Repository.DocumentTemplate>> DocumentTemplates { get; set; }
|
||||||
public List<ItemWithCount<string>> UserDetails { get; set; }
|
public List<ItemWithCount<string>> UserDetails { get; set; }
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public class BulkGenerateUserModel : BulkGenerateModel, ConfigDocumentTemplateBulkGenerateUser
|
||||||
|
{
|
||||||
|
public List<ItemWithCount<Disco.Models.Repository.UserFlag>> UserFlags { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BulkGenerateDeviceModel : BulkGenerateModel, ConfigDocumentTemplateBulkGenerateDevice
|
||||||
|
{
|
||||||
|
public List<ItemWithCount<Disco.Models.Repository.DeviceFlag>> DeviceFlags { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,61 @@
|
|||||||
|
@model Disco.Web.Areas.Config.Models.DocumentTemplate.BulkGenerateDeviceModel
|
||||||
|
@{
|
||||||
|
Authorization.RequireAll(Claims.Config.DocumentTemplate.BulkGenerate, Claims.User.Actions.GenerateDocuments);
|
||||||
|
|
||||||
|
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Document Templates", MVC.Config.DocumentTemplate.Index(null), Model.DocumentTemplate.Description, MVC.Config.DocumentTemplate.Index(Model.DocumentTemplate.Id), "Bulk Generate");
|
||||||
|
Html.BundleDeferred("~/ClientScripts/Modules/Disco-DocumentBulkGenerate");
|
||||||
|
}
|
||||||
|
<div id="DocumentTemplate_BulkGenerate">
|
||||||
|
<div class="actions">
|
||||||
|
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerate(Model.DocumentTemplate.Id)))
|
||||||
|
{
|
||||||
|
if (Model.TemplatePageCount > 1 && Model.TemplatePageCount % 2 != 0)
|
||||||
|
{
|
||||||
|
<input id="DocumentTemplate_BulkGenerate_InsertBlankPage" type="checkbox" name="InsertBlankPage" value="True" checked /><label for="DocumentTemplate_BulkGenerate_InsertBlankPage">Insert Blank Pages for Double-Sided Printing</label>
|
||||||
|
}
|
||||||
|
<input id="DocumentTemplate_BulkGenerate_DataIds" name="DataIds" type="hidden" />
|
||||||
|
<button id="BulkGenerate" class="button" disabled>Bulk Generate</button>
|
||||||
|
@Html.AntiForgeryToken()
|
||||||
|
}
|
||||||
|
<br />
|
||||||
|
<button id="AddDevices" class="button small">Add Devices</button>
|
||||||
|
@if (Model.DeviceFlags.Any(f => f.Count > 0))
|
||||||
|
{
|
||||||
|
<button id="AddDeviceFlag" class="button small">Add With Device Flag</button>
|
||||||
|
}
|
||||||
|
@if (Model.DeviceProfiles.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
<button id="AddDeviceProfile" class="button small">Add With Device Profile</button>
|
||||||
|
}
|
||||||
|
@if (Model.DeviceBatches.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
<button id="AddDeviceBatch" class="button small">Add With Device Batch</button>
|
||||||
|
}
|
||||||
|
@if (Model.DocumentTemplates.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
<button id="AddDocumentAttachment" class="button small">Add With Document Attachment</button>
|
||||||
|
}
|
||||||
|
<button id="AddUsers" class="button small">Add With Assigned User</button>
|
||||||
|
@if (Model.UserDetails.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
<button id="AddUserDetail" class="button small">Add With Assigned User Detail</button>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
<table id="DocumentTemplate_BulkGenerate_Records" class="genericData" data-scope="device">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th> </th>
|
||||||
|
<th>Serial Number</th>
|
||||||
|
<th class="name"> </th>
|
||||||
|
<th>Scope</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="when-none">
|
||||||
|
<td colspan="4">Add Devices</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@Html.Partial(MVC.Config.DocumentTemplate.Views._BulkGenerateShared, Model)
|
||||||
@@ -0,0 +1,332 @@
|
|||||||
|
#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.DocumentTemplate
|
||||||
|
{
|
||||||
|
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/DocumentTemplate/BulkGenerateDevice.cshtml")]
|
||||||
|
public partial class BulkGenerateDevice : Disco.Services.Web.WebViewPage<Disco.Web.Areas.Config.Models.DocumentTemplate.BulkGenerateDeviceModel>
|
||||||
|
{
|
||||||
|
public BulkGenerateDevice()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public override void Execute()
|
||||||
|
{
|
||||||
|
|
||||||
|
#line 2 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
|
||||||
|
Authorization.RequireAll(Claims.Config.DocumentTemplate.BulkGenerate, Claims.User.Actions.GenerateDocuments);
|
||||||
|
|
||||||
|
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Document Templates", MVC.Config.DocumentTemplate.Index(null), Model.DocumentTemplate.Description, MVC.Config.DocumentTemplate.Index(Model.DocumentTemplate.Id), "Bulk Generate");
|
||||||
|
Html.BundleDeferred("~/ClientScripts/Modules/Disco-DocumentBulkGenerate");
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("\r\n<div");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"DocumentTemplate_BulkGenerate\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <div");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"actions\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 10 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 10 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerate(Model.DocumentTemplate.Id)))
|
||||||
|
{
|
||||||
|
if (Model.TemplatePageCount > 1 && Model.TemplatePageCount % 2 != 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <input");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"DocumentTemplate_BulkGenerate_InsertBlankPage\"");
|
||||||
|
|
||||||
|
WriteLiteral(" type=\"checkbox\"");
|
||||||
|
|
||||||
|
WriteLiteral(" name=\"InsertBlankPage\"");
|
||||||
|
|
||||||
|
WriteLiteral(" value=\"True\"");
|
||||||
|
|
||||||
|
WriteLiteral(" checked />");
|
||||||
|
|
||||||
|
WriteLiteral("<label");
|
||||||
|
|
||||||
|
WriteLiteral(" for=\"DocumentTemplate_BulkGenerate_InsertBlankPage\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Insert Blank Pages for Double-Sided Printing</label>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 15 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <input");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"DocumentTemplate_BulkGenerate_DataIds\"");
|
||||||
|
|
||||||
|
WriteLiteral(" name=\"DataIds\"");
|
||||||
|
|
||||||
|
WriteLiteral(" type=\"hidden\"");
|
||||||
|
|
||||||
|
WriteLiteral(" />\r\n");
|
||||||
|
|
||||||
|
WriteLiteral(" <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"BulkGenerate\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button\"");
|
||||||
|
|
||||||
|
WriteLiteral(" disabled>Bulk Generate</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 18 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 18 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
Write(Html.AntiForgeryToken());
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 18 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <br />\r\n <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddDevices\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add Devices</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 22 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 22 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
if (Model.DeviceFlags.Any(f => f.Count > 0))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddDeviceFlag\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add With Device Flag</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 25 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" ");
|
||||||
|
|
||||||
|
|
||||||
|
#line 26 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
if (Model.DeviceProfiles.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddDeviceProfile\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add With Device Profile</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 29 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" ");
|
||||||
|
|
||||||
|
|
||||||
|
#line 30 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
if (Model.DeviceBatches.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddDeviceBatch\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add With Device Batch</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 33 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" ");
|
||||||
|
|
||||||
|
|
||||||
|
#line 34 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
if (Model.DocumentTemplates.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddDocumentAttachment\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add With Document Attachment</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 37 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddUsers\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add With Assigned User</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 39 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 39 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
if (Model.UserDetails.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddUserDetail\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add With Assigned User Detail</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 42 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" </div>\r\n <table");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"DocumentTemplate_BulkGenerate_Records\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"genericData\"");
|
||||||
|
|
||||||
|
WriteLiteral(" data-scope=\"device\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <thead>\r\n <tr>\r\n <th> </th>\r\n " +
|
||||||
|
" <th>Serial Number</th>\r\n <th");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"name\"");
|
||||||
|
|
||||||
|
WriteLiteral("> </th>\r\n <th>Scope</th>\r\n </tr>\r\n </thead>" +
|
||||||
|
"\r\n <tbody>\r\n <tr");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"when-none\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <td");
|
||||||
|
|
||||||
|
WriteLiteral(" colspan=\"4\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add Devices</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 61 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml"
|
||||||
|
Write(Html.Partial(MVC.Config.DocumentTemplate.Views._BulkGenerateShared, Model));
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("\r\n");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#pragma warning restore 1591
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
@model Disco.Web.Areas.Config.Models.DocumentTemplate.BulkGenerateUserModel
|
||||||
|
@using Disco.Services.Interop.ActiveDirectory;
|
||||||
|
@{
|
||||||
|
Authorization.RequireAll(Claims.Config.DocumentTemplate.BulkGenerate, Claims.User.Actions.GenerateDocuments);
|
||||||
|
|
||||||
|
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Document Templates", MVC.Config.DocumentTemplate.Index(null), Model.DocumentTemplate.Description, MVC.Config.DocumentTemplate.Index(Model.DocumentTemplate.Id), "Bulk Generate");
|
||||||
|
Html.BundleDeferred("~/ClientScripts/Modules/Disco-DocumentBulkGenerate");
|
||||||
|
}
|
||||||
|
<div id="DocumentTemplate_BulkGenerate">
|
||||||
|
<div class="actions">
|
||||||
|
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerate(Model.DocumentTemplate.Id)))
|
||||||
|
{
|
||||||
|
if (Model.TemplatePageCount > 1 && Model.TemplatePageCount % 2 != 0)
|
||||||
|
{
|
||||||
|
<input id="DocumentTemplate_BulkGenerate_InsertBlankPage" type="checkbox" name="InsertBlankPage" value="True" checked /><label for="DocumentTemplate_BulkGenerate_InsertBlankPage">Insert Blank Pages for Double-Sided Printing</label>
|
||||||
|
}
|
||||||
|
<input id="DocumentTemplate_BulkGenerate_DataIds" name="DataIds" type="hidden" />
|
||||||
|
<button id="BulkGenerate" class="button" disabled>Bulk Generate</button>
|
||||||
|
@Html.AntiForgeryToken()
|
||||||
|
}
|
||||||
|
<br />
|
||||||
|
<button id="AddUsers" class="button small">Add Users</button>
|
||||||
|
<button id="AddGroupMembers" class="button small">Add Group Members</button>
|
||||||
|
@if (Model.UserFlags.Any(f => f.Count > 0))
|
||||||
|
{
|
||||||
|
<button id="AddUserFlag" class="button small">Add With User Flag</button>
|
||||||
|
}
|
||||||
|
@if (Model.DeviceProfiles.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
<button id="AddDeviceProfile" class="button small">Add With Device Profile</button>
|
||||||
|
}
|
||||||
|
@if (Model.DeviceBatches.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
<button id="AddDeviceBatch" class="button small">Add With Device Batch</button>
|
||||||
|
}
|
||||||
|
@if (Model.DocumentTemplates.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
<button id="AddDocumentAttachment" class="button small">Add With Document Attachment</button>
|
||||||
|
}
|
||||||
|
@if (Model.UserDetails.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
<button id="AddUserDetail" class="button small">Add With User Detail</button>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
<table id="DocumentTemplate_BulkGenerate_Records" class="genericData" data-scope="user">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th> </th>
|
||||||
|
<th>Username</th>
|
||||||
|
<th class="name">Name</th>
|
||||||
|
<th>Scope</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="when-none">
|
||||||
|
<td colspan="4">Add Users</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@Html.Partial(MVC.Config.DocumentTemplate.Views._BulkGenerateShared, Model)
|
||||||
@@ -0,0 +1,332 @@
|
|||||||
|
#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.DocumentTemplate
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
|
||||||
|
#line 2 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
using Disco.Services.Interop.ActiveDirectory;
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
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/DocumentTemplate/BulkGenerateUser.cshtml")]
|
||||||
|
public partial class BulkGenerateUser : Disco.Services.Web.WebViewPage<Disco.Web.Areas.Config.Models.DocumentTemplate.BulkGenerateUserModel>
|
||||||
|
{
|
||||||
|
public BulkGenerateUser()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public override void Execute()
|
||||||
|
{
|
||||||
|
|
||||||
|
#line 3 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
|
||||||
|
Authorization.RequireAll(Claims.Config.DocumentTemplate.BulkGenerate, Claims.User.Actions.GenerateDocuments);
|
||||||
|
|
||||||
|
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Document Templates", MVC.Config.DocumentTemplate.Index(null), Model.DocumentTemplate.Description, MVC.Config.DocumentTemplate.Index(Model.DocumentTemplate.Id), "Bulk Generate");
|
||||||
|
Html.BundleDeferred("~/ClientScripts/Modules/Disco-DocumentBulkGenerate");
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("\r\n<div");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"DocumentTemplate_BulkGenerate\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <div");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"actions\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 11 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 11 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerate(Model.DocumentTemplate.Id)))
|
||||||
|
{
|
||||||
|
if (Model.TemplatePageCount > 1 && Model.TemplatePageCount % 2 != 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <input");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"DocumentTemplate_BulkGenerate_InsertBlankPage\"");
|
||||||
|
|
||||||
|
WriteLiteral(" type=\"checkbox\"");
|
||||||
|
|
||||||
|
WriteLiteral(" name=\"InsertBlankPage\"");
|
||||||
|
|
||||||
|
WriteLiteral(" value=\"True\"");
|
||||||
|
|
||||||
|
WriteLiteral(" checked />");
|
||||||
|
|
||||||
|
WriteLiteral("<label");
|
||||||
|
|
||||||
|
WriteLiteral(" for=\"DocumentTemplate_BulkGenerate_InsertBlankPage\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Insert Blank Pages for Double-Sided Printing</label>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 16 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <input");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"DocumentTemplate_BulkGenerate_DataIds\"");
|
||||||
|
|
||||||
|
WriteLiteral(" name=\"DataIds\"");
|
||||||
|
|
||||||
|
WriteLiteral(" type=\"hidden\"");
|
||||||
|
|
||||||
|
WriteLiteral(" />\r\n");
|
||||||
|
|
||||||
|
WriteLiteral(" <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"BulkGenerate\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button\"");
|
||||||
|
|
||||||
|
WriteLiteral(" disabled>Bulk Generate</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 19 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 19 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
Write(Html.AntiForgeryToken());
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 19 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <br />\r\n <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddUsers\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add Users</button>\r\n <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddGroupMembers\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add Group Members</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 24 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 24 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
if (Model.UserFlags.Any(f => f.Count > 0))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddUserFlag\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add With User Flag</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 27 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" ");
|
||||||
|
|
||||||
|
|
||||||
|
#line 28 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
if (Model.DeviceProfiles.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddDeviceProfile\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add With Device Profile</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 31 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" ");
|
||||||
|
|
||||||
|
|
||||||
|
#line 32 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
if (Model.DeviceBatches.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddDeviceBatch\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add With Device Batch</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 35 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" ");
|
||||||
|
|
||||||
|
|
||||||
|
#line 36 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
if (Model.DocumentTemplates.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddDocumentAttachment\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add With Document Attachment</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 39 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" ");
|
||||||
|
|
||||||
|
|
||||||
|
#line 40 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
if (Model.UserDetails.Any(b => b.Count > 0))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <button");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"AddUserDetail\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add With User Detail</button>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 43 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" </div>\r\n <table");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"DocumentTemplate_BulkGenerate_Records\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"genericData\"");
|
||||||
|
|
||||||
|
WriteLiteral(" data-scope=\"user\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <thead>\r\n <tr>\r\n <th> </th>\r\n " +
|
||||||
|
" <th>Username</th>\r\n <th");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"name\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Name</th>\r\n <th>Scope</th>\r\n </tr>\r\n </thead>\r\n" +
|
||||||
|
" <tbody>\r\n <tr");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"when-none\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <td");
|
||||||
|
|
||||||
|
WriteLiteral(" colspan=\"4\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Add Users</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 62 "..\..\Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml"
|
||||||
|
Write(Html.Partial(MVC.Config.DocumentTemplate.Views._BulkGenerateShared, Model));
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("\r\n");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#pragma warning restore 1591
|
||||||
@@ -1039,7 +1039,7 @@
|
|||||||
}
|
}
|
||||||
@if (canBulkGenerate)
|
@if (canBulkGenerate)
|
||||||
{
|
{
|
||||||
if (Model.DocumentTemplate.Scope == DocumentTemplate.DocumentTemplateScopes.User)
|
if (Model.DocumentTemplate.Scope == DocumentTemplate.DocumentTemplateScopes.User || Model.DocumentTemplate.Scope == DocumentTemplate.DocumentTemplateScopes.Device)
|
||||||
{
|
{
|
||||||
@Html.ActionLinkButton("Bulk Generate", MVC.Config.DocumentTemplate.BulkGenerate(Model.DocumentTemplate.Id))
|
@Html.ActionLinkButton("Bulk Generate", MVC.Config.DocumentTemplate.BulkGenerate(Model.DocumentTemplate.Id))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3289,7 +3289,7 @@ WriteLiteral(" ");
|
|||||||
#line 1040 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
|
#line 1040 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
|
||||||
if (canBulkGenerate)
|
if (canBulkGenerate)
|
||||||
{
|
{
|
||||||
if (Model.DocumentTemplate.Scope == DocumentTemplate.DocumentTemplateScopes.User)
|
if (Model.DocumentTemplate.Scope == DocumentTemplate.DocumentTemplateScopes.User || Model.DocumentTemplate.Scope == DocumentTemplate.DocumentTemplateScopes.Device)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
@@ -3328,16 +3328,16 @@ WriteLiteral(" id=\"dialogBulkGenerate\"");
|
|||||||
|
|
||||||
WriteLiteral(" class=\"dialog dialog-bulk-generate\"");
|
WriteLiteral(" class=\"dialog dialog-bulk-generate\"");
|
||||||
|
|
||||||
WriteAttribute("title", Tuple.Create(" title=\"", 62559), Tuple.Create("\"", 62610)
|
WriteAttribute("title", Tuple.Create(" title=\"", 62641), Tuple.Create("\"", 62692)
|
||||||
, Tuple.Create(Tuple.Create("", 62567), Tuple.Create("Bulk", 62567), true)
|
, Tuple.Create(Tuple.Create("", 62649), Tuple.Create("Bulk", 62649), true)
|
||||||
, Tuple.Create(Tuple.Create(" ", 62571), Tuple.Create("Generate:", 62572), true)
|
, Tuple.Create(Tuple.Create(" ", 62653), Tuple.Create("Generate:", 62654), true)
|
||||||
|
|
||||||
#line 1049 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
|
#line 1049 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
|
||||||
, Tuple.Create(Tuple.Create(" ", 62581), Tuple.Create<System.Object, System.Int32>(Model.DocumentTemplate.Id
|
, Tuple.Create(Tuple.Create(" ", 62663), Tuple.Create<System.Object, System.Int32>(Model.DocumentTemplate.Id
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
, 62582), false)
|
, 62664), false)
|
||||||
);
|
);
|
||||||
|
|
||||||
WriteLiteral(">\r\n <div");
|
WriteLiteral(">\r\n <div");
|
||||||
@@ -3631,14 +3631,14 @@ WriteLiteral(" title=\"Download Bulk Documents\"");
|
|||||||
|
|
||||||
WriteLiteral(">\r\n <a");
|
WriteLiteral(">\r\n <a");
|
||||||
|
|
||||||
WriteAttribute("href", Tuple.Create(" href=\"", 67770), Tuple.Create("\"", 67907)
|
WriteAttribute("href", Tuple.Create(" href=\"", 67852), Tuple.Create("\"", 67989)
|
||||||
|
|
||||||
#line 1138 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
|
#line 1138 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
|
||||||
, Tuple.Create(Tuple.Create("", 67777), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.DocumentTemplate.BulkGenerateDownload(Model.BulkGenerateDownloadId.Value, Model.BulkGenerateDownloadFilename))
|
, Tuple.Create(Tuple.Create("", 67859), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.DocumentTemplate.BulkGenerateDownload(Model.BulkGenerateDownloadId.Value, Model.BulkGenerateDownloadFilename))
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
, 67777), false)
|
, 67859), false)
|
||||||
);
|
);
|
||||||
|
|
||||||
WriteLiteral(" class=\"button\"");
|
WriteLiteral(" class=\"button\"");
|
||||||
|
|||||||
+163
-110
@@ -1,119 +1,133 @@
|
|||||||
@model Disco.Web.Areas.Config.Models.DocumentTemplate.BulkGenerateModel
|
@model Disco.Web.Areas.Config.Models.DocumentTemplate.BulkGenerateModel
|
||||||
@using Disco.Services.Interop.ActiveDirectory;
|
@using Disco.Services.Interop.ActiveDirectory;
|
||||||
@{
|
@{
|
||||||
Authorization.RequireAll(Claims.Config.DocumentTemplate.BulkGenerate, Claims.User.Actions.GenerateDocuments);
|
if (Model == null)
|
||||||
|
{
|
||||||
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Document Templates", MVC.Config.DocumentTemplate.Index(null), Model.DocumentTemplate.Description, MVC.Config.DocumentTemplate.Index(Model.DocumentTemplate.Id), "Bulk Generate");
|
throw new ArgumentNullException("Model", "Model cannot be null.");
|
||||||
Html.BundleDeferred("~/ClientScripts/Modules/Disco-DocumentBulkGenerate");
|
}
|
||||||
|
var userModel = Model as Disco.Web.Areas.Config.Models.DocumentTemplate.BulkGenerateUserModel;
|
||||||
|
var deviceModel = Model as Disco.Web.Areas.Config.Models.DocumentTemplate.BulkGenerateDeviceModel;
|
||||||
|
string scope;
|
||||||
|
if (userModel != null)
|
||||||
|
{
|
||||||
|
scope = "user";
|
||||||
|
}
|
||||||
|
else if (deviceModel != null)
|
||||||
|
{
|
||||||
|
scope = "device";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("Unexpected model: " + Model.GetType().FullName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
<div id="DocumentTemplate_BulkGenerate">
|
<div id="DocumentTemplate_BulkGenerate_Dialog_AddUsers" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add by Users">
|
||||||
<div class="actions">
|
|
||||||
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerate(Model.DocumentTemplate.Id)))
|
|
||||||
{
|
|
||||||
if (Model.TemplatePageCount > 1 && Model.TemplatePageCount % 2 != 0)
|
|
||||||
{
|
|
||||||
<input id="DocumentTemplate_BulkGenerate_InsertBlankPage" type="checkbox" name="InsertBlankPage" value="True" checked /><label for="DocumentTemplate_BulkGenerate_InsertBlankPage">Insert Blank Pages for Double-Sided Printing</label>
|
|
||||||
}
|
|
||||||
<input id="DocumentTemplate_BulkGenerate_DataIds" name="DataIds" type="hidden" />
|
|
||||||
<button id="BulkGenerate" class="button" disabled>Bulk Generate</button>
|
|
||||||
@Html.AntiForgeryToken()
|
|
||||||
}
|
|
||||||
<br />
|
|
||||||
<button id="AddUsers" class="button small">Add Users</button>
|
|
||||||
<button id="AddGroupMembers" class="button small">Add Group Members</button>
|
|
||||||
@if (Model.UserFlags.Any(f => f.Count > 0))
|
|
||||||
{
|
|
||||||
<button id="AddUserFlag" class="button small">Add With User Flag</button>
|
|
||||||
}
|
|
||||||
@if (Model.DeviceProfiles.Any(b => b.Count > 0))
|
|
||||||
{
|
|
||||||
<button id="AddDeviceProfile" class="button small">Add With Device Profile</button>
|
|
||||||
}
|
|
||||||
@if (Model.DeviceBatches.Any(b => b.Count > 0))
|
|
||||||
{
|
|
||||||
<button id="AddDeviceBatch" class="button small">Add With Device Batch</button>
|
|
||||||
}
|
|
||||||
@if (Model.DocumentTemplates.Any(b => b.Count > 0))
|
|
||||||
{
|
|
||||||
<button id="AddDocumentAttachment" class="button small">Add With Document Attachment</button>
|
|
||||||
}
|
|
||||||
@if (Model.UserDetails.Any(b => b.Count > 0))
|
|
||||||
{
|
|
||||||
<button id="AddUserDetail" class="button small">Add With User Detail</button>
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
<table class="genericData">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th> </th>
|
|
||||||
<th>Username</th>
|
|
||||||
<th>Name</th>
|
|
||||||
<th>Scope</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="when-none">
|
|
||||||
<td colspan="4">Add Users</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="DocumentTemplate_BulkGenerate_Dialog_AddUsers" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add Users">
|
|
||||||
<div class="brief">
|
<div class="brief">
|
||||||
<div>
|
<div>
|
||||||
Enter multiple <span class="scopeDescBulkGenerate">User Ids</span> separated by <code><new line></code>, commas (<code>,</code>) or semicolons (<code>;</code>).
|
Enter multiple <span class="scopeDescBulkGenerate">User Ids</span> separated by <code><new line></code>, commas (<code>,</code>) or semicolons (<code>;</code>).
|
||||||
</div>
|
</div>
|
||||||
<div>
|
@if (userModel != null)
|
||||||
Security Groups can also be included. Members will be resolved and added.
|
{
|
||||||
</div>
|
<div>
|
||||||
|
Security Groups can also be included. Members will be resolved and added.
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
@if (deviceModel != null)
|
||||||
|
{
|
||||||
|
<div>
|
||||||
|
Devices associated with the users will be added.
|
||||||
|
</div>
|
||||||
|
}
|
||||||
<div class="examples clearfix">
|
<div class="examples clearfix">
|
||||||
<h4>Examples:</h4>
|
<h4>Examples:</h4>
|
||||||
<div class="example1 code">
|
<div class="example1 code">
|
||||||
user6<br />
|
user6<br />
|
||||||
smi0099<br />
|
smi0099<br />
|
||||||
@(ActiveDirectory.Context.PrimaryDomain.NetBiosName)\rsmith<br />
|
@(ActiveDirectory.Context.PrimaryDomain.NetBiosName)\rsmith<br />
|
||||||
Domain Admins
|
@if (userModel != null)
|
||||||
|
{
|
||||||
|
<text>Domain Admins</text>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
<div class="example2 code">
|
||||||
|
user6,smi0099,@(ActiveDirectory.Context.PrimaryDomain.NetBiosName)\rsmith
|
||||||
|
</div>
|
||||||
|
<div class="example3 code">
|
||||||
|
user6;smi0099;@(ActiveDirectory.Context.PrimaryDomain.NetBiosName)\rsmith
|
||||||
</div>
|
</div>
|
||||||
<div class="example2 code">user6,smi0099,@(ActiveDirectory.Context.PrimaryDomain.NetBiosName)\rsmith,Domain Admins</div>
|
|
||||||
<div class="example3 code">user6;smi0099;@(ActiveDirectory.Context.PrimaryDomain.NetBiosName)\rsmith;Domain Admins</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerateAddUsers()))
|
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerateAddUsers()))
|
||||||
{
|
{
|
||||||
<div class="field-validation-valid" data-valmsg-replace="true" data-valmsg-for="userIds"></div>
|
<div class="field-validation-valid" data-valmsg-replace="true" data-valmsg-for="userIds"></div>
|
||||||
<textarea id="inputBulkGenerateDataIds" name="userIds" data-val="true" data-val-required="Identifiers are required" required></textarea>
|
<textarea id="inputBulkGenerateDataIds" name="userIds" data-val="true" data-val-required="Identifiers are required" required></textarea>
|
||||||
|
<input type="hidden" name="scope" value="@scope" />
|
||||||
@Html.AntiForgeryToken()
|
@Html.AntiForgeryToken()
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="DocumentTemplate_BulkGenerate_Dialog_AddGroupMembers" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add Group Members">
|
@if (deviceModel != null)
|
||||||
<div class="brief">
|
|
||||||
<div>
|
|
||||||
Add all members of a group (including recursive members) to the bulk generation.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerateAddGroupMembers()))
|
|
||||||
{
|
|
||||||
<table class="input">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<label for="DocumentTemplate_BulkGenerate_Dialog_AddGroupMembers_Group">Group:</label>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<input id="DocumentTemplate_BulkGenerate_Dialog_AddGroupMembers_Group" type="text" name="groupId" data-autocomplete-src="@(Url.Action(MVC.API.System.SearchGroupSubjects()))" required />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
@Html.AntiForgeryToken()
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@if (Model.UserFlags.Any(f => f.Count > 0))
|
|
||||||
{
|
{
|
||||||
<div id="DocumentTemplate_BulkGenerate_Dialog_AddUserFlag" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add User Flag Assignments">
|
<div id="DocumentTemplate_BulkGenerate_Dialog_AddDevices" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add by Devices">
|
||||||
|
<div class="brief">
|
||||||
|
<div>
|
||||||
|
Enter multiple <span class="scopeDescBulkGenerate">Device Serial Numbers</span> separated by <code><new line></code>, commas (<code>,</code>) or semicolons (<code>;</code>).
|
||||||
|
</div>
|
||||||
|
<div class="examples clearfix">
|
||||||
|
<h4>Examples:</h4>
|
||||||
|
<div class="example1 code">
|
||||||
|
LAPTOP-12345<br />
|
||||||
|
TAB-987654<br />
|
||||||
|
PHONE-ABC321
|
||||||
|
</div>
|
||||||
|
<div class="example2 code">
|
||||||
|
LAPTOP-12345,TAB-987654,PHONE-ABC321
|
||||||
|
</div>
|
||||||
|
<div class="example3 code">
|
||||||
|
LAPTOP-12345;TAB-987654;PHONE-ABC321
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerateAddDevices()))
|
||||||
|
{
|
||||||
|
<div class="field-validation-valid" data-valmsg-replace="true" data-valmsg-for="userIds"></div>
|
||||||
|
<textarea name="deviceSerialNumbers" data-val="true" data-val-required="Identifiers are required" required></textarea>
|
||||||
|
<input type="hidden" name="scope" value="@scope" />
|
||||||
|
@Html.AntiForgeryToken()
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
@if (userModel != null)
|
||||||
|
{
|
||||||
|
<div id="DocumentTemplate_BulkGenerate_Dialog_AddGroupMembers" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add by Group Members">
|
||||||
|
<div class="brief">
|
||||||
|
<div>
|
||||||
|
Add all members of a group (including recursive members) to the bulk generation.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerateAddGroupMembers()))
|
||||||
|
{
|
||||||
|
<table class="input">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<label for="DocumentTemplate_BulkGenerate_Dialog_AddGroupMembers_Group">Group:</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<input id="DocumentTemplate_BulkGenerate_Dialog_AddGroupMembers_Group" type="text" name="groupId" data-autocomplete-src="@(Url.Action(MVC.API.System.SearchGroupSubjects()))" required />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
@Html.AntiForgeryToken()
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
@if (userModel != null && userModel.UserFlags.Any(f => f.Count > 0))
|
||||||
|
{
|
||||||
|
<div id="DocumentTemplate_BulkGenerate_Dialog_AddUserFlag" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add User Flag">
|
||||||
<div class="brief">
|
<div class="brief">
|
||||||
<div>
|
<div>
|
||||||
Add all users associated with the flag to the bulk generation.
|
Add all users associated with the flag to the bulk generation.
|
||||||
@@ -123,10 +137,35 @@
|
|||||||
{
|
{
|
||||||
<input name="flagId" type="hidden" required />
|
<input name="flagId" type="hidden" required />
|
||||||
<div class="dialog-item-picker">
|
<div class="dialog-item-picker">
|
||||||
@foreach (var flag in Model.UserFlags)
|
@foreach (var flag in userModel.UserFlags)
|
||||||
{
|
{
|
||||||
<div class="item @(flag.Count == 0 ? "disabled" : null)" data-userflagid="@flag.Item.Id">
|
<div class="item @(flag.Count == 0 ? "disabled" : null)" data-userflagid="@flag.Item.Id">
|
||||||
<i class="fa fa-@(flag.Item.Icon) fa-fw fa-lg d-@(flag.Item.IconColour)"></i>@flag.Item.Name <small>(@flag.Count.ToString("N0") user@(flag.Count == 1 ? null : "s"))</small>
|
<i class="fa fa-@(flag.Item.Icon) fa-fw fa-lg d-@(flag.Item.IconColour)"></i>@flag.Item.Name <small>(@flag.Count.ToString("N0") @scope@(flag.Count == 1 ? null : "s"))</small>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
@Html.AntiForgeryToken()
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
@if (deviceModel != null && deviceModel.DeviceFlags.Any(f => f.Count > 0))
|
||||||
|
{
|
||||||
|
<div id="DocumentTemplate_BulkGenerate_Dialog_AddDeviceFlag" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add Device Flag">
|
||||||
|
<div class="brief">
|
||||||
|
<div>
|
||||||
|
Add all devices associated with the flag to the bulk generation.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerateAddDeviceFlag()))
|
||||||
|
{
|
||||||
|
<input name="flagId" type="hidden" required />
|
||||||
|
<div class="dialog-item-picker">
|
||||||
|
@foreach (var flag in deviceModel.DeviceFlags)
|
||||||
|
{
|
||||||
|
<div class="item @(flag.Count == 0 ? "disabled" : null)" data-userflagid="@flag.Item.Id">
|
||||||
|
<i class="fa fa-@(flag.Item.Icon) fa-fw fa-lg d-@(flag.Item.IconColour)"></i>@flag.Item.Name <small>(@flag.Count.ToString("N0") @scope@(flag.Count == 1 ? null : "s"))</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -138,12 +177,15 @@
|
|||||||
|
|
||||||
@if (Model.DeviceProfiles.Any(b => b.Count > 0))
|
@if (Model.DeviceProfiles.Any(b => b.Count > 0))
|
||||||
{
|
{
|
||||||
<div id="DocumentTemplate_BulkGenerate_Dialog_AddDeviceProfile" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add User by Assigned Device Profile">
|
<div id="DocumentTemplate_BulkGenerate_Dialog_AddDeviceProfile" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add by Device Profile">
|
||||||
<div class="brief">
|
@if (userModel != null)
|
||||||
<div>
|
{
|
||||||
Add all users associated with a device in the selected profile to the bulk generation.
|
<div class="brief">
|
||||||
|
<div>
|
||||||
|
Add all users associated with a device in the selected profile to the bulk generation.
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
}
|
||||||
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerateAddDeviceProfile()))
|
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerateAddDeviceProfile()))
|
||||||
{
|
{
|
||||||
<input name="deviceProfileId" type="hidden" required />
|
<input name="deviceProfileId" type="hidden" required />
|
||||||
@@ -151,10 +193,11 @@
|
|||||||
@foreach (var profile in Model.DeviceProfiles)
|
@foreach (var profile in Model.DeviceProfiles)
|
||||||
{
|
{
|
||||||
<div class="item @(profile.Count == 0 ? "disabled" : null)" data-id="@profile.Item.Id">
|
<div class="item @(profile.Count == 0 ? "disabled" : null)" data-id="@profile.Item.Id">
|
||||||
<i class="fa fa-cog fa-fw fa-lg"></i>@profile.Item.Name <small>(@profile.Count.ToString("N0") user@(profile.Count == 1 ? null : "s"))</small>
|
<i class="fa fa-cog fa-fw fa-lg"></i>@profile.Item.Name <small>(@profile.Count.ToString("N0") @scope@(profile.Count == 1 ? null : "s"))</small>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
<input type="hidden" name="scope" value="@scope" />
|
||||||
@Html.AntiForgeryToken()
|
@Html.AntiForgeryToken()
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
@@ -162,7 +205,7 @@
|
|||||||
|
|
||||||
@if (Model.DeviceBatches.Any(b => b.Count > 0))
|
@if (Model.DeviceBatches.Any(b => b.Count > 0))
|
||||||
{
|
{
|
||||||
<div id="DocumentTemplate_BulkGenerate_Dialog_AddDeviceBatch" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add User by Assigned Device Batch">
|
<div id="DocumentTemplate_BulkGenerate_Dialog_AddDeviceBatch" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add by Device Batch">
|
||||||
<div class="brief">
|
<div class="brief">
|
||||||
<div>
|
<div>
|
||||||
Add all users associated with a device in the selected batch to the bulk generation.
|
Add all users associated with a device in the selected batch to the bulk generation.
|
||||||
@@ -175,10 +218,11 @@
|
|||||||
@foreach (var batch in Model.DeviceBatches)
|
@foreach (var batch in Model.DeviceBatches)
|
||||||
{
|
{
|
||||||
<div class="item @(batch.Count == 0 ? "disabled" : null)" data-id="@batch.Item.Id">
|
<div class="item @(batch.Count == 0 ? "disabled" : null)" data-id="@batch.Item.Id">
|
||||||
<i class="fa fa-cog fa-fw fa-lg"></i>@batch.Item.Name <small>(@batch.Count.ToString("N0") user@(batch.Count == 1 ? null : "s"))</small>
|
<i class="fa fa-cog fa-fw fa-lg"></i>@batch.Item.Name <small>(@batch.Count.ToString("N0") @scope@(batch.Count == 1 ? null : "s"))</small>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
<input type="hidden" name="scope" value="@scope" />
|
||||||
@Html.AntiForgeryToken()
|
@Html.AntiForgeryToken()
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
@@ -186,7 +230,7 @@
|
|||||||
|
|
||||||
@if (Model.DocumentTemplates.Any(b => b.Count > 0))
|
@if (Model.DocumentTemplates.Any(b => b.Count > 0))
|
||||||
{
|
{
|
||||||
<div id="DocumentTemplate_BulkGenerate_Dialog_AddDocumentAttachment" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add User by Assigned Device Batch">
|
<div id="DocumentTemplate_BulkGenerate_Dialog_AddDocumentAttachment" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add by Document Attachment">
|
||||||
<div class="brief">
|
<div class="brief">
|
||||||
<div>
|
<div>
|
||||||
Add all users associated with an attachment of the selected document template to the bulk generation.
|
Add all users associated with an attachment of the selected document template to the bulk generation.
|
||||||
@@ -199,7 +243,7 @@
|
|||||||
@foreach (var template in Model.DocumentTemplates)
|
@foreach (var template in Model.DocumentTemplates)
|
||||||
{
|
{
|
||||||
<div class="item @(template.Count == 0 ? "disabled" : null)" data-id="@template.Item.Id">
|
<div class="item @(template.Count == 0 ? "disabled" : null)" data-id="@template.Item.Id">
|
||||||
<i class="fa fa-file-text-o fa-fw fa-lg"></i>@template.Item.Id: @template.Item.Description <small>(@template.Count.ToString("N0") user@(template.Count == 1 ? null : "s"))</small>
|
<i class="fa fa-file-text-o fa-fw fa-lg"></i>@template.Item.Id: @template.Item.Description <small>(@template.Count.ToString("N0") @scope@(template.Count == 1 ? null : "s"))</small>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
@@ -207,6 +251,7 @@
|
|||||||
<label for="DocumentTemplate_BulkGenerate_Dialog_AddDocumentAttachment_Threshold">Attachment Added After <small>(optional)</small></label>
|
<label for="DocumentTemplate_BulkGenerate_Dialog_AddDocumentAttachment_Threshold">Attachment Added After <small>(optional)</small></label>
|
||||||
<input id="DocumentTemplate_BulkGenerate_Dialog_AddDocumentAttachment_Threshold" name="threshold" type="date" />
|
<input id="DocumentTemplate_BulkGenerate_Dialog_AddDocumentAttachment_Threshold" name="threshold" type="date" />
|
||||||
</div>
|
</div>
|
||||||
|
<input type="hidden" name="scope" value="@scope" />
|
||||||
@Html.AntiForgeryToken()
|
@Html.AntiForgeryToken()
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
@@ -214,11 +259,20 @@
|
|||||||
|
|
||||||
@if (Model.UserDetails.Any(b => b.Count > 0))
|
@if (Model.UserDetails.Any(b => b.Count > 0))
|
||||||
{
|
{
|
||||||
<div id="DocumentTemplate_BulkGenerate_Dialog_AddUserDetail" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add User by Detail">
|
<div id="DocumentTemplate_BulkGenerate_Dialog_AddUserDetail" class="dialog dialog-bulk-generate" title="@(Model.DocumentTemplate.Description): Add by User Detail">
|
||||||
<div class="brief">
|
<div class="brief">
|
||||||
<div>
|
@if (userModel != null)
|
||||||
Add all users with a matching user detail to the bulk generation.
|
{
|
||||||
</div>
|
<div>
|
||||||
|
Add all users with a matching user detail to the bulk generation.
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
@if (deviceModel != null)
|
||||||
|
{
|
||||||
|
<div>
|
||||||
|
Add all devices assigned to users with a matching user detail to the bulk generation.
|
||||||
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerateAddUserDetail()))
|
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerateAddUserDetail()))
|
||||||
{
|
{
|
||||||
@@ -229,11 +283,11 @@
|
|||||||
@foreach (var key in Model.UserDetails)
|
@foreach (var key in Model.UserDetails)
|
||||||
{
|
{
|
||||||
<div class="item @(key.Count == 0 ? "disabled" : null)" data-id="@key.Item">
|
<div class="item @(key.Count == 0 ? "disabled" : null)" data-id="@key.Item">
|
||||||
<i class="fa fa-info fa-fw fa-lg"></i>@key.Item.TrimEnd('*', '&') <small>(@key.Count.ToString("N0") user@(key.Count == 1 ? null : "s"))</small>
|
<i class="fa fa-info fa-fw fa-lg"></i>@key.Item.TrimEnd('*', '&') <small>(@key.Count.ToString("N0") @scope@(key.Count == 1 ? null : "s"))</small>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
<input type="hidden" name="scope" value="@scope" />
|
||||||
@Html.AntiForgeryToken()
|
@Html.AntiForgeryToken()
|
||||||
}
|
}
|
||||||
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerateGetUserDetailValues()))
|
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerateGetUserDetailValues()))
|
||||||
@@ -242,8 +296,7 @@
|
|||||||
|
|
||||||
<div id="DocumentTemplate_BulkGenerate_Dialog_AddUserDetail_Value" class="dialog-item-picker" style="width: 49%; float: left; margin-left: 1%;">
|
<div id="DocumentTemplate_BulkGenerate_Dialog_AddUserDetail_Value" class="dialog-item-picker" style="width: 49%; float: left; margin-left: 1%;">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@Html.AntiForgeryToken()
|
@Html.AntiForgeryToken()
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,36 +1,36 @@
|
|||||||
$(() => {
|
$(() => {
|
||||||
const users = [];
|
const records = [];
|
||||||
const $table = $('#DocumentTemplate_BulkGenerate table');
|
const $table = $('#DocumentTemplate_BulkGenerate_Records');
|
||||||
|
const scope = $table.attr('data-scope');
|
||||||
function redrawTable() {
|
function redrawTable() {
|
||||||
if (users.length > 0) {
|
if (records.length > 0) {
|
||||||
$table.find('tbody tr:first-child').hide();
|
$table.find('tbody tr:first-child').hide();
|
||||||
}
|
}
|
||||||
const $tbody = $table.find('tbody');
|
const $tbody = $table.find('tbody');
|
||||||
let checkedCount = 0;
|
let checkedCount = 0;
|
||||||
for (var i = 0; i < users.length; i++) {
|
for (var i = 0; i < records.length; i++) {
|
||||||
var user = users[i];
|
var record = records[i];
|
||||||
if (user.checkbox === undefined) {
|
if (record.checkbox === undefined) {
|
||||||
const tr = $('<tr><td><input id="BulkGenerate_User_' + i.toString() + '" type="checkbox" /></td><td><label for="BulkGenerate_User_' + i.toString() + '"></label></td><td><span class="name"></span></td><td><span class="scope"></span></td></tr>');
|
const tr = $('<tr><td><input id="BulkGenerate_User_' + i.toString() + '" type="checkbox" /></td><td><label for="BulkGenerate_User_' + i.toString() + '"></label></td><td class="name"><span class="name"></span></td><td><span class="scope"></span></td></tr>');
|
||||||
const checkbox = tr.find('input')[0];
|
const checkbox = tr.find('input')[0];
|
||||||
const label = tr.find('label');
|
const label = tr.find('label');
|
||||||
const name = tr.find('span.name');
|
const name = tr.find('span.name');
|
||||||
const scope = tr.find('span.scope');
|
const scope = tr.find('span.scope');
|
||||||
label.text(user.Id);
|
label.text(record.Id);
|
||||||
scope.text(user.Scope);
|
scope.text(record.Scope);
|
||||||
if (!user.IsError) {
|
if (!record.IsError) {
|
||||||
checkbox.checked = true;
|
checkbox.checked = true;
|
||||||
name.text(user.DisplayName);
|
name.text(record.UserDisplayName);
|
||||||
checkedCount++;
|
checkedCount++;
|
||||||
} else {
|
} else {
|
||||||
tr.addClass('error');
|
tr.addClass('error');
|
||||||
checkbox.checked = false;
|
checkbox.checked = false;
|
||||||
checkbox.disabled = true;
|
checkbox.disabled = true;
|
||||||
}
|
}
|
||||||
user.checkbox = checkbox;
|
record.checkbox = checkbox;
|
||||||
$tbody.append(tr);
|
$tbody.append(tr);
|
||||||
} else {
|
} else {
|
||||||
if (!user.IsError && user.checkbox.checked) {
|
if (!record.IsError && record.checkbox.checked) {
|
||||||
checkedCount++;
|
checkedCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -42,13 +42,13 @@ $(() => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function addUsers(r) {
|
function addRecords(r) {
|
||||||
let changeCount = 0;
|
let changeCount = 0;
|
||||||
for (var i = 0; i < r.length; i++) {
|
for (var i = 0; i < r.length; i++) {
|
||||||
const user = r[i];
|
const item = r[i];
|
||||||
const record = users.find(u => u.Id === user.Id);
|
const record = records.find(u => u.Id === item.Id);
|
||||||
if (record === undefined || user.IsError) {
|
if (record === undefined || item.IsError) {
|
||||||
users.push(user);
|
records.push(item);
|
||||||
changeCount++;
|
changeCount++;
|
||||||
} else if (record.checkbox !== undefined && !record.checkbox.checked && !record.IsError) {
|
} else if (record.checkbox !== undefined && !record.checkbox.checked && !record.IsError) {
|
||||||
record.checkbox.checked = true;
|
record.checkbox.checked = true;
|
||||||
@@ -60,11 +60,11 @@ $(() => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function excludeUsers(r) {
|
function excludeRecords(r) {
|
||||||
let changeCount = 0;
|
let changeCount = 0;
|
||||||
for (var i = 0; i < r.length; i++) {
|
for (var i = 0; i < r.length; i++) {
|
||||||
const user = r[i];
|
const user = r[i];
|
||||||
const record = users.find(u => u.Id === user.Id);
|
const record = records.find(u => u.Id === user.Id);
|
||||||
if (record !== undefined && record.checkbox !== undefined) {
|
if (record !== undefined && record.checkbox !== undefined) {
|
||||||
record.checkbox.checked = false;
|
record.checkbox.checked = false;
|
||||||
changeCount++;
|
changeCount++;
|
||||||
@@ -75,12 +75,12 @@ $(() => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function excludeOtherUsers(r) {
|
function excludeOtherRecords(r) {
|
||||||
let changeCount = 0;
|
let changeCount = 0;
|
||||||
for (var i = 0; i < users.length; i++) {
|
for (var i = 0; i < records.length; i++) {
|
||||||
const user = users[i];
|
const record = records[i];
|
||||||
if (!r.find(u => u.Id === user.Id)) {
|
if (!r.find(u => u.Id === record.Id)) {
|
||||||
user.checkbox.checked = false;
|
record.checkbox.checked = false;
|
||||||
changeCount++;
|
changeCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -94,15 +94,15 @@ $(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$('#BulkGenerate').click(e => {
|
$('#BulkGenerate').click(e => {
|
||||||
let userIds = [];
|
let dataIds = [];
|
||||||
for (var i = 0; i < users.length; i++) {
|
for (var i = 0; i < records.length; i++) {
|
||||||
var user = users[i];
|
var record = records[i];
|
||||||
if (!user.IsError && user.checkbox !== undefined && user.checkbox.checked) {
|
if (!record.IsError && record.checkbox !== undefined && record.checkbox.checked) {
|
||||||
userIds.push(user.Id);
|
dataIds.push(record.Id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (userIds.length > 0) {
|
if (dataIds.length > 0) {
|
||||||
$('#DocumentTemplate_BulkGenerate_DataIds').val(userIds.join('\r\n'));
|
$('#DocumentTemplate_BulkGenerate_DataIds').val(dataIds.join('\r\n'));
|
||||||
$('#BulkGenerate').closest('form').submit();
|
$('#BulkGenerate').closest('form').submit();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -113,45 +113,91 @@ $(() => {
|
|||||||
|
|
||||||
let dialog = dialogAddUsers;
|
let dialog = dialogAddUsers;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
dialog.find('textarea').html('').val('');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate users: ' + reason);
|
|
||||||
});
|
});
|
||||||
|
const results = await response.json();
|
||||||
|
applier(results);
|
||||||
|
dialog.find('textarea').html('').val('');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate users: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dialog.dialog("disable");
|
|
||||||
}
|
}
|
||||||
|
const target = scope === 'user' ? 'Users' : 'Assigned Devices';
|
||||||
|
const buttons = {};
|
||||||
|
buttons[`Exclude Other ${target}`] = function () {
|
||||||
|
action(excludeOtherRecords);
|
||||||
|
};
|
||||||
|
buttons[`Exclude ${target}`] = function () {
|
||||||
|
action(excludeRecords);
|
||||||
|
};
|
||||||
|
buttons[`Add ${target}`] = function () {
|
||||||
|
action(addRecords);
|
||||||
|
};
|
||||||
|
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddUsers').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddUsers').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 460,
|
width: 550,
|
||||||
|
buttons: buttons
|
||||||
|
});
|
||||||
|
dialogAddUsers = dialog;
|
||||||
|
}
|
||||||
|
dialog.dialog('open');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
let dialogAddDevices = null;
|
||||||
|
$('#AddDevices').click(e => {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
let dialog = dialogAddDevices;
|
||||||
|
if (!dialog) {
|
||||||
|
const action = async function (applier) {
|
||||||
|
const form = dialog.find('form')[0];
|
||||||
|
if (form.reportValidity()) {
|
||||||
|
const body = new FormData(form);
|
||||||
|
try {
|
||||||
|
const response = await fetch(form.action, {
|
||||||
|
method: 'POST',
|
||||||
|
body: body
|
||||||
|
});
|
||||||
|
const results = await response.json();
|
||||||
|
applier(results);
|
||||||
|
dialog.find('textarea').html('').val('');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate devices: ' + e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDevices').dialog({
|
||||||
|
resizable: false,
|
||||||
|
modal: true,
|
||||||
|
autoOpen: false,
|
||||||
|
width: 550,
|
||||||
buttons: {
|
buttons: {
|
||||||
"Exclude Other Users": function () {
|
"Exclude Unmatched Devices": function () {
|
||||||
action(excludeOtherUsers);
|
action(excludeOtherRecords);
|
||||||
},
|
},
|
||||||
"Exclude Users": function () {
|
"Exclude Devices": function () {
|
||||||
action(excludeUsers);
|
action(excludeRecords);
|
||||||
},
|
},
|
||||||
"Add Users": function () {
|
"Add Devices": function () {
|
||||||
action(addUsers);
|
action(addRecords);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
dialogAddUsers = dialog;
|
dialogAddDevices = dialog;
|
||||||
}
|
}
|
||||||
dialog.dialog('open');
|
dialog.dialog('open');
|
||||||
return false;
|
return false;
|
||||||
@@ -163,41 +209,38 @@ $(() => {
|
|||||||
|
|
||||||
let dialog = dialogAddGroupMembers;
|
let dialog = dialogAddGroupMembers;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
dialog.find('input[type="text"]').val('');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate group: ' + reason);
|
|
||||||
});
|
});
|
||||||
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
dialog.find('input[type="text"]').val('');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate group: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dialog.dialog("disable");
|
|
||||||
}
|
}
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddGroupMembers').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddGroupMembers').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 460,
|
width: 550,
|
||||||
buttons: {
|
buttons: {
|
||||||
"Exclude Non-Group Members": function () {
|
"Exclude Non-Group Members": function () {
|
||||||
action(excludeOtherUsers);
|
action(excludeOtherRecords);
|
||||||
},
|
},
|
||||||
"Exclude Group Members": function () {
|
"Exclude Group Members": function () {
|
||||||
action(excludeUsers);
|
action(excludeRecords);
|
||||||
},
|
},
|
||||||
"Add Group Members": function () {
|
"Add Group Members": function () {
|
||||||
action(addUsers);
|
action(addRecords);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -227,42 +270,39 @@ $(() => {
|
|||||||
|
|
||||||
let dialog = dialogAddUserFlag;
|
let dialog = dialogAddUserFlag;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
dialog.find('input[name="flagId"]').val('');
|
|
||||||
dialog.find('div.item').removeClass('selected');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate user flag: ' + reason);
|
|
||||||
});
|
});
|
||||||
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
dialog.find('input[name="flagId"]').val('');
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate user flag: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dialog.dialog("disable");
|
|
||||||
}
|
}
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddUserFlag').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddUserFlag').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 460,
|
width: 550,
|
||||||
buttons: {
|
buttons: {
|
||||||
"Exclude Unassigned Users": function () {
|
"Exclude Unassigned Users": function () {
|
||||||
action(excludeOtherUsers);
|
action(excludeOtherRecords);
|
||||||
},
|
},
|
||||||
"Exclude Assigned Users": function () {
|
"Exclude Assigned Users": function () {
|
||||||
action(excludeUsers);
|
action(excludeRecords);
|
||||||
},
|
},
|
||||||
"Add Assigned Users": function () {
|
"Add Assigned Users": function () {
|
||||||
action(addUsers);
|
action(addRecords);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -281,52 +321,107 @@ $(() => {
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let dialogAddDeviceFlag = null;
|
||||||
|
$('#AddDeviceFlag').click(e => {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
let dialog = dialogAddDeviceFlag;
|
||||||
|
if (!dialog) {
|
||||||
|
const action = async function (applier) {
|
||||||
|
const form = dialog.find('form')[0];
|
||||||
|
if (form.reportValidity()) {
|
||||||
|
const body = new FormData(form);
|
||||||
|
try {
|
||||||
|
const response = await fetch(form.action, {
|
||||||
|
method: 'POST',
|
||||||
|
body: body
|
||||||
|
});
|
||||||
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
dialog.find('input[name="flagId"]').val('');
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate device flag: ' + e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDeviceFlag').dialog({
|
||||||
|
resizable: false,
|
||||||
|
modal: true,
|
||||||
|
autoOpen: false,
|
||||||
|
width: 550,
|
||||||
|
buttons: {
|
||||||
|
"Exclude Unassigned Devices": function () {
|
||||||
|
action(excludeOtherRecords);
|
||||||
|
},
|
||||||
|
"Exclude Assigned Devices": function () {
|
||||||
|
action(excludeRecords);
|
||||||
|
},
|
||||||
|
"Add Assigned Devices": function () {
|
||||||
|
action(addRecords);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const $input = dialog.find('input[name="flagId"]');
|
||||||
|
dialog.on('click', 'div.item:not(.disabled)', e => {
|
||||||
|
e.preventDefault();
|
||||||
|
const $target = $(e.currentTarget);
|
||||||
|
$input.val($target.attr('data-userflagid'));
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
$target.addClass('selected');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
dialogAddDeviceFlag = dialog;
|
||||||
|
}
|
||||||
|
dialog.dialog('open');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
let dialogAddDeviceProfile = null;
|
let dialogAddDeviceProfile = null;
|
||||||
$('#AddDeviceProfile').click(e => {
|
$('#AddDeviceProfile').click(e => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let dialog = dialogAddDeviceProfile;
|
let dialog = dialogAddDeviceProfile;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
const input = dialog.find('input[name="deviceProfileId"]');
|
const input = dialog.find('input[name="deviceProfileId"]');
|
||||||
if (input.val()) {
|
if (input.val()) {
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
input.val('');
|
|
||||||
dialog.find('div.item').removeClass('selected');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate device profile: ' + reason);
|
|
||||||
});
|
});
|
||||||
dialog.dialog("disable");
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
input.val('');
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate device profile: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const target = scope === 'user' ? 'Assigned Users' : 'Devices';
|
||||||
|
const buttons = {};
|
||||||
|
buttons[`Exclude Other ${target}`] = function () {
|
||||||
|
action(excludeOtherRecords);
|
||||||
|
};
|
||||||
|
buttons[`Exclude ${target}`] = function () {
|
||||||
|
action(excludeRecords);
|
||||||
|
};
|
||||||
|
buttons[`Add ${target}`] = function () {
|
||||||
|
action(addRecords);
|
||||||
|
};
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDeviceProfile').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDeviceProfile').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 460,
|
width: 550,
|
||||||
buttons: {
|
buttons: buttons
|
||||||
"Exclude Unassigned Users": function () {
|
|
||||||
action(excludeOtherUsers);
|
|
||||||
},
|
|
||||||
"Exclude Assigned Users": function () {
|
|
||||||
action(excludeUsers);
|
|
||||||
},
|
|
||||||
"Add Assigned Users": function () {
|
|
||||||
action(addUsers);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
const $input = dialog.find('input[name="deviceProfileId"]');
|
const $input = dialog.find('input[name="deviceProfileId"]');
|
||||||
dialog.on('click', 'div.item:not(.disabled)', e => {
|
dialog.on('click', 'div.item:not(.disabled)', e => {
|
||||||
@@ -348,47 +443,45 @@ $(() => {
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let dialog = dialogAddDeviceBatch;
|
let dialog = dialogAddDeviceBatch;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
const input = dialog.find('input[name="deviceBatchId"]');
|
const input = dialog.find('input[name="deviceBatchId"]');
|
||||||
if (input.val()) {
|
if (input.val()) {
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
input.val('');
|
|
||||||
dialog.find('div.item').removeClass('selected');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate device batch: ' + reason);
|
|
||||||
});
|
});
|
||||||
dialog.dialog("disable");
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
input.val('');
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate device batch: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const target = scope === 'user' ? 'Assigned Users' : 'Devices';
|
||||||
|
const buttons = {};
|
||||||
|
buttons[`Exclude Other ${target}`] = function () {
|
||||||
|
action(excludeOtherRecords);
|
||||||
|
};
|
||||||
|
buttons[`Exclude ${target}`] = function () {
|
||||||
|
action(excludeRecords);
|
||||||
|
};
|
||||||
|
buttons[`Add ${target}`] = function () {
|
||||||
|
action(addRecords);
|
||||||
|
};
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDeviceBatch').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDeviceBatch').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 460,
|
width: 550,
|
||||||
buttons: {
|
buttons: buttons
|
||||||
"Exclude Unassigned Users": function () {
|
|
||||||
action(excludeOtherUsers);
|
|
||||||
},
|
|
||||||
"Exclude Assigned Users": function () {
|
|
||||||
action(excludeUsers);
|
|
||||||
},
|
|
||||||
"Add Assigned Users": function () {
|
|
||||||
action(addUsers);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
const $input = dialog.find('input[name="deviceBatchId"]');
|
const $input = dialog.find('input[name="deviceBatchId"]');
|
||||||
dialog.on('click', 'div.item:not(.disabled)', e => {
|
dialog.on('click', 'div.item:not(.disabled)', e => {
|
||||||
@@ -410,47 +503,45 @@ $(() => {
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let dialog = dialogAddDocumentAttachment;
|
let dialog = dialogAddDocumentAttachment;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
const input = dialog.find('input[name="documentTemplateId"]');
|
const input = dialog.find('input[name="documentTemplateId"]');
|
||||||
if (input.val()) {
|
if (input.val()) {
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
input.val('');
|
|
||||||
dialog.find('div.item').removeClass('selected');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate device batch: ' + reason);
|
|
||||||
});
|
});
|
||||||
dialog.dialog("disable");
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
input.val('');
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate device batch: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const target = scope === 'user' ? 'Users' : 'Devices';
|
||||||
|
const buttons = {};
|
||||||
|
buttons[`Exclude Unassigned ${target}`] = function () {
|
||||||
|
action(excludeOtherRecords);
|
||||||
|
};
|
||||||
|
buttons[`Exclude Assigned ${target}`] = function () {
|
||||||
|
action(excludeRecords);
|
||||||
|
};
|
||||||
|
buttons[`Add Assigned ${target}`] = function () {
|
||||||
|
action(addRecords);
|
||||||
|
};
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDocumentAttachment').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDocumentAttachment').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 460,
|
width: 550,
|
||||||
buttons: {
|
buttons: buttons
|
||||||
"Exclude Unassigned Users": function () {
|
|
||||||
action(excludeOtherUsers);
|
|
||||||
},
|
|
||||||
"Exclude Assigned Users": function () {
|
|
||||||
action(excludeUsers);
|
|
||||||
},
|
|
||||||
"Add Assigned Users": function () {
|
|
||||||
action(addUsers);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
const $input = dialog.find('input[name="documentTemplateId"]');
|
const $input = dialog.find('input[name="documentTemplateId"]');
|
||||||
dialog.on('click', 'div.item:not(.disabled)', e => {
|
dialog.on('click', 'div.item:not(.disabled)', e => {
|
||||||
@@ -472,49 +563,47 @@ $(() => {
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let dialog = dialogAddUserDetail;
|
let dialog = dialogAddUserDetail;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
const key = $(form).find('input[name="key"]');
|
const key = $(form).find('input[name="key"]');
|
||||||
if (key.val()) {
|
if (key.val()) {
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
key.val('');
|
|
||||||
$(form).find('input[name="value"]').val('');
|
|
||||||
$('#DocumentTemplate_BulkGenerate_Dialog_AddUserDetail_Value').empty();
|
|
||||||
dialog.find('div.item').removeClass('selected');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate user detail: ' + reason);
|
|
||||||
});
|
});
|
||||||
dialog.dialog("disable");
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
key.val('');
|
||||||
|
$(form).find('input[name="value"]').val('');
|
||||||
|
$('#DocumentTemplate_BulkGenerate_Dialog_AddUserDetail_Value').empty();
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate user detail: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const target = scope === 'user' ? 'Users' : 'Devices';
|
||||||
|
const buttons = {};
|
||||||
|
buttons[`Exclude Unmatched ${target}`] = function () {
|
||||||
|
action(excludeOtherRecords);
|
||||||
|
};
|
||||||
|
buttons[`Exclude Matched ${target}`] = function () {
|
||||||
|
action(excludeRecords);
|
||||||
|
};
|
||||||
|
buttons[`Add Matched ${target}`] = function () {
|
||||||
|
action(addRecords);
|
||||||
|
};
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddUserDetail').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddUserDetail').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 690,
|
width: 690,
|
||||||
buttons: {
|
buttons: buttons
|
||||||
"Exclude Unmatched Users": function () {
|
|
||||||
action(excludeOtherUsers);
|
|
||||||
},
|
|
||||||
"Exclude Matched Users": function () {
|
|
||||||
action(excludeUsers);
|
|
||||||
},
|
|
||||||
"Add Matched Users": function () {
|
|
||||||
action(addUsers);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
const $key = dialog.find('input[name="key"]');
|
const $key = dialog.find('input[name="key"]');
|
||||||
const $value = dialog.find('input[name="value"]');
|
const $value = dialog.find('input[name="value"]');
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
+297
-208
@@ -1,36 +1,36 @@
|
|||||||
$(() => {
|
$(() => {
|
||||||
const users = [];
|
const records = [];
|
||||||
const $table = $('#DocumentTemplate_BulkGenerate table');
|
const $table = $('#DocumentTemplate_BulkGenerate_Records');
|
||||||
|
const scope = $table.attr('data-scope');
|
||||||
function redrawTable() {
|
function redrawTable() {
|
||||||
if (users.length > 0) {
|
if (records.length > 0) {
|
||||||
$table.find('tbody tr:first-child').hide();
|
$table.find('tbody tr:first-child').hide();
|
||||||
}
|
}
|
||||||
const $tbody = $table.find('tbody');
|
const $tbody = $table.find('tbody');
|
||||||
let checkedCount = 0;
|
let checkedCount = 0;
|
||||||
for (var i = 0; i < users.length; i++) {
|
for (var i = 0; i < records.length; i++) {
|
||||||
var user = users[i];
|
var record = records[i];
|
||||||
if (user.checkbox === undefined) {
|
if (record.checkbox === undefined) {
|
||||||
const tr = $('<tr><td><input id="BulkGenerate_User_' + i.toString() + '" type="checkbox" /></td><td><label for="BulkGenerate_User_' + i.toString() + '"></label></td><td><span class="name"></span></td><td><span class="scope"></span></td></tr>');
|
const tr = $('<tr><td><input id="BulkGenerate_User_' + i.toString() + '" type="checkbox" /></td><td><label for="BulkGenerate_User_' + i.toString() + '"></label></td><td class="name"><span class="name"></span></td><td><span class="scope"></span></td></tr>');
|
||||||
const checkbox = tr.find('input')[0];
|
const checkbox = tr.find('input')[0];
|
||||||
const label = tr.find('label');
|
const label = tr.find('label');
|
||||||
const name = tr.find('span.name');
|
const name = tr.find('span.name');
|
||||||
const scope = tr.find('span.scope');
|
const scope = tr.find('span.scope');
|
||||||
label.text(user.Id);
|
label.text(record.Id);
|
||||||
scope.text(user.Scope);
|
scope.text(record.Scope);
|
||||||
if (!user.IsError) {
|
if (!record.IsError) {
|
||||||
checkbox.checked = true;
|
checkbox.checked = true;
|
||||||
name.text(user.DisplayName);
|
name.text(record.UserDisplayName);
|
||||||
checkedCount++;
|
checkedCount++;
|
||||||
} else {
|
} else {
|
||||||
tr.addClass('error');
|
tr.addClass('error');
|
||||||
checkbox.checked = false;
|
checkbox.checked = false;
|
||||||
checkbox.disabled = true;
|
checkbox.disabled = true;
|
||||||
}
|
}
|
||||||
user.checkbox = checkbox;
|
record.checkbox = checkbox;
|
||||||
$tbody.append(tr);
|
$tbody.append(tr);
|
||||||
} else {
|
} else {
|
||||||
if (!user.IsError && user.checkbox.checked) {
|
if (!record.IsError && record.checkbox.checked) {
|
||||||
checkedCount++;
|
checkedCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -42,13 +42,13 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function addUsers(r) {
|
function addRecords(r) {
|
||||||
let changeCount = 0;
|
let changeCount = 0;
|
||||||
for (var i = 0; i < r.length; i++) {
|
for (var i = 0; i < r.length; i++) {
|
||||||
const user = r[i];
|
const item = r[i];
|
||||||
const record = users.find(u => u.Id === user.Id);
|
const record = records.find(u => u.Id === item.Id);
|
||||||
if (record === undefined || user.IsError) {
|
if (record === undefined || item.IsError) {
|
||||||
users.push(user);
|
records.push(item);
|
||||||
changeCount++;
|
changeCount++;
|
||||||
} else if (record.checkbox !== undefined && !record.checkbox.checked && !record.IsError) {
|
} else if (record.checkbox !== undefined && !record.checkbox.checked && !record.IsError) {
|
||||||
record.checkbox.checked = true;
|
record.checkbox.checked = true;
|
||||||
@@ -60,11 +60,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function excludeUsers(r) {
|
function excludeRecords(r) {
|
||||||
let changeCount = 0;
|
let changeCount = 0;
|
||||||
for (var i = 0; i < r.length; i++) {
|
for (var i = 0; i < r.length; i++) {
|
||||||
const user = r[i];
|
const user = r[i];
|
||||||
const record = users.find(u => u.Id === user.Id);
|
const record = records.find(u => u.Id === user.Id);
|
||||||
if (record !== undefined && record.checkbox !== undefined) {
|
if (record !== undefined && record.checkbox !== undefined) {
|
||||||
record.checkbox.checked = false;
|
record.checkbox.checked = false;
|
||||||
changeCount++;
|
changeCount++;
|
||||||
@@ -75,12 +75,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function excludeOtherUsers(r) {
|
function excludeOtherRecords(r) {
|
||||||
let changeCount = 0;
|
let changeCount = 0;
|
||||||
for (var i = 0; i < users.length; i++) {
|
for (var i = 0; i < records.length; i++) {
|
||||||
const user = users[i];
|
const record = records[i];
|
||||||
if (!r.find(u => u.Id === user.Id)) {
|
if (!r.find(u => u.Id === record.Id)) {
|
||||||
user.checkbox.checked = false;
|
record.checkbox.checked = false;
|
||||||
changeCount++;
|
changeCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -94,15 +94,15 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
$('#BulkGenerate').click(e => {
|
$('#BulkGenerate').click(e => {
|
||||||
let userIds = [];
|
let dataIds = [];
|
||||||
for (var i = 0; i < users.length; i++) {
|
for (var i = 0; i < records.length; i++) {
|
||||||
var user = users[i];
|
var record = records[i];
|
||||||
if (!user.IsError && user.checkbox !== undefined && user.checkbox.checked) {
|
if (!record.IsError && record.checkbox !== undefined && record.checkbox.checked) {
|
||||||
userIds.push(user.Id);
|
dataIds.push(record.Id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (userIds.length > 0) {
|
if (dataIds.length > 0) {
|
||||||
$('#DocumentTemplate_BulkGenerate_DataIds').val(userIds.join('\r\n'));
|
$('#DocumentTemplate_BulkGenerate_DataIds').val(dataIds.join('\r\n'));
|
||||||
$('#BulkGenerate').closest('form').submit();
|
$('#BulkGenerate').closest('form').submit();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -113,45 +113,91 @@
|
|||||||
|
|
||||||
let dialog = dialogAddUsers;
|
let dialog = dialogAddUsers;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
dialog.find('textarea').html('').val('');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate users: ' + reason);
|
|
||||||
});
|
});
|
||||||
|
const results = await response.json();
|
||||||
|
applier(results);
|
||||||
|
dialog.find('textarea').html('').val('');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate users: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dialog.dialog("disable");
|
|
||||||
}
|
}
|
||||||
|
const target = scope === 'user' ? 'Users' : 'Assigned Devices';
|
||||||
|
const buttons = {};
|
||||||
|
buttons[`Exclude Other ${target}`] = function () {
|
||||||
|
action(excludeOtherRecords);
|
||||||
|
};
|
||||||
|
buttons[`Exclude ${target}`] = function () {
|
||||||
|
action(excludeRecords);
|
||||||
|
};
|
||||||
|
buttons[`Add ${target}`] = function () {
|
||||||
|
action(addRecords);
|
||||||
|
};
|
||||||
|
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddUsers').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddUsers').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 460,
|
width: 550,
|
||||||
|
buttons: buttons
|
||||||
|
});
|
||||||
|
dialogAddUsers = dialog;
|
||||||
|
}
|
||||||
|
dialog.dialog('open');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
let dialogAddDevices = null;
|
||||||
|
$('#AddDevices').click(e => {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
let dialog = dialogAddDevices;
|
||||||
|
if (!dialog) {
|
||||||
|
const action = async function (applier) {
|
||||||
|
const form = dialog.find('form')[0];
|
||||||
|
if (form.reportValidity()) {
|
||||||
|
const body = new FormData(form);
|
||||||
|
try {
|
||||||
|
const response = await fetch(form.action, {
|
||||||
|
method: 'POST',
|
||||||
|
body: body
|
||||||
|
});
|
||||||
|
const results = await response.json();
|
||||||
|
applier(results);
|
||||||
|
dialog.find('textarea').html('').val('');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate devices: ' + e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDevices').dialog({
|
||||||
|
resizable: false,
|
||||||
|
modal: true,
|
||||||
|
autoOpen: false,
|
||||||
|
width: 550,
|
||||||
buttons: {
|
buttons: {
|
||||||
"Exclude Other Users": function () {
|
"Exclude Unmatched Devices": function () {
|
||||||
action(excludeOtherUsers);
|
action(excludeOtherRecords);
|
||||||
},
|
},
|
||||||
"Exclude Users": function () {
|
"Exclude Devices": function () {
|
||||||
action(excludeUsers);
|
action(excludeRecords);
|
||||||
},
|
},
|
||||||
"Add Users": function () {
|
"Add Devices": function () {
|
||||||
action(addUsers);
|
action(addRecords);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
dialogAddUsers = dialog;
|
dialogAddDevices = dialog;
|
||||||
}
|
}
|
||||||
dialog.dialog('open');
|
dialog.dialog('open');
|
||||||
return false;
|
return false;
|
||||||
@@ -163,41 +209,38 @@
|
|||||||
|
|
||||||
let dialog = dialogAddGroupMembers;
|
let dialog = dialogAddGroupMembers;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
dialog.find('input[type="text"]').val('');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate group: ' + reason);
|
|
||||||
});
|
});
|
||||||
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
dialog.find('input[type="text"]').val('');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate group: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dialog.dialog("disable");
|
|
||||||
}
|
}
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddGroupMembers').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddGroupMembers').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 460,
|
width: 550,
|
||||||
buttons: {
|
buttons: {
|
||||||
"Exclude Non-Group Members": function () {
|
"Exclude Non-Group Members": function () {
|
||||||
action(excludeOtherUsers);
|
action(excludeOtherRecords);
|
||||||
},
|
},
|
||||||
"Exclude Group Members": function () {
|
"Exclude Group Members": function () {
|
||||||
action(excludeUsers);
|
action(excludeRecords);
|
||||||
},
|
},
|
||||||
"Add Group Members": function () {
|
"Add Group Members": function () {
|
||||||
action(addUsers);
|
action(addRecords);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -227,42 +270,39 @@
|
|||||||
|
|
||||||
let dialog = dialogAddUserFlag;
|
let dialog = dialogAddUserFlag;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
dialog.find('input[name="flagId"]').val('');
|
|
||||||
dialog.find('div.item').removeClass('selected');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate user flag: ' + reason);
|
|
||||||
});
|
});
|
||||||
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
dialog.find('input[name="flagId"]').val('');
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate user flag: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dialog.dialog("disable");
|
|
||||||
}
|
}
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddUserFlag').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddUserFlag').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 460,
|
width: 550,
|
||||||
buttons: {
|
buttons: {
|
||||||
"Exclude Unassigned Users": function () {
|
"Exclude Unassigned Users": function () {
|
||||||
action(excludeOtherUsers);
|
action(excludeOtherRecords);
|
||||||
},
|
},
|
||||||
"Exclude Assigned Users": function () {
|
"Exclude Assigned Users": function () {
|
||||||
action(excludeUsers);
|
action(excludeRecords);
|
||||||
},
|
},
|
||||||
"Add Assigned Users": function () {
|
"Add Assigned Users": function () {
|
||||||
action(addUsers);
|
action(addRecords);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -281,52 +321,107 @@
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let dialogAddDeviceFlag = null;
|
||||||
|
$('#AddDeviceFlag').click(e => {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
let dialog = dialogAddDeviceFlag;
|
||||||
|
if (!dialog) {
|
||||||
|
const action = async function (applier) {
|
||||||
|
const form = dialog.find('form')[0];
|
||||||
|
if (form.reportValidity()) {
|
||||||
|
const body = new FormData(form);
|
||||||
|
try {
|
||||||
|
const response = await fetch(form.action, {
|
||||||
|
method: 'POST',
|
||||||
|
body: body
|
||||||
|
});
|
||||||
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
dialog.find('input[name="flagId"]').val('');
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate device flag: ' + e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDeviceFlag').dialog({
|
||||||
|
resizable: false,
|
||||||
|
modal: true,
|
||||||
|
autoOpen: false,
|
||||||
|
width: 550,
|
||||||
|
buttons: {
|
||||||
|
"Exclude Unassigned Devices": function () {
|
||||||
|
action(excludeOtherRecords);
|
||||||
|
},
|
||||||
|
"Exclude Assigned Devices": function () {
|
||||||
|
action(excludeRecords);
|
||||||
|
},
|
||||||
|
"Add Assigned Devices": function () {
|
||||||
|
action(addRecords);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const $input = dialog.find('input[name="flagId"]');
|
||||||
|
dialog.on('click', 'div.item:not(.disabled)', e => {
|
||||||
|
e.preventDefault();
|
||||||
|
const $target = $(e.currentTarget);
|
||||||
|
$input.val($target.attr('data-userflagid'));
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
$target.addClass('selected');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
dialogAddDeviceFlag = dialog;
|
||||||
|
}
|
||||||
|
dialog.dialog('open');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
let dialogAddDeviceProfile = null;
|
let dialogAddDeviceProfile = null;
|
||||||
$('#AddDeviceProfile').click(e => {
|
$('#AddDeviceProfile').click(e => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let dialog = dialogAddDeviceProfile;
|
let dialog = dialogAddDeviceProfile;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
const input = dialog.find('input[name="deviceProfileId"]');
|
const input = dialog.find('input[name="deviceProfileId"]');
|
||||||
if (input.val()) {
|
if (input.val()) {
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
input.val('');
|
|
||||||
dialog.find('div.item').removeClass('selected');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate device profile: ' + reason);
|
|
||||||
});
|
});
|
||||||
dialog.dialog("disable");
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
input.val('');
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate device profile: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const target = scope === 'user' ? 'Assigned Users' : 'Devices';
|
||||||
|
const buttons = {};
|
||||||
|
buttons[`Exclude Other ${target}`] = function () {
|
||||||
|
action(excludeOtherRecords);
|
||||||
|
};
|
||||||
|
buttons[`Exclude ${target}`] = function () {
|
||||||
|
action(excludeRecords);
|
||||||
|
};
|
||||||
|
buttons[`Add ${target}`] = function () {
|
||||||
|
action(addRecords);
|
||||||
|
};
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDeviceProfile').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDeviceProfile').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 460,
|
width: 550,
|
||||||
buttons: {
|
buttons: buttons
|
||||||
"Exclude Unassigned Users": function () {
|
|
||||||
action(excludeOtherUsers);
|
|
||||||
},
|
|
||||||
"Exclude Assigned Users": function () {
|
|
||||||
action(excludeUsers);
|
|
||||||
},
|
|
||||||
"Add Assigned Users": function () {
|
|
||||||
action(addUsers);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
const $input = dialog.find('input[name="deviceProfileId"]');
|
const $input = dialog.find('input[name="deviceProfileId"]');
|
||||||
dialog.on('click', 'div.item:not(.disabled)', e => {
|
dialog.on('click', 'div.item:not(.disabled)', e => {
|
||||||
@@ -348,47 +443,45 @@
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let dialog = dialogAddDeviceBatch;
|
let dialog = dialogAddDeviceBatch;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
const input = dialog.find('input[name="deviceBatchId"]');
|
const input = dialog.find('input[name="deviceBatchId"]');
|
||||||
if (input.val()) {
|
if (input.val()) {
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
input.val('');
|
|
||||||
dialog.find('div.item').removeClass('selected');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate device batch: ' + reason);
|
|
||||||
});
|
});
|
||||||
dialog.dialog("disable");
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
input.val('');
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate device batch: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const target = scope === 'user' ? 'Assigned Users' : 'Devices';
|
||||||
|
const buttons = {};
|
||||||
|
buttons[`Exclude Other ${target}`] = function () {
|
||||||
|
action(excludeOtherRecords);
|
||||||
|
};
|
||||||
|
buttons[`Exclude ${target}`] = function () {
|
||||||
|
action(excludeRecords);
|
||||||
|
};
|
||||||
|
buttons[`Add ${target}`] = function () {
|
||||||
|
action(addRecords);
|
||||||
|
};
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDeviceBatch').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDeviceBatch').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 460,
|
width: 550,
|
||||||
buttons: {
|
buttons: buttons
|
||||||
"Exclude Unassigned Users": function () {
|
|
||||||
action(excludeOtherUsers);
|
|
||||||
},
|
|
||||||
"Exclude Assigned Users": function () {
|
|
||||||
action(excludeUsers);
|
|
||||||
},
|
|
||||||
"Add Assigned Users": function () {
|
|
||||||
action(addUsers);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
const $input = dialog.find('input[name="deviceBatchId"]');
|
const $input = dialog.find('input[name="deviceBatchId"]');
|
||||||
dialog.on('click', 'div.item:not(.disabled)', e => {
|
dialog.on('click', 'div.item:not(.disabled)', e => {
|
||||||
@@ -410,47 +503,45 @@
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let dialog = dialogAddDocumentAttachment;
|
let dialog = dialogAddDocumentAttachment;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
const input = dialog.find('input[name="documentTemplateId"]');
|
const input = dialog.find('input[name="documentTemplateId"]');
|
||||||
if (input.val()) {
|
if (input.val()) {
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
input.val('');
|
|
||||||
dialog.find('div.item').removeClass('selected');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate device batch: ' + reason);
|
|
||||||
});
|
});
|
||||||
dialog.dialog("disable");
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
input.val('');
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate device batch: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const target = scope === 'user' ? 'Users' : 'Devices';
|
||||||
|
const buttons = {};
|
||||||
|
buttons[`Exclude Unassigned ${target}`] = function () {
|
||||||
|
action(excludeOtherRecords);
|
||||||
|
};
|
||||||
|
buttons[`Exclude Assigned ${target}`] = function () {
|
||||||
|
action(excludeRecords);
|
||||||
|
};
|
||||||
|
buttons[`Add Assigned ${target}`] = function () {
|
||||||
|
action(addRecords);
|
||||||
|
};
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDocumentAttachment').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddDocumentAttachment').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 460,
|
width: 550,
|
||||||
buttons: {
|
buttons: buttons
|
||||||
"Exclude Unassigned Users": function () {
|
|
||||||
action(excludeOtherUsers);
|
|
||||||
},
|
|
||||||
"Exclude Assigned Users": function () {
|
|
||||||
action(excludeUsers);
|
|
||||||
},
|
|
||||||
"Add Assigned Users": function () {
|
|
||||||
action(addUsers);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
const $input = dialog.find('input[name="documentTemplateId"]');
|
const $input = dialog.find('input[name="documentTemplateId"]');
|
||||||
dialog.on('click', 'div.item:not(.disabled)', e => {
|
dialog.on('click', 'div.item:not(.disabled)', e => {
|
||||||
@@ -472,49 +563,47 @@
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let dialog = dialogAddUserDetail;
|
let dialog = dialogAddUserDetail;
|
||||||
if (!dialog) {
|
if (!dialog) {
|
||||||
const action = function (applier) {
|
const action = async function (applier) {
|
||||||
const form = dialog.find('form')[0];
|
const form = dialog.find('form')[0];
|
||||||
const key = $(form).find('input[name="key"]');
|
const key = $(form).find('input[name="key"]');
|
||||||
if (key.val()) {
|
if (key.val()) {
|
||||||
if (form.reportValidity()) {
|
if (form.reportValidity()) {
|
||||||
const body = new FormData(form);
|
const body = new FormData(form);
|
||||||
fetch(form.action, {
|
try {
|
||||||
method: 'POST',
|
const response = await fetch(form.action, {
|
||||||
body: body
|
method: 'POST',
|
||||||
})
|
body: body
|
||||||
.then(r => r.json())
|
|
||||||
.then(r => {
|
|
||||||
applier(r);
|
|
||||||
key.val('');
|
|
||||||
$(form).find('input[name="value"]').val('');
|
|
||||||
$('#DocumentTemplate_BulkGenerate_Dialog_AddUserDetail_Value').empty();
|
|
||||||
dialog.find('div.item').removeClass('selected');
|
|
||||||
dialog.dialog("close");
|
|
||||||
dialog.dialog("enable");
|
|
||||||
})
|
|
||||||
.catch(reason => {
|
|
||||||
alert('Failed to validate user detail: ' + reason);
|
|
||||||
});
|
});
|
||||||
dialog.dialog("disable");
|
const result = await response.json();
|
||||||
|
applier(result);
|
||||||
|
key.val('');
|
||||||
|
$(form).find('input[name="value"]').val('');
|
||||||
|
$('#DocumentTemplate_BulkGenerate_Dialog_AddUserDetail_Value').empty();
|
||||||
|
dialog.find('div.item').removeClass('selected');
|
||||||
|
dialog.dialog("close");
|
||||||
|
} catch (e) {
|
||||||
|
alert('Failed to validate user detail: ' + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const target = scope === 'user' ? 'Users' : 'Devices';
|
||||||
|
const buttons = {};
|
||||||
|
buttons[`Exclude Unmatched ${target}`] = function () {
|
||||||
|
action(excludeOtherRecords);
|
||||||
|
};
|
||||||
|
buttons[`Exclude Matched ${target}`] = function () {
|
||||||
|
action(excludeRecords);
|
||||||
|
};
|
||||||
|
buttons[`Add Matched ${target}`] = function () {
|
||||||
|
action(addRecords);
|
||||||
|
};
|
||||||
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddUserDetail').dialog({
|
dialog = $('#DocumentTemplate_BulkGenerate_Dialog_AddUserDetail').dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: 690,
|
width: 690,
|
||||||
buttons: {
|
buttons: buttons
|
||||||
"Exclude Unmatched Users": function () {
|
|
||||||
action(excludeOtherUsers);
|
|
||||||
},
|
|
||||||
"Exclude Matched Users": function () {
|
|
||||||
action(excludeUsers);
|
|
||||||
},
|
|
||||||
"Add Matched Users": function () {
|
|
||||||
action(addUsers);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
const $key = dialog.find('input[name="key"]');
|
const $key = dialog.find('input[name="key"]');
|
||||||
const $value = dialog.find('input[name="value"]');
|
const $value = dialog.find('input[name="value"]');
|
||||||
|
|||||||
@@ -1981,14 +1981,17 @@ h1.Config_DocumentTemplates {
|
|||||||
padding-bottom: 0.5em;
|
padding-bottom: 0.5em;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
#DocumentTemplate_BulkGenerate table {
|
#DocumentTemplate_BulkGenerate_Records {
|
||||||
max-width: 850px;
|
max-width: 850px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
#DocumentTemplate_BulkGenerate table tr.when-none {
|
#DocumentTemplate_BulkGenerate_Records tr.when-none {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
#DocumentTemplate_BulkGenerate_Records[data-scope="device"] .name {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
.dialog-item-picker {
|
.dialog-item-picker {
|
||||||
height: 300px;
|
height: 300px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|||||||
@@ -2386,14 +2386,20 @@ h1.Config_DocumentTemplates {
|
|||||||
padding-bottom: .5em;
|
padding-bottom: .5em;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
table {
|
#DocumentTemplate_BulkGenerate_Records {
|
||||||
max-width: 850px;
|
max-width: 850px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
|
||||||
tr.when-none {
|
tr.when-none {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
&[data-scope="device"] {
|
||||||
|
.name {
|
||||||
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -222,7 +222,7 @@
|
|||||||
<Compile Include="Areas\API\Models\Activation\CallbackModel.cs" />
|
<Compile Include="Areas\API\Models\Activation\CallbackModel.cs" />
|
||||||
<Compile Include="Areas\API\Models\DeviceModel\TestComputerNameTemplateModel.cs" />
|
<Compile Include="Areas\API\Models\DeviceModel\TestComputerNameTemplateModel.cs" />
|
||||||
<Compile Include="Areas\API\Models\DocumentTemplate\AddOnImportUserFlagRuleModel.cs" />
|
<Compile Include="Areas\API\Models\DocumentTemplate\AddOnImportUserFlagRuleModel.cs" />
|
||||||
<Compile Include="Areas\API\Models\DocumentTemplate\BulkGenerateUserModel.cs" />
|
<Compile Include="Areas\API\Models\DocumentTemplate\BulkGenerateItemModel.cs" />
|
||||||
<Compile Include="Areas\API\Models\DocumentTemplate\DocumentHandlersModel.cs" />
|
<Compile Include="Areas\API\Models\DocumentTemplate\DocumentHandlersModel.cs" />
|
||||||
<Compile Include="Areas\API\Models\Job\DeviceHeldLocationModel.cs" />
|
<Compile Include="Areas\API\Models\Job\DeviceHeldLocationModel.cs" />
|
||||||
<Compile Include="Areas\API\Models\Shared\SubjectDescriptorModel.cs" />
|
<Compile Include="Areas\API\Models\Shared\SubjectDescriptorModel.cs" />
|
||||||
@@ -293,10 +293,15 @@
|
|||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Areas\Config\Views\DocumentTemplate\BulkGenerate.generated.cs">
|
<Compile Include="Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.generated.cs">
|
||||||
|
<DependentUpon>BulkGenerateDevice.cshtml</DependentUpon>
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
<DependentUpon>BulkGenerate.cshtml</DependentUpon>
|
</Compile>
|
||||||
|
<Compile Include="Areas\Config\Views\DocumentTemplate\BulkGenerateUser.generated.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
<DependentUpon>BulkGenerateUser.cshtml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Areas\Config\Views\DocumentTemplate\CreatePackage.generated.cs">
|
<Compile Include="Areas\Config\Views\DocumentTemplate\CreatePackage.generated.cs">
|
||||||
<DependentUpon>CreatePackage.cshtml</DependentUpon>
|
<DependentUpon>CreatePackage.cshtml</DependentUpon>
|
||||||
@@ -313,6 +318,11 @@
|
|||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
<DependentUpon>ShowPackage.cshtml</DependentUpon>
|
<DependentUpon>ShowPackage.cshtml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Areas\Config\Views\DocumentTemplate\_BulkGenerateShared.generated.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
<DependentUpon>_BulkGenerateShared.cshtml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Areas\Config\Views\Export\_Edit.generated.cs">
|
<Compile Include="Areas\Config\Views\Export\_Edit.generated.cs">
|
||||||
<DependentUpon>_Edit.cshtml</DependentUpon>
|
<DependentUpon>_Edit.cshtml</DependentUpon>
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
@@ -1393,9 +1403,13 @@
|
|||||||
<Generator>RazorGenerator</Generator>
|
<Generator>RazorGenerator</Generator>
|
||||||
<LastGenOutput>Create.generated.cs</LastGenOutput>
|
<LastGenOutput>Create.generated.cs</LastGenOutput>
|
||||||
</None>
|
</None>
|
||||||
<None Include="Areas\Config\Views\DocumentTemplate\BulkGenerate.cshtml">
|
<Content Include="Areas\Config\Views\DocumentTemplate\BulkGenerateDevice.cshtml">
|
||||||
<Generator>RazorGenerator</Generator>
|
<Generator>RazorGenerator</Generator>
|
||||||
<LastGenOutput>BulkGenerate.generated.cs</LastGenOutput>
|
<LastGenOutput>BulkGenerateDevice.generated.cs</LastGenOutput>
|
||||||
|
</Content>
|
||||||
|
<None Include="Areas\Config\Views\DocumentTemplate\BulkGenerateUser.cshtml">
|
||||||
|
<Generator>RazorGenerator</Generator>
|
||||||
|
<LastGenOutput>BulkGenerateUser.generated.cs</LastGenOutput>
|
||||||
</None>
|
</None>
|
||||||
<None Include="Areas\Config\Views\DocumentTemplate\Export.cshtml">
|
<None Include="Areas\Config\Views\DocumentTemplate\Export.cshtml">
|
||||||
<Generator>RazorGenerator</Generator>
|
<Generator>RazorGenerator</Generator>
|
||||||
@@ -1409,6 +1423,10 @@
|
|||||||
<Generator>RazorGenerator</Generator>
|
<Generator>RazorGenerator</Generator>
|
||||||
<LastGenOutput>CreatePackage.generated.cs</LastGenOutput>
|
<LastGenOutput>CreatePackage.generated.cs</LastGenOutput>
|
||||||
</None>
|
</None>
|
||||||
|
<None Include="Areas\Config\Views\DocumentTemplate\_BulkGenerateShared.cshtml">
|
||||||
|
<Generator>RazorGenerator</Generator>
|
||||||
|
<LastGenOutput>_BulkGenerateShared.generated.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
<None Include="Areas\Config\Views\Export\Create.cshtml">
|
<None Include="Areas\Config\Views\Export\Create.cshtml">
|
||||||
<Generator>RazorGenerator</Generator>
|
<Generator>RazorGenerator</Generator>
|
||||||
<LastGenOutput>Create.generated.cs</LastGenOutput>
|
<LastGenOutput>Create.generated.cs</LastGenOutput>
|
||||||
|
|||||||
@@ -205,6 +205,12 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
[NonAction]
|
[NonAction]
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public virtual System.Web.Mvc.ActionResult BulkGenerateAddDevices()
|
||||||
|
{
|
||||||
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddDevices);
|
||||||
|
}
|
||||||
|
[NonAction]
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public virtual System.Web.Mvc.ActionResult BulkGenerateAddGroupMembers()
|
public virtual System.Web.Mvc.ActionResult BulkGenerateAddGroupMembers()
|
||||||
{
|
{
|
||||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddGroupMembers);
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddGroupMembers);
|
||||||
@@ -217,6 +223,12 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
[NonAction]
|
[NonAction]
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public virtual System.Web.Mvc.ActionResult BulkGenerateAddDeviceFlag()
|
||||||
|
{
|
||||||
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddDeviceFlag);
|
||||||
|
}
|
||||||
|
[NonAction]
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public virtual System.Web.Mvc.ActionResult BulkGenerateAddDeviceProfile()
|
public virtual System.Web.Mvc.ActionResult BulkGenerateAddDeviceProfile()
|
||||||
{
|
{
|
||||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddDeviceProfile);
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddDeviceProfile);
|
||||||
@@ -340,8 +352,10 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public readonly string BulkGenerate = "BulkGenerate";
|
public readonly string BulkGenerate = "BulkGenerate";
|
||||||
public readonly string BulkGenerateDownload = "BulkGenerateDownload";
|
public readonly string BulkGenerateDownload = "BulkGenerateDownload";
|
||||||
public readonly string BulkGenerateAddUsers = "BulkGenerateAddUsers";
|
public readonly string BulkGenerateAddUsers = "BulkGenerateAddUsers";
|
||||||
|
public readonly string BulkGenerateAddDevices = "BulkGenerateAddDevices";
|
||||||
public readonly string BulkGenerateAddGroupMembers = "BulkGenerateAddGroupMembers";
|
public readonly string BulkGenerateAddGroupMembers = "BulkGenerateAddGroupMembers";
|
||||||
public readonly string BulkGenerateAddUserFlag = "BulkGenerateAddUserFlag";
|
public readonly string BulkGenerateAddUserFlag = "BulkGenerateAddUserFlag";
|
||||||
|
public readonly string BulkGenerateAddDeviceFlag = "BulkGenerateAddDeviceFlag";
|
||||||
public readonly string BulkGenerateAddDeviceProfile = "BulkGenerateAddDeviceProfile";
|
public readonly string BulkGenerateAddDeviceProfile = "BulkGenerateAddDeviceProfile";
|
||||||
public readonly string BulkGenerateAddDeviceBatch = "BulkGenerateAddDeviceBatch";
|
public readonly string BulkGenerateAddDeviceBatch = "BulkGenerateAddDeviceBatch";
|
||||||
public readonly string BulkGenerateAddDocumentAttachment = "BulkGenerateAddDocumentAttachment";
|
public readonly string BulkGenerateAddDocumentAttachment = "BulkGenerateAddDocumentAttachment";
|
||||||
@@ -386,8 +400,10 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public const string BulkGenerate = "BulkGenerate";
|
public const string BulkGenerate = "BulkGenerate";
|
||||||
public const string BulkGenerateDownload = "BulkGenerateDownload";
|
public const string BulkGenerateDownload = "BulkGenerateDownload";
|
||||||
public const string BulkGenerateAddUsers = "BulkGenerateAddUsers";
|
public const string BulkGenerateAddUsers = "BulkGenerateAddUsers";
|
||||||
|
public const string BulkGenerateAddDevices = "BulkGenerateAddDevices";
|
||||||
public const string BulkGenerateAddGroupMembers = "BulkGenerateAddGroupMembers";
|
public const string BulkGenerateAddGroupMembers = "BulkGenerateAddGroupMembers";
|
||||||
public const string BulkGenerateAddUserFlag = "BulkGenerateAddUserFlag";
|
public const string BulkGenerateAddUserFlag = "BulkGenerateAddUserFlag";
|
||||||
|
public const string BulkGenerateAddDeviceFlag = "BulkGenerateAddDeviceFlag";
|
||||||
public const string BulkGenerateAddDeviceProfile = "BulkGenerateAddDeviceProfile";
|
public const string BulkGenerateAddDeviceProfile = "BulkGenerateAddDeviceProfile";
|
||||||
public const string BulkGenerateAddDeviceBatch = "BulkGenerateAddDeviceBatch";
|
public const string BulkGenerateAddDeviceBatch = "BulkGenerateAddDeviceBatch";
|
||||||
public const string BulkGenerateAddDocumentAttachment = "BulkGenerateAddDocumentAttachment";
|
public const string BulkGenerateAddDocumentAttachment = "BulkGenerateAddDocumentAttachment";
|
||||||
@@ -635,8 +651,17 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public class ActionParamsClass_BulkGenerateAddUsers
|
public class ActionParamsClass_BulkGenerateAddUsers
|
||||||
{
|
{
|
||||||
|
public readonly string scope = "scope";
|
||||||
public readonly string userIds = "userIds";
|
public readonly string userIds = "userIds";
|
||||||
}
|
}
|
||||||
|
static readonly ActionParamsClass_BulkGenerateAddDevices s_params_BulkGenerateAddDevices = new ActionParamsClass_BulkGenerateAddDevices();
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public ActionParamsClass_BulkGenerateAddDevices BulkGenerateAddDevicesParams { get { return s_params_BulkGenerateAddDevices; } }
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public class ActionParamsClass_BulkGenerateAddDevices
|
||||||
|
{
|
||||||
|
public readonly string deviceSerialNumbers = "deviceSerialNumbers";
|
||||||
|
}
|
||||||
static readonly ActionParamsClass_BulkGenerateAddGroupMembers s_params_BulkGenerateAddGroupMembers = new ActionParamsClass_BulkGenerateAddGroupMembers();
|
static readonly ActionParamsClass_BulkGenerateAddGroupMembers s_params_BulkGenerateAddGroupMembers = new ActionParamsClass_BulkGenerateAddGroupMembers();
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public ActionParamsClass_BulkGenerateAddGroupMembers BulkGenerateAddGroupMembersParams { get { return s_params_BulkGenerateAddGroupMembers; } }
|
public ActionParamsClass_BulkGenerateAddGroupMembers BulkGenerateAddGroupMembersParams { get { return s_params_BulkGenerateAddGroupMembers; } }
|
||||||
@@ -653,12 +678,21 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
{
|
{
|
||||||
public readonly string flagId = "flagId";
|
public readonly string flagId = "flagId";
|
||||||
}
|
}
|
||||||
|
static readonly ActionParamsClass_BulkGenerateAddDeviceFlag s_params_BulkGenerateAddDeviceFlag = new ActionParamsClass_BulkGenerateAddDeviceFlag();
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public ActionParamsClass_BulkGenerateAddDeviceFlag BulkGenerateAddDeviceFlagParams { get { return s_params_BulkGenerateAddDeviceFlag; } }
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public class ActionParamsClass_BulkGenerateAddDeviceFlag
|
||||||
|
{
|
||||||
|
public readonly string flagId = "flagId";
|
||||||
|
}
|
||||||
static readonly ActionParamsClass_BulkGenerateAddDeviceProfile s_params_BulkGenerateAddDeviceProfile = new ActionParamsClass_BulkGenerateAddDeviceProfile();
|
static readonly ActionParamsClass_BulkGenerateAddDeviceProfile s_params_BulkGenerateAddDeviceProfile = new ActionParamsClass_BulkGenerateAddDeviceProfile();
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public ActionParamsClass_BulkGenerateAddDeviceProfile BulkGenerateAddDeviceProfileParams { get { return s_params_BulkGenerateAddDeviceProfile; } }
|
public ActionParamsClass_BulkGenerateAddDeviceProfile BulkGenerateAddDeviceProfileParams { get { return s_params_BulkGenerateAddDeviceProfile; } }
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public class ActionParamsClass_BulkGenerateAddDeviceProfile
|
public class ActionParamsClass_BulkGenerateAddDeviceProfile
|
||||||
{
|
{
|
||||||
|
public readonly string scope = "scope";
|
||||||
public readonly string deviceProfileId = "deviceProfileId";
|
public readonly string deviceProfileId = "deviceProfileId";
|
||||||
}
|
}
|
||||||
static readonly ActionParamsClass_BulkGenerateAddDeviceBatch s_params_BulkGenerateAddDeviceBatch = new ActionParamsClass_BulkGenerateAddDeviceBatch();
|
static readonly ActionParamsClass_BulkGenerateAddDeviceBatch s_params_BulkGenerateAddDeviceBatch = new ActionParamsClass_BulkGenerateAddDeviceBatch();
|
||||||
@@ -667,6 +701,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public class ActionParamsClass_BulkGenerateAddDeviceBatch
|
public class ActionParamsClass_BulkGenerateAddDeviceBatch
|
||||||
{
|
{
|
||||||
|
public readonly string scope = "scope";
|
||||||
public readonly string deviceBatchId = "deviceBatchId";
|
public readonly string deviceBatchId = "deviceBatchId";
|
||||||
}
|
}
|
||||||
static readonly ActionParamsClass_BulkGenerateAddDocumentAttachment s_params_BulkGenerateAddDocumentAttachment = new ActionParamsClass_BulkGenerateAddDocumentAttachment();
|
static readonly ActionParamsClass_BulkGenerateAddDocumentAttachment s_params_BulkGenerateAddDocumentAttachment = new ActionParamsClass_BulkGenerateAddDocumentAttachment();
|
||||||
@@ -675,6 +710,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public class ActionParamsClass_BulkGenerateAddDocumentAttachment
|
public class ActionParamsClass_BulkGenerateAddDocumentAttachment
|
||||||
{
|
{
|
||||||
|
public readonly string scope = "scope";
|
||||||
public readonly string documentTemplateId = "documentTemplateId";
|
public readonly string documentTemplateId = "documentTemplateId";
|
||||||
public readonly string threshold = "threshold";
|
public readonly string threshold = "threshold";
|
||||||
}
|
}
|
||||||
@@ -692,6 +728,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public class ActionParamsClass_BulkGenerateAddUserDetail
|
public class ActionParamsClass_BulkGenerateAddUserDetail
|
||||||
{
|
{
|
||||||
|
public readonly string scope = "scope";
|
||||||
public readonly string key = "key";
|
public readonly string key = "key";
|
||||||
public readonly string value = "value";
|
public readonly string value = "value";
|
||||||
}
|
}
|
||||||
@@ -1135,14 +1172,27 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
partial void BulkGenerateAddUsersOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string userIds);
|
partial void BulkGenerateAddUsersOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string scope, string userIds);
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
public override System.Web.Mvc.ActionResult BulkGenerateAddUsers(string userIds)
|
public override System.Web.Mvc.ActionResult BulkGenerateAddUsers(string scope, string userIds)
|
||||||
{
|
{
|
||||||
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddUsers);
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddUsers);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "scope", scope);
|
||||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "userIds", userIds);
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "userIds", userIds);
|
||||||
BulkGenerateAddUsersOverride(callInfo, userIds);
|
BulkGenerateAddUsersOverride(callInfo, scope, userIds);
|
||||||
|
return callInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
partial void BulkGenerateAddDevicesOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string deviceSerialNumbers);
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
public override System.Web.Mvc.ActionResult BulkGenerateAddDevices(string deviceSerialNumbers)
|
||||||
|
{
|
||||||
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddDevices);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "deviceSerialNumbers", deviceSerialNumbers);
|
||||||
|
BulkGenerateAddDevicesOverride(callInfo, deviceSerialNumbers);
|
||||||
return callInfo;
|
return callInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1171,39 +1221,54 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
partial void BulkGenerateAddDeviceProfileOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int deviceProfileId);
|
partial void BulkGenerateAddDeviceFlagOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int flagId);
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
public override System.Web.Mvc.ActionResult BulkGenerateAddDeviceProfile(int deviceProfileId)
|
public override System.Web.Mvc.ActionResult BulkGenerateAddDeviceFlag(int flagId)
|
||||||
|
{
|
||||||
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddDeviceFlag);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "flagId", flagId);
|
||||||
|
BulkGenerateAddDeviceFlagOverride(callInfo, flagId);
|
||||||
|
return callInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
partial void BulkGenerateAddDeviceProfileOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string scope, int deviceProfileId);
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
public override System.Web.Mvc.ActionResult BulkGenerateAddDeviceProfile(string scope, int deviceProfileId)
|
||||||
{
|
{
|
||||||
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddDeviceProfile);
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddDeviceProfile);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "scope", scope);
|
||||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "deviceProfileId", deviceProfileId);
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "deviceProfileId", deviceProfileId);
|
||||||
BulkGenerateAddDeviceProfileOverride(callInfo, deviceProfileId);
|
BulkGenerateAddDeviceProfileOverride(callInfo, scope, deviceProfileId);
|
||||||
return callInfo;
|
return callInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
partial void BulkGenerateAddDeviceBatchOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int deviceBatchId);
|
partial void BulkGenerateAddDeviceBatchOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string scope, int deviceBatchId);
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
public override System.Web.Mvc.ActionResult BulkGenerateAddDeviceBatch(int deviceBatchId)
|
public override System.Web.Mvc.ActionResult BulkGenerateAddDeviceBatch(string scope, int deviceBatchId)
|
||||||
{
|
{
|
||||||
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddDeviceBatch);
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddDeviceBatch);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "scope", scope);
|
||||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "deviceBatchId", deviceBatchId);
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "deviceBatchId", deviceBatchId);
|
||||||
BulkGenerateAddDeviceBatchOverride(callInfo, deviceBatchId);
|
BulkGenerateAddDeviceBatchOverride(callInfo, scope, deviceBatchId);
|
||||||
return callInfo;
|
return callInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
partial void BulkGenerateAddDocumentAttachmentOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string documentTemplateId, System.DateTime? threshold);
|
partial void BulkGenerateAddDocumentAttachmentOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string scope, string documentTemplateId, System.DateTime? threshold);
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
public override System.Web.Mvc.ActionResult BulkGenerateAddDocumentAttachment(string documentTemplateId, System.DateTime? threshold)
|
public override System.Web.Mvc.ActionResult BulkGenerateAddDocumentAttachment(string scope, string documentTemplateId, System.DateTime? threshold)
|
||||||
{
|
{
|
||||||
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddDocumentAttachment);
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddDocumentAttachment);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "scope", scope);
|
||||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "documentTemplateId", documentTemplateId);
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "documentTemplateId", documentTemplateId);
|
||||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "threshold", threshold);
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "threshold", threshold);
|
||||||
BulkGenerateAddDocumentAttachmentOverride(callInfo, documentTemplateId, threshold);
|
BulkGenerateAddDocumentAttachmentOverride(callInfo, scope, documentTemplateId, threshold);
|
||||||
return callInfo;
|
return callInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1220,15 +1285,16 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
partial void BulkGenerateAddUserDetailOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string key, string value);
|
partial void BulkGenerateAddUserDetailOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string scope, string key, string value);
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
public override System.Web.Mvc.ActionResult BulkGenerateAddUserDetail(string key, string value)
|
public override System.Web.Mvc.ActionResult BulkGenerateAddUserDetail(string scope, string key, string value)
|
||||||
{
|
{
|
||||||
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddUserDetail);
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkGenerateAddUserDetail);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "scope", scope);
|
||||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "key", key);
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "key", key);
|
||||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "value", value);
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "value", value);
|
||||||
BulkGenerateAddUserDetailOverride(callInfo, key, value);
|
BulkGenerateAddUserDetailOverride(callInfo, scope, key, value);
|
||||||
return callInfo;
|
return callInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -186,8 +186,10 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
public _ViewNamesClass ViewNames { get { return s_ViewNames; } }
|
public _ViewNamesClass ViewNames { get { return s_ViewNames; } }
|
||||||
public class _ViewNamesClass
|
public class _ViewNamesClass
|
||||||
{
|
{
|
||||||
|
public readonly string _BulkGenerateShared = "_BulkGenerateShared";
|
||||||
public readonly string _ExpressionsTable = "_ExpressionsTable";
|
public readonly string _ExpressionsTable = "_ExpressionsTable";
|
||||||
public readonly string BulkGenerate = "BulkGenerate";
|
public readonly string BulkGenerateDevice = "BulkGenerateDevice";
|
||||||
|
public readonly string BulkGenerateUser = "BulkGenerateUser";
|
||||||
public readonly string Create = "Create";
|
public readonly string Create = "Create";
|
||||||
public readonly string CreatePackage = "CreatePackage";
|
public readonly string CreatePackage = "CreatePackage";
|
||||||
public readonly string Export = "Export";
|
public readonly string Export = "Export";
|
||||||
@@ -197,8 +199,10 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
public readonly string ShowPackage = "ShowPackage";
|
public readonly string ShowPackage = "ShowPackage";
|
||||||
public readonly string UndetectedPages = "UndetectedPages";
|
public readonly string UndetectedPages = "UndetectedPages";
|
||||||
}
|
}
|
||||||
|
public readonly string _BulkGenerateShared = "~/Areas/Config/Views/DocumentTemplate/_BulkGenerateShared.cshtml";
|
||||||
public readonly string _ExpressionsTable = "~/Areas/Config/Views/DocumentTemplate/_ExpressionsTable.cshtml";
|
public readonly string _ExpressionsTable = "~/Areas/Config/Views/DocumentTemplate/_ExpressionsTable.cshtml";
|
||||||
public readonly string BulkGenerate = "~/Areas/Config/Views/DocumentTemplate/BulkGenerate.cshtml";
|
public readonly string BulkGenerateDevice = "~/Areas/Config/Views/DocumentTemplate/BulkGenerateDevice.cshtml";
|
||||||
|
public readonly string BulkGenerateUser = "~/Areas/Config/Views/DocumentTemplate/BulkGenerateUser.cshtml";
|
||||||
public readonly string Create = "~/Areas/Config/Views/DocumentTemplate/Create.cshtml";
|
public readonly string Create = "~/Areas/Config/Views/DocumentTemplate/Create.cshtml";
|
||||||
public readonly string CreatePackage = "~/Areas/Config/Views/DocumentTemplate/CreatePackage.cshtml";
|
public readonly string CreatePackage = "~/Areas/Config/Views/DocumentTemplate/CreatePackage.cshtml";
|
||||||
public readonly string Export = "~/Areas/Config/Views/DocumentTemplate/Export.cshtml";
|
public readonly string Export = "~/Areas/Config/Views/DocumentTemplate/Export.cshtml";
|
||||||
|
|||||||
@@ -171,8 +171,8 @@ namespace Links
|
|||||||
public static readonly string disco_uicore_js_ = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/disco.uicore.min.js") ? Url("disco.uicore.min.js") : Url("disco.uicore.js");
|
public static readonly string disco_uicore_js_ = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/disco.uicore.min.js") ? Url("disco.uicore.min.js") : Url("disco.uicore.js");
|
||||||
public static readonly string disco_unobtrusiveValidation_extensions_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/disco.unobtrusiveValidation.extensions.min.js") ? Url("disco.unobtrusiveValidation.extensions.min.js") : Url("disco.unobtrusiveValidation.extensions.js");
|
public static readonly string disco_unobtrusiveValidation_extensions_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/disco.unobtrusiveValidation.extensions.min.js") ? Url("disco.unobtrusiveValidation.extensions.min.js") : Url("disco.unobtrusiveValidation.extensions.js");
|
||||||
public static readonly string disco_unobtrusiveValidation_extensions_js_ = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/disco.unobtrusiveValidation.extensions.min.js") ? Url("disco.unobtrusiveValidation.extensions.min.js") : Url("disco.unobtrusiveValidation.extensions.js");
|
public static readonly string disco_unobtrusiveValidation_extensions_js_ = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/disco.unobtrusiveValidation.extensions.min.js") ? Url("disco.unobtrusiveValidation.extensions.min.js") : Url("disco.unobtrusiveValidation.extensions.js");
|
||||||
public static readonly string jquery_2_1_1_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jquery-2.1.1.min.js") ? Url("jquery-2.1.1.min.js") : Url("jquery-2.1.1.js");
|
public static readonly string jquery_3_7_1_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jquery-3.7.1.min.js") ? Url("jquery-3.7.1.min.js") : Url("jquery-3.7.1.js");
|
||||||
public static readonly string jquery_ui_1_10_4_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jquery-ui-1.10.4.min.js") ? Url("jquery-ui-1.10.4.min.js") : Url("jquery-ui-1.10.4.js");
|
public static readonly string jquery_ui_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jquery-ui.min.js") ? Url("jquery-ui.min.js") : Url("jquery-ui.js");
|
||||||
public static readonly string jquery_dataTables_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jquery.dataTables.min.js") ? Url("jquery.dataTables.min.js") : Url("jquery.dataTables.js");
|
public static readonly string jquery_dataTables_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jquery.dataTables.min.js") ? Url("jquery.dataTables.min.js") : Url("jquery.dataTables.js");
|
||||||
public static readonly string jquery_dataTables_js_ = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jquery.dataTables.min.js") ? Url("jquery.dataTables.min.js") : Url("jquery.dataTables.js");
|
public static readonly string jquery_dataTables_js_ = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jquery.dataTables.min.js") ? Url("jquery.dataTables.min.js") : Url("jquery.dataTables.js");
|
||||||
public static readonly string jquery_validate_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jquery.validate.min.js") ? Url("jquery.validate.min.js") : Url("jquery.validate.js");
|
public static readonly string jquery_validate_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jquery.validate.min.js") ? Url("jquery.validate.min.js") : Url("jquery.validate.js");
|
||||||
@@ -354,7 +354,7 @@ namespace Links
|
|||||||
public static string Url(string fileName) { return T4MVCHelpers.ProcessVirtualPath(UrlPath + "/" + fileName); }
|
public static string Url(string fileName) { return T4MVCHelpers.ProcessVirtualPath(UrlPath + "/" + fileName); }
|
||||||
public static readonly string disco_hubs_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/disco-hubs.min.js") ? Url("disco-hubs.min.js") : Url("disco-hubs.js");
|
public static readonly string disco_hubs_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/disco-hubs.min.js") ? Url("disco-hubs.min.js") : Url("disco-hubs.js");
|
||||||
public static readonly string disco_hubs_js_ = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/disco-hubs.min.js") ? Url("disco-hubs.min.js") : Url("disco-hubs.js");
|
public static readonly string disco_hubs_js_ = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/disco-hubs.min.js") ? Url("disco-hubs.min.js") : Url("disco-hubs.js");
|
||||||
public static readonly string jquery_signalR_2_1_2_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jquery.signalR-2.1.2.min.js") ? Url("jquery.signalR-2.1.2.min.js") : Url("jquery.signalR-2.1.2.js");
|
public static readonly string jquery_signalR_2_4_3_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jquery.signalR-2.4.3.min.js") ? Url("jquery.signalR-2.4.3.min.js") : Url("jquery.signalR-2.4.3.js");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static readonly string jQuery_SignalR_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jQuery-SignalR.min.js") ? Url("jQuery-SignalR.min.js") : Url("jQuery-SignalR.js");
|
public static readonly string jQuery_SignalR_js = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jQuery-SignalR.min.js") ? Url("jQuery-SignalR.min.js") : Url("jQuery-SignalR.js");
|
||||||
@@ -725,25 +725,15 @@ namespace Links
|
|||||||
public const string UrlPath = "~/ClientSource/Style/jQueryUI/images";
|
public const string UrlPath = "~/ClientSource/Style/jQueryUI/images";
|
||||||
public static string Url() { return T4MVCHelpers.ProcessVirtualPath(UrlPath); }
|
public static string Url() { return T4MVCHelpers.ProcessVirtualPath(UrlPath); }
|
||||||
public static string Url(string fileName) { return T4MVCHelpers.ProcessVirtualPath(UrlPath + "/" + fileName); }
|
public static string Url(string fileName) { return T4MVCHelpers.ProcessVirtualPath(UrlPath + "/" + fileName); }
|
||||||
public static readonly string animated_overlay_gif = Url("animated-overlay.gif");
|
public static readonly string ui_icons_444444_256x240_png = Url("ui-icons_444444_256x240.png");
|
||||||
public static readonly string ui_bg_flat_0_aaaaaa_40x100_png = Url("ui-bg_flat_0_aaaaaa_40x100.png");
|
public static readonly string ui_icons_555555_256x240_png = Url("ui-icons_555555_256x240.png");
|
||||||
public static readonly string ui_bg_flat_75_ffffff_40x100_png = Url("ui-bg_flat_75_ffffff_40x100.png");
|
public static readonly string ui_icons_777620_256x240_png = Url("ui-icons_777620_256x240.png");
|
||||||
public static readonly string ui_bg_glass_55_fbf9ee_1x400_png = Url("ui-bg_glass_55_fbf9ee_1x400.png");
|
public static readonly string ui_icons_777777_256x240_png = Url("ui-icons_777777_256x240.png");
|
||||||
public static readonly string ui_bg_glass_65_ffffff_1x400_png = Url("ui-bg_glass_65_ffffff_1x400.png");
|
public static readonly string ui_icons_cc0000_256x240_png = Url("ui-icons_cc0000_256x240.png");
|
||||||
public static readonly string ui_bg_glass_75_dadada_1x400_png = Url("ui-bg_glass_75_dadada_1x400.png");
|
public static readonly string ui_icons_ffffff_256x240_png = Url("ui-icons_ffffff_256x240.png");
|
||||||
public static readonly string ui_bg_glass_75_e6e6e6_1x400_png = Url("ui-bg_glass_75_e6e6e6_1x400.png");
|
|
||||||
public static readonly string ui_bg_glass_95_fef1ec_1x400_png = Url("ui-bg_glass_95_fef1ec_1x400.png");
|
|
||||||
public static readonly string ui_bg_highlight_soft_75_cccccc_1x100_png = Url("ui-bg_highlight-soft_75_cccccc_1x100.png");
|
|
||||||
public static readonly string ui_icons_222222_256x240_png = Url("ui-icons_222222_256x240.png");
|
|
||||||
public static readonly string ui_icons_2e83ff_256x240_png = Url("ui-icons_2e83ff_256x240.png");
|
|
||||||
public static readonly string ui_icons_454545_256x240_png = Url("ui-icons_454545_256x240.png");
|
|
||||||
public static readonly string ui_icons_888888_256x240_png = Url("ui-icons_888888_256x240.png");
|
|
||||||
public static readonly string ui_icons_cd0a0a_256x240_png = Url("ui-icons_cd0a0a_256x240.png");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static readonly string jquery_ui_less = Url("jquery-ui.less");
|
public static readonly string jquery_ui_less = Url("jquery-ui.less");
|
||||||
public static readonly string jquery_ui_css = T4MVCHelpers.IsProduction() && T4Extensions.FileExists(UrlPath + "/jquery-ui.min.css") ? Url("jquery-ui.min.css") : Url("jquery-ui.css");
|
|
||||||
public static readonly string jquery_ui_min_css = Url("jquery-ui.min.css");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static readonly string jQueryUIExtensions_less = Url("jQueryUIExtensions.less");
|
public static readonly string jQueryUIExtensions_less = Url("jQueryUIExtensions.less");
|
||||||
@@ -913,8 +903,8 @@ namespace Links
|
|||||||
public const string disco_uicore_js_ = "~/ClientSource/Scripts/Core/disco.uicore.js";
|
public const string disco_uicore_js_ = "~/ClientSource/Scripts/Core/disco.uicore.js";
|
||||||
public const string disco_unobtrusiveValidation_extensions_js = "~/ClientSource/Scripts/Core/disco.unobtrusiveValidation.extensions.js";
|
public const string disco_unobtrusiveValidation_extensions_js = "~/ClientSource/Scripts/Core/disco.unobtrusiveValidation.extensions.js";
|
||||||
public const string disco_unobtrusiveValidation_extensions_js_ = "~/ClientSource/Scripts/Core/disco.unobtrusiveValidation.extensions.js";
|
public const string disco_unobtrusiveValidation_extensions_js_ = "~/ClientSource/Scripts/Core/disco.unobtrusiveValidation.extensions.js";
|
||||||
public const string jquery_2_1_1_js = "~/ClientSource/Scripts/Core/jquery-2.1.1.js";
|
public const string jquery_3_7_1_js = "~/ClientSource/Scripts/Core/jquery-3.7.1.js";
|
||||||
public const string jquery_ui_1_10_4_js = "~/ClientSource/Scripts/Core/jquery-ui-1.10.4.js";
|
public const string jquery_ui_js = "~/ClientSource/Scripts/Core/jquery-ui.js";
|
||||||
public const string jquery_dataTables_js = "~/ClientSource/Scripts/Core/jquery.dataTables.js";
|
public const string jquery_dataTables_js = "~/ClientSource/Scripts/Core/jquery.dataTables.js";
|
||||||
public const string jquery_dataTables_js_ = "~/ClientSource/Scripts/Core/jquery.dataTables.js";
|
public const string jquery_dataTables_js_ = "~/ClientSource/Scripts/Core/jquery.dataTables.js";
|
||||||
public const string jquery_validate_js = "~/ClientSource/Scripts/Core/jquery.validate.js";
|
public const string jquery_validate_js = "~/ClientSource/Scripts/Core/jquery.validate.js";
|
||||||
@@ -1038,7 +1028,7 @@ namespace Links
|
|||||||
{
|
{
|
||||||
public const string disco_hubs_js = "~/ClientSource/Scripts/Modules/jQuery-SignalR/disco-hubs.js";
|
public const string disco_hubs_js = "~/ClientSource/Scripts/Modules/jQuery-SignalR/disco-hubs.js";
|
||||||
public const string disco_hubs_js_ = "~/ClientSource/Scripts/Modules/jQuery-SignalR/disco-hubs.js";
|
public const string disco_hubs_js_ = "~/ClientSource/Scripts/Modules/jQuery-SignalR/disco-hubs.js";
|
||||||
public const string jquery_signalR_2_1_2_js = "~/ClientSource/Scripts/Modules/jQuery-SignalR/jquery.signalR-2.1.2.js";
|
public const string jquery_signalR_2_4_3_js = "~/ClientSource/Scripts/Modules/jQuery-SignalR/jquery.signalR-2.4.3.js";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static partial class jQueryUI_DynaTree
|
public static partial class jQueryUI_DynaTree
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
<package id="EntityFramework" version="5.0.0" targetFramework="net45" />
|
<package id="EntityFramework" version="5.0.0" targetFramework="net45" />
|
||||||
<package id="EntityFramework.SqlServerCompact" version="4.3.6" targetFramework="net45" />
|
<package id="EntityFramework.SqlServerCompact" version="4.3.6" targetFramework="net45" />
|
||||||
<package id="FontAwesome" version="4.1.0" targetFramework="net45" />
|
<package id="FontAwesome" version="4.1.0" targetFramework="net45" />
|
||||||
<package id="jQuery" version="1.9.0" targetFramework="net462" />
|
|
||||||
<package id="knockoutjs" version="3.1.0" targetFramework="net45" />
|
<package id="knockoutjs" version="3.1.0" targetFramework="net45" />
|
||||||
<package id="MarkdownSharp" version="1.13.0.0" targetFramework="net45" />
|
<package id="MarkdownSharp" version="1.13.0.0" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.Mvc" version="4.0.30506.0" targetFramework="net45" />
|
<package id="Microsoft.AspNet.Mvc" version="4.0.30506.0" targetFramework="net45" />
|
||||||
|
|||||||
Reference in New Issue
Block a user