Update #26: User Flags Bulk Assignment

Add or Override User Flag assignments in bulk.
This commit is contained in:
Gary Sharp
2014-06-11 21:23:32 +10:00
parent 8254e7ec5a
commit 815216fd73
14 changed files with 1150 additions and 231 deletions
@@ -32,5 +32,10 @@ namespace Disco.Models.Repository
public virtual User AddedUser { get; set; }
[ForeignKey("RemovedUserId")]
public virtual User RemovedUser { get; set; }
public override string ToString()
{
return string.Format("User Flag Id: {0}; User Id: {1}; Added: {2:s}", UserFlagId, UserId, AddedDate);
}
}
}
+2 -1
View File
@@ -300,6 +300,7 @@
<Compile Include="Users\CacheCleanTask.cs" />
<Compile Include="Users\UserExtensions.cs" />
<Compile Include="Users\UserFlags\Cache.cs" />
<Compile Include="Users\UserFlags\UserFlagsBulkAssignTask.cs" />
<Compile Include="Users\UserFlags\UserFlagsDeleteTask.cs" />
<Compile Include="Users\UserFlags\UserFlagService.cs" />
<Compile Include="Users\UserService.cs" />
@@ -348,7 +349,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
<UserProperties BuildVersion_UseGlobalSettings="False" BuildVersion_DetectChanges="False" BuildVersion_BuildAction="Both" BuildVersion_StartDate="2011/7/1" BuildVersion_BuildVersioningStyle="None.DeltaBaseYear.MonthAndDayStamp.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_UpdateFileVersion="True" />
<UserProperties BuildVersion_UpdateFileVersion="True" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.DeltaBaseYear.MonthAndDayStamp.TimeStamp" BuildVersion_StartDate="2011/7/1" BuildVersion_BuildAction="Both" BuildVersion_DetectChanges="False" BuildVersion_UseGlobalSettings="False" />
</VisualStudio>
</ProjectExtensions>
<PropertyGroup>
@@ -3,6 +3,7 @@ using Disco.Models.Repository;
using Disco.Services.Extensions;
using Disco.Services.Tasks;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
@@ -88,6 +89,103 @@ namespace Disco.Services.Users.UserFlags
}
#endregion
#region Bulk Assignment
public static IEnumerable<UserFlagAssignment> BulkAssignAddUsers(DiscoDataContext Database, UserFlag UserFlag, User Technician, string Comments, List<User> Users, IScheduledTaskStatus Status)
{
if (Users.Count > 0)
{
double progressInterval;
string comments = string.IsNullOrWhiteSpace(Comments) ? null : Comments.Trim();
var addUsers = Users.Where(u => !u.UserFlagAssignments.Any(a => a.UserFlagId == UserFlag.Id && !a.RemovedDate.HasValue)).ToList();
progressInterval = (double)100 / addUsers.Count;
var addedUserAssignments = addUsers.Select((user, index) =>
{
Status.UpdateStatus(index * progressInterval, string.Format("Assigning Flag: {0}", user.ToString()));
var fa = new UserFlagAssignment()
{
UserFlagId = UserFlag.Id,
UserId = user.UserId,
AddedDate = DateTime.Now,
AddedUserId = Technician.UserId,
Comments = comments
};
Database.UserFlagAssignments.Add(fa);
Database.SaveChanges();
return fa;
}).Where(fa => fa != null).ToList();
Status.SetFinishedMessage(string.Format("{0} Users/s Added; {1} User/s Skipped", addUsers.Count, (Users.Count - addUsers.Count)));
return addedUserAssignments;
}
else
{
Status.SetFinishedMessage("No changes found");
return Enumerable.Empty<UserFlagAssignment>();
}
}
public static IEnumerable<UserFlagAssignment> BulkAssignOverrideUsers(DiscoDataContext Database, UserFlag UserFlag, User Technician, string Comments, List<User> Users, IScheduledTaskStatus Status)
{
double progressInterval;
string comments = string.IsNullOrWhiteSpace(Comments) ? null : Comments.Trim();
Status.UpdateStatus(0, "Calculating assignment changes");
var currentAssignments = Database.UserFlagAssignments.Include("User").Where(a => a.UserFlagId == UserFlag.Id && !a.RemovedDate.HasValue).ToList();
var removeAssignments = currentAssignments.Where(ca => !Users.Any(u => u.UserId.Equals(ca.UserId, StringComparison.OrdinalIgnoreCase))).ToList();
var addUsers = Users.Where(u => !currentAssignments.Any(ca => ca.UserId.Equals(u.UserId, StringComparison.OrdinalIgnoreCase))).ToList();
if (removeAssignments.Count > 0 || addUsers.Count > 0)
{
progressInterval = (double)100 / (removeAssignments.Count + addUsers.Count);
var removedDateTime = DateTime.Now;
removeAssignments.Select((flagAssignment, index) =>
{
Status.UpdateStatus(index * progressInterval, string.Format("Removing Flag: {0}", flagAssignment.User.ToString()));
flagAssignment.RemovedDate = removedDateTime;
flagAssignment.RemovedUserId = Technician.UserId;
Database.SaveChanges();
return flagAssignment;
}).ToList();
var addedUserAssignments = addUsers.Select((user, index) =>
{
Status.UpdateStatus((removeAssignments.Count + index) * progressInterval, string.Format("Assigning Flag: {0}", user.ToString()));
var fa = new UserFlagAssignment()
{
UserFlagId = UserFlag.Id,
UserId = user.UserId,
AddedDate = DateTime.Now,
AddedUserId = Technician.UserId,
Comments = comments
};
Database.UserFlagAssignments.Add(fa);
Database.SaveChanges();
return fa;
}).ToList();
Status.SetFinishedMessage(string.Format("{0} Users/s Added; {1} User/s Removed; {2} User/s Skipped", addUsers.Count, removeAssignments.Count, (Users.Count - addUsers.Count)));
return addedUserAssignments;
}
else
{
Status.SetFinishedMessage("No changes found");
return Enumerable.Empty<UserFlagAssignment>();
}
}
#endregion
public static string RandomUnusedIcon()
{
return UIHelpers.RandomIcon(_cache.GetUserFlags().Select(f => f.Icon));
@@ -0,0 +1,104 @@
using Disco.Data.Repository;
using Disco.Models.Repository;
using Disco.Services.Interop.ActiveDirectory;
using Disco.Services.Tasks;
using Quartz;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Disco.Services.Users.UserFlags
{
public class UserFlagBulkAssignTask : ScheduledTask
{
public override string TaskName { get { return "User Flags - Bulk Assign Users"; } }
public override bool SingleInstanceTask { get { return false; } }
public override bool CancelInitiallySupported { get { return false; } }
public override bool LogExceptionsOnly { get { return true; } }
protected override void ExecuteTask()
{
int UserFlagId = (int)this.ExecutionContext.JobDetail.JobDataMap["UserFlagId"];
string TechnicianUserId = (string)this.ExecutionContext.JobDetail.JobDataMap["TechnicianUserId"];
string Comments = (string)this.ExecutionContext.JobDetail.JobDataMap["Comments"];
List<string> UserIds = (List<string>)this.ExecutionContext.JobDetail.JobDataMap["UserIds"];
bool Override = (bool)this.ExecutionContext.JobDetail.JobDataMap["Override"];
using (DiscoDataContext Database = new DiscoDataContext())
{
// Load Flag
var userFlag = Database.UserFlags.FirstOrDefault(uf => uf.Id == UserFlagId);
if (userFlag == null)
throw new Exception("Invalid User Flag Id");
Status.UpdateStatus(0, string.Format("Bulk Assigning Users to User Flag: {0}", userFlag.Name), "Preparing to start");
// Load Technician
var technician = Database.Users.FirstOrDefault(user => user.UserId == TechnicianUserId);
if (technician == null)
throw new Exception("Invalid Technician User Id");
// Parse Users
var userIds = UserIds
.Select(u => u.Contains('\\') ? u : string.Concat(ActiveDirectory.Context.PrimaryDomain.NetBiosName, @"\", u))
.Distinct(StringComparer.OrdinalIgnoreCase).ToList();
Status.UpdateStatus(10, "Loading users from the database");
var users = Database.Users.Include("UserFlagAssignments").Where(u => userIds.Contains(u.UserId)).ToList();
var missingUserIds = userIds.Where(uid => !users.Any(u => u.UserId.Equals(uid, StringComparison.OrdinalIgnoreCase))).ToList();
if (missingUserIds.Count > 0)
{
var invalidUsersIds = new List<string>();
for (int index = 0; index < missingUserIds.Count; index++)
{
var userId = missingUserIds[index];
Status.UpdateStatus(20 + (index * ((double)30 / missingUserIds.Count)), string.Format("Loading user from Active Directory: {0}", userId));
try
{
users.Add(UserService.GetUser(userId, Database, true));
}
catch (Exception)
{
invalidUsersIds.Add(userId);
}
}
if (invalidUsersIds.Count > 0)
throw new InvalidOperationException(string.Format("Bulk assignment aborted, invalid User Ids: {0}", string.Join(", ", invalidUsersIds)));
}
users = users.OrderBy(u => u.UserId).ToList();
Status.ProgressOffset = 50;
Status.ProgressMultiplier = 0.5;
if (Override)
{
UserFlagService.BulkAssignOverrideUsers(Database, userFlag, technician, Comments, users, Status);
}
else
{
UserFlagService.BulkAssignAddUsers(Database, userFlag, technician, Comments, users, Status);
}
}
}
public static ScheduledTaskStatus ScheduleBulkAssignUsers(UserFlag UserFlag, User Technician, string Comments, List<string> UserIds, bool Override)
{
JobDataMap taskData = new JobDataMap() {
{"UserFlagId", UserFlag.Id },
{"TechnicianUserId", Technician.UserId },
{"Comments", Comments },
{"UserIds", UserIds },
{"Override", Override }
};
var instance = new UserFlagBulkAssignTask();
return instance.ScheduleTask(taskData);
}
}
}
@@ -350,8 +350,7 @@ namespace Disco.Web.Areas.API.Controllers
var jq = Database.JobQueues.Find(id);
if (jq != null)
{
var status = JobQueueDeleteTask.ScheduleNow(id);
var status = JobQueueDeleteTask.ScheduleNow(jq.Id);
status.SetFinishedUrl(Url.Action(MVC.Config.JobQueue.Index(null)));
if (redirect.HasValue && redirect.Value)
@@ -1,8 +1,10 @@
using Disco.Models.Repository;
using Disco.Services.Authorization;
using Disco.Services.Tasks;
using Disco.Services.Users.UserFlags;
using Disco.Services.Web;
using System;
using System.Linq;
using System.Web.Mvc;
namespace Disco.Web.Areas.API.Controllers
@@ -164,16 +166,15 @@ namespace Disco.Web.Areas.API.Controllers
#endregion
#region Actions
[DiscoAuthorize(Claims.Config.UserFlag.Delete)]
[DiscoAuthorizeAll(Claims.Config.UserFlag.Configure, Claims.Config.UserFlag.Delete)]
public virtual ActionResult Delete(int id, Nullable<bool> redirect = false)
{
try
{
var jq = Database.UserFlags.Find(id);
if (jq != null)
var uf = Database.UserFlags.FirstOrDefault(f => f.Id == id);
if (uf != null)
{
var status = UserFlagDeleteTask.ScheduleNow(id);
var status = UserFlagDeleteTask.ScheduleNow(uf.Id);
status.SetFinishedUrl(Url.Action(MVC.Config.UserFlag.Index(null)));
if (redirect.HasValue && redirect.Value)
@@ -191,6 +192,35 @@ namespace Disco.Web.Areas.API.Controllers
return Json(string.Format("Error: {0}", ex.Message), JsonRequestBehavior.AllowGet);
}
}
[DiscoAuthorizeAll(Claims.Config.UserFlag.Configure, Claims.User.Actions.AddFlags, Claims.User.Actions.RemoveFlags, Claims.User.ShowFlagAssignments)]
public virtual ActionResult BulkAssignUsers(int id, bool Override, string UserIds = null, string Comments = null)
{
if (id < 0)
throw new ArgumentNullException("id");
var userFlag = Database.UserFlags.FirstOrDefault(f => f.Id == id);
if (userFlag == null)
throw new ArgumentException("Invalid User Flag Id", "id");
var userIds = UserIds.Split(new string[] { Environment.NewLine, ",", ";" }, StringSplitOptions.RemoveEmptyEntries).Select(d => d.Trim()).Where(d => !string.IsNullOrEmpty(d)).ToList();
var taskStatus = UserFlagBulkAssignTask.ScheduleBulkAssignUsers(userFlag, CurrentUser, Comments, userIds, Override);
taskStatus.SetFinishedUrl(Url.Action(MVC.Config.UserFlag.Index(userFlag.Id)));
return RedirectToAction(MVC.Config.Logging.TaskStatus(taskStatus.SessionId));
}
[DiscoAuthorizeAll(Claims.Config.UserFlag.Configure, Claims.User.Actions.AddFlags, Claims.User.Actions.RemoveFlags, Claims.User.ShowFlagAssignments)]
public virtual ActionResult AssignedUsers(int id)
{
if (id < 0)
throw new ArgumentNullException("id");
var userFlag = Database.UserFlags.FirstOrDefault(f => f.Id == id);
if (userFlag == null)
throw new ArgumentException("Invalid User Flag Id", "id");
var assignedUsers = Database.UserFlagAssignments.Where(a => a.UserFlagId == userFlag.Id && !a.RemovedDate.HasValue).OrderBy(a => a.UserId).Select(a => a.UserId).ToList();
return Json(assignedUsers, JsonRequestBehavior.AllowGet);
}
#endregion
}
}
@@ -1,4 +1,5 @@
@model Disco.Web.Areas.Config.Models.DocumentTemplate.ShowModel
@using Disco.Services.Interop.ActiveDirectory;
@{
Authorization.Require(Claims.Config.DocumentTemplate.Show);
@@ -509,9 +510,9 @@
break;
case 'User':
dialog.find('.scopeDescBulkGenerate').text('User Ids');
dialog.find('.example1').html('user6<br />smi0099<br />rsmith');
dialog.find('.example2').text('user6,smi0099,rsmith');
dialog.find('.example3').text('user6;smi0099;rsmith');
dialog.find('.example1').html('user6<br />smi0099<br />@(ActiveDirectory.Context.PrimaryDomain.NetBiosName)\\rsmith');
dialog.find('.example2').text('user6,smi0099,@(ActiveDirectory.Context.PrimaryDomain.NetBiosName)\\rsmith');
dialog.find('.example3').text('user6;smi0099;@(ActiveDirectory.Context.PrimaryDomain.NetBiosName)\\rsmith');
break;
}
@@ -31,6 +31,12 @@ namespace Disco.Web.Areas.Config.Views.DocumentTemplate
using Disco.Models.Repository;
using Disco.Services;
using Disco.Services.Authorization;
#line 2 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
using Disco.Services.Interop.ActiveDirectory;
#line default
#line hidden
using Disco.Services.Web;
using Disco.Web;
using Disco.Web.Extensions;
@@ -45,7 +51,7 @@ namespace Disco.Web.Areas.Config.Views.DocumentTemplate
public override void Execute()
{
#line 2 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 3 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Authorization.Require(Claims.Config.DocumentTemplate.Show);
@@ -87,7 +93,7 @@ WriteLiteral(">\r\n <table>\r\n <tr>\r\n <th>Id:\r\n
" <td>");
#line 35 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 36 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Html.DisplayFor(model => model.DocumentTemplate.Id));
@@ -97,7 +103,7 @@ WriteLiteral("\r\n </td>\r\n </tr>\r\n <tr>\r\n
"s:\r\n </th>\r\n <td>");
#line 41 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 42 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Html.DisplayFor(model => model.StoredInstanceCount));
@@ -107,7 +113,7 @@ WriteLiteral("\r\n </td>\r\n </tr>\r\n <tr>\r\n
" </th>\r\n <td>");
#line 47 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 48 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
if (canConfig)
{
@@ -115,42 +121,42 @@ WriteLiteral("\r\n </td>\r\n </tr>\r\n <tr>\r\n
#line default
#line hidden
#line 49 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 50 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Html.TextBoxFor(model => model.DocumentTemplate.Description));
#line default
#line hidden
#line 49 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 50 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 50 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 51 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(AjaxHelpers.AjaxSave());
#line default
#line hidden
#line 50 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 51 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 51 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 52 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(AjaxHelpers.AjaxLoader());
#line default
#line hidden
#line 51 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 52 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
@@ -183,7 +189,7 @@ WriteLiteral(@">
url: '");
#line 72 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 73 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Url.Action(MVC.API.DocumentTemplate.UpdateDescription(Model.DocumentTemplate.Id)));
@@ -211,7 +217,7 @@ WriteLiteral(@"',
");
#line 91 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 92 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
else
{
@@ -228,7 +234,7 @@ WriteLiteral(" class=\"smallMessage\"");
WriteLiteral(">&lt;None Specified&gt;</span>\r\n");
#line 97 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 98 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
else
{
@@ -237,14 +243,14 @@ WriteLiteral(">&lt;None Specified&gt;</span>\r\n");
#line default
#line hidden
#line 100 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 101 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Model.DocumentTemplate.Description);
#line default
#line hidden
#line 100 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 101 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
}
@@ -256,7 +262,7 @@ WriteLiteral(" </td>\r\n </tr>\r\n <tr>\r\n
"rm:\r\n </th>\r\n <td>");
#line 108 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 109 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
if (canConfig)
{
@@ -272,7 +278,7 @@ WriteLiteral(" type=\"checkbox\"");
WriteLiteral(" ");
#line 110 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 111 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Model.DocumentTemplate.FlattenForm ? new MvcHtmlString("checked=\"checked\" ") : new MvcHtmlString(string.Empty));
@@ -281,20 +287,20 @@ WriteLiteral(" ");
WriteLiteral("/>\r\n");
#line 111 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 112 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 111 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 112 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(AjaxHelpers.AjaxLoader());
#line default
#line hidden
#line 111 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 112 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
@@ -313,7 +319,7 @@ WriteLiteral(@">
$.getJSON('");
#line 118 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 119 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Url.Action(MVC.API.DocumentTemplate.UpdateFlattenForm(Model.DocumentTemplate.Id)));
@@ -333,7 +339,7 @@ WriteLiteral(@"', data, function (response, result) {
");
#line 129 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 130 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
else
{
@@ -350,7 +356,7 @@ WriteLiteral(" type=\"checkbox\"");
WriteLiteral(" ");
#line 132 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 133 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Model.DocumentTemplate.FlattenForm ? new MvcHtmlString("checked=\"checked\" ") : new MvcHtmlString(string.Empty));
@@ -359,7 +365,7 @@ WriteLiteral(" ");
WriteLiteral(" disabled=\"disabled\" />\r\n");
#line 133 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 134 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
@@ -369,7 +375,7 @@ WriteLiteral(" </td>\r\n </tr>\r\n <tr>\r\n
" </th>\r\n <td>");
#line 139 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 140 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
if (canConfig)
{
@@ -377,28 +383,28 @@ WriteLiteral(" </td>\r\n </tr>\r\n <tr>\r\n
#line default
#line hidden
#line 141 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 142 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Html.DropDownListFor(model => model.DocumentTemplate.Scope, Model.Scopes.ToSelectListItems(null)));
#line default
#line hidden
#line 141 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 142 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 142 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 143 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(AjaxHelpers.AjaxLoader());
#line default
#line hidden
#line 142 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 143 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
@@ -418,7 +424,7 @@ WriteLiteral(@">
url: '");
#line 150 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 151 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Url.Action(MVC.API.DocumentTemplate.UpdateScope(Model.DocumentTemplate.Id)));
@@ -457,7 +463,7 @@ WriteLiteral(@"',
");
#line 180 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 181 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
else
{
@@ -468,7 +474,7 @@ WriteLiteral(@"',
WriteLiteral(" <div>");
#line 183 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 184 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Model.DocumentTemplate.Scope);
@@ -477,7 +483,7 @@ WriteLiteral(" <div>");
WriteLiteral("</div>\r\n");
#line 184 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 185 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
@@ -486,7 +492,7 @@ WriteLiteral("</div>\r\n");
WriteLiteral(" ");
#line 185 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 186 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
if (canConfig || (Model.DocumentTemplate.Scope == DocumentTemplate.DocumentTemplateScopes.Job))
{
@@ -500,7 +506,7 @@ WriteLiteral(" id=\"Config_DocumentTemplates_JobSubTypes\"");
WriteLiteral(" ");
#line 187 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 188 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Model.DocumentTemplate.Scope != DocumentTemplate.DocumentTemplateScopes.Job ? "style=\"display: none;\" " : null);
@@ -509,13 +515,13 @@ WriteLiteral(" ");
WriteLiteral(">\r\n <h4>Filter:</h4>\r\n <div>\r\n");
#line 190 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 191 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 190 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 191 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
if (Model.DocumentTemplate.JobSubTypes.Count > 0)
{
@@ -525,13 +531,13 @@ WriteLiteral(">\r\n <h4>Filter:</h4>\r\n
WriteLiteral(" <ul>\r\n");
#line 193 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 194 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 193 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 194 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
foreach (var jobType in Model.DocumentTemplate.JobSubTypes.GroupBy(jst => jst.JobType).OrderBy(jtg => jtg.Key.Description))
{
@@ -543,7 +549,7 @@ WriteLiteral(" <li>\r\n");
WriteLiteral(" ");
#line 196 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 197 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(jobType.Key.Description);
@@ -552,13 +558,13 @@ WriteLiteral(" ");
WriteLiteral("\r\n <ul>\r\n");
#line 198 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 199 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 198 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 199 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
if (jobType.Count() == Model.JobTypes.FirstOrDefault(jt => jt.Id == jobType.Key.Id).JobSubTypes.Count)
{
@@ -572,7 +578,7 @@ WriteLiteral(" class=\"smallMessage\"");
WriteLiteral(">[All Sub Types]</span></li>\r\n");
#line 201 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 202 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
else
{
@@ -585,7 +591,7 @@ WriteLiteral(">[All Sub Types]</span></li>\r\n");
WriteLiteral(" <li>");
#line 206 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 207 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(jobSubType.Description);
@@ -594,7 +600,7 @@ WriteLiteral(" <li>");
WriteLiteral("</li>\r\n");
#line 207 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 208 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
}
@@ -605,7 +611,7 @@ WriteLiteral(" </ul>\r\n
" </li>\r\n");
#line 211 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 212 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
@@ -614,7 +620,7 @@ WriteLiteral(" </ul>\r\n
WriteLiteral(" </ul>\r\n");
#line 213 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 214 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
else
{
@@ -629,7 +635,7 @@ WriteLiteral(" class=\"smallMessage\"");
WriteLiteral(">&lt;No Filter&gt;</span>\r\n");
#line 217 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 218 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
@@ -638,13 +644,13 @@ WriteLiteral(">&lt;No Filter&gt;</span>\r\n");
WriteLiteral(" </div>\r\n");
#line 219 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 220 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 219 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 220 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
if (canConfig)
{
@@ -672,13 +678,13 @@ WriteLiteral(" title=\"Job Type Filter\"");
WriteLiteral(">\r\n");
#line 223 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 224 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 223 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 224 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
using (Html.BeginForm(MVC.API.DocumentTemplate.UpdateJobSubTypes(Model.DocumentTemplate.Id, null, true)))
{
var selectedTypes = Model.DocumentTemplate.JobSubTypes.Select(jst => jst.JobType).Distinct().ToList();
@@ -695,35 +701,35 @@ WriteLiteral(" class=\"jobTypes\"");
WriteLiteral(">\r\n <h4>\r\n " +
" <input");
WriteAttribute("id", Tuple.Create(" id=\"", 12011), Tuple.Create("\"", 12030)
, Tuple.Create(Tuple.Create("", 12016), Tuple.Create("Types_", 12016), true)
WriteAttribute("id", Tuple.Create(" id=\"", 12059), Tuple.Create("\"", 12078)
, Tuple.Create(Tuple.Create("", 12064), Tuple.Create("Types_", 12064), true)
#line 230 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
, Tuple.Create(Tuple.Create("", 12022), Tuple.Create<System.Object, System.Int32>(jt.Id
#line 231 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
, Tuple.Create(Tuple.Create("", 12070), Tuple.Create<System.Object, System.Int32>(jt.Id
#line default
#line hidden
, 12022), false)
, 12070), false)
);
WriteLiteral(" class=\"jobType\"");
WriteLiteral(" type=\"checkbox\"");
WriteAttribute("value", Tuple.Create(" value=\"", 12063), Tuple.Create("\"", 12079)
WriteAttribute("value", Tuple.Create(" value=\"", 12111), Tuple.Create("\"", 12127)
#line 230 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
, Tuple.Create(Tuple.Create("", 12071), Tuple.Create<System.Object, System.Int32>(jt.Id
#line 231 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
, Tuple.Create(Tuple.Create("", 12119), Tuple.Create<System.Object, System.Int32>(jt.Id
#line default
#line hidden
, 12071), false)
, 12119), false)
);
WriteLiteral(" ");
#line 230 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 231 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(selectedTypes.Contains(jt) ? "checked=\"checked\"" : null);
@@ -731,21 +737,21 @@ WriteLiteral(" ");
#line hidden
WriteLiteral(" /><label");
WriteAttribute("for", Tuple.Create(" for=\"", 12150), Tuple.Create("\"", 12170)
, Tuple.Create(Tuple.Create("", 12156), Tuple.Create("Types_", 12156), true)
WriteAttribute("for", Tuple.Create(" for=\"", 12198), Tuple.Create("\"", 12218)
, Tuple.Create(Tuple.Create("", 12204), Tuple.Create("Types_", 12204), true)
#line 230 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
, Tuple.Create(Tuple.Create("", 12162), Tuple.Create<System.Object, System.Int32>(jt.Id
#line 231 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
, Tuple.Create(Tuple.Create("", 12210), Tuple.Create<System.Object, System.Int32>(jt.Id
#line default
#line hidden
, 12162), false)
, 12210), false)
);
WriteLiteral(">");
#line 230 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 231 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(jt.Description);
@@ -753,15 +759,15 @@ WriteLiteral(">");
#line hidden
WriteLiteral("</label></h4>\r\n <div");
WriteAttribute("id", Tuple.Create(" id=\"", 12246), Tuple.Create("\"", 12268)
, Tuple.Create(Tuple.Create("", 12251), Tuple.Create("SubTypes_", 12251), true)
WriteAttribute("id", Tuple.Create(" id=\"", 12294), Tuple.Create("\"", 12316)
, Tuple.Create(Tuple.Create("", 12299), Tuple.Create("SubTypes_", 12299), true)
#line 231 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
, Tuple.Create(Tuple.Create("", 12260), Tuple.Create<System.Object, System.Int32>(jt.Id
#line 232 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
, Tuple.Create(Tuple.Create("", 12308), Tuple.Create<System.Object, System.Int32>(jt.Id
#line default
#line hidden
, 12260), false)
, 12308), false)
);
WriteLiteral(" class=\"jobSubTypes\"");
@@ -771,7 +777,7 @@ WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 232 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 233 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(CommonHelpers.CheckboxBulkSelect(string.Format("CheckboxBulkSelect_{0}", jt.Id), "div"));
@@ -782,7 +788,7 @@ WriteLiteral("\r\n");
WriteLiteral(" ");
#line 233 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 234 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(CommonHelpers.CheckBoxList("JobSubTypes", jt.JobSubTypes.OrderBy(jst => jst.Description).ToSelectListItems(Model.DocumentTemplate.JobSubTypes), 2));
@@ -792,7 +798,7 @@ WriteLiteral("\r\n </div>\r\n
" </div> \r\n");
#line 236 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 237 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
}
@@ -845,7 +851,7 @@ WriteLiteral(" <script>\r\n
" })();\r\n </script>\r\n");
#line 301 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 302 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
@@ -854,7 +860,7 @@ WriteLiteral(" <script>\r\n
WriteLiteral(" </div>\r\n");
#line 303 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 304 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
@@ -866,7 +872,7 @@ WriteLiteral(" </td>\r\n </tr>\r\n <tr>\r\n
WriteLiteral(" ");
#line 310 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 311 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Html.ActionLink("Download Template", MVC.API.DocumentTemplate.Template(Model.DocumentTemplate.Id)));
@@ -875,13 +881,13 @@ WriteLiteral(" ");
WriteLiteral("\r\n");
#line 311 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 312 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 311 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 312 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
if (canConfig && Authorization.Has(Claims.Config.DocumentTemplate.Upload))
{
@@ -891,7 +897,7 @@ WriteLiteral("\r\n");
WriteLiteral(" <br />\r\n");
#line 314 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 315 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
using (Html.BeginForm(MVC.API.DocumentTemplate.Template(Model.DocumentTemplate.Id, true, null), FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@@ -921,7 +927,7 @@ WriteLiteral(" value=\"Upload\"");
WriteLiteral(" />\r\n");
#line 318 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 319 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
@@ -945,7 +951,7 @@ WriteLiteral(@">
");
#line 330 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 331 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
@@ -955,7 +961,7 @@ WriteLiteral(" </td>\r\n </tr>\r\n <tr>\r\n
":\r\n </th>\r\n <td>");
#line 336 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 337 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
if (canConfig && Authorization.Has(Claims.Config.DocumentTemplate.ConfigureFilterExpression))
{
@@ -963,42 +969,42 @@ WriteLiteral(" </td>\r\n </tr>\r\n <tr>\r\n
#line default
#line hidden
#line 338 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 339 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Html.TextBoxFor(model => model.DocumentTemplate.FilterExpression));
#line default
#line hidden
#line 338 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 339 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 339 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 340 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(AjaxHelpers.AjaxRemove());
#line default
#line hidden
#line 339 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 340 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 340 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 341 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(AjaxHelpers.AjaxLoader());
#line default
#line hidden
#line 340 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 341 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
@@ -1030,7 +1036,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" url: \'");
#line 367 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 368 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Url.Action(MVC.API.DocumentTemplate.UpdateFilterExpression(Model.DocumentTemplate.Id)));
@@ -1060,7 +1066,7 @@ WriteLiteral(@"',
");
#line 388 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 389 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
else
{
@@ -1077,7 +1083,7 @@ WriteLiteral(" class=\"smallMessage\"");
WriteLiteral(">&lt;None Specified&gt;</span>\r\n");
#line 394 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 395 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
else
{
@@ -1094,7 +1100,7 @@ WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 398 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 399 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Model.DocumentTemplate.FilterExpression);
@@ -1103,7 +1109,7 @@ WriteLiteral(" ");
WriteLiteral("\r\n </div>\r\n");
#line 400 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 401 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
}
@@ -1114,7 +1120,7 @@ WriteLiteral(" </td>\r\n </tr>\r\n </table>\r\n</div>\r\n<h
"/h2>\r\n");
#line 407 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 408 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Html.Partial(MVC.Config.DocumentTemplate.Views._ExpressionsTable, Model.TemplateExpressions));
@@ -1176,13 +1182,13 @@ WriteLiteral(" class=\"actionBar\"");
WriteLiteral(">\r\n");
#line 446 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 447 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 446 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 447 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
if (Authorization.Has(Claims.Config.Show))
{
@@ -1190,14 +1196,14 @@ WriteLiteral(">\r\n");
#line default
#line hidden
#line 448 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 449 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Html.ActionLinkButton("Expression Browser", MVC.Config.DocumentTemplate.ExpressionBrowser()));
#line default
#line hidden
#line 448 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 449 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
@@ -1207,7 +1213,7 @@ WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 450 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 451 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
if (canBulkGenerate)
{
@@ -1230,16 +1236,16 @@ WriteLiteral(" id=\"dialogBulkGenerate\"");
WriteLiteral(" class=\"hiddenDialog\"");
WriteAttribute("title", Tuple.Create(" title=\"", 23181), Tuple.Create("\"", 23232)
, Tuple.Create(Tuple.Create("", 23189), Tuple.Create("Bulk", 23189), true)
, Tuple.Create(Tuple.Create(" ", 23193), Tuple.Create("Generate:", 23194), true)
WriteAttribute("title", Tuple.Create(" title=\"", 23229), Tuple.Create("\"", 23280)
, Tuple.Create(Tuple.Create("", 23237), Tuple.Create("Bulk", 23237), true)
, Tuple.Create(Tuple.Create(" ", 23241), Tuple.Create("Generate:", 23242), true)
#line 453 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
, Tuple.Create(Tuple.Create(" ", 23203), Tuple.Create<System.Object, System.Int32>(Model.DocumentTemplate.Id
#line 454 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
, Tuple.Create(Tuple.Create(" ", 23251), Tuple.Create<System.Object, System.Int32>(Model.DocumentTemplate.Id
#line default
#line hidden
, 23204), false)
, 23252), false)
);
WriteLiteral(">\r\n <div");
@@ -1270,13 +1276,13 @@ WriteLiteral(" class=\"example3 code\"");
WriteLiteral("></div>\r\n </div>\r\n </div>\r\n");
#line 465 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 466 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line default
#line hidden
#line 465 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 466 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerate(Model.DocumentTemplate.Id), FormMethod.Post))
{
@@ -1306,7 +1312,7 @@ WriteLiteral(" data-val-required=\"Identifiers are required\"");
WriteLiteral("></textarea>\r\n");
#line 469 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 470 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
@@ -1315,7 +1321,7 @@ WriteLiteral("></textarea>\r\n");
WriteLiteral(" </div>\r\n");
#line 471 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 472 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
@@ -1347,15 +1353,41 @@ WriteLiteral(" <script>\r\n $(function () {\r\n
"g.find(\'.example3\').text(\'86;99;44\');\r\n break;\r\n " +
" case \'User\':\r\n dialog.find(\'.scope" +
"DescBulkGenerate\').text(\'User Ids\');\r\n dialog.find(\'." +
"example1\').html(\'user6<br />smi0099<br />rsmith\');\r\n " +
"dialog.find(\'.example2\').text(\'user6,smi0099,rsmith\');\r\n " +
" dialog.find(\'.example3\').text(\'user6;smi0099;rsmith\');\r\n " +
" break;\r\n }\r\n\r\n dialog.dialog(\'open" +
"\');\r\n return false;\r\n });\r\n });\r\n " +
" </script>\r\n");
"example1\').html(\'user6<br />smi0099<br />");
#line 523 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 513 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(ActiveDirectory.Context.PrimaryDomain.NetBiosName);
#line default
#line hidden
WriteLiteral("\\\\rsmith\');\r\n dialog.find(\'.example2\').text(\'user6,smi" +
"0099,");
#line 514 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(ActiveDirectory.Context.PrimaryDomain.NetBiosName);
#line default
#line hidden
WriteLiteral("\\\\rsmith\');\r\n dialog.find(\'.example3\').text(\'user6;smi" +
"0099;");
#line 515 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(ActiveDirectory.Context.PrimaryDomain.NetBiosName);
#line default
#line hidden
WriteLiteral("\\\\rsmith\');\r\n break;\r\n }\r\n\r\n " +
" dialog.dialog(\'open\');\r\n return false;\r\n " +
" });\r\n });\r\n </script>\r\n");
#line 524 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
@@ -1364,7 +1396,7 @@ WriteLiteral(" <script>\r\n $(function () {\r\n
WriteLiteral(" ");
#line 524 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 525 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
if (Authorization.Has(Claims.Config.DocumentTemplate.Delete))
{
@@ -1372,14 +1404,14 @@ WriteLiteral(" ");
#line default
#line hidden
#line 526 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 527 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
Write(Html.ActionLinkButton("Delete", MVC.API.DocumentTemplate.Delete(Model.DocumentTemplate.Id, true), "buttonDelete"));
#line default
#line hidden
#line 526 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
#line 527 "..\..\Areas\Config\Views\DocumentTemplate\Show.cshtml"
}
@@ -1,5 +1,6 @@
@model Disco.Web.Areas.Config.Models.UserFlag.ShowModel
@using Disco.Services.Users.UserFlags;
@using Disco.Services.Interop.ActiveDirectory;
@{
Authorization.Require(Claims.Config.UserFlag.Show);
@@ -7,6 +8,7 @@
var canConfig = Authorization.Has(Claims.Config.UserFlag.Configure);
var canDelete = Authorization.Has(Claims.Config.UserFlag.Delete);
var canBulkAssignment = Authorization.HasAll(Claims.User.Actions.AddFlags, Claims.User.Actions.RemoveFlags, Claims.User.ShowFlagAssignments);
var canShowUsers = Model.CurrentAssignmentCount > 0 && Authorization.HasAll(Claims.User.Search, Claims.User.ShowFlagAssignments);
Html.BundleDeferred("~/ClientScripts/Modules/Disco-PropertyChangeHelpers");
@@ -193,9 +195,148 @@
</tr>
</table>
</div>
@if (canDelete || canShowUsers)
@if (canBulkAssignment || canDelete || canShowUsers)
{
<div class="actionBar">
@if (canBulkAssignment)
{
<a href="#" id="Config_UserFlags_BulkAssign_Button" class="button">Bulk Assign Users</a>
<div id="Config_UserFlags_BulkAssign_ModeDialog" class="dialog" title="Bulk Assign User Mode">
<p>
Select the mode used to assign users:
</p>
<div>
<div class="add">
<h5><i class="fa fa-plus fa-fw"></i>Add</h5>
<p>
Specified users will have this flag <strong>added</strong>. Users who already have this flag will be skipped.
</p>
</div>
<div class="override">
<h5><i class="fa fa-repeat fa-fw"></i>Override</h5>
<p>
Specified users will have this flag <strong>added</strong>. Specified users which already have this flag will be skipped.
Users who already have this flag but are not specified will have the flag <strong>removed</strong>.
</p>
</div>
</div>
</div>
<div id="Config_UserFlags_BulkAssign_AssignDialog" class="dialog" title="Bulk Assign Users">
<div class="brief">
<div>
Enter multiple <strong>User Ids</strong> separated by <code>&lt;new line&gt;</code>, commas (<code>,</code>) or semicolons (<code>;</code>).
</div>
<div class="examples clearfix">
<h4>Examples:</h4>
<div class="code example1">
user6<br />
smi0099<br />
@(ActiveDirectory.Context.PrimaryDomain.NetBiosName)\rsmith
</div>
<div class="code">user6,smi0099,@(ActiveDirectory.Context.PrimaryDomain.NetBiosName)\rsmith</div>
<div class="code">user6;smi0099;@(ActiveDirectory.Context.PrimaryDomain.NetBiosName)\rsmith</div>
</div>
</div>
<div class="loading">
<h4><i class="fa fa-lg fa-cog fa-spin" title="Please Wait"></i>Loading current assignments...</h4>
</div>
<form action="#" method="post">
<textarea id="Config_UserFlags_BulkAssign_AssignDialog_UserIds" name="UserIds" data-val="true"></textarea>
<h4>Comments:</h4>
<textarea id="Config_UserFlags_BulkAssign_AssignDialog_Comments" name="Comments"></textarea>
</form>
</div>
<script>
$(function () {
var modeDialog, assignDialog, assignUserIds;
function showModeDialog() {
if (!modeDialog) {
modeDialog = $('#Config_UserFlags_BulkAssign_ModeDialog').dialog({
resizable: false,
modal: true,
autoOpen: false,
width: 400,
buttons: {
Cancel: function () {
$(this).dialog('close');
}
}
});
modeDialog.find('.add').click(function () {
modeDialog.dialog('close');
showAssignDialog('Add');
});
modeDialog.find('.override').click(function () {
modeDialog.dialog('close');
showAssignDialog('Override');
});
}
modeDialog.dialog('open');
}
function showAssignDialog(mode) {
if (!assignDialog) {
assignDialog = $('#Config_UserFlags_BulkAssign_AssignDialog').dialog({
resizable: false,
modal: true,
autoOpen: false,
width: 460
});
assignUserIds = $('#Config_UserFlags_BulkAssign_AssignDialog_UserIds');
}
assignDialog.removeClass('loading');
var buttons = {};
buttons[mode + " User Flags"] = function () {
$(this).find('form').submit();
$(this).dialog("disable");
}
buttons['Cancel'] = function () {
$(this).dialog('close');
}
assignDialog.dialog('option', 'buttons', buttons);
assignDialog.dialog('option', 'title', 'Bulk Assign Users: ' + mode);
if (mode == "Override") {
assignUserIds.closest('form').attr('action', '@(Url.Action(MVC.API.UserFlag.BulkAssignUsers(Model.UserFlag.Id, true)))');
assignDialog.addClass('loading');
$.getJSON('@Url.Action(MVC.API.UserFlag.AssignedUsers(Model.UserFlag.Id))', function (response, result) {
assignDialog.removeClass('loading');
if (result != 'success') {
alert('Unable to load current assignments:\n' + response);
assignDialog.dialog('close');
} else {
if (!!response) {
assignUserIds.val(response.join('\n'));
} else {
assignUserIds.val('');
}
}
});
}
else // Assume Add
{
assignUserIds.closest('form').attr('action', '@(Url.Action(MVC.API.UserFlag.BulkAssignUsers(Model.UserFlag.Id, false)))');
}
assignDialog.dialog('open');
}
$('#Config_UserFlags_BulkAssign_Button').click(function () {
showModeDialog();
return false;
});
});
</script>
}
@if (canDelete)
{
@Html.ActionLinkButton("Delete", MVC.API.UserFlag.Delete(Model.UserFlag.Id, true), "Config_UserFlags_Actions_Delete_Button")
@@ -32,6 +32,12 @@ namespace Disco.Web.Areas.Config.Views.UserFlag
using Disco.Services;
using Disco.Services.Authorization;
#line 3 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
using Disco.Services.Interop.ActiveDirectory;
#line default
#line hidden
#line 2 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
using Disco.Services.Users.UserFlags;
@@ -51,7 +57,7 @@ namespace Disco.Web.Areas.Config.Views.UserFlag
public override void Execute()
{
#line 3 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 4 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Authorization.Require(Claims.Config.UserFlag.Show);
@@ -59,6 +65,7 @@ namespace Disco.Web.Areas.Config.Views.UserFlag
var canConfig = Authorization.Has(Claims.Config.UserFlag.Configure);
var canDelete = Authorization.Has(Claims.Config.UserFlag.Delete);
var canBulkAssignment = Authorization.HasAll(Claims.User.Actions.AddFlags, Claims.User.Actions.RemoveFlags, Claims.User.ShowFlagAssignments);
var canShowUsers = Model.CurrentAssignmentCount > 0 && Authorization.HasAll(Claims.User.Search, Claims.User.ShowFlagAssignments);
Html.BundleDeferred("~/ClientScripts/Modules/Disco-PropertyChangeHelpers");
@@ -83,7 +90,7 @@ WriteLiteral(">Id:\r\n </th>\r\n <td>\r\n");
WriteLiteral(" ");
#line 20 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 22 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Html.DisplayFor(model => model.UserFlag.Id));
@@ -93,49 +100,49 @@ WriteLiteral("\r\n </td>\r\n </tr>\r\n <tr>\r\n
" </th>\r\n <td>");
#line 26 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 28 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
if (canConfig)
{
#line default
#line hidden
#line 27 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 29 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Html.EditorFor(model => model.UserFlag.Name));
#line default
#line hidden
#line 27 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 29 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line default
#line hidden
#line 28 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 30 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(AjaxHelpers.AjaxSave());
#line default
#line hidden
#line 28 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 30 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line default
#line hidden
#line 29 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 31 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(AjaxHelpers.AjaxLoader());
#line default
#line hidden
#line 29 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 31 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
@@ -150,7 +157,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" \'Invalid Name\',\r\n \'");
#line 35 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 37 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Url.Action(MVC.API.UserFlag.UpdateName(Model.UserFlag.Id)));
@@ -160,7 +167,7 @@ WriteLiteral("\',\r\n \'FlagName\'\r\n
" });\r\n </script>\r\n");
#line 40 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 42 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
else
{
@@ -169,14 +176,14 @@ WriteLiteral("\',\r\n \'FlagName\'\r\n
#line default
#line hidden
#line 43 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 45 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Model.UserFlag.Name);
#line default
#line hidden
#line 43 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 45 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
@@ -187,49 +194,49 @@ WriteLiteral(" </td>\r\n </tr>\r\n <tr>\r\n
" </th>\r\n <td>");
#line 50 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 52 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
if (canConfig)
{
#line default
#line hidden
#line 51 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 53 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Html.EditorFor(model => model.UserFlag.Description));
#line default
#line hidden
#line 51 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 53 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line default
#line hidden
#line 52 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 54 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(AjaxHelpers.AjaxSave());
#line default
#line hidden
#line 52 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 54 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line default
#line hidden
#line 53 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 55 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(AjaxHelpers.AjaxLoader());
#line default
#line hidden
#line 53 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 55 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
@@ -245,7 +252,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" \'");
#line 59 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 61 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Url.Action(MVC.API.UserFlag.UpdateDescription(Model.UserFlag.Id)));
@@ -255,7 +262,7 @@ WriteLiteral("\',\r\n \'Description\'\r\n
" });\r\n </script>\r\n");
#line 64 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 66 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
else
{
@@ -266,13 +273,13 @@ WriteLiteral("\',\r\n \'Description\'\r\n
WriteLiteral(" <pre>\r\n");
#line 68 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 70 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line default
#line hidden
#line 68 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 70 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
if (string.IsNullOrEmpty(Model.UserFlag.Description))
{
@@ -286,7 +293,7 @@ WriteLiteral("&lt;None&gt;");
WriteLiteral("\r\n");
#line 71 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 73 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
else
{
@@ -295,14 +302,14 @@ WriteLiteral("\r\n");
#line default
#line hidden
#line 74 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 76 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Model.UserFlag.Description.ToHtmlComment());
#line default
#line hidden
#line 74 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 76 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
@@ -312,7 +319,7 @@ WriteLiteral("\r\n");
WriteLiteral(" </pre>\r\n");
#line 77 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 79 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
@@ -322,7 +329,7 @@ WriteLiteral(" </td>\r\n </tr>\r\n <tr>\r\n
" </th>\r\n <td>\r\n <div><strong>");
#line 84 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 86 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Model.CurrentAssignmentCount);
@@ -331,7 +338,7 @@ WriteLiteral(" </td>\r\n </tr>\r\n <tr>\r\n
WriteLiteral(" user");
#line 84 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 86 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Model.CurrentAssignmentCount != 1 ? "s" : null);
@@ -340,7 +347,7 @@ WriteLiteral(" user");
WriteLiteral(" currently assigned</strong></div>\r\n <div>");
#line 85 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 87 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Model.TotalAssignmentCount);
@@ -349,7 +356,7 @@ WriteLiteral(" currently assigned</strong></div>\r\n <div>");
WriteLiteral(" total user historical assignment");
#line 85 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 87 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Model.TotalAssignmentCount != 1 ? "s" : null);
@@ -363,7 +370,7 @@ WriteLiteral(" id=\"Config_UserFlags_Icon\"");
WriteLiteral(" data-icon=\"");
#line 92 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 94 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Model.UserFlag.Icon);
@@ -374,7 +381,7 @@ WriteLiteral("\"");
WriteLiteral(" data-colour=\"");
#line 92 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 94 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Model.UserFlag.IconColour);
@@ -382,37 +389,37 @@ WriteLiteral(" data-colour=\"");
#line hidden
WriteLiteral("\"");
WriteAttribute("class", Tuple.Create(" class=\"", 3620), Tuple.Create("\"", 3693)
, Tuple.Create(Tuple.Create("", 3628), Tuple.Create("fa", 3628), true)
, Tuple.Create(Tuple.Create(" ", 3630), Tuple.Create("fa-", 3631), true)
WriteAttribute("class", Tuple.Create(" class=\"", 3815), Tuple.Create("\"", 3888)
, Tuple.Create(Tuple.Create("", 3823), Tuple.Create("fa", 3823), true)
, Tuple.Create(Tuple.Create(" ", 3825), Tuple.Create("fa-", 3826), true)
#line 92 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
, Tuple.Create(Tuple.Create("", 3634), Tuple.Create<System.Object, System.Int32>(Model.UserFlag.Icon
#line 94 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
, Tuple.Create(Tuple.Create("", 3829), Tuple.Create<System.Object, System.Int32>(Model.UserFlag.Icon
#line default
#line hidden
, 3634), false)
, Tuple.Create(Tuple.Create(" ", 3656), Tuple.Create("fa-4x", 3657), true)
, Tuple.Create(Tuple.Create(" ", 3662), Tuple.Create("d-", 3663), true)
, 3829), false)
, Tuple.Create(Tuple.Create(" ", 3851), Tuple.Create("fa-4x", 3852), true)
, Tuple.Create(Tuple.Create(" ", 3857), Tuple.Create("d-", 3858), true)
#line 92 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
, Tuple.Create(Tuple.Create("", 3665), Tuple.Create<System.Object, System.Int32>(Model.UserFlag.IconColour
#line 94 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
, Tuple.Create(Tuple.Create("", 3860), Tuple.Create<System.Object, System.Int32>(Model.UserFlag.IconColour
#line default
#line hidden
, 3665), false)
, 3860), false)
);
WriteLiteral("></i>\r\n");
#line 93 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 95 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line default
#line hidden
#line 93 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 95 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
if (canConfig)
{
@@ -442,13 +449,13 @@ WriteLiteral(" class=\"icons\"");
WriteLiteral(">\r\n");
#line 100 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 102 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line default
#line hidden
#line 100 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 102 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
foreach (var icon in Model.Icons)
{
@@ -460,7 +467,7 @@ WriteLiteral(" <i");
WriteLiteral(" data-icon=\"");
#line 102 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 104 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(icon.Key);
@@ -468,32 +475,32 @@ WriteLiteral(" data-icon=\"");
#line hidden
WriteLiteral("\"");
WriteAttribute("class", Tuple.Create(" class=\"", 4258), Tuple.Create("\"", 4283)
, Tuple.Create(Tuple.Create("", 4266), Tuple.Create("fa", 4266), true)
, Tuple.Create(Tuple.Create(" ", 4268), Tuple.Create("fa-", 4269), true)
WriteAttribute("class", Tuple.Create(" class=\"", 4453), Tuple.Create("\"", 4478)
, Tuple.Create(Tuple.Create("", 4461), Tuple.Create("fa", 4461), true)
, Tuple.Create(Tuple.Create(" ", 4463), Tuple.Create("fa-", 4464), true)
#line 102 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
, Tuple.Create(Tuple.Create("", 4272), Tuple.Create<System.Object, System.Int32>(icon.Key
#line 104 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
, Tuple.Create(Tuple.Create("", 4467), Tuple.Create<System.Object, System.Int32>(icon.Key
#line default
#line hidden
, 4272), false)
, 4467), false)
);
WriteAttribute("title", Tuple.Create(" title=\"", 4284), Tuple.Create("\"", 4303)
WriteAttribute("title", Tuple.Create(" title=\"", 4479), Tuple.Create("\"", 4498)
#line 102 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
, Tuple.Create(Tuple.Create("", 4292), Tuple.Create<System.Object, System.Int32>(icon.Value
#line 104 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
, Tuple.Create(Tuple.Create("", 4487), Tuple.Create<System.Object, System.Int32>(icon.Value
#line default
#line hidden
, 4292), false)
, 4487), false)
);
WriteLiteral("></i>\r\n");
#line 103 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 105 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
@@ -506,13 +513,13 @@ WriteLiteral(" class=\"colours\"");
WriteLiteral(">\r\n");
#line 106 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 108 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line default
#line hidden
#line 106 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 108 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
foreach (var colour in Model.ThemeColours)
{
@@ -524,7 +531,7 @@ WriteLiteral(" <i");
WriteLiteral(" data-colour=\"");
#line 108 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 110 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(colour.Key);
@@ -532,33 +539,33 @@ WriteLiteral(" data-colour=\"");
#line hidden
WriteLiteral("\"");
WriteAttribute("class", Tuple.Create(" class=\"", 4635), Tuple.Create("\"", 4671)
, Tuple.Create(Tuple.Create("", 4643), Tuple.Create("fa", 4643), true)
, Tuple.Create(Tuple.Create(" ", 4645), Tuple.Create("fa-square", 4646), true)
, Tuple.Create(Tuple.Create(" ", 4655), Tuple.Create("d-", 4656), true)
WriteAttribute("class", Tuple.Create(" class=\"", 4830), Tuple.Create("\"", 4866)
, Tuple.Create(Tuple.Create("", 4838), Tuple.Create("fa", 4838), true)
, Tuple.Create(Tuple.Create(" ", 4840), Tuple.Create("fa-square", 4841), true)
, Tuple.Create(Tuple.Create(" ", 4850), Tuple.Create("d-", 4851), true)
#line 108 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
, Tuple.Create(Tuple.Create("", 4658), Tuple.Create<System.Object, System.Int32>(colour.Key
#line 110 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
, Tuple.Create(Tuple.Create("", 4853), Tuple.Create<System.Object, System.Int32>(colour.Key
#line default
#line hidden
, 4658), false)
, 4853), false)
);
WriteAttribute("title", Tuple.Create(" title=\"", 4672), Tuple.Create("\"", 4693)
WriteAttribute("title", Tuple.Create(" title=\"", 4867), Tuple.Create("\"", 4888)
#line 108 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
, Tuple.Create(Tuple.Create("", 4680), Tuple.Create<System.Object, System.Int32>(colour.Value
#line 110 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
, Tuple.Create(Tuple.Create("", 4875), Tuple.Create<System.Object, System.Int32>(colour.Value
#line default
#line hidden
, 4680), false)
, 4875), false)
);
WriteLiteral("></i>\r\n");
#line 109 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 111 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
@@ -605,7 +612,7 @@ WriteLiteral(" </div>\r\n
"save() {\r\n var url = \'");
#line 169 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 171 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Url.Action(MVC.API.UserFlag.UpdateIconAndColour(id: Model.UserFlag.Id, redirect: true)));
@@ -636,7 +643,7 @@ WriteLiteral(@"',
");
#line 191 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 193 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
@@ -645,8 +652,8 @@ WriteLiteral(@"',
WriteLiteral(" </td>\r\n </tr>\r\n </table>\r\n</div>\r\n");
#line 196 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
if (canDelete || canShowUsers)
#line 198 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
if (canBulkAssignment || canDelete || canShowUsers)
{
@@ -659,13 +666,274 @@ WriteLiteral(" class=\"actionBar\"");
WriteLiteral(">\r\n");
#line 199 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 201 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line default
#line hidden
#line 199 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 201 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
if (canBulkAssignment)
{
#line default
#line hidden
WriteLiteral(" <a");
WriteLiteral(" href=\"#\"");
WriteLiteral(" id=\"Config_UserFlags_BulkAssign_Button\"");
WriteLiteral(" class=\"button\"");
WriteLiteral(">Bulk Assign Users</a>\r\n");
WriteLiteral(" <div");
WriteLiteral(" id=\"Config_UserFlags_BulkAssign_ModeDialog\"");
WriteLiteral(" class=\"dialog\"");
WriteLiteral(" title=\"Bulk Assign User Mode\"");
WriteLiteral(">\r\n <p>\r\n Select the mode used to assign users:" +
"\r\n </p>\r\n <div>\r\n <div");
WriteLiteral(" class=\"add\"");
WriteLiteral(">\r\n <h5><i");
WriteLiteral(" class=\"fa fa-plus fa-fw\"");
WriteLiteral(@"></i>Add</h5>
<p>
Specified users will have this flag <strong>added</strong>. Users who already have this flag will be skipped.
</p>
</div>
<div");
WriteLiteral(" class=\"override\"");
WriteLiteral(">\r\n <h5><i");
WriteLiteral(" class=\"fa fa-repeat fa-fw\"");
WriteLiteral(@"></i>Override</h5>
<p>
Specified users will have this flag <strong>added</strong>. Specified users which already have this flag will be skipped.
Users who already have this flag but are not specified will have the flag <strong>removed</strong>.
</p>
</div>
</div>
</div>
");
WriteLiteral(" <div");
WriteLiteral(" id=\"Config_UserFlags_BulkAssign_AssignDialog\"");
WriteLiteral(" class=\"dialog\"");
WriteLiteral(" title=\"Bulk Assign Users\"");
WriteLiteral(">\r\n <div");
WriteLiteral(" class=\"brief\"");
WriteLiteral(">\r\n <div>\r\n Enter multiple <strong>User" +
" Ids</strong> separated by <code>&lt;new line&gt;</code>, commas (<code>,</code>" +
") or semicolons (<code>;</code>).\r\n </div>\r\n " +
" <div");
WriteLiteral(" class=\"examples clearfix\"");
WriteLiteral(">\r\n <h4>Examples:</h4>\r\n <div");
WriteLiteral(" class=\"code example1\"");
WriteLiteral(">\r\n user6<br />\r\n smi0099<b" +
"r />\r\n");
WriteLiteral(" ");
#line 234 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(ActiveDirectory.Context.PrimaryDomain.NetBiosName);
#line default
#line hidden
WriteLiteral("\\rsmith\r\n </div>\r\n <div");
WriteLiteral(" class=\"code\"");
WriteLiteral(">user6,smi0099,");
#line 236 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(ActiveDirectory.Context.PrimaryDomain.NetBiosName);
#line default
#line hidden
WriteLiteral("\\rsmith</div>\r\n <div");
WriteLiteral(" class=\"code\"");
WriteLiteral(">user6;smi0099;");
#line 237 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(ActiveDirectory.Context.PrimaryDomain.NetBiosName);
#line default
#line hidden
WriteLiteral("\\rsmith</div>\r\n </div>\r\n </div>\r\n " +
" <div");
WriteLiteral(" class=\"loading\"");
WriteLiteral(">\r\n <h4><i");
WriteLiteral(" class=\"fa fa-lg fa-cog fa-spin\"");
WriteLiteral(" title=\"Please Wait\"");
WriteLiteral("></i>Loading current assignments...</h4>\r\n </div>\r\n " +
" <form");
WriteLiteral(" action=\"#\"");
WriteLiteral(" method=\"post\"");
WriteLiteral(">\r\n <textarea");
WriteLiteral(" id=\"Config_UserFlags_BulkAssign_AssignDialog_UserIds\"");
WriteLiteral(" name=\"UserIds\"");
WriteLiteral(" data-val=\"true\"");
WriteLiteral("></textarea>\r\n <h4>Comments:</h4>\r\n <textar" +
"ea");
WriteLiteral(" id=\"Config_UserFlags_BulkAssign_AssignDialog_Comments\"");
WriteLiteral(" name=\"Comments\"");
WriteLiteral("></textarea>\r\n </form>\r\n </div>\r\n");
WriteLiteral(" <script>\r\n $(function () {\r\n var mo" +
"deDialog, assignDialog, assignUserIds;\r\n\r\n function showModeD" +
"ialog() {\r\n if (!modeDialog) {\r\n " +
" modeDialog = $(\'#Config_UserFlags_BulkAssign_ModeDialog\').dialog({\r\n " +
" resizable: false,\r\n modal:" +
" true,\r\n autoOpen: false,\r\n " +
" width: 400,\r\n buttons: {\r\n " +
" Cancel: function () {\r\n " +
" $(this).dialog(\'close\');\r\n }\r\n " +
" }\r\n });\r\n\r\n " +
" modeDialog.find(\'.add\').click(function () {\r\n " +
" modeDialog.dialog(\'close\');\r\n showAssignDia" +
"log(\'Add\');\r\n });\r\n modeDi" +
"alog.find(\'.override\').click(function () {\r\n mode" +
"Dialog.dialog(\'close\');\r\n showAssignDialog(\'Overr" +
"ide\');\r\n });\r\n }\r\n " +
" modeDialog.dialog(\'open\');\r\n }\r\n " +
" function showAssignDialog(mode) {\r\n if (!assignDialog)" +
" {\r\n assignDialog = $(\'#Config_UserFlags_BulkAssign_A" +
"ssignDialog\').dialog({\r\n resizable: false,\r\n " +
" modal: true,\r\n autoOpe" +
"n: false,\r\n width: 460\r\n " +
" });\r\n\r\n assignUserIds = $(\'#Config_UserFlags_BulkA" +
"ssign_AssignDialog_UserIds\');\r\n }\r\n\r\n " +
" assignDialog.removeClass(\'loading\');\r\n\r\n var buttons " +
"= {};\r\n buttons[mode + \" User Flags\"] = function () {\r\n " +
" $(this).find(\'form\').submit();\r\n " +
" $(this).dialog(\"disable\");\r\n }\r\n " +
" buttons[\'Cancel\'] = function () {\r\n $(this).dial" +
"og(\'close\');\r\n }\r\n assignDialog.di" +
"alog(\'option\', \'buttons\', buttons);\r\n assignDialog.dialog" +
"(\'option\', \'title\', \'Bulk Assign Users: \' + mode);\r\n\r\n if" +
" (mode == \"Override\") {\r\n assignUserIds.closest(\'form" +
"\').attr(\'action\', \'");
#line 304 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Url.Action(MVC.API.UserFlag.BulkAssignUsers(Model.UserFlag.Id, true)));
#line default
#line hidden
WriteLiteral("\');\r\n\r\n assignDialog.addClass(\'loading\');\r\n " +
" $.getJSON(\'");
#line 307 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Url.Action(MVC.API.UserFlag.AssignedUsers(Model.UserFlag.Id)));
#line default
#line hidden
WriteLiteral(@"', function (response, result) {
assignDialog.removeClass('loading');
if (result != 'success') {
alert('Unable to load current assignments:\n' + response);
assignDialog.dialog('close');
} else {
if (!!response) {
assignUserIds.val(response.join('\n'));
} else {
assignUserIds.val('');
}
}
});
}
else // Assume Add
{
assignUserIds.closest('form').attr('action', '");
#line 324 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Url.Action(MVC.API.UserFlag.BulkAssignUsers(Model.UserFlag.Id, false)));
#line default
#line hidden
WriteLiteral(@"');
}
assignDialog.dialog('open');
}
$('#Config_UserFlags_BulkAssign_Button').click(function () {
showModeDialog();
return false;
});
});
</script>
");
#line 336 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
#line default
#line hidden
WriteLiteral("\r\n\r\n\r\n");
#line 340 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line default
#line hidden
#line 340 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
if (canDelete)
{
@@ -673,14 +941,14 @@ WriteLiteral(">\r\n");
#line default
#line hidden
#line 201 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 342 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Html.ActionLinkButton("Delete", MVC.API.UserFlag.Delete(Model.UserFlag.Id, true), "Config_UserFlags_Actions_Delete_Button"));
#line default
#line hidden
#line 201 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 342 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
@@ -700,13 +968,13 @@ WriteLiteral("></i>\r\n This item will be permanently deleted
"covered.<br />\r\n <br />\r\n");
#line 207 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 348 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line default
#line hidden
#line 207 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 348 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
if (Model.CurrentAssignmentCount > 0)
{
@@ -716,7 +984,7 @@ WriteLiteral("></i>\r\n This item will be permanently deleted
WriteLiteral(" <strong>");
#line 209 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 350 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Model.CurrentAssignmentCount);
@@ -725,7 +993,7 @@ WriteLiteral(" <strong>");
WriteLiteral(" user");
#line 209 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 350 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Model.CurrentAssignmentCount != 1 ? "s are" : " is");
@@ -738,7 +1006,7 @@ WriteLiteral(" <br />\r\n");
WriteLiteral(" <br />\r\n");
#line 212 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 353 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
@@ -781,7 +1049,7 @@ WriteLiteral(@">
");
#line 244 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 385 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
@@ -790,7 +1058,7 @@ WriteLiteral(@">
WriteLiteral(" ");
#line 245 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 386 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
if (canShowUsers)
{
@@ -798,14 +1066,14 @@ WriteLiteral(" ");
#line default
#line hidden
#line 247 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 388 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
Write(Html.ActionLinkButton(string.Format("Show {0} user{1}", Model.CurrentAssignmentCount, (Model.CurrentAssignmentCount == 1 ? null : "s")), MVC.Search.Query(Model.UserFlag.Id.ToString(), "UserFlag"), "Config_UserFlags_Actions_ShowUsers_Button"));
#line default
#line hidden
#line 247 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 388 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
@@ -815,7 +1083,7 @@ WriteLiteral(" ");
WriteLiteral(" </div>\r\n");
#line 250 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
#line 391 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
}
#line default
+75 -1
View File
@@ -647,7 +647,7 @@ div.logEventsViewport table.logEventsViewport > tbody > tr > td.eventType {
width: 100px;
}
#dialogBulkGenerate textarea {
width: 100%;
width: calc(100% - .5em);
height: 200px;
margin: 0 auto;
}
@@ -1225,3 +1225,77 @@ div.logEventsViewport table.logEventsViewport > tbody > tr > td.eventType {
opacity: 1;
color: inherit;
}
#Config_UserFlags_BulkAssign_ModeDialog > div {
margin-top: 6px;
background-color: #ffffff;
line-height: 1.3em;
border: 1px solid #ddd;
}
#Config_UserFlags_BulkAssign_ModeDialog > div > div {
display: block;
padding: 4px;
cursor: pointer;
}
#Config_UserFlags_BulkAssign_ModeDialog > div > div:not(:last-child) {
border-bottom: 1px dashed #ddd;
}
#Config_UserFlags_BulkAssign_ModeDialog > div > div h5 {
font-size: 1.1em;
padding: 4px 0;
}
#Config_UserFlags_BulkAssign_ModeDialog > div > div i {
margin-right: 4px;
}
#Config_UserFlags_BulkAssign_ModeDialog > div > div.add:hover {
background-color: #edffda;
}
#Config_UserFlags_BulkAssign_ModeDialog > div > div.add i {
color: #60a917;
}
#Config_UserFlags_BulkAssign_ModeDialog > div > div.override:hover {
background-color: #ffd8d4;
}
#Config_UserFlags_BulkAssign_ModeDialog > div > div.override i {
color: #e51400;
}
#Config_UserFlags_BulkAssign_AssignDialog .brief {
margin: 0 0 8px 0;
}
#Config_UserFlags_BulkAssign_AssignDialog .brief .scopeDescBulkGenerate {
font-weight: bold;
}
#Config_UserFlags_BulkAssign_AssignDialog .brief div.examples {
margin: 8px auto;
width: 300px;
}
#Config_UserFlags_BulkAssign_AssignDialog .brief div.examples div {
margin: 2px 4px 2px 0;
width: 150px;
float: left;
}
#Config_UserFlags_BulkAssign_AssignDialog .brief div.examples div.example1 {
width: 100px;
}
#Config_UserFlags_BulkAssign_AssignDialog div.loading {
display: none;
padding: 40px 0;
text-align: center;
}
#Config_UserFlags_BulkAssign_AssignDialog div.loading i {
margin-right: 10px;
color: #1e6dab;
}
#Config_UserFlags_BulkAssign_AssignDialog #Config_UserFlags_BulkAssign_AssignDialog_UserIds {
height: 200px;
margin-bottom: 8px;
}
#Config_UserFlags_BulkAssign_AssignDialog textarea {
width: calc(100% - .5em);
margin: 0;
}
#Config_UserFlags_BulkAssign_AssignDialog.loading > div.loading {
display: block;
}
#Config_UserFlags_BulkAssign_AssignDialog.loading > form {
display: none;
}
+105 -1
View File
@@ -685,7 +685,7 @@ div.logEventsViewport {
}
textarea {
width: 100%;
width: calc(~"100% - .5em");
height: 200px;
margin: 0 auto;
}
@@ -1429,4 +1429,108 @@ div.logEventsViewport {
}
}
}
}
#Config_UserFlags_BulkAssign_ModeDialog {
& > div {
margin-top: 6px;
background-color: @white;
line-height: 1.3em;
border: 1px solid #ddd;
& > div {
display: block;
padding: 4px;
cursor: pointer;
&:not(:last-child) {
border-bottom: 1px dashed #ddd;
}
h5 {
font-size: 1.1em;
padding: 4px 0;
}
i {
margin-right: 4px;
}
&.add {
&:hover {
background-color: hsv(hsvhue(@StatusSuccess), hsvsaturation(@StatusSuccess) / 6, 100%);
}
i {
color: @StatusSuccess;
}
}
&.override {
&:hover {
background-color: hsv(hsvhue(@StatusError), hsvsaturation(@StatusError) / 6, 100%);
}
i {
color: @StatusError;
}
}
}
}
}
#Config_UserFlags_BulkAssign_AssignDialog {
.brief {
margin: 0 0 8px 0;
.scopeDescBulkGenerate {
font-weight: bold;
}
div.examples {
margin: 8px auto;
width: 300px;
div {
margin: 2px 4px 2px 0;
width: 150px;
float: left;
&.example1 {
width: 100px;
}
}
}
}
div.loading {
display: none;
padding: 40px 0;
text-align: center;
i {
margin-right: 10px;
color: @StatusInformation;
}
}
#Config_UserFlags_BulkAssign_AssignDialog_UserIds {
height: 200px;
margin-bottom: 8px;
}
textarea {
width: calc(~"100% - .5em");
margin: 0;
}
&.loading {
& > div.loading {
display: block;
}
& > form {
display: none;
}
}
}
File diff suppressed because one or more lines are too long
+62
View File
@@ -11125,6 +11125,18 @@ namespace Disco.Web.Areas.API.Controllers
{
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Delete);
}
[NonAction]
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public virtual System.Web.Mvc.ActionResult BulkAssignUsers()
{
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkAssignUsers);
}
[NonAction]
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public virtual System.Web.Mvc.ActionResult AssignedUsers()
{
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.AssignedUsers);
}
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public UserFlagController Actions { get { return MVC.API.UserFlag; } }
@@ -11148,6 +11160,8 @@ namespace Disco.Web.Areas.API.Controllers
public readonly string UpdateIconColour = "UpdateIconColour";
public readonly string UpdateIconAndColour = "UpdateIconAndColour";
public readonly string Delete = "Delete";
public readonly string BulkAssignUsers = "BulkAssignUsers";
public readonly string AssignedUsers = "AssignedUsers";
}
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
@@ -11160,6 +11174,8 @@ namespace Disco.Web.Areas.API.Controllers
public const string UpdateIconColour = "UpdateIconColour";
public const string UpdateIconAndColour = "UpdateIconAndColour";
public const string Delete = "Delete";
public const string BulkAssignUsers = "BulkAssignUsers";
public const string AssignedUsers = "AssignedUsers";
}
@@ -11234,6 +11250,25 @@ namespace Disco.Web.Areas.API.Controllers
public readonly string id = "id";
public readonly string redirect = "redirect";
}
static readonly ActionParamsClass_BulkAssignUsers s_params_BulkAssignUsers = new ActionParamsClass_BulkAssignUsers();
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public ActionParamsClass_BulkAssignUsers BulkAssignUsersParams { get { return s_params_BulkAssignUsers; } }
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public class ActionParamsClass_BulkAssignUsers
{
public readonly string id = "id";
public readonly string Override = "Override";
public readonly string UserIds = "UserIds";
public readonly string Comments = "Comments";
}
static readonly ActionParamsClass_AssignedUsers s_params_AssignedUsers = new ActionParamsClass_AssignedUsers();
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public ActionParamsClass_AssignedUsers AssignedUsersParams { get { return s_params_AssignedUsers; } }
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public class ActionParamsClass_AssignedUsers
{
public readonly string id = "id";
}
static readonly ViewsClass s_views = new ViewsClass();
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public ViewsClass Views { get { return s_views; } }
@@ -11352,6 +11387,33 @@ namespace Disco.Web.Areas.API.Controllers
return callInfo;
}
[NonAction]
partial void BulkAssignUsersOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, bool Override, string UserIds, string Comments);
[NonAction]
public override System.Web.Mvc.ActionResult BulkAssignUsers(int id, bool Override, string UserIds, string Comments)
{
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.BulkAssignUsers);
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id);
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "Override", Override);
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "UserIds", UserIds);
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "Comments", Comments);
BulkAssignUsersOverride(callInfo, id, Override, UserIds, Comments);
return callInfo;
}
[NonAction]
partial void AssignedUsersOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id);
[NonAction]
public override System.Web.Mvc.ActionResult AssignedUsers(int id)
{
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.AssignedUsers);
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id);
AssignedUsersOverride(callInfo, id);
return callInfo;
}
}
}