From 4c3a68da309ef42bbc82f4299b6af7cb9c249d11 Mon Sep 17 00:00:00 2001 From: Gary Sharp Date: Tue, 10 Jun 2014 17:16:24 +1000 Subject: [PATCH] Feature #26: User Flags Flags can be associated with Users. Includes minor updates to Job Queues and improved visibility of user information. --- .../BI/Extensions/JobQueueActionExtensions.cs | 9 +- .../BI/Extensions/UserFlagActionExtensions.cs | 85 ++ Disco.BI/Disco.BI.csproj | 3 +- Disco.Data/Disco.Data.csproj | 9 +- .../201406090652547_DBv14.Designer.cs | 27 + .../Migrations/201406090652547_DBv14.cs | 61 ++ .../Migrations/201406090652547_DBv14.resx | 123 +++ Disco.Data/Repository/DiscoDataContext.cs | 2 + .../Repository/Monitor/RepositoryMonitor.cs | 5 + Disco.Models/Disco.Models.csproj | 7 +- Disco.Models/Repository/User/Flag/UserFlag.cs | 29 + .../User/Flag/UserFlagAssignment.cs | 36 + Disco.Models/Repository/User/User.cs | 1 + .../Searching/UserSearchResultItem.cs | 13 +- .../JobQueue/ConfigJobQueueShowModel.cs | 7 +- .../UserFlag/ConfigUserFlagCreateModel.cs | 7 + .../UserFlag/ConfigUserFlagIndexModel.cs | 9 + .../UserFlag/ConfigUserFlagShowModel.cs | 15 + Disco.Models/UI/User/UserShowModel.cs | 8 +- Disco.Services/Authorization/Claims.cs | 75 +- .../ClaimGroups/Configuration/ConfigClaims.cs | 4 + .../Configuration/UserFlag/UserFlagClaims.cs | 18 + .../ClaimGroups/User/UserActionsClaims.cs | 17 +- .../Roles/ClaimGroups/User/UserClaims.cs | 3 + Disco.Services/Disco.Services.csproj | 7 +- Disco.Services/Extensions/UIHelpers.cs | 226 +++++ Disco.Services/Jobs/JobQueues/Cache.cs | 180 ---- .../Jobs/JobQueues/JobQueueService.cs | 29 +- Disco.Services/Searching/Search.cs | 62 +- Disco.Services/Users/UserFlags/Cache.cs | 82 ++ .../Users/UserFlags/UserFlagService.cs | 100 +++ .../Users/UserFlags/UserFlagsDeleteTask.cs | 34 + Disco.Web/App_Code/CommonHelpers.cshtml | 21 + Disco.Web/App_Code/CommonHelpers.generated.cs | 303 +++++-- Disco.Web/App_Start/AppConfig.cs | 6 +- .../UserFlagAssignmentController.cs | 114 +++ .../API/Controllers/UserFlagController.cs | 196 +++++ .../Areas/API/Models/Job/_CommentModel.cs | 4 +- .../Areas/Config/ConfigAreaRegistration.cs | 10 + .../Config/Controllers/JobQueueController.cs | 7 +- .../Config/Controllers/UserFlagController.cs | 103 +++ .../Areas/Config/Models/JobQueue/ShowModel.cs | 3 + .../Config/Models/UserFlag/CreateModel.cs | 9 + .../Config/Models/UserFlag/IndexModel.cs | 10 + .../Areas/Config/Models/UserFlag/ShowModel.cs | 16 + .../Areas/Config/Views/Config/Index.cshtml | 44 +- .../Config/Views/Config/Index.generated.cs | 355 +++++--- .../Config/Views/DeviceBatch/Show.cshtml | 6 +- .../Views/DeviceBatch/Show.generated.cs | 8 +- .../Config/Views/DeviceModel/Show.cshtml | 4 +- .../Views/DeviceModel/Show.generated.cs | 6 +- .../Config/Views/DeviceProfile/Show.cshtml | 4 +- .../Views/DeviceProfile/Show.generated.cs | 6 +- .../Areas/Config/Views/JobQueue/Show.cshtml | 82 +- .../Config/Views/JobQueue/Show.generated.cs | 240 ++--- .../Areas/Config/Views/UserFlag/Create.cshtml | 36 + .../Config/Views/UserFlag/Create.generated.cs | 172 ++++ .../Areas/Config/Views/UserFlag/Index.cshtml | 46 + .../Config/Views/UserFlag/Index.generated.cs | 242 +++++ .../Areas/Config/Views/UserFlag/Show.cshtml | 250 ++++++ .../Config/Views/UserFlag/Show.generated.cs | 826 ++++++++++++++++++ Disco.Web/ClientSource/Style/BundleSite.css | 22 + .../ClientSource/Style/BundleSite.min.css | 2 +- Disco.Web/ClientSource/Style/Config.css | 49 ++ Disco.Web/ClientSource/Style/Config.less | 62 ++ Disco.Web/ClientSource/Style/Config.min.css | 2 +- Disco.Web/ClientSource/Style/Device.css | 9 + Disco.Web/ClientSource/Style/Device.less | 14 + Disco.Web/ClientSource/Style/Device.min.css | 2 +- Disco.Web/ClientSource/Style/Job.css | 16 +- Disco.Web/ClientSource/Style/Job.less | 21 +- Disco.Web/ClientSource/Style/Job.min.css | 2 +- Disco.Web/ClientSource/Style/Site.css | 22 + Disco.Web/ClientSource/Style/Site.less | 32 + Disco.Web/ClientSource/Style/Site.min.css | 2 +- Disco.Web/ClientSource/Style/User.css | 119 +++ Disco.Web/ClientSource/Style/User.less | 150 ++++ Disco.Web/ClientSource/Style/User.min.css | 2 +- Disco.Web/Controllers/DeviceController.cs | 2 +- Disco.Web/Controllers/JobController.cs | 2 +- Disco.Web/Controllers/SearchController.cs | 23 +- Disco.Web/Controllers/UserController.cs | 13 + Disco.Web/Disco.Web.csproj | 44 +- Disco.Web/Extensions/HtmlExtensions.cs | 66 +- Disco.Web/Models/User/ShowModel.cs | 9 +- Disco.Web/T4MVC.cs | 670 ++++++++++++++ .../Views/Device/DeviceParts/_Subject.cshtml | 41 + .../Device/DeviceParts/_Subject.generated.cs | 650 +++++++++----- Disco.Web/Views/Job/JobParts/Queues.cshtml | 12 +- .../Views/Job/JobParts/Queues.generated.cs | 414 +++++---- Disco.Web/Views/Job/JobParts/Resources.cshtml | 7 +- .../Views/Job/JobParts/Resources.generated.cs | 180 ++-- Disco.Web/Views/Job/JobParts/_Subject.cshtml | 57 +- .../Views/Job/JobParts/_Subject.generated.cs | 807 ++++++++++------- Disco.Web/Views/Job/Show.cshtml | 4 +- Disco.Web/Views/Job/Show.generated.cs | 4 +- Disco.Web/Views/User/Show.cshtml | 43 + Disco.Web/Views/User/Show.generated.cs | 210 ++++- Disco.Web/Views/User/UserParts/_Flags.cshtml | 174 ++++ .../Views/User/UserParts/_Flags.generated.cs | 629 +++++++++++++ .../Views/User/UserParts/_Subject.cshtml | 90 ++ .../User/UserParts/_Subject.generated.cs | 334 ++++++- Disco.Web/Views/User/_UserTable.cshtml | 57 +- Disco.Web/Views/User/_UserTable.generated.cs | 243 +++++- 104 files changed, 8112 insertions(+), 1623 deletions(-) create mode 100644 Disco.BI/BI/Extensions/UserFlagActionExtensions.cs create mode 100644 Disco.Data/Migrations/201406090652547_DBv14.Designer.cs create mode 100644 Disco.Data/Migrations/201406090652547_DBv14.cs create mode 100644 Disco.Data/Migrations/201406090652547_DBv14.resx create mode 100644 Disco.Models/Repository/User/Flag/UserFlag.cs create mode 100644 Disco.Models/Repository/User/Flag/UserFlagAssignment.cs create mode 100644 Disco.Models/UI/Config/UserFlag/ConfigUserFlagCreateModel.cs create mode 100644 Disco.Models/UI/Config/UserFlag/ConfigUserFlagIndexModel.cs create mode 100644 Disco.Models/UI/Config/UserFlag/ConfigUserFlagShowModel.cs create mode 100644 Disco.Services/Authorization/Roles/ClaimGroups/Configuration/UserFlag/UserFlagClaims.cs create mode 100644 Disco.Services/Extensions/UIHelpers.cs create mode 100644 Disco.Services/Users/UserFlags/Cache.cs create mode 100644 Disco.Services/Users/UserFlags/UserFlagService.cs create mode 100644 Disco.Services/Users/UserFlags/UserFlagsDeleteTask.cs create mode 100644 Disco.Web/Areas/API/Controllers/UserFlagAssignmentController.cs create mode 100644 Disco.Web/Areas/API/Controllers/UserFlagController.cs create mode 100644 Disco.Web/Areas/Config/Controllers/UserFlagController.cs create mode 100644 Disco.Web/Areas/Config/Models/UserFlag/CreateModel.cs create mode 100644 Disco.Web/Areas/Config/Models/UserFlag/IndexModel.cs create mode 100644 Disco.Web/Areas/Config/Models/UserFlag/ShowModel.cs create mode 100644 Disco.Web/Areas/Config/Views/UserFlag/Create.cshtml create mode 100644 Disco.Web/Areas/Config/Views/UserFlag/Create.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/UserFlag/Index.cshtml create mode 100644 Disco.Web/Areas/Config/Views/UserFlag/Index.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/UserFlag/Show.cshtml create mode 100644 Disco.Web/Areas/Config/Views/UserFlag/Show.generated.cs create mode 100644 Disco.Web/Views/User/UserParts/_Flags.cshtml create mode 100644 Disco.Web/Views/User/UserParts/_Flags.generated.cs diff --git a/Disco.BI/BI/Extensions/JobQueueActionExtensions.cs b/Disco.BI/BI/Extensions/JobQueueActionExtensions.cs index bd08f5a0..6568d53c 100644 --- a/Disco.BI/BI/Extensions/JobQueueActionExtensions.cs +++ b/Disco.BI/BI/Extensions/JobQueueActionExtensions.cs @@ -4,10 +4,7 @@ using Disco.Services.Authorization; using Disco.Services.Jobs.JobQueues; using Disco.Services.Users; using System; -using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Disco.BI.Extensions { @@ -146,7 +143,7 @@ namespace Disco.BI.Extensions public static void OnRemove(this JobQueueJob jqj, User Technician, string Comment) { if (!jqj.CanRemove()) - throw new InvalidOperationException("Removing job from queue is Denied"); + throw new InvalidOperationException("Removing job from queue is denied"); jqj.RemovedDate = DateTime.Now; jqj.RemovedUserId = Technician.UserId; @@ -173,7 +170,7 @@ namespace Disco.BI.Extensions return false; // Already in Queue? - if (j.JobQueues.Count(jjq => !jjq.RemovedDate.HasValue && jjq.JobQueueId == jq.Id) > 0) + if (j.JobQueues.Any(jjq => !jjq.RemovedDate.HasValue && jjq.JobQueueId == jq.Id)) return false; // Can add ANY queue @@ -191,7 +188,7 @@ namespace Disco.BI.Extensions public static JobQueueJob OnAddQueue(this Job j, DiscoDataContext Database, JobQueue jq, User Technician, string Comment, DateTime? SLAExpires, JobQueuePriority Priority) { if (!j.CanAddQueue(jq)) - throw new InvalidOperationException("Adding job to queue is Denied"); + throw new InvalidOperationException("Adding job to queue is denied"); if (SLAExpires.HasValue && SLAExpires.Value < DateTime.Now) throw new ArgumentException("The SLA Date must be greater than the current time", "SLAExpires"); diff --git a/Disco.BI/BI/Extensions/UserFlagActionExtensions.cs b/Disco.BI/BI/Extensions/UserFlagActionExtensions.cs new file mode 100644 index 00000000..aae008bb --- /dev/null +++ b/Disco.BI/BI/Extensions/UserFlagActionExtensions.cs @@ -0,0 +1,85 @@ +using Disco.Data.Repository; +using Disco.Models.Repository; +using Disco.Services.Authorization; +using Disco.Services.Users; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.BI.Extensions +{ + public static class UserFlagActionExtensions + { + + #region Edit Comments + public static bool CanEditComments(this UserFlagAssignment fa) + { + return UserService.CurrentAuthorization.Has(Claims.User.Actions.EditFlags); + } + public static void OnEditComments(this UserFlagAssignment fa, string Comments) + { + if (!fa.CanEditComments()) + throw new InvalidOperationException("Editing comments for user flags is denied"); + + fa.Comments = string.IsNullOrWhiteSpace(Comments) ? null : Comments.Trim(); + } + #endregion + + #region Remove + public static bool CanRemove(this UserFlagAssignment fa) + { + if (fa.RemovedDate.HasValue) + return false; + + return UserService.CurrentAuthorization.Has(Claims.User.Actions.RemoveFlags); + } + public static void OnRemove(this UserFlagAssignment fa, User Technician) + { + if (!fa.CanRemove()) + throw new InvalidOperationException("Removing user flags is denied"); + + fa.RemovedDate = DateTime.Now; + fa.RemovedUserId = Technician.UserId; + } + #endregion + + #region Add + public static bool CanAddUserFlags(this User u) + { + return UserService.CurrentAuthorization.Has(Claims.User.Actions.AddFlags); + } + public static bool CanAddUserFlag(this User u, UserFlag flag) + { + // Shortcut + if (!u.CanAddUserFlags()) + return false; + + // Already has User Flag? + if (u.UserFlagAssignments.Any(fa => !fa.RemovedDate.HasValue && fa.UserFlagId == flag.Id)) + return false; + + return true; + } + public static UserFlagAssignment OnAddUserFlag(this User u, DiscoDataContext Database, UserFlag flag, User Technician, string Comments) + { + if (!u.CanAddUserFlag(flag)) + throw new InvalidOperationException("Adding user flag is denied"); + + var fa = new UserFlagAssignment() + { + UserFlagId = flag.Id, + UserId = u.UserId, + AddedDate = DateTime.Now, + AddedUserId = Technician.UserId, + Comments = string.IsNullOrWhiteSpace(Comments) ? null : Comments.Trim() + }; + + Database.UserFlagAssignments.Add(fa); + return fa; + } + #endregion + + } +} diff --git a/Disco.BI/Disco.BI.csproj b/Disco.BI/Disco.BI.csproj index d1ba0482..b0ee39a7 100644 --- a/Disco.BI/Disco.BI.csproj +++ b/Disco.BI/Disco.BI.csproj @@ -112,6 +112,7 @@ + @@ -203,7 +204,7 @@ - + diff --git a/Disco.Data/Disco.Data.csproj b/Disco.Data/Disco.Data.csproj index 3965d443..7ffc950b 100644 --- a/Disco.Data/Disco.Data.csproj +++ b/Disco.Data/Disco.Data.csproj @@ -139,6 +139,10 @@ 201404080227546_DBv13.cs + + + 201406090652547_DBv14.cs + @@ -193,6 +197,9 @@ 201404080227546_DBv13.cs + + 201406090652547_DBv14.cs + ResXFileCodeGenerator Resources.Designer.cs @@ -206,7 +213,7 @@ - + diff --git a/Disco.Data/Migrations/201406090652547_DBv14.Designer.cs b/Disco.Data/Migrations/201406090652547_DBv14.Designer.cs new file mode 100644 index 00000000..9bd62ca6 --- /dev/null +++ b/Disco.Data/Migrations/201406090652547_DBv14.Designer.cs @@ -0,0 +1,27 @@ +// +namespace Disco.Data.Migrations +{ + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + public sealed partial class DBv14 : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(DBv14)); + + string IMigrationMetadata.Id + { + get { return "201406090652547_DBv14"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Disco.Data/Migrations/201406090652547_DBv14.cs b/Disco.Data/Migrations/201406090652547_DBv14.cs new file mode 100644 index 00000000..20b1d472 --- /dev/null +++ b/Disco.Data/Migrations/201406090652547_DBv14.cs @@ -0,0 +1,61 @@ +namespace Disco.Data.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class DBv14 : DbMigration + { + public override void Up() + { + CreateTable( + "dbo.UserFlagAssignments", + c => new + { + Id = c.Int(nullable: false, identity: true), + UserFlagId = c.Int(nullable: false), + UserId = c.String(nullable: false, maxLength: 50), + AddedDate = c.DateTime(nullable: false), + AddedUserId = c.String(nullable: false, maxLength: 50), + RemovedDate = c.DateTime(), + RemovedUserId = c.String(maxLength: 50), + Comments = c.String(), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("dbo.UserFlags", t => t.UserFlagId) + .ForeignKey("dbo.Users", t => t.UserId) + .ForeignKey("dbo.Users", t => t.AddedUserId) + .ForeignKey("dbo.Users", t => t.RemovedUserId) + .Index(t => t.UserFlagId) + .Index(t => t.UserId) + .Index(t => t.AddedUserId) + .Index(t => t.RemovedUserId); + + CreateTable( + "dbo.UserFlags", + c => new + { + Id = c.Int(nullable: false, identity: true), + Name = c.String(nullable: false, maxLength: 100), + Description = c.String(maxLength: 500), + Icon = c.String(nullable: false, maxLength: 25), + IconColour = c.String(nullable: false, maxLength: 10), + }) + .PrimaryKey(t => t.Id); + + } + + public override void Down() + { + DropIndex("dbo.UserFlagAssignments", new[] { "RemovedUserId" }); + DropIndex("dbo.UserFlagAssignments", new[] { "AddedUserId" }); + DropIndex("dbo.UserFlagAssignments", new[] { "UserId" }); + DropIndex("dbo.UserFlagAssignments", new[] { "UserFlagId" }); + DropForeignKey("dbo.UserFlagAssignments", "RemovedUserId", "dbo.Users"); + DropForeignKey("dbo.UserFlagAssignments", "AddedUserId", "dbo.Users"); + DropForeignKey("dbo.UserFlagAssignments", "UserId", "dbo.Users"); + DropForeignKey("dbo.UserFlagAssignments", "UserFlagId", "dbo.UserFlags"); + DropTable("dbo.UserFlags"); + DropTable("dbo.UserFlagAssignments"); + } + } +} diff --git a/Disco.Data/Migrations/201406090652547_DBv14.resx b/Disco.Data/Migrations/201406090652547_DBv14.resx new file mode 100644 index 00000000..cc734d75 --- /dev/null +++ b/Disco.Data/Migrations/201406090652547_DBv14.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Disco.Data/Repository/DiscoDataContext.cs b/Disco.Data/Repository/DiscoDataContext.cs index aa3f09b9..41d26cc0 100644 --- a/Disco.Data/Repository/DiscoDataContext.cs +++ b/Disco.Data/Repository/DiscoDataContext.cs @@ -23,6 +23,8 @@ namespace Disco.Data.Repository public virtual DbSet Users { get; set; } public virtual DbSet UserAttachments { get; set; } + public virtual DbSet UserFlags { get; set; } + public virtual DbSet UserFlagAssignments { get; set; } public virtual DbSet AuthorizationRoles { get; set; } public virtual DbSet DeviceUserAssignments { get; set; } diff --git a/Disco.Data/Repository/Monitor/RepositoryMonitor.cs b/Disco.Data/Repository/Monitor/RepositoryMonitor.cs index dd6c1c8a..57a494cf 100644 --- a/Disco.Data/Repository/Monitor/RepositoryMonitor.cs +++ b/Disco.Data/Repository/Monitor/RepositoryMonitor.cs @@ -177,6 +177,11 @@ namespace Disco.Data.Repository.Monitor { key["UserId"] = ((UserAttachment)entryState.Entity).UserId; } + if (entryState.Entity is UserFlagAssignment) + { + key["UserFlagId"] = ((UserFlagAssignment)entryState.Entity).UserFlagId; + key["UserId"] = ((UserFlagAssignment)entryState.Entity).UserId; + } return key; } diff --git a/Disco.Models/Disco.Models.csproj b/Disco.Models/Disco.Models.csproj index c5951838..08c29a56 100644 --- a/Disco.Models/Disco.Models.csproj +++ b/Disco.Models/Disco.Models.csproj @@ -47,6 +47,8 @@ + + @@ -154,6 +156,9 @@ + + + @@ -176,7 +181,7 @@ - + diff --git a/Disco.Models/Repository/User/Flag/UserFlag.cs b/Disco.Models/Repository/User/Flag/UserFlag.cs new file mode 100644 index 00000000..e7143b29 --- /dev/null +++ b/Disco.Models/Repository/User/Flag/UserFlag.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace Disco.Models.Repository +{ + public class UserFlag + { + [Key] + public int Id { get; set; } + + [Required, StringLength(100)] + public string Name { get; set; } + + [StringLength(500), DataType(DataType.MultilineText)] + public string Description { get; set; } + + [Required, StringLength(25)] + public string Icon { get; set; } + [Required, StringLength(10)] + public string IconColour { get; set; } + + public virtual IList UserFlagAssignments { get; set; } + + public override string ToString() + { + return this.Name; + } + } +} \ No newline at end of file diff --git a/Disco.Models/Repository/User/Flag/UserFlagAssignment.cs b/Disco.Models/Repository/User/Flag/UserFlagAssignment.cs new file mode 100644 index 00000000..8e37a622 --- /dev/null +++ b/Disco.Models/Repository/User/Flag/UserFlagAssignment.cs @@ -0,0 +1,36 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class UserFlagAssignment + { + [Key] + public int Id { get; set; } + [Required] + public int UserFlagId { get; set; } + [Required] + public string UserId { get; set; } + + [Required] + public DateTime AddedDate { get; set; } + [Required] + public string AddedUserId { get; set; } + public DateTime? RemovedDate { get; set; } + public string RemovedUserId { get; set; } + + public string Comments { get; set; } + + [ForeignKey("UserFlagId"), InverseProperty("UserFlagAssignments")] + public virtual UserFlag UserFlag { get; set; } + + [ForeignKey("UserId"), InverseProperty("UserFlagAssignments")] + public virtual User User { get; set; } + + [ForeignKey("AddedUserId")] + public virtual User AddedUser { get; set; } + [ForeignKey("RemovedUserId")] + public virtual User RemovedUser { get; set; } + } +} \ No newline at end of file diff --git a/Disco.Models/Repository/User/User.cs b/Disco.Models/Repository/User/User.cs index fd79cc7f..4e7a4cb8 100644 --- a/Disco.Models/Repository/User/User.cs +++ b/Disco.Models/Repository/User/User.cs @@ -29,6 +29,7 @@ namespace Disco.Models.Repository public virtual IList DeviceUserAssignments { get; set; } [InverseProperty("UserId")] public virtual IList Jobs { get; set; } + public virtual IList UserFlagAssignments { get; set; } [NotMapped, Obsolete("Should be using Combined Domain\\User format - UserId")] public string Id diff --git a/Disco.Models/Services/Searching/UserSearchResultItem.cs b/Disco.Models/Services/Searching/UserSearchResultItem.cs index 5fab3b33..9290c6a6 100644 --- a/Disco.Models/Services/Searching/UserSearchResultItem.cs +++ b/Disco.Models/Services/Searching/UserSearchResultItem.cs @@ -1,4 +1,5 @@ -using System; +using Disco.Models.Repository; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -17,16 +18,22 @@ namespace Disco.Models.Services.Searching } public string Id { get; set; } + public string FriendlyId { get; set; } public string Type { get { return type; } } public string Description { get { return string.Format("{0} ({1})", this.DisplayName, this.Id); } } public string[] ScoreValues { get { return LazyScoreValue.Value; } } - public int AssignedDevicesCount { get; set; } public string DisplayName { get; set; } public string GivenName { get; set; } - public int JobCount { get; set; } public string Surname { get; set; } + public int AssignedDevicesCount { get; set; } + + public int JobCount { get; set; } + public int JobCountOpen { get; set; } + + public IList UserFlagAssignments { get; set; } + private string[] BuildScoreValues() { return new string[] { diff --git a/Disco.Models/UI/Config/JobQueue/ConfigJobQueueShowModel.cs b/Disco.Models/UI/Config/JobQueue/ConfigJobQueueShowModel.cs index 013ac969..64e76751 100644 --- a/Disco.Models/UI/Config/JobQueue/ConfigJobQueueShowModel.cs +++ b/Disco.Models/UI/Config/JobQueue/ConfigJobQueueShowModel.cs @@ -1,9 +1,5 @@ using Disco.Models.Services.Jobs.JobQueues; -using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Disco.Models.UI.Config.JobQueue { @@ -14,6 +10,9 @@ namespace Disco.Models.UI.Config.JobQueue int OpenJobCount { get; set; } int TotalJobCount { get; set; } + IEnumerable> Icons { get; set; } + IEnumerable> ThemeColours { get; set; } + List JobTypes { get; set; } bool CanDelete { get; set; } diff --git a/Disco.Models/UI/Config/UserFlag/ConfigUserFlagCreateModel.cs b/Disco.Models/UI/Config/UserFlag/ConfigUserFlagCreateModel.cs new file mode 100644 index 00000000..28217cb1 --- /dev/null +++ b/Disco.Models/UI/Config/UserFlag/ConfigUserFlagCreateModel.cs @@ -0,0 +1,7 @@ +namespace Disco.Models.UI.Config.UserFlag +{ + public interface ConfigUserFlagCreateModel : BaseUIModel + { + Repository.UserFlag UserFlag { get; set; } + } +} \ No newline at end of file diff --git a/Disco.Models/UI/Config/UserFlag/ConfigUserFlagIndexModel.cs b/Disco.Models/UI/Config/UserFlag/ConfigUserFlagIndexModel.cs new file mode 100644 index 00000000..549e9a6e --- /dev/null +++ b/Disco.Models/UI/Config/UserFlag/ConfigUserFlagIndexModel.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace Disco.Models.UI.Config.UserFlag +{ + public interface ConfigUserFlagIndexModel : BaseUIModel + { + List UserFlags { get; set; } + } +} \ No newline at end of file diff --git a/Disco.Models/UI/Config/UserFlag/ConfigUserFlagShowModel.cs b/Disco.Models/UI/Config/UserFlag/ConfigUserFlagShowModel.cs new file mode 100644 index 00000000..af582107 --- /dev/null +++ b/Disco.Models/UI/Config/UserFlag/ConfigUserFlagShowModel.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; + +namespace Disco.Models.UI.Config.UserFlag +{ + public interface ConfigUserFlagShowModel : BaseUIModel + { + Repository.UserFlag UserFlag { get; set; } + + int CurrentAssignmentCount { get; set; } + int TotalAssignmentCount { get; set; } + + IEnumerable> Icons { get; set; } + IEnumerable> ThemeColours { get; set; } + } +} \ No newline at end of file diff --git a/Disco.Models/UI/User/UserShowModel.cs b/Disco.Models/UI/User/UserShowModel.cs index 5c257253..fbd7c607 100644 --- a/Disco.Models/UI/User/UserShowModel.cs +++ b/Disco.Models/UI/User/UserShowModel.cs @@ -1,4 +1,5 @@ -using Disco.Models.Services.Authorization; +using Disco.Models.Repository; +using Disco.Models.Services.Authorization; using Disco.Models.Services.Jobs.JobLists; using System.Collections.Generic; @@ -8,7 +9,10 @@ namespace Disco.Models.UI.User { Disco.Models.Repository.User User { get; set; } JobTableModel Jobs { get; set; } - List DocumentTemplates { get; set; } + List DocumentTemplates { get; set; } + + List AvailableUserFlags { get; set; } + IAuthorizationToken AuthorizationToken { get; set; } IClaimNavigatorItem ClaimNavigator { get; set; } } diff --git a/Disco.Services/Authorization/Claims.cs b/Disco.Services/Authorization/Claims.cs index a29dee2d..af35dcc8 100644 --- a/Disco.Services/Authorization/Claims.cs +++ b/Disco.Services/Authorization/Claims.cs @@ -73,6 +73,10 @@ namespace Disco.Services.Authorization { "Config.JobQueue.Create", new Tuple, Action, string, string, bool>(c => c.Config.JobQueue.Create, (c, v) => c.Config.JobQueue.Create = v, "Create Job Queues", "Can create job queues", false) }, { "Config.JobQueue.Delete", new Tuple, Action, string, string, bool>(c => c.Config.JobQueue.Delete, (c, v) => c.Config.JobQueue.Delete = v, "Delete Job Queues", "Can delete job queues", false) }, { "Config.JobQueue.Show", new Tuple, Action, string, string, bool>(c => c.Config.JobQueue.Show, (c, v) => c.Config.JobQueue.Show = v, "Show Job Queues", "Can show job queues", false) }, + { "Config.UserFlag.Configure", new Tuple, Action, string, string, bool>(c => c.Config.UserFlag.Configure, (c, v) => c.Config.UserFlag.Configure = v, "Configure User Flags", "Can configure user flags", false) }, + { "Config.UserFlag.Create", new Tuple, Action, string, string, bool>(c => c.Config.UserFlag.Create, (c, v) => c.Config.UserFlag.Create = v, "Create User Flags", "Can create user flags", false) }, + { "Config.UserFlag.Delete", new Tuple, Action, string, string, bool>(c => c.Config.UserFlag.Delete, (c, v) => c.Config.UserFlag.Delete = v, "Delete User Flags", "Can delete user flags", false) }, + { "Config.UserFlag.Show", new Tuple, Action, string, string, bool>(c => c.Config.UserFlag.Show, (c, v) => c.Config.UserFlag.Show = v, "Show User Flags", "Can show user flags", false) }, { "Config.Show", new Tuple, Action, string, string, bool>(c => c.Config.Show, (c, v) => c.Config.Show = v, "Show Configuration", "Can show the configuration menu", false) }, { "Job.Lists.AllOpen", new Tuple, Action, string, string, bool>(c => c.Job.Lists.AllOpen, (c, v) => c.Job.Lists.AllOpen = v, "All Open List", "Can show list", false) }, { "Job.Lists.AwaitingFinanceAgreementBreach", new Tuple, Action, string, string, bool>(c => c.Job.Lists.AwaitingFinanceAgreementBreach, (c, v) => c.Job.Lists.AwaitingFinanceAgreementBreach = v, "Awaiting Finance Agreement Breach List", "Can show list (NOTE: Requires Awaiting Finance List)", false) }, @@ -198,9 +202,12 @@ namespace Disco.Services.Authorization { "Device.Show", new Tuple, Action, string, string, bool>(c => c.Device.Show, (c, v) => c.Device.Show = v, "Show Devices", "Can show devices", false) }, { "Device.ShowJobs", new Tuple, Action, string, string, bool>(c => c.Device.ShowJobs, (c, v) => c.Device.ShowJobs = v, "Show Devices Jobs", "Can show jobs associated with devices", false) }, { "User.Actions.AddAttachments", new Tuple, Action, string, string, bool>(c => c.User.Actions.AddAttachments, (c, v) => c.User.Actions.AddAttachments = v, "Add Attachments", "Can add attachments to users", false) }, + { "User.Actions.AddFlags", new Tuple, Action, string, string, bool>(c => c.User.Actions.AddFlags, (c, v) => c.User.Actions.AddFlags = v, "Add User Flags", "Can add user flags", false) }, + { "User.Actions.EditFlags", new Tuple, Action, string, string, bool>(c => c.User.Actions.EditFlags, (c, v) => c.User.Actions.EditFlags = v, "Edit User Flags", "Can edit user flags", false) }, { "User.Actions.GenerateDocuments", new Tuple, Action, string, string, bool>(c => c.User.Actions.GenerateDocuments, (c, v) => c.User.Actions.GenerateDocuments = v, "Generate Documents", "Can generate documents for users", false) }, { "User.Actions.RemoveAnyAttachments", new Tuple, Action, string, string, bool>(c => c.User.Actions.RemoveAnyAttachments, (c, v) => c.User.Actions.RemoveAnyAttachments = v, "Remove Any Attachments", "Can remove any attachments from users", false) }, { "User.Actions.RemoveOwnAttachments", new Tuple, Action, string, string, bool>(c => c.User.Actions.RemoveOwnAttachments, (c, v) => c.User.Actions.RemoveOwnAttachments = v, "Remove Own Attachments", "Can remove own attachments from users", false) }, + { "User.Actions.RemoveFlags", new Tuple, Action, string, string, bool>(c => c.User.Actions.RemoveFlags, (c, v) => c.User.Actions.RemoveFlags = v, "Remove User Flags", "Can remove user flags", false) }, { "User.Search", new Tuple, Action, string, string, bool>(c => c.User.Search, (c, v) => c.User.Search = v, "Search Users", "Can search users", false) }, { "User.ShowAttachments", new Tuple, Action, string, string, bool>(c => c.User.ShowAttachments, (c, v) => c.User.ShowAttachments = v, "Show Attachments", "Can show user attachments", false) }, { "User.ShowAssignmentHistory", new Tuple, Action, string, string, bool>(c => c.User.ShowAssignmentHistory, (c, v) => c.User.ShowAssignmentHistory = v, "Show Device Assignment History", "Can show the device assignment history for users", false) }, @@ -208,6 +215,7 @@ namespace Disco.Services.Authorization { "User.Show", new Tuple, Action, string, string, bool>(c => c.User.Show, (c, v) => c.User.Show = v, "Show Users", "Can show users", false) }, { "User.ShowAuthorization", new Tuple, Action, string, string, bool>(c => c.User.ShowAuthorization, (c, v) => c.User.ShowAuthorization = v, "Show Users Authorization", "Can show authorization permissions associated with users", false) }, { "User.ShowDetails", new Tuple, Action, string, string, bool>(c => c.User.ShowDetails, (c, v) => c.User.ShowDetails = v, "Show Users Details", "Can show users contact and personal details", false) }, + { "User.ShowFlagAssignments", new Tuple, Action, string, string, bool>(c => c.User.ShowFlagAssignments, (c, v) => c.User.ShowFlagAssignments = v, "Show Users Flag Assignments", "Can show flags associated with users", false) }, { "User.ShowJobs", new Tuple, Action, string, string, bool>(c => c.User.ShowJobs, (c, v) => c.User.ShowJobs = v, "Show Users Jobs", "Can show jobs associated with users", false) }, { "ComputerAccount", new Tuple, Action, string, string, bool>(c => c.ComputerAccount, (c, v) => c.ComputerAccount = v, "Computer Account", "Represents a computer account", true) }, { "DiscoAdminAccount", new Tuple, Action, string, string, bool>(c => c.DiscoAdminAccount, (c, v) => c.DiscoAdminAccount = v, "Disco Administrator Account", "Represents a Disco Administrator account", true) } @@ -291,6 +299,12 @@ namespace Disco.Services.Authorization new ClaimNavigatorItem("Config.System.ConfigureProxy", false), new ClaimNavigatorItem("Config.System.Show", false) }), + new ClaimNavigatorItem("Config.UserFlag", "User Flags", "Permissions related to User Flags", false, new List() { + new ClaimNavigatorItem("Config.UserFlag.Configure", false), + new ClaimNavigatorItem("Config.UserFlag.Create", false), + new ClaimNavigatorItem("Config.UserFlag.Delete", false), + new ClaimNavigatorItem("Config.UserFlag.Show", false) + }), new ClaimNavigatorItem("Config.Show", false) }), new ClaimNavigatorItem("Job", "Job", "Permissions related to Jobs", false, new List() { @@ -441,9 +455,12 @@ namespace Disco.Services.Authorization new ClaimNavigatorItem("User", "User", "Permissions related to Users", false, new List() { new ClaimNavigatorItem("User.Actions", "Actions", "Permissions related to User Actions", false, new List() { new ClaimNavigatorItem("User.Actions.AddAttachments", false), + new ClaimNavigatorItem("User.Actions.AddFlags", false), + new ClaimNavigatorItem("User.Actions.EditFlags", false), new ClaimNavigatorItem("User.Actions.GenerateDocuments", false), new ClaimNavigatorItem("User.Actions.RemoveAnyAttachments", false), - new ClaimNavigatorItem("User.Actions.RemoveOwnAttachments", false) + new ClaimNavigatorItem("User.Actions.RemoveOwnAttachments", false), + new ClaimNavigatorItem("User.Actions.RemoveFlags", false) }), new ClaimNavigatorItem("User.Search", false), new ClaimNavigatorItem("User.ShowAttachments", false), @@ -452,6 +469,7 @@ namespace Disco.Services.Authorization new ClaimNavigatorItem("User.Show", false), new ClaimNavigatorItem("User.ShowAuthorization", false), new ClaimNavigatorItem("User.ShowDetails", false), + new ClaimNavigatorItem("User.ShowFlagAssignments", false), new ClaimNavigatorItem("User.ShowJobs", false) }), new ClaimNavigatorItem("ComputerAccount", true), @@ -567,6 +585,10 @@ namespace Disco.Services.Authorization c.Config.JobQueue.Create = true; c.Config.JobQueue.Delete = true; c.Config.JobQueue.Show = true; + c.Config.UserFlag.Configure = true; + c.Config.UserFlag.Create = true; + c.Config.UserFlag.Delete = true; + c.Config.UserFlag.Show = true; c.Config.Show = true; c.Job.Lists.AllOpen = true; c.Job.Lists.AwaitingFinanceAgreementBreach = true; @@ -692,9 +714,12 @@ namespace Disco.Services.Authorization c.Device.Show = true; c.Device.ShowJobs = true; c.User.Actions.AddAttachments = true; + c.User.Actions.AddFlags = true; + c.User.Actions.EditFlags = true; c.User.Actions.GenerateDocuments = true; c.User.Actions.RemoveAnyAttachments = true; c.User.Actions.RemoveOwnAttachments = true; + c.User.Actions.RemoveFlags = true; c.User.Search = true; c.User.ShowAttachments = true; c.User.ShowAssignmentHistory = true; @@ -702,6 +727,7 @@ namespace Disco.Services.Authorization c.User.Show = true; c.User.ShowAuthorization = true; c.User.ShowDetails = true; + c.User.ShowFlagAssignments = true; c.User.ShowJobs = true; c.DiscoAdminAccount = true; #endregion @@ -1051,6 +1077,33 @@ namespace Disco.Services.Authorization public const string Show = "Config.JobQueue.Show"; } + /// User Flags + /// Permissions related to User Flags + /// + public static class UserFlag + { + + /// Configure User Flags + /// Can configure user flags + /// + public const string Configure = "Config.UserFlag.Configure"; + + /// Create User Flags + /// Can create user flags + /// + public const string Create = "Config.UserFlag.Create"; + + /// Delete User Flags + /// Can delete user flags + /// + public const string Delete = "Config.UserFlag.Delete"; + + /// Show User Flags + /// Can show user flags + /// + public const string Show = "Config.UserFlag.Show"; + } + /// Show Configuration /// Can show the configuration menu /// @@ -1766,6 +1819,16 @@ namespace Disco.Services.Authorization /// public const string AddAttachments = "User.Actions.AddAttachments"; + /// Add User Flags + /// Can add user flags + /// + public const string AddFlags = "User.Actions.AddFlags"; + + /// Edit User Flags + /// Can edit user flags + /// + public const string EditFlags = "User.Actions.EditFlags"; + /// Generate Documents /// Can generate documents for users /// @@ -1780,6 +1843,11 @@ namespace Disco.Services.Authorization /// Can remove own attachments from users /// public const string RemoveOwnAttachments = "User.Actions.RemoveOwnAttachments"; + + /// Remove User Flags + /// Can remove user flags + /// + public const string RemoveFlags = "User.Actions.RemoveFlags"; } /// Search Users @@ -1817,6 +1885,11 @@ namespace Disco.Services.Authorization /// public const string ShowDetails = "User.ShowDetails"; + /// Show Users Flag Assignments + /// Can show flags associated with users + /// + public const string ShowFlagAssignments = "User.ShowFlagAssignments"; + /// Show Users Jobs /// Can show jobs associated with users /// diff --git a/Disco.Services/Authorization/Roles/ClaimGroups/Configuration/ConfigClaims.cs b/Disco.Services/Authorization/Roles/ClaimGroups/Configuration/ConfigClaims.cs index 5d95c2f5..ccf68ce9 100644 --- a/Disco.Services/Authorization/Roles/ClaimGroups/Configuration/ConfigClaims.cs +++ b/Disco.Services/Authorization/Roles/ClaimGroups/Configuration/ConfigClaims.cs @@ -10,6 +10,7 @@ using Disco.Services.Authorization.Roles.ClaimGroups.Configuration.Logging; using Disco.Services.Authorization.Roles.ClaimGroups.Configuration.Origanisation; using Disco.Services.Authorization.Roles.ClaimGroups.Configuration.Plugin; using Disco.Services.Authorization.Roles.ClaimGroups.Configuration.System; +using Disco.Services.Authorization.Roles.ClaimGroups.Configuration.UserFlag; namespace Disco.Services.Authorization.Roles.ClaimGroups.Configuration { @@ -30,6 +31,7 @@ namespace Disco.Services.Authorization.Roles.ClaimGroups.Configuration this.Organisation = new OrganisationClaims(); this.JobPreferences = new JobPreferencesClaims(); this.JobQueue = new JobQueueClaims(); + this.UserFlag = new UserFlagClaims(); } [ClaimDetails("Show Configuration", "Can show the configuration menu")] @@ -58,5 +60,7 @@ namespace Disco.Services.Authorization.Roles.ClaimGroups.Configuration public JobPreferencesClaims JobPreferences { get; set; } public JobQueueClaims JobQueue { get; set; } + + public UserFlagClaims UserFlag { get; set; } } } diff --git a/Disco.Services/Authorization/Roles/ClaimGroups/Configuration/UserFlag/UserFlagClaims.cs b/Disco.Services/Authorization/Roles/ClaimGroups/Configuration/UserFlag/UserFlagClaims.cs new file mode 100644 index 00000000..3ee39a51 --- /dev/null +++ b/Disco.Services/Authorization/Roles/ClaimGroups/Configuration/UserFlag/UserFlagClaims.cs @@ -0,0 +1,18 @@ +namespace Disco.Services.Authorization.Roles.ClaimGroups.Configuration.UserFlag +{ + [ClaimDetails("User Flags", "Permissions related to User Flags")] + public class UserFlagClaims : BaseRoleClaimGroup + { + [ClaimDetails("Configure User Flags", "Can configure user flags")] + public bool Configure { get; set; } + + [ClaimDetails("Create User Flags", "Can create user flags")] + public bool Create { get; set; } + + [ClaimDetails("Delete User Flags", "Can delete user flags")] + public bool Delete { get; set; } + + [ClaimDetails("Show User Flags", "Can show user flags")] + public bool Show { get; set; } + } +} \ No newline at end of file diff --git a/Disco.Services/Authorization/Roles/ClaimGroups/User/UserActionsClaims.cs b/Disco.Services/Authorization/Roles/ClaimGroups/User/UserActionsClaims.cs index 913fdf96..76ed7684 100644 --- a/Disco.Services/Authorization/Roles/ClaimGroups/User/UserActionsClaims.cs +++ b/Disco.Services/Authorization/Roles/ClaimGroups/User/UserActionsClaims.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Disco.Services.Authorization.Roles.ClaimGroups.User +namespace Disco.Services.Authorization.Roles.ClaimGroups.User { [ClaimDetails("Actions", "Permissions related to User Actions")] public class UserActionsClaims : BaseRoleClaimGroup @@ -18,5 +12,12 @@ namespace Disco.Services.Authorization.Roles.ClaimGroups.User [ClaimDetails("Generate Documents", "Can generate documents for users")] public bool GenerateDocuments { get; set; } + + [ClaimDetails("Add User Flags", "Can add user flags")] + public bool AddFlags { get; set; } + [ClaimDetails("Remove User Flags", "Can remove user flags")] + public bool RemoveFlags { get; set; } + [ClaimDetails("Edit User Flags", "Can edit user flags")] + public bool EditFlags { get; set; } } -} +} \ No newline at end of file diff --git a/Disco.Services/Authorization/Roles/ClaimGroups/User/UserClaims.cs b/Disco.Services/Authorization/Roles/ClaimGroups/User/UserClaims.cs index 42160e5c..f76927b5 100644 --- a/Disco.Services/Authorization/Roles/ClaimGroups/User/UserClaims.cs +++ b/Disco.Services/Authorization/Roles/ClaimGroups/User/UserClaims.cs @@ -35,6 +35,9 @@ namespace Disco.Services.Authorization.Roles.ClaimGroups.User [ClaimDetails("Show Users Jobs", "Can show jobs associated with users")] public bool ShowJobs { get; set; } + [ClaimDetails("Show Users Flag Assignments", "Can show flags associated with users")] + public bool ShowFlagAssignments { get; set; } + [ClaimDetails("Show Users Authorization", "Can show authorization permissions associated with users")] public bool ShowAuthorization { get; set; } diff --git a/Disco.Services/Disco.Services.csproj b/Disco.Services/Disco.Services.csproj index cd8649c4..dd239a4f 100644 --- a/Disco.Services/Disco.Services.csproj +++ b/Disco.Services/Disco.Services.csproj @@ -154,6 +154,7 @@ + @@ -206,6 +207,7 @@ + @@ -297,6 +299,9 @@ + + + @@ -343,7 +348,7 @@ - + diff --git a/Disco.Services/Extensions/UIHelpers.cs b/Disco.Services/Extensions/UIHelpers.cs new file mode 100644 index 00000000..fda11315 --- /dev/null +++ b/Disco.Services/Extensions/UIHelpers.cs @@ -0,0 +1,226 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Services.Extensions +{ + public static class UIHelpers + { + /// + /// FontAwesome Category Icons + /// + public static ReadOnlyCollection> Icons { get; private set; } + /// + /// User-selectable Colour Themes + /// + public static ReadOnlyCollection> ThemeColours { get; private set; } + + /// + /// Returns a randomly selected Icon using . + /// + public static string RandomIcon() + { + return RandomIcon(null); + } + /// + /// Returns a randomly selected Icon using . + /// + /// A list of Icons which will be ignored (if all are excluded, a random one will be returned) + public static string RandomIcon(IEnumerable Except) + { + var rnd = new Random(); + if (Except != null) + { + var availableIcons = UIHelpers.Icons.Select(i => i.Key).Except(Except).ToList(); + if (availableIcons.Count > 0) + return availableIcons[rnd.Next(availableIcons.Count - 1)]; + } + return UIHelpers.Icons[rnd.Next(UIHelpers.Icons.Count - 1)].Key; + } + + /// + /// Returns a randomly selected Theme Colour using . + /// + public static string RandomThemeColour() + { + return RandomThemeColour(null); + } + /// + /// Returns a randomly selected Theme Colour using . + /// + /// A list of Theme Colours which will be ignored (if all are excluded, a random one will be returned) + public static string RandomThemeColour(IEnumerable Except) + { + var rnd = new Random(); + if (Except != null) + { + var availableColours = UIHelpers.ThemeColours.Select(i => i.Key).Except(Except).ToList(); + if (availableColours.Count > 0) + return availableColours[rnd.Next(availableColours.Count - 1)]; + } + return UIHelpers.ThemeColours[rnd.Next(UIHelpers.ThemeColours.Count - 1)].Key; + } + + static UIHelpers() + { + // Icons + Icons = new List>(){ + new KeyValuePair("ambulance" , "Ambulance"), + new KeyValuePair("anchor" , "Anchor"), + new KeyValuePair("android" , "Android"), + new KeyValuePair("apple" , "Apple"), + new KeyValuePair("archive" , "Archive"), + new KeyValuePair("arrow-circle-down" , "Arrow Circle Down"), + new KeyValuePair("arrow-circle-left" , "Arrow Circle Left"), + new KeyValuePair("arrow-circle-right" , "Arrow Circle Right"), + new KeyValuePair("arrow-circle-up" , "Arrow Circle Up"), + new KeyValuePair("asterisk" , "Asterisk"), + new KeyValuePair("ban" , "Ban"), + new KeyValuePair("beer" , "Beer"), + new KeyValuePair("bell" , "Bell"), + new KeyValuePair("bolt" , "Bolt"), + new KeyValuePair("bomb" , "Bomb"), + new KeyValuePair("book" , "Book"), + new KeyValuePair("bookmark" , "Bookmark"), + new KeyValuePair("briefcase" , "Briefcase"), + new KeyValuePair("bug" , "Bug"), + new KeyValuePair("building-o" , "Building"), + new KeyValuePair("bullhorn" , "Bullhorn"), + new KeyValuePair("bullseye" , "Bullseye"), + new KeyValuePair("cab" , "Cab"), + new KeyValuePair("calendar" , "Calendar"), + new KeyValuePair("calendar-o" , "Calendar"), + new KeyValuePair("car" , "Car"), + new KeyValuePair("check-circle" , "Check Circle"), + new KeyValuePair("child" , "Child"), + new KeyValuePair("clock-o" , "Clock"), + new KeyValuePair("cloud" , "Cloud"), + new KeyValuePair("coffee" , "Coffee"), + new KeyValuePair("comments" , "Comments"), + new KeyValuePair("compass" , "Compass"), + new KeyValuePair("credit-card" , "Credit Card"), + new KeyValuePair("crosshairs" , "Crosshairs"), + new KeyValuePair("cube" , "Cube"), + new KeyValuePair("cubes" , "Cubes"), + new KeyValuePair("desktop" , "Desktop"), + new KeyValuePair("dollar" , "Dollar"), + new KeyValuePair("dot-circle-o" , "Dot Circle"), + new KeyValuePair("envelope" , "Envelope"), + new KeyValuePair("exclamation" , "Exclamation"), + new KeyValuePair("eye" , "Eye"), + new KeyValuePair("fax" , "Fax"), + new KeyValuePair("female" , "Female"), + new KeyValuePair("fighter-jet" , "Fighter Jet"), + new KeyValuePair("film" , "Film"), + new KeyValuePair("filter" , "Filter"), + new KeyValuePair("fire" , "Fire"), + new KeyValuePair("fire-extinguisher" , "Fire Extinguisher"), + new KeyValuePair("flask" , "Flask"), + new KeyValuePair("frown-o" , "Frown"), + new KeyValuePair("gamepad" , "Gamepad"), + new KeyValuePair("gift" , "Gift"), + new KeyValuePair("glass" , "Glass"), + new KeyValuePair("globe" , "Globe"), + new KeyValuePair("graduation-cap" , "Graduation Cap"), + new KeyValuePair("hand-o-down" , "Hand Down"), + new KeyValuePair("hand-o-left" , "Hand Left"), + new KeyValuePair("hand-o-right" , "Hand Right"), + new KeyValuePair("hand-o-up" , "Hand Up"), + new KeyValuePair("hdd-o" , "Hdd"), + new KeyValuePair("heart" , "Heart"), + new KeyValuePair("history" , "History"), + new KeyValuePair("home" , "Home"), + new KeyValuePair("info" , "Info"), + new KeyValuePair("key" , "Key"), + new KeyValuePair("keyboard-o" , "Keyboard"), + new KeyValuePair("language" , "Language"), + new KeyValuePair("laptop" , "Laptop"), + new KeyValuePair("leaf" , "Leaf"), + new KeyValuePair("legal" , "Legal"), + new KeyValuePair("life-ring" , "Life Ring"), + new KeyValuePair("lightbulb-o" , "Lightbulb"), + new KeyValuePair("linux" , "Linux"), + new KeyValuePair("location-arrow" , "Location Arrow"), + new KeyValuePair("magnet" , "Magnet"), + new KeyValuePair("male" , "Male"), + new KeyValuePair("map-marker" , "Map Marker"), + new KeyValuePair("medkit" , "Medkit"), + new KeyValuePair("meh-o" , "Meh"), + new KeyValuePair("microphone" , "Microphone"), + new KeyValuePair("microphone-slash" , "Microphone Slash"), + new KeyValuePair("minus-circle" , "Minus Circle"), + new KeyValuePair("mobile" , "Mobile"), + new KeyValuePair("money" , "Money"), + new KeyValuePair("moon-o" , "Moon"), + new KeyValuePair("music" , "Music"), + new KeyValuePair("paper-plane" , "Paper Plane"), + new KeyValuePair("paperclip" , "Paperclip"), + new KeyValuePair("paw" , "Paw"), + new KeyValuePair("pencil" , "Pencil"), + new KeyValuePair("phone" , "Phone"), + new KeyValuePair("picture-o" , "Picture"), + new KeyValuePair("plane" , "Plane"), + new KeyValuePair("power-off" , "Power Off"), + new KeyValuePair("print" , "Print"), + new KeyValuePair("puzzle-piece" , "Puzzle Piece"), + new KeyValuePair("question" , "Question"), + new KeyValuePair("question-circle" , "Question Circle"), + new KeyValuePair("random" , "Random"), + new KeyValuePair("recycle" , "Recycle"), + new KeyValuePair("retweet" , "Retweet"), + new KeyValuePair("road" , "Road"), + new KeyValuePair("rocket" , "Rocket"), + new KeyValuePair("shield" , "Shield"), + new KeyValuePair("shopping-cart" , "Shopping Cart"), + new KeyValuePair("smile-o" , "Smile"), + new KeyValuePair("space-shuttle" , "Space Shuttle"), + new KeyValuePair("star" , "Star"), + new KeyValuePair("suitcase" , "Suitcase"), + new KeyValuePair("sun-o" , "Sun"), + new KeyValuePair("tablet" , "Tablet"), + new KeyValuePair("tachometer" , "Tachometer"), + new KeyValuePair("tasks" , "Tasks"), + new KeyValuePair("thumbs-down" , "Thumbs Down"), + new KeyValuePair("thumbs-o-down" , "Thumbs Down"), + new KeyValuePair("thumbs-o-up" , "Thumbs Up"), + new KeyValuePair("thumbs-up" , "Thumbs Up"), + new KeyValuePair("thumb-tack" , "Thumb Tack"), + new KeyValuePair("trash-o" , "Trash"), + new KeyValuePair("trophy" , "Trophy"), + new KeyValuePair("truck" , "Truck"), + new KeyValuePair("umbrella" , "Umbrella"), + new KeyValuePair("university" , "University"), + new KeyValuePair("wheelchair" , "Wheelchair"), + new KeyValuePair("windows" , "Windows"), + new KeyValuePair("wrench" , "Wrench") + }.AsReadOnly(); + + // Icon Colours + ThemeColours = new List>(){ + new KeyValuePair("lime" , "Lime"), + new KeyValuePair("green" , "Green"), + new KeyValuePair("emerald" , "Emerald"), + new KeyValuePair("teal" , "Teal"), + new KeyValuePair("cyan" , "Cyan"), + new KeyValuePair("cobalt" , "Cobalt"), + new KeyValuePair("indigo" , "Indigo"), + new KeyValuePair("violet" , "Violet"), + new KeyValuePair("pink" , "Pink"), + new KeyValuePair("magenta" , "Magenta"), + new KeyValuePair("crimson" , "Crimson"), + new KeyValuePair("red" , "Red"), + new KeyValuePair("orange" , "Orange"), + new KeyValuePair("amber" , "Amber"), + new KeyValuePair("yellow" , "Yellow"), + new KeyValuePair("brown" , "Brown"), + new KeyValuePair("olive" , "Olive"), + new KeyValuePair("steel" , "Steel"), + new KeyValuePair("mauve" , "Mauve"), + new KeyValuePair("sienna" , "Sienna") + }.AsReadOnly(); + } + } +} diff --git a/Disco.Services/Jobs/JobQueues/Cache.cs b/Disco.Services/Jobs/JobQueues/Cache.cs index 09a056de..3c4fb0a3 100644 --- a/Disco.Services/Jobs/JobQueues/Cache.cs +++ b/Disco.Services/Jobs/JobQueues/Cache.cs @@ -15,8 +15,6 @@ namespace Disco.Services.Jobs.JobQueues private ConcurrentDictionary _Cache; private Dictionary> _SubjectCache; - private ReadOnlyCollection> _Icons; - private ReadOnlyCollection> _IconColourCache; private ReadOnlyCollection> _SlaOptions; public Cache(DiscoDataContext Database) @@ -29,20 +27,6 @@ namespace Disco.Services.Jobs.JobQueues // Queues from Database var queues = Database.JobQueues.ToList(); - // Default System Queue - //var defaultQueue = new JobQueue() - //{ - // Id = 0, - // Name = "Default Queue", - // Description = "Default system queue for orphaned jobs", - // Icon = "question-circle", - // IconColour = "F0A30A", - // DefaultSLAExpiry = null, - // Priority = JobQueuePriority.Normal, - // SubjectIds = null - //}; - //queues.Add(defaultQueue); - // Add Queues to In-Memory Cache this._Cache = new ConcurrentDictionary(queues.Select(q => new KeyValuePair(q.Id, JobQueueToken.FromJobQueue(q)))); @@ -50,168 +34,6 @@ namespace Disco.Services.Jobs.JobQueues CalculateSubjectCache(); #region Predefined Options - // Icons - if (this._Icons == null) - { - this._Icons = new List>(){ - new KeyValuePair("ambulance" , "Ambulance"), - new KeyValuePair("anchor" , "Anchor"), - new KeyValuePair("android" , "Android"), - new KeyValuePair("apple" , "Apple"), - new KeyValuePair("archive" , "Archive"), - new KeyValuePair("arrow-circle-down" , "Arrow Circle Down"), - new KeyValuePair("arrow-circle-left" , "Arrow Circle Left"), - new KeyValuePair("arrow-circle-right" , "Arrow Circle Right"), - new KeyValuePair("arrow-circle-up" , "Arrow Circle Up"), - new KeyValuePair("asterisk" , "Asterisk"), - new KeyValuePair("ban" , "Ban"), - new KeyValuePair("beer" , "Beer"), - new KeyValuePair("bell" , "Bell"), - new KeyValuePair("bolt" , "Bolt"), - new KeyValuePair("bomb" , "Bomb"), - new KeyValuePair("book" , "Book"), - new KeyValuePair("bookmark" , "Bookmark"), - new KeyValuePair("briefcase" , "Briefcase"), - new KeyValuePair("bug" , "Bug"), - new KeyValuePair("building-o" , "Building"), - new KeyValuePair("bullhorn" , "Bullhorn"), - new KeyValuePair("bullseye" , "Bullseye"), - new KeyValuePair("cab" , "Cab"), - new KeyValuePair("calendar" , "Calendar"), - new KeyValuePair("calendar-o" , "Calendar"), - new KeyValuePair("car" , "Car"), - new KeyValuePair("check-circle" , "Check Circle"), - new KeyValuePair("child" , "Child"), - new KeyValuePair("clock-o" , "Clock"), - new KeyValuePair("cloud" , "Cloud"), - new KeyValuePair("coffee" , "Coffee"), - new KeyValuePair("comments" , "Comments"), - new KeyValuePair("compass" , "Compass"), - new KeyValuePair("credit-card" , "Credit Card"), - new KeyValuePair("crosshairs" , "Crosshairs"), - new KeyValuePair("cube" , "Cube"), - new KeyValuePair("cubes" , "Cubes"), - new KeyValuePair("desktop" , "Desktop"), - new KeyValuePair("dollar" , "Dollar"), - new KeyValuePair("dot-circle-o" , "Dot Circle"), - new KeyValuePair("envelope" , "Envelope"), - new KeyValuePair("exclamation" , "Exclamation"), - new KeyValuePair("eye" , "Eye"), - new KeyValuePair("fax" , "Fax"), - new KeyValuePair("female" , "Female"), - new KeyValuePair("fighter-jet" , "Fighter Jet"), - new KeyValuePair("film" , "Film"), - new KeyValuePair("filter" , "Filter"), - new KeyValuePair("fire" , "Fire"), - new KeyValuePair("fire-extinguisher" , "Fire Extinguisher"), - new KeyValuePair("flask" , "Flask"), - new KeyValuePair("frown-o" , "Frown"), - new KeyValuePair("gamepad" , "Gamepad"), - new KeyValuePair("gift" , "Gift"), - new KeyValuePair("glass" , "Glass"), - new KeyValuePair("globe" , "Globe"), - new KeyValuePair("graduation-cap" , "Graduation Cap"), - new KeyValuePair("hand-o-down" , "Hand Down"), - new KeyValuePair("hand-o-left" , "Hand Left"), - new KeyValuePair("hand-o-right" , "Hand Right"), - new KeyValuePair("hand-o-up" , "Hand Up"), - new KeyValuePair("hdd-o" , "Hdd"), - new KeyValuePair("heart" , "Heart"), - new KeyValuePair("history" , "History"), - new KeyValuePair("home" , "Home"), - new KeyValuePair("info" , "Info"), - new KeyValuePair("key" , "Key"), - new KeyValuePair("keyboard-o" , "Keyboard"), - new KeyValuePair("language" , "Language"), - new KeyValuePair("laptop" , "Laptop"), - new KeyValuePair("leaf" , "Leaf"), - new KeyValuePair("legal" , "Legal"), - new KeyValuePair("life-ring" , "Life Ring"), - new KeyValuePair("lightbulb-o" , "Lightbulb"), - new KeyValuePair("linux" , "Linux"), - new KeyValuePair("location-arrow" , "Location Arrow"), - new KeyValuePair("magnet" , "Magnet"), - new KeyValuePair("male" , "Male"), - new KeyValuePair("map-marker" , "Map Marker"), - new KeyValuePair("medkit" , "Medkit"), - new KeyValuePair("meh-o" , "Meh"), - new KeyValuePair("microphone" , "Microphone"), - new KeyValuePair("microphone-slash" , "Microphone Slash"), - new KeyValuePair("minus-circle" , "Minus Circle"), - new KeyValuePair("mobile" , "Mobile"), - new KeyValuePair("money" , "Money"), - new KeyValuePair("moon-o" , "Moon"), - new KeyValuePair("music" , "Music"), - new KeyValuePair("paper-plane" , "Paper Plane"), - new KeyValuePair("paperclip" , "Paperclip"), - new KeyValuePair("paw" , "Paw"), - new KeyValuePair("pencil" , "Pencil"), - new KeyValuePair("phone" , "Phone"), - new KeyValuePair("picture-o" , "Picture"), - new KeyValuePair("plane" , "Plane"), - new KeyValuePair("power-off" , "Power Off"), - new KeyValuePair("print" , "Print"), - new KeyValuePair("puzzle-piece" , "Puzzle Piece"), - new KeyValuePair("question" , "Question"), - new KeyValuePair("question-circle" , "Question Circle"), - new KeyValuePair("random" , "Random"), - new KeyValuePair("recycle" , "Recycle"), - new KeyValuePair("retweet" , "Retweet"), - new KeyValuePair("road" , "Road"), - new KeyValuePair("rocket" , "Rocket"), - new KeyValuePair("shield" , "Shield"), - new KeyValuePair("shopping-cart" , "Shopping Cart"), - new KeyValuePair("smile-o" , "Smile"), - new KeyValuePair("space-shuttle" , "Space Shuttle"), - new KeyValuePair("star" , "Star"), - new KeyValuePair("suitcase" , "Suitcase"), - new KeyValuePair("sun-o" , "Sun"), - new KeyValuePair("tablet" , "Tablet"), - new KeyValuePair("tachometer" , "Tachometer"), - new KeyValuePair("tasks" , "Tasks"), - new KeyValuePair("thumbs-down" , "Thumbs Down"), - new KeyValuePair("thumbs-o-down" , "Thumbs Down"), - new KeyValuePair("thumbs-o-up" , "Thumbs Up"), - new KeyValuePair("thumbs-up" , "Thumbs Up"), - new KeyValuePair("thumb-tack" , "Thumb Tack"), - new KeyValuePair("trash-o" , "Trash"), - new KeyValuePair("trophy" , "Trophy"), - new KeyValuePair("truck" , "Truck"), - new KeyValuePair("umbrella" , "Umbrella"), - new KeyValuePair("university" , "University"), - new KeyValuePair("wheelchair" , "Wheelchair"), - new KeyValuePair("windows" , "Windows"), - new KeyValuePair("wrench" , "Wrench") - }.AsReadOnly(); - } - - // Icon Colours - if (this._IconColourCache == null) - { - this._IconColourCache = new List>(){ - new KeyValuePair("lime" , "Lime"), - new KeyValuePair("green" , "Green"), - new KeyValuePair("emerald" , "Emerald"), - new KeyValuePair("teal" , "Teal"), - new KeyValuePair("cyan" , "Cyan"), - new KeyValuePair("cobalt" , "Cobalt"), - new KeyValuePair("indigo" , "Indigo"), - new KeyValuePair("violet" , "Violet"), - new KeyValuePair("pink" , "Pink"), - new KeyValuePair("magenta" , "Magenta"), - new KeyValuePair("crimson" , "Crimson"), - new KeyValuePair("red" , "Red"), - new KeyValuePair("orange" , "Orange"), - new KeyValuePair("amber" , "Amber"), - new KeyValuePair("yellow" , "Yellow"), - new KeyValuePair("brown" , "Brown"), - new KeyValuePair("olive" , "Olive"), - new KeyValuePair("steel" , "Steel"), - new KeyValuePair("mauve" , "Mauve"), - new KeyValuePair("sienna" , "Sienna") - }.AsReadOnly(); - } - // SLA Options if (this._SlaOptions == null) { @@ -251,8 +73,6 @@ namespace Disco.Services.Jobs.JobQueues select subjectId).ToDictionary(g => g.Key.ToLower(), g => g.ToList()); } - public ReadOnlyCollection> Icons { get { return this._Icons; } } - public ReadOnlyCollection> IconColours { get { return this._IconColourCache; } } public ReadOnlyCollection> SlaOptions { get { return this._SlaOptions; } } public JobQueueToken UpdateQueue(JobQueue JobQueue) diff --git a/Disco.Services/Jobs/JobQueues/JobQueueService.cs b/Disco.Services/Jobs/JobQueues/JobQueueService.cs index 10a31482..57cea1e7 100644 --- a/Disco.Services/Jobs/JobQueues/JobQueueService.cs +++ b/Disco.Services/Jobs/JobQueues/JobQueueService.cs @@ -1,6 +1,7 @@ using Disco.Data.Repository; using Disco.Models.Repository; using Disco.Services.Authorization; +using Disco.Services.Extensions; using Disco.Services.Tasks; using Disco.Services.Users; using System; @@ -23,8 +24,6 @@ namespace Disco.Services.Jobs.JobQueues _cache = new Cache(Database); } - public static ReadOnlyCollection> IconColours { get { return _cache.IconColours; } } - public static ReadOnlyCollection> Icons { get { return _cache.Icons; } } public static ReadOnlyCollection> SlaOptions { get { return _cache.SlaOptions; } } public static ReadOnlyCollection GetQueues() { return _cache.GetQueues(); } @@ -38,7 +37,7 @@ namespace Disco.Services.Jobs.JobQueues throw new ArgumentException("The Job Queue Name is required"); // Name Unique - if (_cache.GetQueues().Count(q => q.JobQueue.Name == JobQueue.Name) > 0) + if (_cache.GetQueues().Any(q => q.JobQueue.Name == JobQueue.Name)) throw new ArgumentException("Another Job Queue already exists with that name", "JobQueue"); // Clone to break reference @@ -65,7 +64,7 @@ namespace Disco.Services.Jobs.JobQueues throw new ArgumentException("The Job Queue Name is required"); // Name Unique - if (_cache.GetQueues().Count(q => q.JobQueue.Id != JobQueue.Id && q.JobQueue.Name == JobQueue.Name) > 0) + if (_cache.GetQueues().Any(q => q.JobQueue.Id != JobQueue.Id && q.JobQueue.Name == JobQueue.Name)) throw new ArgumentException("Another Job Queue already exists with that name", "JobQueue"); Database.SaveChanges(); @@ -77,8 +76,8 @@ namespace Disco.Services.Jobs.JobQueues JobQueue queue = Database.JobQueues.Find(JobQueueId); // Validate: Current Jobs? - int currentJobCount = Database.JobQueueJobs.Count(jqj => jqj.JobQueueId == queue.Id && !jqj.RemovedDate.HasValue); - if (currentJobCount > 0) + var currentJobs = Database.JobQueueJobs.Any(jqj => jqj.JobQueueId == queue.Id && !jqj.RemovedDate.HasValue); + if (currentJobs) throw new InvalidOperationException("The Job Queue cannot be deleted because it contains jobs"); // Delete History @@ -161,23 +160,13 @@ namespace Disco.Services.Jobs.JobQueues return tokens; } - public static string RandomIcon() + public static string RandomUnusedIcon() { - var rnd = new Random(); - var unusedIcons = _cache.Icons.Select(i => i.Key).Except(_cache.GetQueues().Select(q => q.JobQueue.Icon)).ToList(); - if (unusedIcons.Count > 0) - return unusedIcons[rnd.Next(unusedIcons.Count - 1)]; - else - return _cache.Icons[rnd.Next(_cache.Icons.Count - 1)].Key; + return UIHelpers.RandomIcon(_cache.GetQueues().Select(q => q.JobQueue.Icon)); } - public static string RandomIconColour() + public static string RandomUnusedThemeColour() { - var rnd = new Random(); - var unusedColours = _cache.IconColours.Select(i => i.Key).Except(_cache.GetQueues().Select(q => q.JobQueue.IconColour)).ToList(); - if (unusedColours.Count > 0) - return unusedColours[rnd.Next(unusedColours.Count - 1)]; - else - return _cache.IconColours[rnd.Next(_cache.IconColours.Count - 1)].Key; + return UIHelpers.RandomThemeColour(_cache.GetQueues().Select(q => q.JobQueue.IconColour)); } } } diff --git a/Disco.Services/Searching/Search.cs b/Disco.Services/Searching/Search.cs index 87aa87e0..1843892d 100644 --- a/Disco.Services/Searching/Search.cs +++ b/Disco.Services/Searching/Search.cs @@ -145,11 +145,14 @@ namespace Disco.Services.Searching return UserService.SearchUsers(Database, Term, PersistResults, LimitCount).Select(u => new UserSearchResultItem() { Id = u.UserId, + FriendlyId = u.FriendlyId(), Surname = u.Surname, GivenName = u.GivenName, DisplayName = u.DisplayName, AssignedDevicesCount = 0, - JobCount = 0 + JobCount = 0, + JobCountOpen = 0, + UserFlagAssignments = null }).OrderByDescending(i => i.ScoreValues.Score(Term)).ToList(); } @@ -160,23 +163,15 @@ namespace Disco.Services.Searching // Search Active Directory var adResults = SearchUsersUpstream(Database, Term, PersistResults, LimitCount); - + // Search Database var dbResults = Database.Users.Where(u => u.UserId.Contains(Term) || u.Surname.Contains(Term) || u.GivenName.Contains(Term) || - u.DisplayName.Contains(Term) - ).Select(u => new UserSearchResultItem() - { - Id = u.UserId, - Surname = u.Surname, - GivenName = u.GivenName, - DisplayName = u.DisplayName, - AssignedDevicesCount = u.DeviceUserAssignments.Where(dua => !dua.UnassignedDate.HasValue).Count(), - JobCount = u.Jobs.Count() - }).ToList(); - + u.DisplayName.Contains(Term)) + .ToUserSearchResultItems(null) + .ToList(); IEnumerable results; if (PersistResults) @@ -215,6 +210,35 @@ namespace Disco.Services.Searching return results.ToList(); } + public static List SearchUserFlag(DiscoDataContext Database, int UserFlagId) + { + return Database.UserFlagAssignments + .Where(a => a.UserFlagId == UserFlagId && !a.RemovedDate.HasValue) + .Select(a => a.User) + .ToUserSearchResultItems(null); + } + + private static List ToUserSearchResultItems(this IQueryable Query, int? LimitCount = ActiveDirectory.DefaultSearchResultLimit) + { + if (LimitCount.HasValue) + Query = Query.Take(LimitCount.Value); + + var results = Query.Select(u => new UserSearchResultItem() + { + Id = u.UserId, + Surname = u.Surname, + GivenName = u.GivenName, + DisplayName = u.DisplayName, + AssignedDevicesCount = u.DeviceUserAssignments.Where(dua => !dua.UnassignedDate.HasValue).Count(), + JobCount = u.Jobs.Count(), + JobCountOpen = u.Jobs.Count(j => !j.ClosedDate.HasValue), + UserFlagAssignments = u.UserFlagAssignments + }).ToList(); + + results.ForEach(u => u.FriendlyId = UserExtensions.FriendlyUserId(u.Id)); + + return results; + } #endregion #region Devices @@ -251,17 +275,17 @@ namespace Disco.Services.Searching .ToList(); } - public static List SearchDeviceModel(DiscoDataContext Database, int DeviceModelId, int? LimitCount = ActiveDirectory.DefaultSearchResultLimit) + public static List SearchDeviceModel(DiscoDataContext Database, int DeviceModelId) { - return Database.Devices.Where(d => d.DeviceModelId == DeviceModelId).ToDeviceSearchResultItems(LimitCount); + return Database.Devices.Where(d => d.DeviceModelId == DeviceModelId).ToDeviceSearchResultItems(null); } - public static List SearchDeviceProfile(DiscoDataContext Database, int DeviceProfileId, int? LimitCount = ActiveDirectory.DefaultSearchResultLimit) + public static List SearchDeviceProfile(DiscoDataContext Database, int DeviceProfileId) { - return Database.Devices.Where(d => d.DeviceProfileId == DeviceProfileId).ToDeviceSearchResultItems(LimitCount); + return Database.Devices.Where(d => d.DeviceProfileId == DeviceProfileId).ToDeviceSearchResultItems(null); } - public static List SearchDeviceBatch(DiscoDataContext Database, int DeviceBatchId, int? LimitCount = ActiveDirectory.DefaultSearchResultLimit) + public static List SearchDeviceBatch(DiscoDataContext Database, int DeviceBatchId) { - return Database.Devices.Where(d => d.DeviceBatchId == DeviceBatchId).ToDeviceSearchResultItems(LimitCount); + return Database.Devices.Where(d => d.DeviceBatchId == DeviceBatchId).ToDeviceSearchResultItems(null); } private static List ToDeviceSearchResultItems(this IQueryable Query, int? LimitCount = ActiveDirectory.DefaultSearchResultLimit) diff --git a/Disco.Services/Users/UserFlags/Cache.cs b/Disco.Services/Users/UserFlags/Cache.cs new file mode 100644 index 00000000..9cedf708 --- /dev/null +++ b/Disco.Services/Users/UserFlags/Cache.cs @@ -0,0 +1,82 @@ +using Disco.Data.Repository; +using Disco.Models.Repository; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; + +namespace Disco.Services.Users.UserFlags +{ + internal class Cache + { + private ConcurrentDictionary _Cache; + + public Cache(DiscoDataContext Database) + { + Initialize(Database); + } + + public void ReInitialize(DiscoDataContext Database) + { + Initialize(Database); + } + + private void Initialize(DiscoDataContext Database) + { + // Queues from Database + var flags = Database.UserFlags.ToList(); + + // Add Queues to In-Memory Cache + this._Cache = new ConcurrentDictionary(flags.Select(f => new KeyValuePair(f.Id, f))); + } + + public UserFlag GetUserFlag(int UserFlagId) + { + UserFlag item; + if (_Cache.TryGetValue(UserFlagId, out item)) + return item; + else + return null; + } + public List GetUserFlags() + { + return _Cache.Values.ToList(); + } + + public UserFlag Update(UserFlag UserFlag) + { + UserFlag existingItem; + + if (_Cache.TryGetValue(UserFlag.Id, out existingItem)) + { + if (_Cache.TryUpdate(UserFlag.Id, UserFlag, existingItem)) + { + return UserFlag; + } + else + return null; + } + else + { + if (_Cache.TryAdd(UserFlag.Id, UserFlag)) + { + return UserFlag; + } + else + return null; + } + } + + public UserFlag Remove(int UserFlagId) + { + UserFlag item; + if (_Cache.TryRemove(UserFlagId, out item)) + return item; + else + return null; + } + public UserFlag Remove(UserFlag UserFlag) + { + return Remove(UserFlag.Id); + } + } +} diff --git a/Disco.Services/Users/UserFlags/UserFlagService.cs b/Disco.Services/Users/UserFlags/UserFlagService.cs new file mode 100644 index 00000000..2c08f253 --- /dev/null +++ b/Disco.Services/Users/UserFlags/UserFlagService.cs @@ -0,0 +1,100 @@ +using Disco.Data.Repository; +using Disco.Models.Repository; +using Disco.Services.Extensions; +using Disco.Services.Tasks; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Services.Users.UserFlags +{ + public static class UserFlagService + { + private static Cache _cache; + + public static void Initialize(DiscoDataContext Database) + { + _cache = new Cache(Database); + } + + public static List GetUserFlags() { return _cache.GetUserFlags(); } + public static UserFlag GetUserFlag(int UserFlagId) { return _cache.GetUserFlag(UserFlagId); } + + #region User Flag Maintenance + public static UserFlag CreateUserFlag(DiscoDataContext Database, UserFlag UserFlag) + { + // Verify + if (string.IsNullOrWhiteSpace(UserFlag.Name)) + throw new ArgumentException("The User Flag Name is required"); + + // Name Unique + if (_cache.GetUserFlags().Any(f => f.Name == UserFlag.Name)) + throw new ArgumentException("Another User Flag already exists with that name", "UserFlag"); + + // Clone to break reference + var flag = new UserFlag() + { + Name = UserFlag.Name, + Description = UserFlag.Description, + Icon = UserFlag.Icon, + IconColour = UserFlag.IconColour + }; + + Database.UserFlags.Add(flag); + Database.SaveChanges(); + + return _cache.Update(flag); + } + public static UserFlag Update(DiscoDataContext Database, UserFlag UserFlag) + { + // Verify + if (string.IsNullOrWhiteSpace(UserFlag.Name)) + throw new ArgumentException("The User Flag Name is required"); + + // Name Unique + if (_cache.GetUserFlags().Any(f => f.Id != UserFlag.Id && f.Name == UserFlag.Name)) + throw new ArgumentException("Another User Flag already exists with that name", "UserFlag"); + + Database.SaveChanges(); + + return _cache.Update(UserFlag); + } + public static void DeleteUserFlag(DiscoDataContext Database, int UserFlagId, IScheduledTaskStatus Status) + { + UserFlag flag = Database.UserFlags.Find(UserFlagId); + + // Delete Assignments + Status.UpdateStatus(0, string.Format("Removing '{0}' [{1}] User Flag", flag.Name, flag.Id), "Starting"); + List flagAssignments = Database.UserFlagAssignments.Where(fa => fa.UserFlagId == flag.Id).ToList(); + if (flagAssignments.Count > 0) + { + Status.UpdateStatus(20, "Removing flag from users"); + flagAssignments.ForEach(flagAssignment => Database.UserFlagAssignments.Remove(flagAssignment)); + Database.SaveChanges(); + } + + // Delete Flag + Status.UpdateStatus(90, "Deleting User Flag"); + Database.UserFlags.Remove(flag); + Database.SaveChanges(); + + // Remove from Cache + _cache.Remove(UserFlagId); + + Status.Finished(string.Format("Successfully Deleted User Flag: '{0}' [{1}]", flag.Name, flag.Id)); + } + #endregion + + public static string RandomUnusedIcon() + { + return UIHelpers.RandomIcon(_cache.GetUserFlags().Select(f => f.Icon)); + } + public static string RandomUnusedThemeColour() + { + return UIHelpers.RandomThemeColour(_cache.GetUserFlags().Select(f => f.IconColour)); + } + } +} diff --git a/Disco.Services/Users/UserFlags/UserFlagsDeleteTask.cs b/Disco.Services/Users/UserFlags/UserFlagsDeleteTask.cs new file mode 100644 index 00000000..42949bf5 --- /dev/null +++ b/Disco.Services/Users/UserFlags/UserFlagsDeleteTask.cs @@ -0,0 +1,34 @@ +using Disco.Data.Repository; +using Disco.Services.Tasks; +using Quartz; + +namespace Disco.Services.Users.UserFlags +{ + public class UserFlagDeleteTask : ScheduledTask + { + public override string TaskName { get { return "User Flags - Delete Flag"; } } + + 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"]; + + using (DiscoDataContext Database = new DiscoDataContext()) + { + UserFlagService.DeleteUserFlag(Database, UserFlagId, this.Status); + } + } + + public static ScheduledTaskStatus ScheduleNow(int UserFlagId) + { + JobDataMap taskData = new JobDataMap() { { "UserFlagId", UserFlagId } }; + + var instance = new UserFlagDeleteTask(); + + return instance.ScheduleTask(taskData); + } + } +} \ No newline at end of file diff --git a/Disco.Web/App_Code/CommonHelpers.cshtml b/Disco.Web/App_Code/CommonHelpers.cshtml index 5bfa79c0..0fcbe659 100644 --- a/Disco.Web/App_Code/CommonHelpers.cshtml +++ b/Disco.Web/App_Code/CommonHelpers.cshtml @@ -22,6 +22,16 @@ @FriendlyDate(d, WithoutSuffix: WithoutSuffix); @FriendlyUser(u, null, " by"); } +@helper FriendlyDateAndUser(DateTime? d, string UserId, string DateNullValue = "n/a", bool WithoutSuffix = false) +{ + @FriendlyDate(d, DateNullValue, WithoutSuffix: WithoutSuffix); + @FriendlyUser(UserId, null, " by"); +} +@helper FriendlyDateAndUser(DateTime d, string UserId, bool WithoutSuffix = false) +{ + @FriendlyDate(d, WithoutSuffix: WithoutSuffix); + @FriendlyUser(UserId, null, " by"); +} @helper FriendlyDateAndTitleUser(DateTime? d, User u, string DateNullValue = "n/a", bool WithoutSuffix = false) { @d.ToFullDateTime(DateNullValue) @@ -41,6 +51,17 @@ @nullValue } } +@helper FriendlyUser(string UserId, string nullValue = null, string prepend = null) +{ + if (UserId != null) + { + @prepend @Disco.Services.UserExtensions.FriendlyUserId(UserId) + } + else + { + @nullValue + } +} @helper RadioButtonList(string id, List items, int columns = 1) diff --git a/Disco.Web/App_Code/CommonHelpers.generated.cs b/Disco.Web/App_Code/CommonHelpers.generated.cs index d9e1bac8..b237223c 100644 --- a/Disco.Web/App_Code/CommonHelpers.generated.cs +++ b/Disco.Web/App_Code/CommonHelpers.generated.cs @@ -326,7 +326,7 @@ WriteTo(@__razor_helper_writer, FriendlyUser(u, null, " by")); } -public static System.Web.WebPages.HelperResult FriendlyDateAndTitleUser(DateTime? d, User u, string DateNullValue = "n/a", bool WithoutSuffix = false) +public static System.Web.WebPages.HelperResult FriendlyDateAndUser(DateTime? d, string UserId, string DateNullValue = "n/a", bool WithoutSuffix = false) { return new System.Web.WebPages.HelperResult(__razor_helper_writer => { @@ -334,6 +334,96 @@ return new System.Web.WebPages.HelperResult(__razor_helper_writer => { #line 26 "..\..\App_Code\CommonHelpers.cshtml" + +#line default +#line hidden + + +#line 27 "..\..\App_Code\CommonHelpers.cshtml" +WriteTo(@__razor_helper_writer, FriendlyDate(d, DateNullValue, WithoutSuffix: WithoutSuffix)); + +#line default +#line hidden + + +#line 27 "..\..\App_Code\CommonHelpers.cshtml" + ; + +#line default +#line hidden + + +#line 28 "..\..\App_Code\CommonHelpers.cshtml" +WriteTo(@__razor_helper_writer, FriendlyUser(UserId, null, " by")); + +#line default +#line hidden + + +#line 28 "..\..\App_Code\CommonHelpers.cshtml" + ; + +#line default +#line hidden + +}); + +} + + +public static System.Web.WebPages.HelperResult FriendlyDateAndUser(DateTime d, string UserId, bool WithoutSuffix = false) +{ +return new System.Web.WebPages.HelperResult(__razor_helper_writer => { + + + +#line 31 "..\..\App_Code\CommonHelpers.cshtml" + + +#line default +#line hidden + + +#line 32 "..\..\App_Code\CommonHelpers.cshtml" +WriteTo(@__razor_helper_writer, FriendlyDate(d, WithoutSuffix: WithoutSuffix)); + +#line default +#line hidden + + +#line 32 "..\..\App_Code\CommonHelpers.cshtml" + ; + +#line default +#line hidden + + +#line 33 "..\..\App_Code\CommonHelpers.cshtml" +WriteTo(@__razor_helper_writer, FriendlyUser(UserId, null, " by")); + +#line default +#line hidden + + +#line 33 "..\..\App_Code\CommonHelpers.cshtml" + ; + +#line default +#line hidden + +}); + +} + + +public static System.Web.WebPages.HelperResult FriendlyDateAndTitleUser(DateTime? d, User u, string DateNullValue = "n/a", bool WithoutSuffix = false) +{ +return new System.Web.WebPages.HelperResult(__razor_helper_writer => { + + + +#line 36 "..\..\App_Code\CommonHelpers.cshtml" + #line default #line hidden @@ -342,7 +432,7 @@ WriteLiteralTo(@__razor_helper_writer, " "); -#line 27 "..\..\App_Code\CommonHelpers.cshtml" +#line 37 "..\..\App_Code\CommonHelpers.cshtml" WriteTo(@__razor_helper_writer, d.ToFullDateTime(DateNullValue)); #line default @@ -392,7 +482,7 @@ WriteLiteralTo(@__razor_helper_writer, "\r\n"); -#line 28 "..\..\App_Code\CommonHelpers.cshtml" +#line 38 "..\..\App_Code\CommonHelpers.cshtml" #line default #line hidden @@ -408,7 +498,7 @@ return new System.Web.WebPages.HelperResult(__razor_helper_writer => { -#line 30 "..\..\App_Code\CommonHelpers.cshtml" +#line 40 "..\..\App_Code\CommonHelpers.cshtml" #line default @@ -418,7 +508,7 @@ WriteLiteralTo(@__razor_helper_writer, " "); -#line 31 "..\..\App_Code\CommonHelpers.cshtml" +#line 41 "..\..\App_Code\CommonHelpers.cshtml" WriteTo(@__razor_helper_writer, d.ToFullDateTime()); #line default @@ -468,7 +558,7 @@ WriteLiteralTo(@__razor_helper_writer, "\r\n"); -#line 32 "..\..\App_Code\CommonHelpers.cshtml" +#line 42 "..\..\App_Code\CommonHelpers.cshtml" #line default #line hidden @@ -484,7 +574,7 @@ return new System.Web.WebPages.HelperResult(__razor_helper_writer => { -#line 34 "..\..\App_Code\CommonHelpers.cshtml" +#line 44 "..\..\App_Code\CommonHelpers.cshtml" if (u != null) { @@ -493,7 +583,7 @@ return new System.Web.WebPages.HelperResult(__razor_helper_writer => { #line hidden -#line 37 "..\..\App_Code\CommonHelpers.cshtml" +#line 47 "..\..\App_Code\CommonHelpers.cshtml" WriteTo(@__razor_helper_writer, prepend); #line default @@ -504,7 +594,7 @@ WriteLiteralTo(@__razor_helper_writer, " "); -#line 37 "..\..\App_Code\CommonHelpers.cshtml" +#line 47 "..\..\App_Code\CommonHelpers.cshtml" WriteTo(@__razor_helper_writer, u.FriendlyId()); #line default @@ -524,7 +614,7 @@ WriteLiteralTo(@__razor_helper_writer, "\r\n"); -#line 38 "..\..\App_Code\CommonHelpers.cshtml" +#line 48 "..\..\App_Code\CommonHelpers.cshtml" } else { @@ -536,7 +626,7 @@ WriteLiteralTo(@__razor_helper_writer, " "); -#line 41 "..\..\App_Code\CommonHelpers.cshtml" +#line 51 "..\..\App_Code\CommonHelpers.cshtml" WriteTo(@__razor_helper_writer, nullValue); #line default @@ -546,7 +636,76 @@ WriteLiteralTo(@__razor_helper_writer, "\r\n"); -#line 42 "..\..\App_Code\CommonHelpers.cshtml" +#line 52 "..\..\App_Code\CommonHelpers.cshtml" + } + +#line default +#line hidden + +}); + +} + + +public static System.Web.WebPages.HelperResult FriendlyUser(string UserId, string nullValue = null, string prepend = null) +{ +return new System.Web.WebPages.HelperResult(__razor_helper_writer => { + + + +#line 55 "..\..\App_Code\CommonHelpers.cshtml" + + if (UserId != null) + { + +#line default +#line hidden + + +#line 58 "..\..\App_Code\CommonHelpers.cshtml" +WriteTo(@__razor_helper_writer, prepend); + +#line default +#line hidden + + +WriteLiteralTo(@__razor_helper_writer, " "); + + + +#line 58 "..\..\App_Code\CommonHelpers.cshtml" +WriteTo(@__razor_helper_writer, Disco.Services.UserExtensions.FriendlyUserId(UserId)); + +#line default +#line hidden + +WriteLiteralTo(@__razor_helper_writer, "\r\n"); + + + +#line 59 "..\..\App_Code\CommonHelpers.cshtml" + } + else + { + +#line default +#line hidden + +WriteLiteralTo(@__razor_helper_writer, " "); + + + +#line 62 "..\..\App_Code\CommonHelpers.cshtml" +WriteTo(@__razor_helper_writer, nullValue); + +#line default +#line hidden + +WriteLiteralTo(@__razor_helper_writer, "\r\n"); + + + +#line 63 "..\..\App_Code\CommonHelpers.cshtml" } #line default @@ -563,21 +722,21 @@ return new System.Web.WebPages.HelperResult(__razor_helper_writer => { -#line 47 "..\..\App_Code\CommonHelpers.cshtml" +#line 68 "..\..\App_Code\CommonHelpers.cshtml" #line default #line hidden -#line 48 "..\..\App_Code\CommonHelpers.cshtml" +#line 69 "..\..\App_Code\CommonHelpers.cshtml" WriteTo(@__razor_helper_writer, ItemList("radio", id, items, columns)); #line default #line hidden -#line 48 "..\..\App_Code\CommonHelpers.cshtml" +#line 69 "..\..\App_Code\CommonHelpers.cshtml" #line default @@ -594,21 +753,21 @@ return new System.Web.WebPages.HelperResult(__razor_helper_writer => { -#line 51 "..\..\App_Code\CommonHelpers.cshtml" +#line 72 "..\..\App_Code\CommonHelpers.cshtml" #line default #line hidden -#line 52 "..\..\App_Code\CommonHelpers.cshtml" +#line 73 "..\..\App_Code\CommonHelpers.cshtml" WriteTo(@__razor_helper_writer, ItemList("checkbox", id, items, columns, alignEven, forceUniqueIds, htmlEncodeText)); #line default #line hidden -#line 52 "..\..\App_Code\CommonHelpers.cshtml" +#line 73 "..\..\App_Code\CommonHelpers.cshtml" #line default @@ -625,7 +784,7 @@ return new System.Web.WebPages.HelperResult(__razor_helper_writer => { -#line 55 "..\..\App_Code\CommonHelpers.cshtml" +#line 76 "..\..\App_Code\CommonHelpers.cshtml" Html.GetPageHelper().BundleDeferred("~/ClientScripts/Modules/Disco-jQueryExtensions"); #line default @@ -635,7 +794,7 @@ WriteLiteralTo(@__razor_helper_writer, " \r -#line 60 "..\..\App_Code\CommonHelpers.cshtml" +#line 81 "..\..\App_Code\CommonHelpers.cshtml" } else { @@ -678,7 +837,7 @@ WriteLiteralTo(@__razor_helper_writer, " \r\n"); - #line 155 "..\..\Areas\Config\Views\Config\Index.cshtml" + #line 167 "..\..\Areas\Config\Views\Config\Index.cshtml" } diff --git a/Disco.Web/Areas/Config/Views/DeviceBatch/Show.cshtml b/Disco.Web/Areas/Config/Views/DeviceBatch/Show.cshtml index cc72ade9..066a5c28 100644 --- a/Disco.Web/Areas/Config/Views/DeviceBatch/Show.cshtml +++ b/Disco.Web/Areas/Config/Views/DeviceBatch/Show.cshtml @@ -665,9 +665,9 @@ { @Html.ActionLinkButton("Export Devices", MVC.Device.Export(null, Disco.Models.Services.Devices.Exporting.DeviceExportTypes.Batch, Model.DeviceBatch.Id)) } - if (Authorization.Has(Claims.Device.Search)) + if (Authorization.Has(Claims.Device.Search) && Model.DeviceCount > 0) { - @Html.ActionLinkButton("View Devices", MVC.Search.Query(Model.DeviceBatch.Id.ToString(), "DeviceBatch")) + @Html.ActionLinkButton(string.Format("View {0} Device{1}", Model.DeviceCount, (Model.DeviceCount != 1 ? "s" : null)), MVC.Search.Query(Model.DeviceBatch.Id.ToString(), "DeviceBatch")) } } - + \ No newline at end of file diff --git a/Disco.Web/Areas/Config/Views/DeviceBatch/Show.generated.cs b/Disco.Web/Areas/Config/Views/DeviceBatch/Show.generated.cs index 0b1c8a30..051db861 100644 --- a/Disco.Web/Areas/Config/Views/DeviceBatch/Show.generated.cs +++ b/Disco.Web/Areas/Config/Views/DeviceBatch/Show.generated.cs @@ -2025,7 +2025,7 @@ WriteLiteral(" "); #line 666 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml" } - if (Authorization.Has(Claims.Device.Search)) + if (Authorization.Has(Claims.Device.Search) && Model.DeviceCount > 0) { @@ -2033,21 +2033,21 @@ WriteLiteral(" "); #line hidden #line 670 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml" - Write(Html.ActionLinkButton("View Devices", MVC.Search.Query(Model.DeviceBatch.Id.ToString(), "DeviceBatch"))); + Write(Html.ActionLinkButton(string.Format("View {0} Device{1}", Model.DeviceCount, (Model.DeviceCount != 1 ? "s" : null)), MVC.Search.Query(Model.DeviceBatch.Id.ToString(), "DeviceBatch"))); #line default #line hidden #line 670 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml" - + } } #line default #line hidden -WriteLiteral("\r\n"); +WriteLiteral(""); } } diff --git a/Disco.Web/Areas/Config/Views/DeviceModel/Show.cshtml b/Disco.Web/Areas/Config/Views/DeviceModel/Show.cshtml index 62078261..66e33d5c 100644 --- a/Disco.Web/Areas/Config/Views/DeviceModel/Show.cshtml +++ b/Disco.Web/Areas/Config/Views/DeviceModel/Show.cshtml @@ -252,9 +252,9 @@ { @Html.ActionLinkButton("Export Devices", MVC.Device.Export(null, Disco.Models.Services.Devices.Exporting.DeviceExportTypes.Model, Model.DeviceModel.Id)) } - if (Authorization.Has(Claims.Device.Search)) + if (Authorization.Has(Claims.Device.Search) && Model.DeviceCount > 0) { - @Html.ActionLinkButton("View Devices", MVC.Search.Query(Model.DeviceModel.Id.ToString(), "DeviceModel")) + @Html.ActionLinkButton(string.Format("View {0} Device{1}", Model.DeviceCount, (Model.DeviceCount != 1 ? "s" : null)), MVC.Search.Query(Model.DeviceModel.Id.ToString(), "DeviceModel")) } } diff --git a/Disco.Web/Areas/Config/Views/DeviceModel/Show.generated.cs b/Disco.Web/Areas/Config/Views/DeviceModel/Show.generated.cs index dc2bc4ca..0d6aad20 100644 --- a/Disco.Web/Areas/Config/Views/DeviceModel/Show.generated.cs +++ b/Disco.Web/Areas/Config/Views/DeviceModel/Show.generated.cs @@ -732,7 +732,7 @@ WriteLiteral(" "); #line 253 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" } - if (Authorization.Has(Claims.Device.Search)) + if (Authorization.Has(Claims.Device.Search) && Model.DeviceCount > 0) { @@ -740,14 +740,14 @@ WriteLiteral(" "); #line hidden #line 257 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(Html.ActionLinkButton("View Devices", MVC.Search.Query(Model.DeviceModel.Id.ToString(), "DeviceModel"))); + Write(Html.ActionLinkButton(string.Format("View {0} Device{1}", Model.DeviceCount, (Model.DeviceCount != 1 ? "s" : null)), MVC.Search.Query(Model.DeviceModel.Id.ToString(), "DeviceModel"))); #line default #line hidden #line 257 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - + } } diff --git a/Disco.Web/Areas/Config/Views/DeviceProfile/Show.cshtml b/Disco.Web/Areas/Config/Views/DeviceProfile/Show.cshtml index 374b481a..97402d64 100644 --- a/Disco.Web/Areas/Config/Views/DeviceProfile/Show.cshtml +++ b/Disco.Web/Areas/Config/Views/DeviceProfile/Show.cshtml @@ -737,8 +737,8 @@ { @Html.ActionLinkButton("Export Devices", MVC.Device.Export(null, Disco.Models.Services.Devices.Exporting.DeviceExportTypes.Profile, Model.DeviceProfile.Id)) } - @if (Authorization.Has(Claims.Device.Search)) + @if (Authorization.Has(Claims.Device.Search) && Model.DeviceCount > 0) { - @Html.ActionLinkButton("View Devices", MVC.Search.Query(Model.DeviceProfile.Id.ToString(), "DeviceProfile")) + @Html.ActionLinkButton(string.Format("View {0} Device{1}", Model.DeviceCount, (Model.DeviceCount != 1 ? "s" : null)), MVC.Search.Query(Model.DeviceProfile.Id.ToString(), "DeviceProfile")) } diff --git a/Disco.Web/Areas/Config/Views/DeviceProfile/Show.generated.cs b/Disco.Web/Areas/Config/Views/DeviceProfile/Show.generated.cs index 2209f32b..b27c1345 100644 --- a/Disco.Web/Areas/Config/Views/DeviceProfile/Show.generated.cs +++ b/Disco.Web/Areas/Config/Views/DeviceProfile/Show.generated.cs @@ -2049,7 +2049,7 @@ WriteLiteral(" "); #line 740 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml" - if (Authorization.Has(Claims.Device.Search)) + if (Authorization.Has(Claims.Device.Search) && Model.DeviceCount > 0) { @@ -2057,14 +2057,14 @@ WriteLiteral(" "); #line hidden #line 742 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml" - Write(Html.ActionLinkButton("View Devices", MVC.Search.Query(Model.DeviceProfile.Id.ToString(), "DeviceProfile"))); + Write(Html.ActionLinkButton(string.Format("View {0} Device{1}", Model.DeviceCount, (Model.DeviceCount != 1 ? "s" : null)), MVC.Search.Query(Model.DeviceProfile.Id.ToString(), "DeviceProfile"))); #line default #line hidden #line 742 "..\..\Areas\Config\Views\DeviceProfile\Show.cshtml" - + } diff --git a/Disco.Web/Areas/Config/Views/JobQueue/Show.cshtml b/Disco.Web/Areas/Config/Views/JobQueue/Show.cshtml index be7b0c4d..508f8e42 100644 --- a/Disco.Web/Areas/Config/Views/JobQueue/Show.cshtml +++ b/Disco.Web/Areas/Config/Views/JobQueue/Show.cshtml @@ -97,13 +97,13 @@
- @foreach (var icon in JobQueueService.Icons) + @foreach (var icon in Model.Icons) { }
- @foreach (var colour in JobQueueService.IconColours) + @foreach (var colour in Model.ThemeColours) { } @@ -629,43 +629,49 @@ @if (canDelete || canShowJobs) {
- @Html.ActionLinkButton("Delete", MVC.API.JobQueue.Delete(Model.Token.JobQueue.Id, true), "Config_JobQueues_Actions_Delete_Button") -
-

- - This item will be permanently deleted and cannot be recovered.
-
- Are you sure? -

-
- - @Html.ActionLinkButton(string.Format("Show {0} job{1}", Model.OpenJobCount, (Model.OpenJobCount == 1 ? null : "s")), MVC.Job.Queue(Model.Token.JobQueue.Id), "Config_JobQueues_Actions_ShowJobs_Button") + + } + @if (canShowJobs) + { + @Html.ActionLinkButton(string.Format("Show {0} job{1}", Model.OpenJobCount, (Model.OpenJobCount == 1 ? null : "s")), MVC.Job.Queue(Model.Token.JobQueue.Id), "Config_JobQueues_Actions_ShowJobs_Button") + }
} \ No newline at end of file diff --git a/Disco.Web/Areas/Config/Views/JobQueue/Show.generated.cs b/Disco.Web/Areas/Config/Views/JobQueue/Show.generated.cs index 1e3f4da8..8e98b923 100644 --- a/Disco.Web/Areas/Config/Views/JobQueue/Show.generated.cs +++ b/Disco.Web/Areas/Config/Views/JobQueue/Show.generated.cs @@ -450,7 +450,7 @@ WriteLiteral(">\r\n"); #line hidden #line 100 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" - foreach (var icon in JobQueueService.Icons) + foreach (var icon in Model.Icons) { @@ -469,26 +469,26 @@ WriteLiteral(" data-icon=\""); #line hidden WriteLiteral("\""); -WriteAttribute("class", Tuple.Create(" class=\"", 4256), Tuple.Create("\"", 4281) -, Tuple.Create(Tuple.Create("", 4264), Tuple.Create("fa", 4264), true) -, Tuple.Create(Tuple.Create(" ", 4266), Tuple.Create("fa-", 4267), true) +WriteAttribute("class", Tuple.Create(" class=\"", 4246), Tuple.Create("\"", 4271) +, Tuple.Create(Tuple.Create("", 4254), Tuple.Create("fa", 4254), true) +, Tuple.Create(Tuple.Create(" ", 4256), Tuple.Create("fa-", 4257), true) #line 102 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" - , Tuple.Create(Tuple.Create("", 4270), Tuple.Create(icon.Key + , Tuple.Create(Tuple.Create("", 4260), Tuple.Create(icon.Key #line default #line hidden -, 4270), false) +, 4260), false) ); -WriteAttribute("title", Tuple.Create(" title=\"", 4282), Tuple.Create("\"", 4301) +WriteAttribute("title", Tuple.Create(" title=\"", 4272), Tuple.Create("\"", 4291) #line 102 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" - , Tuple.Create(Tuple.Create("", 4290), Tuple.Create(icon.Value + , Tuple.Create(Tuple.Create("", 4280), Tuple.Create(icon.Value #line default #line hidden -, 4290), false) +, 4280), false) ); WriteLiteral(">\r\n"); @@ -514,7 +514,7 @@ WriteLiteral(">\r\n"); #line hidden #line 106 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" - foreach (var colour in JobQueueService.IconColours) + foreach (var colour in Model.ThemeColours) { @@ -533,27 +533,27 @@ WriteLiteral(" data-colour=\""); #line hidden WriteLiteral("\""); -WriteAttribute("class", Tuple.Create(" class=\"", 4642), Tuple.Create("\"", 4678) -, Tuple.Create(Tuple.Create("", 4650), Tuple.Create("fa", 4650), true) -, Tuple.Create(Tuple.Create(" ", 4652), Tuple.Create("fa-square", 4653), true) -, Tuple.Create(Tuple.Create(" ", 4662), Tuple.Create("d-", 4663), true) +WriteAttribute("class", Tuple.Create(" class=\"", 4623), Tuple.Create("\"", 4659) +, Tuple.Create(Tuple.Create("", 4631), Tuple.Create("fa", 4631), true) +, Tuple.Create(Tuple.Create(" ", 4633), Tuple.Create("fa-square", 4634), true) +, Tuple.Create(Tuple.Create(" ", 4643), Tuple.Create("d-", 4644), true) #line 108 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" - , Tuple.Create(Tuple.Create("", 4665), Tuple.Create(colour.Key + , Tuple.Create(Tuple.Create("", 4646), Tuple.Create(colour.Key #line default #line hidden -, 4665), false) +, 4646), false) ); -WriteAttribute("title", Tuple.Create(" title=\"", 4679), Tuple.Create("\"", 4700) +WriteAttribute("title", Tuple.Create(" title=\"", 4660), Tuple.Create("\"", 4681) #line 108 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" - , Tuple.Create(Tuple.Create("", 4687), Tuple.Create(colour.Value + , Tuple.Create(Tuple.Create("", 4668), Tuple.Create(colour.Value #line default #line hidden -, 4687), false) +, 4668), false) ); WriteLiteral(">\r\n"); @@ -658,27 +658,27 @@ WriteLiteral(" \r\n \r\n \r\n #line hidden WriteLiteral(" (priorityValue.ToLower() +, Tuple.Create(Tuple.Create("", 9457), Tuple.Create(priorityValue.ToLower() #line default #line hidden -, 9476), false) +, 9457), false) ); -WriteAttribute("title", Tuple.Create(" title=\"", 9503), Tuple.Create("\"", 9536) +WriteAttribute("title", Tuple.Create(" title=\"", 9484), Tuple.Create("\"", 9517) #line 201 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" -, Tuple.Create(Tuple.Create("", 9511), Tuple.Create(priorityValue +, Tuple.Create(Tuple.Create("", 9492), Tuple.Create(priorityValue #line default #line hidden -, 9511), false) -, Tuple.Create(Tuple.Create(" ", 9527), Tuple.Create("Priority", 9528), true) +, 9492), false) +, Tuple.Create(Tuple.Create(" ", 9508), Tuple.Create("Priority", 9509), true) ); WriteLiteral(">\r\n"); @@ -1003,14 +1003,14 @@ WriteLiteral(">\r\n"); #line hidden WriteLiteral(" (sg.IsGroup ? "group" : "user" +, Tuple.Create(Tuple.Create("", 14499), Tuple.Create(sg.IsGroup ? "group" : "user" #line default #line hidden -, 14518), false) +, 14499), false) ); WriteLiteral(">"); @@ -1054,14 +1054,14 @@ WriteLiteral(">"); #line hidden WriteLiteral(" (Url.Action(MVC.User.Show(sg.Id)) +, Tuple.Create(Tuple.Create("", 14978), Tuple.Create(Url.Action(MVC.User.Show(sg.Id)) #line default #line hidden -, 14997), false) +, 14978), false) ); WriteLiteral(">\r\n"); #line hidden WriteLiteral(" (sg.IsGroup ? "group" : "user" +, Tuple.Create(Tuple.Create("", 16155), Tuple.Create(sg.IsGroup ? "group" : "user" #line default #line hidden -, 16174), false) +, 16155), false) ); WriteLiteral(" data-subjectid=\""); @@ -1286,14 +1286,14 @@ WriteLiteral(">Add\r\n
\r\n WriteLiteral(" id=\"Config_JobQueues_Subjects_Update_Dialog_Form\""); -WriteAttribute("action", Tuple.Create(" action=\"", 17597), Tuple.Create("\"", 17689) +WriteAttribute("action", Tuple.Create(" action=\"", 17578), Tuple.Create("\"", 17670) #line 343 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" - , Tuple.Create(Tuple.Create("", 17606), Tuple.Create(Url.Action(MVC.API.JobQueue.UpdateSubjects(Model.Token.JobQueue.Id, null, true)) + , Tuple.Create(Tuple.Create("", 17587), Tuple.Create(Url.Action(MVC.API.JobQueue.UpdateSubjects(Model.Token.JobQueue.Id, null, true)) #line default #line hidden -, 17606), false) +, 17587), false) ); WriteLiteral(" method=\"post\""); @@ -1618,15 +1618,15 @@ WriteLiteral(">\r\n"); #line hidden WriteLiteral(" (jt.Id +, Tuple.Create(Tuple.Create("", 28948), Tuple.Create(jt.Id #line default #line hidden -, 28967), false) +, 28948), false) ); WriteLiteral(" class=\"jobTypes\""); @@ -1634,29 +1634,29 @@ WriteLiteral(" class=\"jobTypes\""); WriteLiteral(">\r\n

\r\n (jt.Id +, Tuple.Create(Tuple.Create("", 29068), Tuple.Create(jt.Id #line default #line hidden -, 29087), false) +, 29068), false) ); WriteLiteral(" class=\"jobType\""); WriteLiteral(" type=\"checkbox\""); -WriteAttribute("value", Tuple.Create(" value=\"", 29128), Tuple.Create("\"", 29144) +WriteAttribute("value", Tuple.Create(" value=\"", 29109), Tuple.Create("\"", 29125) #line 550 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" - , Tuple.Create(Tuple.Create("", 29136), Tuple.Create(jt.Id + , Tuple.Create(Tuple.Create("", 29117), Tuple.Create(jt.Id #line default #line hidden -, 29136), false) +, 29117), false) ); WriteLiteral(" "); @@ -1670,15 +1670,15 @@ WriteLiteral(" "); #line hidden WriteLiteral(" />(jt.Id + , Tuple.Create(Tuple.Create("", 29208), Tuple.Create(jt.Id #line default #line hidden -, 29227), false) +, 29208), false) ); WriteLiteral(">"); @@ -1692,15 +1692,15 @@ WriteLiteral(">"); #line hidden WriteLiteral("

\r\n (jt.Id +, Tuple.Create(Tuple.Create("", 29298), Tuple.Create(jt.Id #line default #line hidden -, 29317), false) +, 29298), false) ); WriteLiteral(" class=\"jobSubTypes\""); @@ -1813,74 +1813,118 @@ WriteLiteral(" class=\"actionBar\""); WriteLiteral(">\r\n"); -WriteLiteral(" "); - #line 632 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" - Write(Html.ActionLinkButton("Delete", MVC.API.JobQueue.Delete(Model.Token.JobQueue.Id, true), "Config_JobQueues_Actions_Delete_Button")); + + + #line default + #line hidden + + #line 632 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" + if (canDelete) + { + + + #line default + #line hidden + + #line 634 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" + Write(Html.ActionLinkButton("Delete", MVC.API.JobQueue.Delete(Model.Token.JobQueue.Id, true), "Config_JobQueues_Actions_Delete_Button")); #line default #line hidden -WriteLiteral("\r\n
\r\n \r\n This item will be permanently deleted and cannot be re" + +"covered.
\r\n
\r\n Are you sure?\r\n " + +"

\r\n
\r\n"); + +WriteLiteral(" - $(function () { - var button = $('#Config_JobQueues_Actions_Delete_Button'); - var buttonDialog = $('#Config_JobQueues_Actions_Delete_Dialog'); - var buttonLink = button.attr('href'); - button.attr('href', '#'); - button.click(function () { - buttonDialog.dialog('open'); - return false; - }); - buttonDialog.dialog({ - resizable: false, - modal: true, - autoOpen: false, - buttons: { - ""Delete"": function () { - var $this = $(this); - $this.dialog(""disable""); - $this.dialog(""option"", ""buttons"", null); - window.location.href = buttonLink; - }, - Cancel: function () { - $(this).dialog(""close""); + $(function () { + var button = $('#Config_JobQueues_Actions_Delete_Button'); + var buttonDialog = $('#Config_JobQueues_Actions_Delete_Dialog'); + var buttonLink = button.attr('href'); + button.attr('href', '#'); + button.click(function () { + buttonDialog.dialog('open'); + return false; + }); + buttonDialog.dialog({ + resizable: false, + modal: true, + autoOpen: false, + buttons: { + ""Delete"": function () { + var $this = $(this); + $this.dialog(""disable""); + $this.dialog(""option"", ""buttons"", null); + window.location.href = buttonLink; + }, + Cancel: function () { + $(this).dialog(""close""); + } } - } + }); }); - }); - + "); -WriteLiteral(" "); - - #line 669 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" - Write(Html.ActionLinkButton(string.Format("Show {0} job{1}", Model.OpenJobCount, (Model.OpenJobCount == 1 ? null : "s")), MVC.Job.Queue(Model.Token.JobQueue.Id), "Config_JobQueues_Actions_ShowJobs_Button")); + #line 671 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" + } #line default #line hidden -WriteLiteral("\r\n \r\n"); +WriteLiteral(" "); - #line 671 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" + #line 672 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" + if (canShowJobs) + { + + + #line default + #line hidden + + #line 674 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" + Write(Html.ActionLinkButton(string.Format("Show {0} job{1}", Model.OpenJobCount, (Model.OpenJobCount == 1 ? null : "s")), MVC.Job.Queue(Model.Token.JobQueue.Id), "Config_JobQueues_Actions_ShowJobs_Button")); + + + #line default + #line hidden + + #line 674 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" + + } + + + #line default + #line hidden +WriteLiteral(" \r\n"); + + + #line 677 "..\..\Areas\Config\Views\JobQueue\Show.cshtml" } #line default diff --git a/Disco.Web/Areas/Config/Views/UserFlag/Create.cshtml b/Disco.Web/Areas/Config/Views/UserFlag/Create.cshtml new file mode 100644 index 00000000..e015a11a --- /dev/null +++ b/Disco.Web/Areas/Config/Views/UserFlag/Create.cshtml @@ -0,0 +1,36 @@ +@model Disco.Web.Areas.Config.Models.UserFlag.CreateModel +@{ + Authorization.RequireAll(Claims.Config.JobQueue.Create, Claims.Config.JobQueue.Configure); + ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "User Flags", MVC.Config.UserFlag.Index(null), "Create"); +} +@using (Html.BeginForm()) +{ + @Html.HiddenFor(m => m.UserFlag.Icon) + @Html.HiddenFor(m => m.UserFlag.IconColour) +
+ + + + + + + + + +
Name: + + @Html.EditorFor(model => model.UserFlag.Name)
@Html.ValidationMessageFor(model => model.UserFlag.Name) +
Description: + + @Html.EditorFor(model => model.UserFlag.Description)
@Html.ValidationMessageFor(model => model.UserFlag.Description) +
+

+ +

+
+ +} \ No newline at end of file diff --git a/Disco.Web/Areas/Config/Views/UserFlag/Create.generated.cs b/Disco.Web/Areas/Config/Views/UserFlag/Create.generated.cs new file mode 100644 index 00000000..dbb55b14 --- /dev/null +++ b/Disco.Web/Areas/Config/Views/UserFlag/Create.generated.cs @@ -0,0 +1,172 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.34014 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Areas.Config.Views.UserFlag +{ + 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.BI.Extensions; + 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/UserFlag/Create.cshtml")] + public partial class Create : Disco.Services.Web.WebViewPage + { + public Create() + { + } + public override void Execute() + { + + #line 2 "..\..\Areas\Config\Views\UserFlag\Create.cshtml" + + Authorization.RequireAll(Claims.Config.JobQueue.Create, Claims.Config.JobQueue.Configure); + ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "User Flags", MVC.Config.UserFlag.Index(null), "Create"); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 6 "..\..\Areas\Config\Views\UserFlag\Create.cshtml" + using (Html.BeginForm()) +{ + + + #line default + #line hidden + + #line 8 "..\..\Areas\Config\Views\UserFlag\Create.cshtml" +Write(Html.HiddenFor(m => m.UserFlag.Icon)); + + + #line default + #line hidden + + #line 8 "..\..\Areas\Config\Views\UserFlag\Create.cshtml" + + + + #line default + #line hidden + + #line 9 "..\..\Areas\Config\Views\UserFlag\Create.cshtml" +Write(Html.HiddenFor(m => m.UserFlag.IconColour)); + + + #line default + #line hidden + + #line 9 "..\..\Areas\Config\Views\UserFlag\Create.cshtml" + + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n \r\n \r\n \r\n \r\n \r\n Description:\r\n \r\n \r\n \r\n
Name:\r\n " + +"\r\n"); + +WriteLiteral(" "); + + + #line 16 "..\..\Areas\Config\Views\UserFlag\Create.cshtml" + Write(Html.EditorFor(model => model.UserFlag.Name)); + + + #line default + #line hidden +WriteLiteral("
"); + + + #line 16 "..\..\Areas\Config\Views\UserFlag\Create.cshtml" + Write(Html.ValidationMessageFor(model => model.UserFlag.Name)); + + + #line default + #line hidden +WriteLiteral("\r\n
\r\n"); + +WriteLiteral(" "); + + + #line 23 "..\..\Areas\Config\Views\UserFlag\Create.cshtml" + Write(Html.EditorFor(model => model.UserFlag.Description)); + + + #line default + #line hidden +WriteLiteral("
"); + + + #line 23 "..\..\Areas\Config\Views\UserFlag\Create.cshtml" + Write(Html.ValidationMessageFor(model => model.UserFlag.Description)); + + + #line default + #line hidden +WriteLiteral("\r\n
\r\n \r\n \r\n

\r\n \r\n"); + +WriteLiteral(" \r\n $(function () {\r\n $(\'#UserFlag_Name\').focus().select();\r\n " + +" });\r\n \r\n"); + + + #line 36 "..\..\Areas\Config\Views\UserFlag\Create.cshtml" +} + + #line default + #line hidden + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Areas/Config/Views/UserFlag/Index.cshtml b/Disco.Web/Areas/Config/Views/UserFlag/Index.cshtml new file mode 100644 index 00000000..2713dfa1 --- /dev/null +++ b/Disco.Web/Areas/Config/Views/UserFlag/Index.cshtml @@ -0,0 +1,46 @@ +@model Disco.Web.Areas.Config.Models.UserFlag.IndexModel +@{ + Authorization.RequireAll(Claims.Config.UserFlag.Create, Claims.Config.UserFlag.Configure); + ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "User Flags", MVC.Config.UserFlag.Index(null)); +} +
+ @if (Model.UserFlags.Count == 0) + { +
+

No user flags are configured

+
+ } + else + { + + + + + + @foreach (var item in Model.UserFlags) + { + + + + + } +
NameDescription
+ + + @item.Name + + + @if (string.IsNullOrWhiteSpace(item.Description)) + { + <none> + } + else + { + @item.Description.ToMultilineString() + } +
+ } +
+ @Html.ActionLinkButton("Create User Flag", MVC.Config.UserFlag.Create()) +
+
diff --git a/Disco.Web/Areas/Config/Views/UserFlag/Index.generated.cs b/Disco.Web/Areas/Config/Views/UserFlag/Index.generated.cs new file mode 100644 index 00000000..292394e9 --- /dev/null +++ b/Disco.Web/Areas/Config/Views/UserFlag/Index.generated.cs @@ -0,0 +1,242 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.34014 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Areas.Config.Views.UserFlag +{ + 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.BI.Extensions; + 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/UserFlag/Index.cshtml")] + public partial class Index : Disco.Services.Web.WebViewPage + { + public Index() + { + } + public override void Execute() + { + + #line 2 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + + Authorization.RequireAll(Claims.Config.UserFlag.Create, Claims.Config.UserFlag.Configure); + ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "User Flags", MVC.Config.UserFlag.Index(null)); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n"); + + + #line 7 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + + + #line default + #line hidden + + #line 7 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + if (Model.UserFlags.Count == 0) + { + + + #line default + #line hidden +WriteLiteral(" \r\n

No user flags are configured

\r\n \r\n"); + + + #line 12 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + } + else + { + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n Name\r\n Descripti" + +"on\r\n \r\n"); + + + #line 20 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + + + #line default + #line hidden + + #line 20 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + foreach (var item in Model.UserFlags) + { + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n (Url.Action(MVC.Config.UserFlag.Index(item.Id)) + + #line default + #line hidden +, 822), false) +); + +WriteLiteral(">\r\n (item.Icon + + #line default + #line hidden +, 917), false) +, Tuple.Create(Tuple.Create(" ", 929), Tuple.Create("fa-lg", 930), true) +, Tuple.Create(Tuple.Create(" ", 935), Tuple.Create("d-", 936), true) + + #line 25 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" +, Tuple.Create(Tuple.Create("", 938), Tuple.Create(item.IconColour + + #line default + #line hidden +, 938), false) +); + +WriteLiteral(">\r\n"); + +WriteLiteral(" "); + + + #line 26 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + Write(item.Name); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n \r\n "); + + + #line 30 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + if (string.IsNullOrWhiteSpace(item.Description)) + { + + + #line default + #line hidden +WriteLiteral(" "); + +WriteLiteral("<none>"); + +WriteLiteral("\r\n"); + + + #line 33 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + } + else + { + + + #line default + #line hidden + + #line 36 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + Write(item.Description.ToMultilineString()); + + + #line default + #line hidden + + #line 36 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + + } + + #line default + #line hidden +WriteLiteral("
\r\n \r\n \r\n"); + + + #line 40 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n"); + + + #line 42 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n"); + +WriteLiteral(" "); + + + #line 44 "..\..\Areas\Config\Views\UserFlag\Index.cshtml" + Write(Html.ActionLinkButton("Create User Flag", MVC.Config.UserFlag.Create())); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Areas/Config/Views/UserFlag/Show.cshtml b/Disco.Web/Areas/Config/Views/UserFlag/Show.cshtml new file mode 100644 index 00000000..5435122c --- /dev/null +++ b/Disco.Web/Areas/Config/Views/UserFlag/Show.cshtml @@ -0,0 +1,250 @@ +@model Disco.Web.Areas.Config.Models.UserFlag.ShowModel +@using Disco.Services.Users.UserFlags; +@{ + Authorization.Require(Claims.Config.UserFlag.Show); + + ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "User Flags", MVC.Config.UserFlag.Index(null), Model.UserFlag.ToString()); + + var canConfig = Authorization.Has(Claims.Config.UserFlag.Configure); + var canDelete = Authorization.Has(Claims.Config.UserFlag.Delete); + var canShowUsers = Model.CurrentAssignmentCount > 0 && Authorization.HasAll(Claims.User.Search, Claims.User.ShowFlagAssignments); + + Html.BundleDeferred("~/ClientScripts/Modules/Disco-PropertyChangeHelpers"); +} +
+ + + + + + + + + + + + + + + + + + + + + +
Id: + + @Html.DisplayFor(model => model.UserFlag.Id) +
Name: + @if (canConfig) + {@Html.EditorFor(model => model.UserFlag.Name) + @AjaxHelpers.AjaxSave() + @AjaxHelpers.AjaxLoader() + + } + else + { + @Model.UserFlag.Name + } +
Description: + @if (canConfig) + {@Html.EditorFor(model => model.UserFlag.Description) + @AjaxHelpers.AjaxSave() + @AjaxHelpers.AjaxLoader() + + } + else + { +
+                    @if (string.IsNullOrEmpty(Model.UserFlag.Description))
+                    {
+                    <None>
+                    }
+                    else
+                    {
+                        @Model.UserFlag.Description
+                    }
+                    
+ } +
Statistics: + +
@Model.CurrentAssignmentCount user@(Model.CurrentAssignmentCount != 1 ? "s" : null) currently assigned
+
@Model.TotalAssignmentCount total user historical assignment@(Model.TotalAssignmentCount != 1 ? "s" : null)
+
Icon: + + + @if (canConfig) + { +
+ Update +
+
+
+ @foreach (var icon in Model.Icons) + { + + } +
+
+ @foreach (var colour in Model.ThemeColours) + { + + } +
+
+
+ +
+ } +
+
+@if (canDelete || canShowUsers) +{ +
+ @if (canDelete) + { + @Html.ActionLinkButton("Delete", MVC.API.UserFlag.Delete(Model.UserFlag.Id, true), "Config_UserFlags_Actions_Delete_Button") +
+

+ + This item will be permanently deleted and cannot be recovered.
+
+ @if (Model.CurrentAssignmentCount > 0) + { + @Model.CurrentAssignmentCount user@(Model.CurrentAssignmentCount != 1 ? "s are" : " is") currently assigned +
+
+ } + Are you sure? +

+
+ + } + @if (canShowUsers) + { + @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") + } +
+} \ No newline at end of file diff --git a/Disco.Web/Areas/Config/Views/UserFlag/Show.generated.cs b/Disco.Web/Areas/Config/Views/UserFlag/Show.generated.cs new file mode 100644 index 00000000..e8bce324 --- /dev/null +++ b/Disco.Web/Areas/Config/Views/UserFlag/Show.generated.cs @@ -0,0 +1,826 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.34014 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Areas.Config.Views.UserFlag +{ + 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.BI.Extensions; + using Disco.Models.Repository; + using Disco.Services; + using Disco.Services.Authorization; + + #line 2 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + using Disco.Services.Users.UserFlags; + + #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/UserFlag/Show.cshtml")] + public partial class Show : Disco.Services.Web.WebViewPage + { + public Show() + { + } + public override void Execute() + { + + #line 3 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + + Authorization.Require(Claims.Config.UserFlag.Show); + + ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "User Flags", MVC.Config.UserFlag.Index(null), Model.UserFlag.ToString()); + + var canConfig = Authorization.Has(Claims.Config.UserFlag.Configure); + var canDelete = Authorization.Has(Claims.Config.UserFlag.Delete); + var canShowUsers = Model.CurrentAssignmentCount > 0 && Authorization.HasAll(Claims.User.Search, Claims.User.ShowFlagAssignments); + + Html.BundleDeferred("~/ClientScripts/Modules/Disco-PropertyChangeHelpers"); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n \r\n \r\n Id:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n"); + +WriteLiteral(" "); + + + #line 20 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(Html.DisplayFor(model => model.UserFlag.Id)); + + + #line default + #line hidden +WriteLiteral("\r\n
Name:\r\n " + +" "); + + + #line 26 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + if (canConfig) + { + + #line default + #line hidden + + #line 27 "..\..\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 default + #line hidden + + #line 28 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(AjaxHelpers.AjaxSave()); + + + #line default + #line hidden + + #line 28 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + + + + #line default + #line hidden + + #line 29 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(AjaxHelpers.AjaxLoader()); + + + #line default + #line hidden + + #line 29 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + + + + #line default + #line hidden +WriteLiteral(" \r\n $(function () {\r\n document.DiscoFun" + +"ctions.PropertyChangeHelper(\r\n $(\'#UserFlag_Name\'),\r\n" + +" \'Invalid Name\',\r\n \'"); + + + #line 35 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(Url.Action(MVC.API.UserFlag.UpdateName(Model.UserFlag.Id))); + + + #line default + #line hidden +WriteLiteral("\',\r\n \'FlagName\'\r\n );\r\n " + +" });\r\n \r\n"); + + + #line 40 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + } + else + { + + + #line default + #line hidden + + #line 43 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(Model.UserFlag.Name); + + + #line default + #line hidden + + #line 43 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + + } + + + #line default + #line hidden +WriteLiteral("
Description:\r\n " + +" "); + + + #line 50 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + if (canConfig) + { + + #line default + #line hidden + + #line 51 "..\..\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 default + #line hidden + + #line 52 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(AjaxHelpers.AjaxSave()); + + + #line default + #line hidden + + #line 52 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + + + + #line default + #line hidden + + #line 53 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(AjaxHelpers.AjaxLoader()); + + + #line default + #line hidden + + #line 53 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + + + + #line default + #line hidden +WriteLiteral(" \r\n $(function () {\r\n document.DiscoFun" + +"ctions.PropertyChangeHelper(\r\n $(\'#UserFlag_Descripti" + +"on\'),\r\n \'Invalid Description\',\r\n " + +" \'"); + + + #line 59 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(Url.Action(MVC.API.UserFlag.UpdateDescription(Model.UserFlag.Id))); + + + #line default + #line hidden +WriteLiteral("\',\r\n \'Description\'\r\n );\r\n " + +" });\r\n \r\n"); + + + #line 64 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + } + else + { + + + #line default + #line hidden +WriteLiteral("
\r\n");
+
+            
+            #line 68 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
+                    
+            
+            #line default
+            #line hidden
+            
+            #line 68 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
+                     if (string.IsNullOrEmpty(Model.UserFlag.Description))
+                    {
+
+            
+            #line default
+            #line hidden
+WriteLiteral("                    ");
+
+WriteLiteral("<None>");
+
+WriteLiteral("\r\n");
+
+            
+            #line 71 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
+                    }
+                    else
+                    {
+                        
+            
+            #line default
+            #line hidden
+            
+            #line 74 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
+                   Write(Model.UserFlag.Description);
+
+            
+            #line default
+            #line hidden
+            
+            #line 74 "..\..\Areas\Config\Views\UserFlag\Show.cshtml"
+                                                   
+                    }
+
+            
+            #line default
+            #line hidden
+WriteLiteral("                    
\r\n"); + + + #line 77 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + } + + + #line default + #line hidden +WriteLiteral("
Statistics:\r\n " + +" \r\n
"); + + + #line 84 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(Model.CurrentAssignmentCount); + + + #line default + #line hidden +WriteLiteral(" user"); + + + #line 84 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(Model.CurrentAssignmentCount != 1 ? "s" : null); + + + #line default + #line hidden +WriteLiteral(" currently assigned
\r\n
"); + + + #line 85 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(Model.TotalAssignmentCount); + + + #line default + #line hidden +WriteLiteral(" total user historical assignment"); + + + #line 85 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(Model.TotalAssignmentCount != 1 ? "s" : null); + + + #line default + #line hidden +WriteLiteral("
\r\n
Icon:\r\n " + +" \r\n
\r\n\r\n"); + + + #line 196 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + if (canDelete || canShowUsers) +{ + + + #line default + #line hidden +WriteLiteral(" \r\n"); + + + #line 199 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + + + #line default + #line hidden + + #line 199 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + if (canDelete) + { + + + #line default + #line hidden + + #line 201 "..\..\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 default + #line hidden +WriteLiteral(" \r\n

\r\n \r\n This item will be permanently deleted and cannot be re" + +"covered.
\r\n
\r\n"); + + + #line 207 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + + + #line default + #line hidden + + #line 207 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + if (Model.CurrentAssignmentCount > 0) + { + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 209 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(Model.CurrentAssignmentCount); + + + #line default + #line hidden +WriteLiteral(" user"); + + + #line 209 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + Write(Model.CurrentAssignmentCount != 1 ? "s are" : " is"); + + + #line default + #line hidden +WriteLiteral(" currently assigned\r\n"); + +WriteLiteral("
\r\n"); + +WriteLiteral("
\r\n"); + + + #line 212 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" Are you sure?\r\n

\r\n \r\n"); + +WriteLiteral(" + $(function () { + var button = $('#Config_UserFlags_Actions_Delete_Button'); + var buttonDialog = $('#Config_UserFlags_Actions_Delete_Dialog'); + var buttonLink = button.attr('href'); + button.attr('href', '#'); + button.click(function () { + buttonDialog.dialog('open'); + return false; + }); + buttonDialog.dialog({ + resizable: false, + modal: true, + autoOpen: false, + buttons: { + ""Delete"": function () { + var $this = $(this); + $this.dialog(""disable""); + $this.dialog(""option"", ""buttons"", null); + window.location.href = buttonLink; + }, + Cancel: function () { + $(this).dialog(""close""); + } + } + }); + }); + +"); + + + #line 244 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 245 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" + if (canShowUsers) + { + + + #line default + #line hidden + + #line 247 "..\..\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 default + #line hidden +WriteLiteral(" \r\n"); + + + #line 250 "..\..\Areas\Config\Views\UserFlag\Show.cshtml" +} + + #line default + #line hidden + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/ClientSource/Style/BundleSite.css b/Disco.Web/ClientSource/Style/BundleSite.css index 18f044ec..c3bef608 100644 --- a/Disco.Web/ClientSource/Style/BundleSite.css +++ b/Disco.Web/ClientSource/Style/BundleSite.css @@ -4406,6 +4406,16 @@ table.genericData td.id a { .dataTables_wrapper table > thead tr > th.sorting_disabled { background-image: none; } +table.userTable div.flags { + display: inline-block; + float: right; +} +table.userTable div.flags > i { + cursor: default; +} +table.userTable div.flags > i > .details { + display: none; +} .jobStatus { color: #333333; } @@ -4843,6 +4853,18 @@ div.disco-attachmentUpload-imageDialog { width: 720px !important; height: 540px !important; } +body > .User_FlagAssignment_Tooltip span.name { + display: block; + font-weight: bold; +} +body > .User_FlagAssignment_Tooltip span.comments { + display: block; + padding: 2px 0 2px 4px; +} +body > .User_FlagAssignment_Tooltip span.added { + font-style: italic; + font-size: 0.9em; +} .d-priority-high { color: #fa6800; width: 1.2857142857142858em; diff --git a/Disco.Web/ClientSource/Style/BundleSite.min.css b/Disco.Web/ClientSource/Style/BundleSite.min.css index aaf31e69..05846971 100644 --- a/Disco.Web/ClientSource/Style/BundleSite.min.css +++ b/Disco.Web/ClientSource/Style/BundleSite.min.css @@ -1 +1 @@ -html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:alpha(opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;width:100%;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url(data:image/gif;base64,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);height:100%;filter:alpha(opacity=25);opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAeUlEQVRoge3OMQHAIBAAsVL/nh8JDDfAkCjImpn5HvbfDpwIVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVhtqiwTEKTLXTgAAAABJRU5ErkJggg==) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAYAAABHLFpgAAAALElEQVQYlWN49OjRfyYGBgaGIUT8//8fSqBx0Yh///4RL8vAwAAVQ2MNOwIAl6g6KkOJwk8AAAAASUVORK5CYII=) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAANUlEQVQ4je3LMQoAIBADwb38/6t5wFXaWAiCtUiaYZvF9hBACOFbuntVVe11B0CSjjeE8BwThQIJ8dhEl0YAAAAASUVORK5CYII=) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAANklEQVQ4jWN48uTJfyYGBgaGUWKUGCWGLfHt2zcoi5GREYNgYmJCZiG42IiB98woMUqMEtgIAMdjCdyg+eEBAAAAAElFTkSuQmCC) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAMElEQVQ4je3LIQ4AIBTD0O3f/8wrFgmKhMy8pKJKwkhSKeVbbGuAPU9f4PIopTxgAeS0DRtI4yK0AAAAAElFTkSuQmCC) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAP0lEQVQ4je3PMQrAMABC0a/3v2zX0mCXNkOgc6C4PARd5DqPGKCU8luS8SbAQhiCQRgJE56kZTfbbP9RSvnkBsWcEAZRWcgqAAAAAElFTkSuQmCC) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAPklEQVQ4je3PMQqAMABD0Z/c/7aCIAXjJIhD10LJ8vgZw30eMUApZV/GhZNgSTjoLYElY/hNMJ/S6gullCkPiCIPCr4NiEwAAAAASUVORK5CYII=) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:alpha(opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:alpha(opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:alpha(opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(data:image/png;base64,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)}.ui-widget-header .ui-icon{background-image:url(data:image/png;base64,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)}.ui-state-default .ui-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEWIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIighcp7AAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMMqUAscgnFocmpqkTzqymwVAPxfJ5PnIUUQOUKT04tEdWZyv3JCQSn96WS4pD97QfyW25A7NhSAbyhmVj0FEltA4vdiygBibXhoUYgykCUP7HwPTDeEqAIcHVMkZg7Zx4k0uFANs63hPQXCoRLAwdgGsr9Az7Qv7sgQGgg1aPl/BJLExBWgG4RFRLFImGmIquPC/klEGyCG0AuAXaJJC+B8FVe9NYQDEcXB8g6AQcjYJ1goJIggHWCrFR0S6kRHN5+4BzFi8NaoN35NRxUvL+JJdZr7PV4wK6fj8nIyMjIyNhr3OxdXAYq7FHZwB6bDSzSh4sF0utChqo0NAvaT1hLzXwFinmCzmeDucEQK18TTaQoFgP7bNC+RZ4OT4T6gQogDFYk+1QxQlj19QGSAWKiLYp8P0Ag1Gbz1ULfWHLg9iUnQNK5QQJcukm04blKLH2GgEJCY+HzXAZWCvHKco3Bp6MIaCjSXXRJyOxeqhnzEaF93MfFGW/O16ZvDL5TM4MJIjujz/cHypkQuuzRwWJ93BKdIt+wCRAPl9kpe2Ikkb2mFgGlxh/i40d3EHfdvoyMjIyMu43ylt/IAmGHnN5iIt7wKfbv01RAcJqFRl9lcjYQSnbQqKgC4fYOwSJt6N6trE0twZ9kN/PqNpTQeICvr4TLsDYC06U7BMjshS+v1/aT7IwQYD5LcgRQXMT2FrBfBLjZ6151jDElk9tPFfpUgk2yregusX25BJbwAFEfM+YI6vGAti4bTtizB+TjfQCrERyhKb2X8D6A9wX75P4t4neBYJeP6pdhg/gQl8MWvytzeSTjgOQBynQdh/iXKdxOrGJ/RkZGRsb9QmXihGr5+g8GGg9uTh+KoVZuNIzV+CwRucFBEyr1mVjx4irOxwM1BhirB6Q+2eNQi4eqR+aF6mELtoMzCR7V9RAFe/ZvQogNiyY8FPSUTFsLp8TeTmMui5mtw7bcaT0Yw2AA4wFRQIlkgq+1DQrNhkmoxS5Jq+u6bMAIGRECEANgXHTgWzwgBOhDH2l0oTQ4D8D5NMktBgNywAEMjo8rwATMZrPY7JGxBoJCkIBDQiAY09EGTUiBCWkUpISfGPR5AAwBfZiG2z7Ayc1yeKTxid39xBNwfHr4O0LA48ePFTvhYrF1r4tyAoz9n2MCqEuBtp/6GDR0oAYfG/R6wJExHYZHfhygsv7fEWCOj4bYmsP5A+pL4MkTfAnMlD4F+r3bobKvTyTA2P/w7PN+Agq2QW8piqMCpTBwenoKvX0AHGkGtP2YAPvTEWA7QUTAudn7/NxtOG46wWNmDtpBEkBzN7rBEvAFHp+YTB/q97qPAN4gHFqgBi8uLsC7qPCA6mg41G/+ErByPwEXDdoNxRhOx+M5jPEzQugS0ht+b1/Y3gEnYMAIAOIBE29/hIDucE8tmMsNOgK4B1RHFu4UCRlMHzv0xzcajcfdXWDs2h8TArBCkoDUJYDLmz6w7ip3BFS0ve5wTRwAn6keMA9I3QYbfSZ0DKbyt+7OXjGI1idPcfNyAyfAMlCrzaGqphYrxHocLHRJVycnfGUcbtT+jIyMjIw9x7Nn8fJSzG0TmFtO8rZT+XT3S3ub+tKJbbLd5diTVp50+zahyeHSslJ/YPrU0fuazrZO2CZ92/ZCCVXlGRiZKPJyPPRxyIFWeXLQBXJBKiq/3divEAN6ZwM200Qjm7EJBZeWm/PRWVCbYK7s7u2l4XaCz+lzgOfMfhMonXr7TWzeZb98dbgIzBT8Ub8eYYUqfZ4rVJ/MDbIDgPqTulJ/xvntWAtjIisqnwxOkGz0n077FARoY79GdA6HPE4rOy196NiMWHTZlSSApcOgXpy/fHV2joaNKu3ffsAnRcBf4K/6NcIG6tIxk3HyoXPjASqfUgXbYN5PzpL2njkR9QMjeDTVHDTCgRuxOegjoO0FvKzP/t/gmVdI24+G7NIe8JX6Wv3dDyldMA+4YB5wwTygtd+dwRqaTqrLb1l73zTSN52CNpnHuQOYPsDblybgxfkXh/oVtr+N1DEBJdhRJyd/Bd/q1z+cbNrD17iVKyajcnv9arhOkRPgsruuD6DmNPwpDNrLw2CoTgHni4yALr0L29+tiKAEIPn868ejx//8rpWP3OEOl5On9OwpcQm0MhafP/ey8f1uvDNIgGLQG8z4YO99ENgg95etwv4uYJYY8fUGHYH6j6fscHFZMftlAl9i+9XL73X3N/n+ZStOzfVfRvYXhrbdKOpEgVQTg/wsDuDD3kwOfQNMTJ5y+/ltUDWLunyxnRF46IqlBzGMY4X7inggREFioIyMjIyMHWCIB6ZNKAcXseo3vLTQTkVE7348dlwJJSz0+wLfmi8BhZqfw3D4ww/wHVLnEd5/fgYvXsDZ3MlsvYUbbnDjDZ3MN3TJG4+bxjAaDl8TBri9qxEw1ccao2wTNAMLHo2f+sjrXwb/9qHoYqgPMBXJTVfOpmrZH23y6uvo0LHSyY6fHGwKfHJlAuMFvObjDYrIqxBgQi20h7Hd/nYVLmno+eaNUm/eeH2GCuopntnhBJAlI2AHo9CCh1I1QxUdAbqqGY9BBLwyc3W4wYVhvY8A4BoIc1l5M7vnPWphZW9/Ses3n37y9a0uGqFwFQZsQQbd386DogpgEk+dzynsAZMJXq8+ns9NeukJ0PYrNATGGefJQlhkLo7DTXr+y3bNiOsDvrXTz/C2q1DXZH84iRNwrP88Nj+u2DjYEE6RBxD9Knj16ujVHC67A7422o02RwD3gB+t7EblWvu9geOFxSnd3ROmT+nJyQkhoPlsxVONc/3TEdBos+jtA+ZzcwHgTvD1cDjaYCcItA8w9i88A8b+mqSjc6Pvqd998QguEQPmQMeo23ODN86+p0/bn1buBkT6+oBhNZ/PYY4ZAHYb3PRd4LkZmPX68NRtMZn4ASvdA+qf0jMA5MP9eeg28Nug9QiLnj5A33U1MAES6xHAUNpz/9zFAYE1gqQDMT3G6xI9pwdw/aIgKoHCS1YGlRnSq9yCjdXjgN3j+N27YyROHxmuNAeNKPpYuXIyIyMjYy0M8eros59MF/PT2c602T7eA7zvhJ9dr/vzDjXaLp4Yc5+0wllzxzHv3gdmMMM7/CcQzKgVBqYTmFn+Z+mKm8J7k0A5F/jgCfjQ1WBhQyiOqD0lYuqBb+AyzMw9Ha2G3m6c8qQx+AlqnIceQp+Sb6i9UyQWbhr54+AjnZ0VzW2TAN0DmBT6PWmc6jDBE2PK2u+nF43dyP7Q0t1pOcX2fdRvH0mF2Q4JqN35rnHjVIeaXfIAVyUuw/aHCCiJy9iF5l1621zweI8KZrPZ9iJdb7DXJ3US0OSrtZ10imt7wHY7QesAzUMz1oZ3noB3qFJ/H18j97FYuw8QDN4oeKf30osvcSW2ExLo+VcbuAuo/sUIm8fMG9xocO3Ea19J9gFYivnHJ2KnyfovZlgW3v6ySx32abQiIyMjIyPjhlFDTLxpwIgFMnTp6A3g4IDKNY+stkwAMAoIAbasxBXqUWneSAWTMjt50lTqT29rFjvXohjsDNm2YPXDFlICmrJOZ3t6tHm8AiEAl0sCeLIIorIRt+cFbew/QRsoAXb4o1XSfoywzm0FTMAoYBNvLyFu8v8HpLBtD1iKgC17wHb7AI6d9wFbvguAIGTHd4E9wG7jgIyMjIyM+434c2R3HeV/Ffx6jtZu6ijl8h59T655jhR+rdHzDOP6beABCheb8O8/WFXeOyzgf5oAhVYnKxP7CwaAf1afJu8bSrhS6tdaXeGnrRenOqOlz9d6QwYnA/3TLd+GE7qe3chA5YF5DfY0vK3adfOX/gyNp2BW25MHdxAB9qvRiiP3/XpQQFGYDU4+Mi///XumXG8pjvaUAOsBGlf4jJt+YYEzeEzAdw06F19R3juM7D1wita86GR0CKfDHgLuXCc4Bri6vMLdfjMc4VNSUNsdodo2xu/1+Xl/K5+az8jIyMhYG/z5gJTMF1GtKq/a3rpyCvz5gJTMl9GtKq/a3rpyCmfQ4WwZmS+kXFVetb115ST48wEf/AGcfG1iw+tWbpbS2vJ3nQxcVr3lH3z5h972FUTLzYpOVk7l5hD+eYcYwDcAnewOotrZ4OtrPDucqi/LRX0/RR4qx7Nn4U8g+qjffvuN6Gf+nC85vwauHjaYyubqvWYKY4VEfSUMitdnBCT1Ue63R5439m+OgCn6DroAAaHPVQxKth/wkJgHmG8bmQMsT0D6EjDfvhVRKO3ywOQUgRA7nmL1uawZmHf1k+DPBwQ6NdcJ+k6Md1LA5f5ONdhJ8vZ5J0vLHT99srkGOjmJbd/G1r2Nriqnse1AZt1AalU5jW2HsuuG0qvKGRkZGRkZGRG0gcONyXsP9v8D0/IdJADiBNiXl3327WRGgOL/9HC/0XwlIURkRhC4tz6Z/fu7fUf2gHvfB9z3u0BGRkZGRkbGplHcnkgguQoSqtUXuhbs/wPtMwqV0HUJAvj5vk32b8IDuL23yn7qAXZ5u32hbRX7d3o82Df1FZXvbh9QOfhyxldr/+3xgXU9oKmvsHyr7F/XA269/eveBXrsv7N9QALe/tvjA0kPWAXGbvebkbHn+D/J5nMcHzx1UAAAAABJRU5ErkJggg==)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(data:image/png;base64,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)}.ui-state-active .ui-icon{background-image:url(data:image/png;base64,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)}.ui-state-highlight .ui-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEUug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8lgcyYAAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMMqUAscgnFocmpqkTzqymwVAPxfJ5PnIUUQOUKT04tEdWZyv3JCQSn96WS4pD97QfyW25A7NhSAbyhmVj0FEltA4vdiygBibXhoUYgykCUP7HwPTDeEqAIcHVMkZg7Zx4k0uFANs63hPQXCoRLAwdgGsr9Az7Qv7sgQGgg1aPl/BJLExBWgG4RFRLFImGmIquPC/klEGyCG0AuAXaJJC+B8FVe9NYQDEcXB8g6AQcjYJ1goJIggHWCrFR0S6kRHN5+4BzFi8NaoN35NRxUvL+JJdZr7PV4wK6fj8nIyMjIyNhr3OxdXAYq7FHZwB6bDSzSh4sF0utChqo0NAvaT1hLzXwFinmCzmeDucEQK18TTaQoFgP7bNC+RZ4OT4T6gQogDFYk+1QxQlj19QGSAWKiLYp8P0Ag1Gbz1ULfWHLg9iUnQNK5QQJcukm04blKLH2GgEJCY+HzXAZWCvHKco3Bp6MIaCjSXXRJyOxeqhnzEaF93MfFGW/O16ZvDL5TM4MJIjujz/cHypkQuuzRwWJ93BKdIt+wCRAPl9kpe2Ikkb2mFgGlxh/i40d3EHfdvoyMjIyMu43ylt/IAmGHnN5iIt7wKfbv01RAcJqFRl9lcjYQSnbQqKgC4fYOwSJt6N6trE0twZ9kN/PqNpTQeICvr4TLsDYC06U7BMjshS+v1/aT7IwQYD5LcgRQXMT2FrBfBLjZ6151jDElk9tPFfpUgk2yregusX25BJbwAFEfM+YI6vGAti4bTtizB+TjfQCrERyhKb2X8D6A9wX75P4t4neBYJeP6pdhg/gQl8MWvytzeSTjgOQBynQdh/iXKdxOrGJ/RkZGRsb9QmXihGr5+g8GGg9uTh+KoVZuNIzV+CwRucFBEyr1mVjx4irOxwM1BhirB6Q+2eNQi4eqR+aF6mELtoMzCR7V9RAFe/ZvQogNiyY8FPSUTFsLp8TeTmMui5mtw7bcaT0Yw2AA4wFRQIlkgq+1DQrNhkmoxS5Jq+u6bMAIGRECEANgXHTgWzwgBOhDH2l0oTQ4D8D5NMktBgNywAEMjo8rwATMZrPY7JGxBoJCkIBDQiAY09EGTUiBCWkUpISfGPR5AAwBfZiG2z7Ayc1yeKTxid39xBNwfHr4O0LA48ePFTvhYrF1r4tyAoz9n2MCqEuBtp/6GDR0oAYfG/R6wJExHYZHfhygsv7fEWCOj4bYmsP5A+pL4MkTfAnMlD4F+r3bobKvTyTA2P/w7PN+Agq2QW8piqMCpTBwenoKvX0AHGkGtP2YAPvTEWA7QUTAudn7/NxtOG46wWNmDtpBEkBzN7rBEvAFHp+YTB/q97qPAN4gHFqgBi8uLsC7qPCA6mg41G/+ErByPwEXDdoNxRhOx+M5jPEzQugS0ht+b1/Y3gEnYMAIAOIBE29/hIDucE8tmMsNOgK4B1RHFu4UCRlMHzv0xzcajcfdXWDs2h8TArBCkoDUJYDLmz6w7ip3BFS0ve5wTRwAn6keMA9I3QYbfSZ0DKbyt+7OXjGI1idPcfNyAyfAMlCrzaGqphYrxHocLHRJVycnfGUcbtT+jIyMjIw9x7Nn8fJSzG0TmFtO8rZT+XT3S3ub+tKJbbLd5diTVp50+zahyeHSslJ/YPrU0fuazrZO2CZ92/ZCCVXlGRiZKPJyPPRxyIFWeXLQBXJBKiq/3divEAN6ZwM200Qjm7EJBZeWm/PRWVCbYK7s7u2l4XaCz+lzgOfMfhMonXr7TWzeZb98dbgIzBT8Ub8eYYUqfZ4rVJ/MDbIDgPqTulJ/xvntWAtjIisqnwxOkGz0n077FARoY79GdA6HPE4rOy196NiMWHTZlSSApcOgXpy/fHV2joaNKu3ffsAnRcBf4K/6NcIG6tIxk3HyoXPjASqfUgXbYN5PzpL2njkR9QMjeDTVHDTCgRuxOegjoO0FvKzP/t/gmVdI24+G7NIe8JX6Wv3dDyldMA+4YB5wwTygtd+dwRqaTqrLb1l73zTSN52CNpnHuQOYPsDblybgxfkXh/oVtr+N1DEBJdhRJyd/Bd/q1z+cbNrD17iVKyajcnv9arhOkRPgsruuD6DmNPwpDNrLw2CoTgHni4yALr0L29+tiKAEIPn868ejx//8rpWP3OEOl5On9OwpcQm0MhafP/ey8f1uvDNIgGLQG8z4YO99ENgg95etwv4uYJYY8fUGHYH6j6fscHFZMftlAl9i+9XL73X3N/n+ZStOzfVfRvYXhrbdKOpEgVQTg/wsDuDD3kwOfQNMTJ5y+/ltUDWLunyxnRF46IqlBzGMY4X7inggREFioIyMjIyMHWCIB6ZNKAcXseo3vLTQTkVE7348dlwJJSz0+wLfmi8BhZqfw3D4ww/wHVLnEd5/fgYvXsDZ3MlsvYUbbnDjDZ3MN3TJG4+bxjAaDl8TBri9qxEw1ccao2wTNAMLHo2f+sjrXwb/9qHoYqgPMBXJTVfOpmrZH23y6uvo0LHSyY6fHGwKfHJlAuMFvObjDYrIqxBgQi20h7Hd/nYVLmno+eaNUm/eeH2GCuopntnhBJAlI2AHo9CCh1I1QxUdAbqqGY9BBLwyc3W4wYVhvY8A4BoIc1l5M7vnPWphZW9/Ses3n37y9a0uGqFwFQZsQQbd386DogpgEk+dzynsAZMJXq8+ns9NeukJ0PYrNATGGefJQlhkLo7DTXr+y3bNiOsDvrXTz/C2q1DXZH84iRNwrP88Nj+u2DjYEE6RBxD9Knj16ujVHC67A7422o02RwD3gB+t7EblWvu9geOFxSnd3ROmT+nJyQkhoPlsxVONc/3TEdBos+jtA+ZzcwHgTvD1cDjaYCcItA8w9i88A8b+mqSjc6Pvqd998QguEQPmQMeo23ODN86+p0/bn1buBkT6+oBhNZ/PYY4ZAHYb3PRd4LkZmPX68NRtMZn4ASvdA+qf0jMA5MP9eeg28Nug9QiLnj5A33U1MAES6xHAUNpz/9zFAYE1gqQDMT3G6xI9pwdw/aIgKoHCS1YGlRnSq9yCjdXjgN3j+N27YyROHxmuNAeNKPpYuXIyIyMjYy0M8eros59MF/PT2c602T7eA7zvhJ9dr/vzDjXaLp4Yc5+0wllzxzHv3gdmMMM7/CcQzKgVBqYTmFn+Z+mKm8J7k0A5F/jgCfjQ1WBhQyiOqD0lYuqBb+AyzMw9Ha2G3m6c8qQx+AlqnIceQp+Sb6i9UyQWbhr54+AjnZ0VzW2TAN0DmBT6PWmc6jDBE2PK2u+nF43dyP7Q0t1pOcX2fdRvH0mF2Q4JqN35rnHjVIeaXfIAVyUuw/aHCCiJy9iF5l1621zweI8KZrPZ9iJdb7DXJ3US0OSrtZ10imt7wHY7QesAzUMz1oZ3noB3qFJ/H18j97FYuw8QDN4oeKf30osvcSW2ExLo+VcbuAuo/sUIm8fMG9xocO3Ea19J9gFYivnHJ2KnyfovZlgW3v6ySx32abQiIyMjIyPjhlFDTLxpwIgFMnTp6A3g4IDKNY+stkwAMAoIAbasxBXqUWneSAWTMjt50lTqT29rFjvXohjsDNm2YPXDFlICmrJOZ3t6tHm8AiEAl0sCeLIIorIRt+cFbew/QRsoAXb4o1XSfoywzm0FTMAoYBNvLyFu8v8HpLBtD1iKgC17wHb7AI6d9wFbvguAIGTHd4E9wG7jgIyMjIyM+434c2R3HeV/Ffx6jtZu6ijl8h59T655jhR+rdHzDOP6beABCheb8O8/WFXeOyzgf5oAhVYnKxP7CwaAf1afJu8bSrhS6tdaXeGnrRenOqOlz9d6QwYnA/3TLd+GE7qe3chA5YF5DfY0vK3adfOX/gyNp2BW25MHdxAB9qvRiiP3/XpQQFGYDU4+Mi///XumXG8pjvaUAOsBGlf4jJt+YYEzeEzAdw06F19R3juM7D1wita86GR0CKfDHgLuXCc4Bri6vMLdfjMc4VNSUNsdodo2xu/1+Xl/K5+az8jIyMhYG/z5gJTMF1GtKq/a3rpyCvz5gJTMl9GtKq/a3rpyCmfQ4WwZmS+kXFVetb115ST48wEf/AGcfG1iw+tWbpbS2vJ3nQxcVr3lH3z5h972FUTLzYpOVk7l5hD+eYcYwDcAnewOotrZ4OtrPDucqi/LRX0/RR4qx7Nn4U8g+qjffvuN6Gf+nC85vwauHjaYyubqvWYKY4VEfSUMitdnBCT1Ue63R5439m+OgCn6DroAAaHPVQxKth/wkJgHmG8bmQMsT0D6EjDfvhVRKO3ywOQUgRA7nmL1uawZmHf1k+DPBwQ6NdcJ+k6Md1LA5f5ONdhJ8vZ5J0vLHT99srkGOjmJbd/G1r2Nriqnse1AZt1AalU5jW2HsuuG0qvKGRkZGRkZGRG0gcONyXsP9v8D0/IdJADiBNiXl3327WRGgOL/9HC/0XwlIURkRhC4tz6Z/fu7fUf2gHvfB9z3u0BGRkZGRkbGplHcnkgguQoSqtUXuhbs/wPtMwqV0HUJAvj5vk32b8IDuL23yn7qAXZ5u32hbRX7d3o82Df1FZXvbh9QOfhyxldr/+3xgXU9oKmvsHyr7F/XA269/eveBXrsv7N9QALe/tvjA0kPWAXGbvebkbHn+D/J5nMcHzx1UAAAAABJRU5ErkJggg==)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(data:image/png;base64,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)}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAe0lEQVRoge3OMQHAIBAAMcC/kjdZJHTI0A4XBdkz86wfO18H3hRUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUF8O8A8WdY6opAAAAAElFTkSuQmCC) 50% 50% repeat-x;opacity:.3;filter:alpha(opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAe0lEQVRoge3OMQHAIBAAMcC/kjdZJHTI0A4XBdkz86wfO18H3hRUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUF8O8A8WdY6opAAAAAElFTkSuQmCC) 50% 50% repeat-x;opacity:.3;filter:alpha(opacity=30);border-radius:8px}.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}.ui-widget{font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:0}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:0}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:0}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:0}.ui-widget-overlay{background:#666;opacity:.5;filter:alpha(opacity=50)}.watermark{color:#888!important}::-webkit-input-placeholder{color:#888}::-moz-placeholder{color:#888}:-ms-input-placeholder{color:#888}input:-moz-placeholder{color:#888}.ui-autocomplete-loading{background:#fff url(data:image/gif;base64,R0lGODlhEAALAPQAAP///zNah+Hm7dng6O7x9DddiTNah1d3nJqtw3+Xs8fS3k5vlm6JqaGzx4KatcrU4FFymDZciHGMq+ru8t/l7Pb3+V9+oeLo7vT2+MTP3LLB0dTc5fHz9gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA) right center no-repeat}.ui-autocomplete{max-height:150px;overflow-y:auto;overflow-x:hidden}* html .ui-autocomplete{height:150px}.ui-timepicker-div .ui-widget-header{margin-bottom:8px}.ui-timepicker-div dl{text-align:left}.ui-timepicker-div dl dt{float:left;clear:left;padding:0 0 0 5px}.ui-timepicker-div dl dd{margin:0 10px 10px 45%}.ui-timepicker-div td{font-size:90%}.ui-tpicker-grid-label{background:none;border:none;margin:0;padding:0}.ui-timepicker-rtl{direction:rtl}.ui-timepicker-rtl dl{text-align:right;padding:0 5px 0 0}.ui-timepicker-rtl dl dt{float:right;clear:right}.ui-timepicker-rtl dl dd{margin:0 45% 10px 10px}@-moz-keyframes progressBarKeyframes{from{background-position-x:0}to{background-position-x:47px}}@-webkit-keyframes progressBarKeyframes{from{background-position-x:0}to{background-position-x:47px}}@keyframes progressBarKeyframes{from{background-position-x:0}to{background-position-x:47px}}.ui-progressbar-value{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAYCAYAAAC8/X7cAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QwYAwcRFZ4/TAAAAmtJREFUWMO1l+lu2kAQx/+WlqMYCGmMzRGwcUhoVbWq1Ifq2+RF+hJ9hVRpohLuCB9AwAaqfqiPfjBEhtrcO5/wrGf2N4eXWeb223cXlCSeyUHIJGi5hzqagPny9ZZKAOfyZ9TyaWrw940u5noXJB4lJ3eeqXzCtUAP/qHZgzXpIx4lILFIcACuCzBM+HOY7kz6iGs+uRHABcAcCP/YUWAZCpbcJBZWgaDGYjbs7gJp8QOqC/igBACezr+2/nv5TtBavavCmvQ9+IWexMhqAMsNwiQICgDSpRpknl7bPPU0WIYCf8u77qYK7CHp4g2kbIoafLM/hGWqCGIl8chxAaQKVZQ5evBtdQTbUBDGeVQFkvkrlC9YavAdbQw7JPOvAUQPrADLlVDm6WW+q49hmRq28R3UQgmuiEvujBr882ACZzrALmx7t9Cb8xyK2Qw1+P7QgDMfYlcu0lZfdm+brAg5EoNm/DnZH5NfWsoLfg+7e9kQy3Z2g+dFiLm3sB06s19LHWOut/e22ykAlhch5S9gu3Tgm8oYc611kO3WAJKCBLnAwaGV+cEMZr9xsP3GAJK5CuQCR61tmoMZzN7jUT6I7QQHwAoVXBWzsCldd5r6FGbv4Wg/gRVgs2VUL3lqmW9o5kngvQrYzsoxmOBF3IgF2I77Oj2HTdOuTxc6va6tP+kzTDv3/9mE7YUtvlcqwAoSagt4GlLXZzDbP07qk/y1be+D5UXUpAK1o7KuTTFp3Z3cL7FsBylBwju5dNRRuV5+v+6XOoXRvltcQlwwDBNwhfX029b9z94wx5Xw/kj4jRfw5xHM3k9qs9M/9mQP+uNoCX0AAAAASUVORK5CYII=);background-position:0 0;-moz-animation:progressBarKeyframes 2s linear infinite;-o-animation:progressBarKeyframes 2s linear infinite;-webkit-animation:progressBarKeyframes 2s linear infinite;animation:progressBarKeyframes 2s linear infinite;-moz-transition-property:width;-o-transition-property:width;-webkit-transition-property:width;transition-property:width;-moz-transition-duration:.1s;-o-transition-duration:.1s;-webkit-transition-duration:.1s;transition-duration:.1s}.ui-tabs .ui-tabs-panel{padding:.5em}.ui-dialog{animation-name:ui-dialog-show;-webkit-animation-name:ui-dialog-show;animation-duration:.2s;-webkit-animation-duration:.2s;animation-timing-function:ease-in-out;-webkit-animation-timing-function:ease-in-out}@keyframes ui-dialog-show{0%{transform:translateY(-30px);opacity:0}100%{transform:translateY(0);opacity:1}}@-webkit-keyframes ui-dialog-show{0%{-webkit-transform:translateY(-30px);opacity:0}100%{-webkit-transform:translateY(0);opacity:1}}.ui-widget-overlay.ui-front{animation-name:ui-dialog-fadeIn;-webkit-animation-name:ui-dialog-fadeIn;animation-duration:.2s;-webkit-animation-duration:.2s;animation-timing-function:ease-in-out;-webkit-animation-timing-function:ease-in-out}@keyframes ui-dialog-fadeIn{0%{opacity:0}100%{opacity:.5}}@-webkit-keyframes ui-dialog-fadeIn{0%{opacity:0}100%{opacity:.5}}.page .dialog{display:none}.ui-dialog{padding:0;border-color:#333;background:#fcfcfc;box-shadow:rgba(20,20,20,.7) 0 0 50px;top:50px!important}.ui-dialog .ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom-color:#d1d1d1;background:#333;color:#fff;font-size:1.1em;font-weight:normal;text-transform:uppercase;padding:.6em 1em}body .ui-tooltip{border-width:1px;-webkit-box-shadow:none;box-shadow:none}@font-face{font-family:'FontAwesome';src:url('/ClientSource/Style/FontAwesome//fontawesome-webfont.eot?v=4.1.0');src:url('/ClientSource/Style/FontAwesome//fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'),url('/ClientSource/Style/FontAwesome//fontawesome-webfont.woff?v=4.1.0') format('woff'),url('/ClientSource/Style/FontAwesome//fontawesome-webfont.ttf?v=4.1.0') format('truetype'),url('/ClientSource/Style/FontAwesome//fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);}100%{-o-transform:rotate(359deg);}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-square:before,.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}body{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;margin:0;padding:0;color:#333}body.layout{background:url(data:image/png;base64,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) left top repeat-x #d1d1d1;background:linear-gradient(to bottom,#f2f2f2 0,#d1d1d1 370px) left top repeat-x #d1d1d1;min-height:370px}.page{max-width:1232px;min-width:768px;margin-left:auto;margin-right:auto}header,#header{position:relative;background-color:#333;margin:0;padding:0;height:34px}header #heading,#header #heading{float:left;height:34px}header #heading i,#header #heading i{display:block;height:34px;width:34px;background-image:url(data:image/png;base64,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)}header nav,#header nav{float:left;height:34px;padding:0;margin:0}header nav ul#menu,#header nav ul#menu{height:26px;padding:0;margin:8px 0 0 4px;list-style:none;z-index:100000;font-size:0;line-height:0}header nav ul#menu>li,#header nav ul#menu>li{display:inline-block;z-index:100000;font-size:13.2px;line-height:19.2px}header nav ul#menu>li.moveRight,#header nav ul#menu>li.moveRight{margin-left:20px}header nav ul#menu>li>a,#header nav ul#menu>li>a{display:inline-block;padding:2px 10px 4px 10px;height:20px;color:#fff;font-weight:400;text-transform:uppercase;text-decoration:none}header nav ul#menu>li>a:active,#header nav ul#menu>li>a:active{text-decoration:none}header nav ul#menu>li.active>a,#header nav ul#menu>li.active>a{background-color:#222}header nav ul#menu>li:hover>a,#header nav ul#menu>li:hover>a{background-color:#111;text-decoration:none}header nav ul#menu>li>ul,#header nav ul#menu>li>ul{z-index:100000;display:none;list-style:none;position:absolute;margin:0;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1;background-color:#f2f2f2;padding:0;min-width:180px;box-shadow:2px 2px 5px rgba(209,209,209,.5)}header nav ul#menu>li>ul li,#header nav ul#menu>li>ul li{position:relative;background-position:top;background-repeat:repeat-x;border-top:1px solid #e6e6e6}header nav ul#menu>li>ul li:first-child,#header nav ul#menu>li>ul li:first-child{border-top:1px solid #d1d1d1}header nav ul#menu>li>ul li:last-child,#header nav ul#menu>li>ul li:last-child{border-bottom:1px solid #d1d1d1}header nav ul#menu>li>ul li:hover,#header nav ul#menu>li>ul li:hover{border-top:1px solid #d9d9d9;background-color:#e6e6e6}header nav ul#menu>li>ul li a,#header nav ul#menu>li>ul li a{display:block;color:#000;padding:4px 8px;text-decoration:none}header nav ul#menu>li>ul li a:hover,#header nav ul#menu>li>ul li a:hover{color:#335a87;text-decoration:none}header nav ul#menu>li>ul li a:active,#header nav ul#menu>li>ul li a:active{text-decoration:none}header nav ul#menu>li>ul li i.fa-caret-right,#header nav ul#menu>li>ul li i.fa-caret-right{cursor:pointer;color:#666;font-size:16px;position:absolute;display:block;right:12px;top:7px}header nav ul#menu>li>ul li:hover i.fa-caret-right,#header nav ul#menu>li>ul li:hover i.fa-caret-right{color:#333}header nav ul#menu>li>ul ul,#header nav ul#menu>li>ul ul{display:none;list-style:none;position:absolute;top:-1px;left:180px;background-color:#f2f2f2;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1;padding:0;min-width:180px;box-shadow:2px 2px 5px rgba(209,209,209,.5)}header #headerMenu,#header #headerMenu{float:right;height:24px;padding:5px 8px;font-size:.9em;line-height:24px;text-align:right;color:#fff}header #headerMenu a,#header #headerMenu a{color:#fff;text-decoration:none}header #headerMenu a:hover,#header #headerMenu a:hover{color:#cddbec;text-decoration:none}header #SearchQuery,#header #SearchQuery{font-size:.9em;margin-left:6px;width:130px;background-color:#eee;-moz-transition-property:width;-o-transition-property:width;-webkit-transition-property:width;transition-property:width;-moz-transition-duration:.1s;-o-transition-duration:.1s;-webkit-transition-duration:.1s;transition-duration:.1s}header #SearchQuery:hover,#header #SearchQuery:hover,header #SearchQuery:focus,#header #SearchQuery:focus{background-color:#fff;width:190px}header .watermark,#header .watermark{background-color:#888}#QuickSearchMenu{max-height:400px;font-size:.9em;background:none;background-color:#fafafa}#QuickSearchMenu li:not(:last-child){border-bottom:1px solid #d8d8d8}#QuickSearchMenu li>a{padding:2px}#QuickSearchMenu li>a>i{margin-right:2px}#QuickSearchMenu li>a>div{padding-left:1.2857142857142858em;margin-left:2px}#layout_PageHeading{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAA8CAYAAABfESsNAAAAOUlEQVRIx+2SuREAIAzDFELL/uOSFVLx3Mm1C8nnABaNDJq5WJzAVkZGZXyPMg7+jUwCIeNZmdcZC2pxCZOpoRNgAAAAAElFTkSuQmCC) left top repeat-x #fff;background:linear-gradient(to bottom,#f2f2f2 0,#fff 50px) #fff;height:50px;padding:6px 20px 4px 20px;font-size:2em;color:#000;line-height:50px;position:relative;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1}#layout_PageHeading a{text-decoration:none}#layout_Page{background-color:#fff;overflow:auto;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;padding:0 30px 15px 30px;-moz-border-radius:0 0 4px 4px;-webkit-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}#layout_Error{min-height:200px}#layout_Error table{background-color:#fff}#layout_Error h1,#layout_Error h2,#layout_Error h3,#layout_Error h4,#layout_Error h5{color:#fff;white-space:pre-wrap}#layout_Error h2.error{margin-bottom:10px}#layout_Error .stacktrace{white-space:pre;overflow:auto}#layout_Error>div{margin:0 auto;width:650px}#layout_uiExtensions{display:none}footer,#footer{color:#777;padding:10px 0;text-align:center;margin:0;font-size:.9em}footer a:link,#footer a:link,footer a:visited,#footer a:visited,footer a:active,#footer a:active{color:#777}footer a:link,#footer a:link,footer a:active,#footer a:active{text-decoration:underline}footer a:hover,#footer a:hover{color:#5e8cc2;text-decoration:none}p{margin:0 0 20px 0;line-height:1.6em}ul{margin:0;padding:0 0 0 25px;list-style:square;line-height:1.6em}header,footer,nav,section{display:block}form{display:inline}img{border:none;padding:0;margin:0;vertical-align:bottom}code{font-family:Consolas,"Courier New",monospace}hr{border:none;border-bottom:1px dashed #aaa;margin-top:15px}a:link{color:#335a87;text-decoration:none}a:visited{color:#335a87}a:hover{color:#5e8cc2;text-decoration:underline}a:active{color:#335a87}a[disabled]{color:#6b6b6b;text-decoration:none;cursor:default}a.button{display:inline-block;padding:4px 10px;margin:2px;border:1px solid #1a5f95;background:#1e6dab;color:#fff;font-weight:bold;text-transform:uppercase;cursor:pointer;white-space:nowrap;text-decoration:none}a.button[disabled],a.button.disabled{background:#9e9e9e;border:1px solid #6b6b6b;cursor:default}a.button.alert{border-color:#900;background-color:#e51400}a.button.small{padding:2px 5px;font-size:.9em}a.button:hover{border:1px solid #6b6b6b;background:#9e9e9e}a.button i{margin-right:10px}div.actionBar{margin:0 -30px 0 -30px;padding:10px;border-top:1px solid #d1d1d1;text-align:right;background-color:#f2f2f2}div.actionBar:not(:first-child){margin-top:10px}div.actionBar:last-child{margin-bottom:-15px;-moz-border-radius:0 0 6px 6px;-webkit-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}h1,h2,h3,h4,h5,h6{color:#000;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;margin:0}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0!important;padding-top:0!important}h1>a:link,h2>a:link,h3>a:link,h4>a:link,h5>a:link,h6>a:link{text-decoration:none}h1{font-size:24px}h2{font-size:20px;padding:8px 0 4px 0}h3{font-size:18px}h4{font-size:14px}h5,h6{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-stretch:normal;font-weight:bold}table{border:none;border-collapse:collapse;width:100%}table td{padding:5px;margin:0;border:none;vertical-align:top}table th{padding:5px;margin:0;text-align:left;font-weight:bold;vertical-align:top}table.none{border:none!important}table.none tr,table.none td,table.none th{padding:0!important;margin:0!important;background:none!important;border:none!important}table.genericData{border:solid 1px #f4f4f4;border-collapse:collapse}table.genericData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}table.genericData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}table.genericData>thead>tr>th,table.genericData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}table.genericData>tbody>tr:hover>td{background-color:#fefefe}table.genericData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}table.genericData>tfoot>tr>th,table.genericData>tfoot>tr>td{background-color:#f4f4f4}table.genericData td.id{text-align:center}table.genericData td.id a{padding:0 6px}.smallTable th,.smallTable td{font-size:.9em}.dataTables_wrapper{position:relative}.dataTables_wrapper .dataTables_filter{position:absolute;height:20px;margin-top:-20px;right:0;font-size:.9em;-moz-opacity:.3;opacity:.3}.dataTables_wrapper .dataTables_filter input{font-size:.95em;padding:0;height:1.4em;width:150px}.dataTables_wrapper .dataTables_length{position:absolute;height:20px;margin-top:-20px;right:200px;font-size:.9em;-moz-opacity:.3;opacity:.3}.dataTables_wrapper .dataTables_length select{font-size:.95em;padding:0;height:1.4em}.dataTables_wrapper .dataTables_paginate{text-align:right;background-color:#f4f4f4;padding:2px 4px;font-size:.9em}.dataTables_wrapper .dataTables_paginate a{cursor:pointer;padding:2px;margin:0 3px;color:#335a87;background-repeat:no-repeat;-moz-opacity:.3;opacity:.3;text-transform:uppercase}.dataTables_wrapper .dataTables_paginate .first{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAKklEQVQI12NgQALGUe0SQPwfnY0iCcVwNjZJFAxT8J+QAvwmEHQDPl8AAAYqTAY6Jng6AAAAAElFTkSuQmCC);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .first.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAKklEQVQI12NgQAKxsbESQPwfnY0iCcVwNjZJFAxT8J+QAvwmEHQDPl8AAEm8TIFT3+fIAAAAAElFTkSuQmCC)}.dataTables_wrapper .dataTables_paginate .previous{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAGMo9olgPg/XkmsCpAlcSn4T0gBfhMIugFdEQCMVyg5CPiC8wAAAABJRU5ErkJggg==);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .previous.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAH6+vokgPg/XkmsCpAlcSn4T0gBfhMIugFdEQDzojUdMBAGjgAAAABJRU5ErkJggg==)}.dataTables_wrapper .dataTables_paginate .next{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Mwjmr/D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwCZ1Cg5w6CPqwAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper .dataTables_paginate .next.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Po6+v7D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwDwPjUdLMfQ6AAAAABJRU5ErkJggg==)}.dataTables_wrapper .dataTables_paginate .last{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAK0lEQVQI12Mwjmr/D8QSDECAzIYDqCBYApmNTQE6liCk4D/JJuB1A05fAABJ/EwGJKVDGAAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper .dataTables_paginate .last.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAK0lEQVQI12OIjY39D8QSDECAzIYDqCBYApmNTQE6liCk4D/JJuB1A05fAACQykyB48rZCQAAAABJRU5ErkJggg==)}.dataTables_wrapper .dataTables_paginate .paginate_active{font-weight:bold;color:#1e6dab}.dataTables_wrapper .dataTables_paginate .paginate_button_disabled{color:#ccc;cursor:default}.dataTables_wrapper .dataTables_paginate .paginate_enabled_previous{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAGMo9olgPg/XkmsCpAlcSn4T0gBfhMIugFdEQCMVyg5CPiC8wAAAABJRU5ErkJggg==);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .paginate_disabled_previous{color:#ccc;cursor:default;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAH6+vokgPg/XkmsCpAlcSn4T0gBfhMIugFdEQDzojUdMBAGjgAAAABJRU5ErkJggg==);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .paginate_enabled_next{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Mwjmr/D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwCZ1Cg5w6CPqwAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper .dataTables_paginate .paginate_disabled_next{color:#ccc;cursor:default;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Po6+v7D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwDwPjUdLMfQ6AAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper:hover .dataTables_filter,.dataTables_wrapper:hover .dataTables_length,.dataTables_wrapper:hover .dataTables_paginate a{-moz-opacity:1;opacity:1}.dataTables_wrapper table>thead tr>th{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAD6CAYAAACoLMeFAAAAdElEQVRo3u3bOwqAMBAFwBwjh/CUluKRhfVTiil0UYjMwJLqLfmUYUuBtw3jUreKfc2E43aTi/C9Jo3wUR4WAAAAAAAAejBPc90q9jUTjkdNTuGjPj9/bgfpO0i/AgAAAAAAAPQnPZ6YHpBsNEnNefrt4+9Wmn6nW/cZ1MQAAAAASUVORK5CYII=);background-repeat:no-repeat}.dataTables_wrapper table>thead tr>th.sorting{background-position:right center;cursor:pointer}.dataTables_wrapper table>thead tr>th.sorting_desc{background-position:right bottom;cursor:pointer}.dataTables_wrapper table>thead tr>th.sorting_asc{background-position:right top;cursor:pointer}.dataTables_wrapper table>thead tr>th.sorting_disabled{background-image:none}.jobStatus{color:#333}.jobStatus.Closed{color:#9e9e9e}.jobStatus.Open{color:#60a917}.jobStatus.AwaitingWarrantyRepair,.jobStatus.AwaitingRepairs{color:#1e6dab}.jobStatus.AwaitingDeviceReturn,.jobStatus.AwaitingUserAction,.jobStatus.AwaitingAccountingPayment,.jobStatus.AwaitingAccountingCharge{color:#f0a30a}.jobStatus.AwaitingInsuranceProcessing{color:#6a00ff}.deviceStatus{color:#333}.deviceStatus.Decommissioned{color:#9e9e9e}.deviceStatus.Active{color:#60a917}.deviceStatus.NotEnrolled{color:#f0a30a}table.jobTable{border:solid 1px #f4f4f4;border-collapse:collapse;table-layout:fixed}table.jobTable>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}table.jobTable>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}table.jobTable>thead>tr>th,table.jobTable>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}table.jobTable>tbody>tr:hover>td{background-color:#fefefe}table.jobTable>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}table.jobTable>tfoot>tr>th,table.jobTable>tfoot>tr>td{background-color:#f4f4f4}table.jobTable td{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}table.jobTable.hideStatusClosed tr[data-status=Closed]{display:none}table.jobTable td.id,table.jobTable th.id{width:50px;text-align:center}table.jobTable td.id a,table.jobTable th.id a{padding:0 6px}table.jobTable tr.statusSlaWarning td{background-color:#fdeed1}table.jobTable tr.statusSlaWarning td:not(:last-child){border-right:1px solid #f8e9cb}table.jobTable tr.statusSlaExpired td{background-color:#ffd7d3}table.jobTable tr.statusSlaExpired td:not(:last-child){border-right:1px solid #fad2ce}table.jobTable tr:nth-child(odd).statusSlaWarning td{background-color:#fcedcf!important}table.jobTable tr:nth-child(odd).statusSlaExpired td{background-color:#fed6d2!important}table.jobTable tr:hover.statusSlaWarning td{background-color:#fbebca!important}table.jobTable tr:hover.statusSlaExpired td{background-color:#fed1cd!important}table.jobTable div.queues{display:inline-block;float:right}table.jobTable td.lastActive,table.jobTable th.lastActive{width:130px}table.jobTable td.dates,table.jobTable th.dates{width:130px}table.jobTable td.type,table.jobTable th.type{width:50px}table.jobTable td.device,table.jobTable th.device{width:110px}table.jobTable td.user,table.jobTable th.user{width:240px}table.jobTable td.technician,table.jobTable th.technician{width:80px}table.jobTable td.location,table.jobTable th.location{width:200px}div.jobTable>a.dataTables_showStatusClosed{margin:10px 5px}div.jobTable>h3,div.jobTable>div.allClosed_container{margin:50px 20px!important}div.jobTable>h3 a.button,div.jobTable>div.allClosed_container a.button{margin-top:10px}table.deviceTable tr.decommissioned{background-color:#ededed}textarea{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;border:1px solid #ccc;min-height:75px;padding:2px;color:#444;width:200px}input[type="text"],input[type="password"],input[type="file"],input[type="number"]{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;border:1px solid #ccc;padding:2px;color:#444;width:200px}input[type="text"].small,input[type="password"].small,input[type="file"].small,input[type="number"].small{padding:0 2px;width:150px}input[type="text"].discreet,input[type="password"].discreet,input[type="file"].discreet,input[type="number"].discreet{border:1px solid #fff}input[type="text"].discreet:hover,input[type="password"].discreet:hover,input[type="file"].discreet:hover,input[type="number"].discreet:hover,input[type="text"].discreet:focus,input[type="password"].discreet:focus,input[type="file"].discreet:focus,input[type="number"].discreet:focus{border:1px solid #ccc}input[type="checkbox"],input[type="radio"]{margin-right:4px;vertical-align:sub}select{font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-size:12px;border:1px solid #ccc;padding:2px;color:#444}select.small{padding:0}input[type="submit"],button{font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;padding:5px}input[type="submit"].button,button.button{font-size:12px;padding:4px 10px 4px 10px;margin:2px;border:1px solid #1a5f95;background:#1e6dab;color:#fff;font-weight:600;text-transform:uppercase;cursor:pointer}input[type="submit"].button.alert,button.button.alert{border-color:#900;background-color:#e51400}input[type="submit"].button.small,button.button.small{padding:2px 5px;font-size:.9em}input[type="submit"].button[disabled],button.button[disabled]{background:#9e9e9e;border:1px solid #6b6b6b;cursor:default}input[type="submit"].button:hover,button.button:hover{border:1px solid #6b6b6b;background:#9e9e9e}ul.none{list-style:none;margin:0;padding:0}ul.none li{margin:0}div.form{margin:0 auto}div.form>p.actions{text-align:right}div.form>table{border-top:6px solid #1e6dab;border-left:1px solid #1e6dab;border-right:1px solid #1e6dab;border-bottom:3px solid #1e6dab;background-color:#fff}div.form>table>tbody>tr>td,div.form>table>tbody>tr>th{background:none;border:none;margin:0;padding:8px 5px}div.form>table>tbody>tr>th{font-weight:normal;text-align:right}div.form>table>tbody>tr:nth-child(odd){background-color:#f2f2f2;margin:0;padding:0}div.form>table>tbody>tr>td.details{padding:0}div.form>table>tbody>tr>th.name{width:150px;text-align:right}div.form>table table.sub>tbody>tr:not(:first-child)>th,div.form>table table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}div.form>table table.sub>tbody>tr>th{font-weight:normal;text-align:right}div.form>table table.sub>tbody>tr>th.name{text-align:right}#pageMenu td{border-right:1px dashed #aaa;width:33%;padding:10px}#pageMenu td .pageMenuArea>.fa{font-size:1.3em;color:#6b6b6b;margin-right:4px}#pageMenu td .pageMenuArea>a,#pageMenu td .pageMenuArea>h3{text-decoration:none;font-size:1.2em}#pageMenu td .pageMenuArea .pageMenuBlurb{font-size:.9em;color:#888;margin-bottom:10px}#pageMenu td .pageMenuArea .pageMenuBlurb a{text-decoration:none}#pageMenu td .pageMenuArea:not(:last-child){border-bottom:1px dashed #aaa}#pageMenu td .pageMenuArea.noSeperator{border-bottom:none}#pageMenu td:first-child{padding-left:0}#pageMenu td:last-child{border-right:none;padding-right:0}div.disco-attachmentUpload-dropTarget{display:none}div.disco-attachmentUpload-dropTarget.dragHighlight{display:block;position:absolute;z-index:1000;top:0;left:0;width:calc(100% - 6px);height:calc(100% - 6px);background-color:rgba(251,218,152,.5);border:3px dashed #f0a30a}div.disco-attachmentUpload-dropTarget.dragHighlight h2{margin-top:3em!important;color:#2c1e02;text-align:center;font-weight:bold}div.disco-attachmentUpload-dropTarget.dragHighlight.dragHover{background-color:rgba(173,235,110,.5);border:3px dashed #60a917}div.disco-attachmentUpload-dropTarget.dragHighlight.dragHover h2{color:#000}div.disco-attachmentUpload-progress{position:absolute;right:0;bottom:48px}div.disco-attachmentUpload-progress>div{background-color:#fafafa;padding:4px 8px}div.disco-attachmentUpload-progress>div i{color:#1e6dab;margin-right:4px}div.disco-attachmentUpload-commentDialog{padding:.25em .5em!important}div.disco-attachmentUpload-commentDialog table{border:solid 1px #f4f4f4;border-collapse:collapse;table-layout:fixed}div.disco-attachmentUpload-commentDialog table>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}div.disco-attachmentUpload-commentDialog table>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}div.disco-attachmentUpload-commentDialog table>thead>tr>th,div.disco-attachmentUpload-commentDialog table>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}div.disco-attachmentUpload-commentDialog table>tbody>tr:hover>td{background-color:#fefefe}div.disco-attachmentUpload-commentDialog table>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}div.disco-attachmentUpload-commentDialog table>tfoot>tr>th,div.disco-attachmentUpload-commentDialog table>tfoot>tr>td{background-color:#f4f4f4}div.disco-attachmentUpload-commentDialog table th{width:80px}div.disco-attachmentUpload-commentDialog table td.filename{font-family:Consolas,"Courier New",monospace;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}div.disco-attachmentUpload-commentDialog table input.comments{width:calc(100% - 5px)}div.disco-attachmentUpload-commentDialog table td.thumbnail{display:none;text-align:center}div.disco-attachmentUpload-commentDialog table td.thumbnail img{border:1px solid #9e9e9e;max-height:250px;max-width:374px}div.disco-attachmentUpload-imageDialog{background-color:#000!important;padding:0!important;overflow:hidden!important;width:720px!important;height:540px!important}.d-priority-high{color:#fa6800;width:1.2857142857142858em;text-align:center}.d-priority-high:before{content:""}.d-priority-normal{color:#60a917;width:1.2857142857142858em;text-align:center}.d-priority-normal:before{content:""}.d-priority-low{color:#1e6dab;width:1.2857142857142858em;text-align:center}.d-priority-low:before{content:""}.fa-stack .d-priority-high,.fa-stack .d-priority-normal,.fa-stack .d-priority-low{width:100%;font-size:.8em;margin-left:.5em;margin-top:.4em;opacity:.6}.d-lime{color:#a4c400}.d-green{color:#60a917}.d-emerald{color:#008a00}.d-teal{color:#00aba9}.d-cyan{color:#1ba1e2}.d-cobalt{color:#0050ef}.d-indigo{color:#6a00ff}.d-violet{color:#a0f}.d-pink{color:#f472d0}.d-magenta{color:#d80073}.d-crimson{color:#a20025}.d-red{color:#e51400}.d-orange{color:#fa6800}.d-amber{color:#f0a30a}.d-yellow{color:#e3c800}.d-brown{color:#825a2c}.d-olive{color:#6d8764}.d-steel{color:#647689}.d-mauve{color:#76608a}.d-sienna{color:#a0522d}table.subtleHighlight{border:1px solid #ccc;background-color:#ededed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}td.subtleHighlight{border:1px solid #ccc;background-color:#ededed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.field-validation-error{color:#e51400!important}.field-validation-valid{display:none}.input-validation-error{border:1px solid #e51400!important;background-color:#fff7f7!important}.validation-summary-errors{font-weight:bold!important;color:#e51400!important}.validation-summary-valid{display:none}.ajaxLoading{height:11px;width:16px;display:inline-block;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEAALAPQAAP///zNah+Hm7dng6O7x9DddiTNah1d3nJqtw3+Xs8fS3k5vlm6JqaGzx4KatcrU4FFymDZciHGMq+ru8t/l7Pb3+V9+oeLo7vT2+MTP3LLB0dTc5fHz9gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA);margin-bottom:0}.ajaxOk{color:#60a917}.ajaxSave{color:#1e6dab;cursor:pointer}.ajaxRemove{color:#e51400;cursor:pointer;opacity:.8}.ajaxRemove:hover{opacity:1}#layout_Page div.hiddenDialog{display:none}* html .clearfix{height:1%;overflow:visible}*+html .clearfix{min-height:1%}.clearfix:after{clear:both;content:".";display:block;height:0;visibility:hidden;font-size:0}div.columnHost .column50{float:left;width:50%}.hidden{display:none}.success{color:#60a917}.information{color:#1e6dab}.warning{color:#f0a30a}.error{color:#e51400}.alert{color:#fa6800}.smallText{font-size:.9em}.smallMessage{font-style:italic;color:#666;font-size:.9em}.nowrap{white-space:nowrap}.code{font-family:Consolas,"Courier New",monospace}div.code{border:1px dashed #bbb;background-color:#fff;margin:3px 6px;padding:4px;font-size:.9em}a.smallLink{font-size:.9em}textarea.block{width:250px;height:100px}.checkboxBulkSelectContainer{margin-top:6px;font-size:.8em}.checkboxBulkSelectContainer a{text-decoration:none}.ui-widget .checkboxBulkSelectContainer{font-size:1em}#licence{text-align:justify}#licence p{font-size:.9em}#licence li{font-size:.9em} \ No newline at end of file +html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:alpha(opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;width:100%;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url(data:image/gif;base64,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);height:100%;filter:alpha(opacity=25);opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAeUlEQVRoge3OMQHAIBAAsVL/nh8JDDfAkCjImpn5HvbfDpwIVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVhtqiwTEKTLXTgAAAABJRU5ErkJggg==) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAYAAABHLFpgAAAALElEQVQYlWN49OjRfyYGBgaGIUT8//8fSqBx0Yh///4RL8vAwAAVQ2MNOwIAl6g6KkOJwk8AAAAASUVORK5CYII=) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAANUlEQVQ4je3LMQoAIBADwb38/6t5wFXaWAiCtUiaYZvF9hBACOFbuntVVe11B0CSjjeE8BwThQIJ8dhEl0YAAAAASUVORK5CYII=) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAANklEQVQ4jWN48uTJfyYGBgaGUWKUGCWGLfHt2zcoi5GREYNgYmJCZiG42IiB98woMUqMEtgIAMdjCdyg+eEBAAAAAElFTkSuQmCC) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAMElEQVQ4je3LIQ4AIBTD0O3f/8wrFgmKhMy8pKJKwkhSKeVbbGuAPU9f4PIopTxgAeS0DRtI4yK0AAAAAElFTkSuQmCC) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAP0lEQVQ4je3PMQrAMABC0a/3v2zX0mCXNkOgc6C4PARd5DqPGKCU8luS8SbAQhiCQRgJE56kZTfbbP9RSvnkBsWcEAZRWcgqAAAAAElFTkSuQmCC) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAPklEQVQ4je3PMQqAMABD0Z/c/7aCIAXjJIhD10LJ8vgZw30eMUApZV/GhZNgSTjoLYElY/hNMJ/S6gullCkPiCIPCr4NiEwAAAAASUVORK5CYII=) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:alpha(opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:alpha(opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:alpha(opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(data:image/png;base64,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)}.ui-widget-header .ui-icon{background-image:url(data:image/png;base64,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)}.ui-state-default .ui-icon{background-image:url(data:image/png;base64,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)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(data:image/png;base64,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)}.ui-state-active .ui-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUWG2rLCAAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMMqUAscgnFocmpqkTzqymwVAPxfJ5PnIUUQOUKT04tEdWZyv3JCQSn96WS4pD97QfyW25A7NhSAbyhmVj0FEltA4vdiygBibXhoUYgykCUP7HwPTDeEqAIcHVMkZg7Zx4k0uFANs63hPQXCoRLAwdgGsr9Az7Qv7sgQGgg1aPl/BJLExBWgG4RFRLFImGmIquPC/klEGyCG0AuAXaJJC+B8FVe9NYQDEcXB8g6AQcjYJ1goJIggHWCrFR0S6kRHN5+4BzFi8NaoN35NRxUvL+JJdZr7PV4wK6fj8nIyMjIyNhr3OxdXAYq7FHZwB6bDSzSh4sF0utChqo0NAvaT1hLzXwFinmCzmeDucEQK18TTaQoFgP7bNC+RZ4OT4T6gQogDFYk+1QxQlj19QGSAWKiLYp8P0Ag1Gbz1ULfWHLg9iUnQNK5QQJcukm04blKLH2GgEJCY+HzXAZWCvHKco3Bp6MIaCjSXXRJyOxeqhnzEaF93MfFGW/O16ZvDL5TM4MJIjujz/cHypkQuuzRwWJ93BKdIt+wCRAPl9kpe2Ikkb2mFgGlxh/i40d3EHfdvoyMjIyMu43ylt/IAmGHnN5iIt7wKfbv01RAcJqFRl9lcjYQSnbQqKgC4fYOwSJt6N6trE0twZ9kN/PqNpTQeICvr4TLsDYC06U7BMjshS+v1/aT7IwQYD5LcgRQXMT2FrBfBLjZ6151jDElk9tPFfpUgk2yregusX25BJbwAFEfM+YI6vGAti4bTtizB+TjfQCrERyhKb2X8D6A9wX75P4t4neBYJeP6pdhg/gQl8MWvytzeSTjgOQBynQdh/iXKdxOrGJ/RkZGRsb9QmXihGr5+g8GGg9uTh+KoVZuNIzV+CwRucFBEyr1mVjx4irOxwM1BhirB6Q+2eNQi4eqR+aF6mELtoMzCR7V9RAFe/ZvQogNiyY8FPSUTFsLp8TeTmMui5mtw7bcaT0Yw2AA4wFRQIlkgq+1DQrNhkmoxS5Jq+u6bMAIGRECEANgXHTgWzwgBOhDH2l0oTQ4D8D5NMktBgNywAEMjo8rwATMZrPY7JGxBoJCkIBDQiAY09EGTUiBCWkUpISfGPR5AAwBfZiG2z7Ayc1yeKTxid39xBNwfHr4O0LA48ePFTvhYrF1r4tyAoz9n2MCqEuBtp/6GDR0oAYfG/R6wJExHYZHfhygsv7fEWCOj4bYmsP5A+pL4MkTfAnMlD4F+r3bobKvTyTA2P/w7PN+Agq2QW8piqMCpTBwenoKvX0AHGkGtP2YAPvTEWA7QUTAudn7/NxtOG46wWNmDtpBEkBzN7rBEvAFHp+YTB/q97qPAN4gHFqgBi8uLsC7qPCA6mg41G/+ErByPwEXDdoNxRhOx+M5jPEzQugS0ht+b1/Y3gEnYMAIAOIBE29/hIDucE8tmMsNOgK4B1RHFu4UCRlMHzv0xzcajcfdXWDs2h8TArBCkoDUJYDLmz6w7ip3BFS0ve5wTRwAn6keMA9I3QYbfSZ0DKbyt+7OXjGI1idPcfNyAyfAMlCrzaGqphYrxHocLHRJVycnfGUcbtT+jIyMjIw9x7Nn8fJSzG0TmFtO8rZT+XT3S3ub+tKJbbLd5diTVp50+zahyeHSslJ/YPrU0fuazrZO2CZ92/ZCCVXlGRiZKPJyPPRxyIFWeXLQBXJBKiq/3divEAN6ZwM200Qjm7EJBZeWm/PRWVCbYK7s7u2l4XaCz+lzgOfMfhMonXr7TWzeZb98dbgIzBT8Ub8eYYUqfZ4rVJ/MDbIDgPqTulJ/xvntWAtjIisqnwxOkGz0n077FARoY79GdA6HPE4rOy196NiMWHTZlSSApcOgXpy/fHV2joaNKu3ffsAnRcBf4K/6NcIG6tIxk3HyoXPjASqfUgXbYN5PzpL2njkR9QMjeDTVHDTCgRuxOegjoO0FvKzP/t/gmVdI24+G7NIe8JX6Wv3dDyldMA+4YB5wwTygtd+dwRqaTqrLb1l73zTSN52CNpnHuQOYPsDblybgxfkXh/oVtr+N1DEBJdhRJyd/Bd/q1z+cbNrD17iVKyajcnv9arhOkRPgsruuD6DmNPwpDNrLw2CoTgHni4yALr0L29+tiKAEIPn868ejx//8rpWP3OEOl5On9OwpcQm0MhafP/ey8f1uvDNIgGLQG8z4YO99ENgg95etwv4uYJYY8fUGHYH6j6fscHFZMftlAl9i+9XL73X3N/n+ZStOzfVfRvYXhrbdKOpEgVQTg/wsDuDD3kwOfQNMTJ5y+/ltUDWLunyxnRF46IqlBzGMY4X7inggREFioIyMjIyMHWCIB6ZNKAcXseo3vLTQTkVE7348dlwJJSz0+wLfmi8BhZqfw3D4ww/wHVLnEd5/fgYvXsDZ3MlsvYUbbnDjDZ3MN3TJG4+bxjAaDl8TBri9qxEw1ccao2wTNAMLHo2f+sjrXwb/9qHoYqgPMBXJTVfOpmrZH23y6uvo0LHSyY6fHGwKfHJlAuMFvObjDYrIqxBgQi20h7Hd/nYVLmno+eaNUm/eeH2GCuopntnhBJAlI2AHo9CCh1I1QxUdAbqqGY9BBLwyc3W4wYVhvY8A4BoIc1l5M7vnPWphZW9/Ses3n37y9a0uGqFwFQZsQQbd386DogpgEk+dzynsAZMJXq8+ns9NeukJ0PYrNATGGefJQlhkLo7DTXr+y3bNiOsDvrXTz/C2q1DXZH84iRNwrP88Nj+u2DjYEE6RBxD9Knj16ujVHC67A7422o02RwD3gB+t7EblWvu9geOFxSnd3ROmT+nJyQkhoPlsxVONc/3TEdBos+jtA+ZzcwHgTvD1cDjaYCcItA8w9i88A8b+mqSjc6Pvqd998QguEQPmQMeo23ODN86+p0/bn1buBkT6+oBhNZ/PYY4ZAHYb3PRd4LkZmPX68NRtMZn4ASvdA+qf0jMA5MP9eeg28Nug9QiLnj5A33U1MAES6xHAUNpz/9zFAYE1gqQDMT3G6xI9pwdw/aIgKoHCS1YGlRnSq9yCjdXjgN3j+N27YyROHxmuNAeNKPpYuXIyIyMjYy0M8eros59MF/PT2c602T7eA7zvhJ9dr/vzDjXaLp4Yc5+0wllzxzHv3gdmMMM7/CcQzKgVBqYTmFn+Z+mKm8J7k0A5F/jgCfjQ1WBhQyiOqD0lYuqBb+AyzMw9Ha2G3m6c8qQx+AlqnIceQp+Sb6i9UyQWbhr54+AjnZ0VzW2TAN0DmBT6PWmc6jDBE2PK2u+nF43dyP7Q0t1pOcX2fdRvH0mF2Q4JqN35rnHjVIeaXfIAVyUuw/aHCCiJy9iF5l1621zweI8KZrPZ9iJdb7DXJ3US0OSrtZ10imt7wHY7QesAzUMz1oZ3noB3qFJ/H18j97FYuw8QDN4oeKf30osvcSW2ExLo+VcbuAuo/sUIm8fMG9xocO3Ea19J9gFYivnHJ2KnyfovZlgW3v6ySx32abQiIyMjIyPjhlFDTLxpwIgFMnTp6A3g4IDKNY+stkwAMAoIAbasxBXqUWneSAWTMjt50lTqT29rFjvXohjsDNm2YPXDFlICmrJOZ3t6tHm8AiEAl0sCeLIIorIRt+cFbew/QRsoAXb4o1XSfoywzm0FTMAoYBNvLyFu8v8HpLBtD1iKgC17wHb7AI6d9wFbvguAIGTHd4E9wG7jgIyMjIyM+434c2R3HeV/Ffx6jtZu6ijl8h59T655jhR+rdHzDOP6beABCheb8O8/WFXeOyzgf5oAhVYnKxP7CwaAf1afJu8bSrhS6tdaXeGnrRenOqOlz9d6QwYnA/3TLd+GE7qe3chA5YF5DfY0vK3adfOX/gyNp2BW25MHdxAB9qvRiiP3/XpQQFGYDU4+Mi///XumXG8pjvaUAOsBGlf4jJt+YYEzeEzAdw06F19R3juM7D1wita86GR0CKfDHgLuXCc4Bri6vMLdfjMc4VNSUNsdodo2xu/1+Xl/K5+az8jIyMhYG/z5gJTMF1GtKq/a3rpyCvz5gJTMl9GtKq/a3rpyCmfQ4WwZmS+kXFVetb115ST48wEf/AGcfG1iw+tWbpbS2vJ3nQxcVr3lH3z5h972FUTLzYpOVk7l5hD+eYcYwDcAnewOotrZ4OtrPDucqi/LRX0/RR4qx7Nn4U8g+qjffvuN6Gf+nC85vwauHjaYyubqvWYKY4VEfSUMitdnBCT1Ue63R5439m+OgCn6DroAAaHPVQxKth/wkJgHmG8bmQMsT0D6EjDfvhVRKO3ywOQUgRA7nmL1uawZmHf1k+DPBwQ6NdcJ+k6Md1LA5f5ONdhJ8vZ5J0vLHT99srkGOjmJbd/G1r2Nriqnse1AZt1AalU5jW2HsuuG0qvKGRkZGRkZGRG0gcONyXsP9v8D0/IdJADiBNiXl3327WRGgOL/9HC/0XwlIURkRhC4tz6Z/fu7fUf2gHvfB9z3u0BGRkZGRkbGplHcnkgguQoSqtUXuhbs/wPtMwqV0HUJAvj5vk32b8IDuL23yn7qAXZ5u32hbRX7d3o82Df1FZXvbh9QOfhyxldr/+3xgXU9oKmvsHyr7F/XA269/eveBXrsv7N9QALe/tvjA0kPWAXGbvebkbHn+D/J5nMcHzx1UAAAAABJRU5ErkJggg==)}.ui-state-highlight .ui-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEUug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8lgcyYAAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMMqUAscgnFocmpqkTzqymwVAPxfJ5PnIUUQOUKT04tEdWZyv3JCQSn96WS4pD97QfyW25A7NhSAbyhmVj0FEltA4vdiygBibXhoUYgykCUP7HwPTDeEqAIcHVMkZg7Zx4k0uFANs63hPQXCoRLAwdgGsr9Az7Qv7sgQGgg1aPl/BJLExBWgG4RFRLFImGmIquPC/klEGyCG0AuAXaJJC+B8FVe9NYQDEcXB8g6AQcjYJ1goJIggHWCrFR0S6kRHN5+4BzFi8NaoN35NRxUvL+JJdZr7PV4wK6fj8nIyMjIyNhr3OxdXAYq7FHZwB6bDSzSh4sF0utChqo0NAvaT1hLzXwFinmCzmeDucEQK18TTaQoFgP7bNC+RZ4OT4T6gQogDFYk+1QxQlj19QGSAWKiLYp8P0Ag1Gbz1ULfWHLg9iUnQNK5QQJcukm04blKLH2GgEJCY+HzXAZWCvHKco3Bp6MIaCjSXXRJyOxeqhnzEaF93MfFGW/O16ZvDL5TM4MJIjujz/cHypkQuuzRwWJ93BKdIt+wCRAPl9kpe2Ikkb2mFgGlxh/i40d3EHfdvoyMjIyMu43ylt/IAmGHnN5iIt7wKfbv01RAcJqFRl9lcjYQSnbQqKgC4fYOwSJt6N6trE0twZ9kN/PqNpTQeICvr4TLsDYC06U7BMjshS+v1/aT7IwQYD5LcgRQXMT2FrBfBLjZ6151jDElk9tPFfpUgk2yregusX25BJbwAFEfM+YI6vGAti4bTtizB+TjfQCrERyhKb2X8D6A9wX75P4t4neBYJeP6pdhg/gQl8MWvytzeSTjgOQBynQdh/iXKdxOrGJ/RkZGRsb9QmXihGr5+g8GGg9uTh+KoVZuNIzV+CwRucFBEyr1mVjx4irOxwM1BhirB6Q+2eNQi4eqR+aF6mELtoMzCR7V9RAFe/ZvQogNiyY8FPSUTFsLp8TeTmMui5mtw7bcaT0Yw2AA4wFRQIlkgq+1DQrNhkmoxS5Jq+u6bMAIGRECEANgXHTgWzwgBOhDH2l0oTQ4D8D5NMktBgNywAEMjo8rwATMZrPY7JGxBoJCkIBDQiAY09EGTUiBCWkUpISfGPR5AAwBfZiG2z7Ayc1yeKTxid39xBNwfHr4O0LA48ePFTvhYrF1r4tyAoz9n2MCqEuBtp/6GDR0oAYfG/R6wJExHYZHfhygsv7fEWCOj4bYmsP5A+pL4MkTfAnMlD4F+r3bobKvTyTA2P/w7PN+Agq2QW8piqMCpTBwenoKvX0AHGkGtP2YAPvTEWA7QUTAudn7/NxtOG46wWNmDtpBEkBzN7rBEvAFHp+YTB/q97qPAN4gHFqgBi8uLsC7qPCA6mg41G/+ErByPwEXDdoNxRhOx+M5jPEzQugS0ht+b1/Y3gEnYMAIAOIBE29/hIDucE8tmMsNOgK4B1RHFu4UCRlMHzv0xzcajcfdXWDs2h8TArBCkoDUJYDLmz6w7ip3BFS0ve5wTRwAn6keMA9I3QYbfSZ0DKbyt+7OXjGI1idPcfNyAyfAMlCrzaGqphYrxHocLHRJVycnfGUcbtT+jIyMjIw9x7Nn8fJSzG0TmFtO8rZT+XT3S3ub+tKJbbLd5diTVp50+zahyeHSslJ/YPrU0fuazrZO2CZ92/ZCCVXlGRiZKPJyPPRxyIFWeXLQBXJBKiq/3divEAN6ZwM200Qjm7EJBZeWm/PRWVCbYK7s7u2l4XaCz+lzgOfMfhMonXr7TWzeZb98dbgIzBT8Ub8eYYUqfZ4rVJ/MDbIDgPqTulJ/xvntWAtjIisqnwxOkGz0n077FARoY79GdA6HPE4rOy196NiMWHTZlSSApcOgXpy/fHV2joaNKu3ffsAnRcBf4K/6NcIG6tIxk3HyoXPjASqfUgXbYN5PzpL2njkR9QMjeDTVHDTCgRuxOegjoO0FvKzP/t/gmVdI24+G7NIe8JX6Wv3dDyldMA+4YB5wwTygtd+dwRqaTqrLb1l73zTSN52CNpnHuQOYPsDblybgxfkXh/oVtr+N1DEBJdhRJyd/Bd/q1z+cbNrD17iVKyajcnv9arhOkRPgsruuD6DmNPwpDNrLw2CoTgHni4yALr0L29+tiKAEIPn868ejx//8rpWP3OEOl5On9OwpcQm0MhafP/ey8f1uvDNIgGLQG8z4YO99ENgg95etwv4uYJYY8fUGHYH6j6fscHFZMftlAl9i+9XL73X3N/n+ZStOzfVfRvYXhrbdKOpEgVQTg/wsDuDD3kwOfQNMTJ5y+/ltUDWLunyxnRF46IqlBzGMY4X7inggREFioIyMjIyMHWCIB6ZNKAcXseo3vLTQTkVE7348dlwJJSz0+wLfmi8BhZqfw3D4ww/wHVLnEd5/fgYvXsDZ3MlsvYUbbnDjDZ3MN3TJG4+bxjAaDl8TBri9qxEw1ccao2wTNAMLHo2f+sjrXwb/9qHoYqgPMBXJTVfOpmrZH23y6uvo0LHSyY6fHGwKfHJlAuMFvObjDYrIqxBgQi20h7Hd/nYVLmno+eaNUm/eeH2GCuopntnhBJAlI2AHo9CCh1I1QxUdAbqqGY9BBLwyc3W4wYVhvY8A4BoIc1l5M7vnPWphZW9/Ses3n37y9a0uGqFwFQZsQQbd386DogpgEk+dzynsAZMJXq8+ns9NeukJ0PYrNATGGefJQlhkLo7DTXr+y3bNiOsDvrXTz/C2q1DXZH84iRNwrP88Nj+u2DjYEE6RBxD9Knj16ujVHC67A7422o02RwD3gB+t7EblWvu9geOFxSnd3ROmT+nJyQkhoPlsxVONc/3TEdBos+jtA+ZzcwHgTvD1cDjaYCcItA8w9i88A8b+mqSjc6Pvqd998QguEQPmQMeo23ODN86+p0/bn1buBkT6+oBhNZ/PYY4ZAHYb3PRd4LkZmPX68NRtMZn4ASvdA+qf0jMA5MP9eeg28Nug9QiLnj5A33U1MAES6xHAUNpz/9zFAYE1gqQDMT3G6xI9pwdw/aIgKoHCS1YGlRnSq9yCjdXjgN3j+N27YyROHxmuNAeNKPpYuXIyIyMjYy0M8eros59MF/PT2c602T7eA7zvhJ9dr/vzDjXaLp4Yc5+0wllzxzHv3gdmMMM7/CcQzKgVBqYTmFn+Z+mKm8J7k0A5F/jgCfjQ1WBhQyiOqD0lYuqBb+AyzMw9Ha2G3m6c8qQx+AlqnIceQp+Sb6i9UyQWbhr54+AjnZ0VzW2TAN0DmBT6PWmc6jDBE2PK2u+nF43dyP7Q0t1pOcX2fdRvH0mF2Q4JqN35rnHjVIeaXfIAVyUuw/aHCCiJy9iF5l1621zweI8KZrPZ9iJdb7DXJ3US0OSrtZ10imt7wHY7QesAzUMz1oZ3noB3qFJ/H18j97FYuw8QDN4oeKf30osvcSW2ExLo+VcbuAuo/sUIm8fMG9xocO3Ea19J9gFYivnHJ2KnyfovZlgW3v6ySx32abQiIyMjIyPjhlFDTLxpwIgFMnTp6A3g4IDKNY+stkwAMAoIAbasxBXqUWneSAWTMjt50lTqT29rFjvXohjsDNm2YPXDFlICmrJOZ3t6tHm8AiEAl0sCeLIIorIRt+cFbew/QRsoAXb4o1XSfoywzm0FTMAoYBNvLyFu8v8HpLBtD1iKgC17wHb7AI6d9wFbvguAIGTHd4E9wG7jgIyMjIyM+434c2R3HeV/Ffx6jtZu6ijl8h59T655jhR+rdHzDOP6beABCheb8O8/WFXeOyzgf5oAhVYnKxP7CwaAf1afJu8bSrhS6tdaXeGnrRenOqOlz9d6QwYnA/3TLd+GE7qe3chA5YF5DfY0vK3adfOX/gyNp2BW25MHdxAB9qvRiiP3/XpQQFGYDU4+Mi///XumXG8pjvaUAOsBGlf4jJt+YYEzeEzAdw06F19R3juM7D1wita86GR0CKfDHgLuXCc4Bri6vMLdfjMc4VNSUNsdodo2xu/1+Xl/K5+az8jIyMhYG/z5gJTMF1GtKq/a3rpyCvz5gJTMl9GtKq/a3rpyCmfQ4WwZmS+kXFVetb115ST48wEf/AGcfG1iw+tWbpbS2vJ3nQxcVr3lH3z5h972FUTLzYpOVk7l5hD+eYcYwDcAnewOotrZ4OtrPDucqi/LRX0/RR4qx7Nn4U8g+qjffvuN6Gf+nC85vwauHjaYyubqvWYKY4VEfSUMitdnBCT1Ue63R5439m+OgCn6DroAAaHPVQxKth/wkJgHmG8bmQMsT0D6EjDfvhVRKO3ywOQUgRA7nmL1uawZmHf1k+DPBwQ6NdcJ+k6Md1LA5f5ONdhJ8vZ5J0vLHT99srkGOjmJbd/G1r2Nriqnse1AZt1AalU5jW2HsuuG0qvKGRkZGRkZGRG0gcONyXsP9v8D0/IdJADiBNiXl3327WRGgOL/9HC/0XwlIURkRhC4tz6Z/fu7fUf2gHvfB9z3u0BGRkZGRkbGplHcnkgguQoSqtUXuhbs/wPtMwqV0HUJAvj5vk32b8IDuL23yn7qAXZ5u32hbRX7d3o82Df1FZXvbh9QOfhyxldr/+3xgXU9oKmvsHyr7F/XA269/eveBXrsv7N9QALe/tvjA0kPWAXGbvebkbHn+D/J5nMcHzx1UAAAAABJRU5ErkJggg==)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(data:image/png;base64,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)}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAe0lEQVRoge3OMQHAIBAAMcC/kjdZJHTI0A4XBdkz86wfO18H3hRUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUF8O8A8WdY6opAAAAAElFTkSuQmCC) 50% 50% repeat-x;opacity:.3;filter:alpha(opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAe0lEQVRoge3OMQHAIBAAMcC/kjdZJHTI0A4XBdkz86wfO18H3hRUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUF8O8A8WdY6opAAAAAElFTkSuQmCC) 50% 50% repeat-x;opacity:.3;filter:alpha(opacity=30);border-radius:8px}.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}.ui-widget{font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:0}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:0}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:0}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:0}.ui-widget-overlay{background:#666;opacity:.5;filter:alpha(opacity=50)}.watermark{color:#888!important}::-webkit-input-placeholder{color:#888}::-moz-placeholder{color:#888}:-ms-input-placeholder{color:#888}input:-moz-placeholder{color:#888}.ui-autocomplete-loading{background:#fff url(data:image/gif;base64,R0lGODlhEAALAPQAAP///zNah+Hm7dng6O7x9DddiTNah1d3nJqtw3+Xs8fS3k5vlm6JqaGzx4KatcrU4FFymDZciHGMq+ru8t/l7Pb3+V9+oeLo7vT2+MTP3LLB0dTc5fHz9gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA) right center no-repeat}.ui-autocomplete{max-height:150px;overflow-y:auto;overflow-x:hidden}* html .ui-autocomplete{height:150px}.ui-timepicker-div .ui-widget-header{margin-bottom:8px}.ui-timepicker-div dl{text-align:left}.ui-timepicker-div dl dt{float:left;clear:left;padding:0 0 0 5px}.ui-timepicker-div dl dd{margin:0 10px 10px 45%}.ui-timepicker-div td{font-size:90%}.ui-tpicker-grid-label{background:none;border:none;margin:0;padding:0}.ui-timepicker-rtl{direction:rtl}.ui-timepicker-rtl dl{text-align:right;padding:0 5px 0 0}.ui-timepicker-rtl dl dt{float:right;clear:right}.ui-timepicker-rtl dl dd{margin:0 45% 10px 10px}@-moz-keyframes progressBarKeyframes{from{background-position-x:0}to{background-position-x:47px}}@-webkit-keyframes progressBarKeyframes{from{background-position-x:0}to{background-position-x:47px}}@keyframes progressBarKeyframes{from{background-position-x:0}to{background-position-x:47px}}.ui-progressbar-value{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAYCAYAAAC8/X7cAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QwYAwcRFZ4/TAAAAmtJREFUWMO1l+lu2kAQx/+WlqMYCGmMzRGwcUhoVbWq1Ifq2+RF+hJ9hVRpohLuCB9AwAaqfqiPfjBEhtrcO5/wrGf2N4eXWeb223cXlCSeyUHIJGi5hzqagPny9ZZKAOfyZ9TyaWrw940u5noXJB4lJ3eeqXzCtUAP/qHZgzXpIx4lILFIcACuCzBM+HOY7kz6iGs+uRHABcAcCP/YUWAZCpbcJBZWgaDGYjbs7gJp8QOqC/igBACezr+2/nv5TtBavavCmvQ9+IWexMhqAMsNwiQICgDSpRpknl7bPPU0WIYCf8u77qYK7CHp4g2kbIoafLM/hGWqCGIl8chxAaQKVZQ5evBtdQTbUBDGeVQFkvkrlC9YavAdbQw7JPOvAUQPrADLlVDm6WW+q49hmRq28R3UQgmuiEvujBr882ACZzrALmx7t9Cb8xyK2Qw1+P7QgDMfYlcu0lZfdm+brAg5EoNm/DnZH5NfWsoLfg+7e9kQy3Z2g+dFiLm3sB06s19LHWOut/e22ykAlhch5S9gu3Tgm8oYc611kO3WAJKCBLnAwaGV+cEMZr9xsP3GAJK5CuQCR61tmoMZzN7jUT6I7QQHwAoVXBWzsCldd5r6FGbv4Wg/gRVgs2VUL3lqmW9o5kngvQrYzsoxmOBF3IgF2I77Oj2HTdOuTxc6va6tP+kzTDv3/9mE7YUtvlcqwAoSagt4GlLXZzDbP07qk/y1be+D5UXUpAK1o7KuTTFp3Z3cL7FsBylBwju5dNRRuV5+v+6XOoXRvltcQlwwDBNwhfX029b9z94wx5Xw/kj4jRfw5xHM3k9qs9M/9mQP+uNoCX0AAAAASUVORK5CYII=);background-position:0 0;-moz-animation:progressBarKeyframes 2s linear infinite;-o-animation:progressBarKeyframes 2s linear infinite;-webkit-animation:progressBarKeyframes 2s linear infinite;animation:progressBarKeyframes 2s linear infinite;-moz-transition-property:width;-o-transition-property:width;-webkit-transition-property:width;transition-property:width;-moz-transition-duration:.1s;-o-transition-duration:.1s;-webkit-transition-duration:.1s;transition-duration:.1s}.ui-tabs .ui-tabs-panel{padding:.5em}.ui-dialog{animation-name:ui-dialog-show;-webkit-animation-name:ui-dialog-show;animation-duration:.2s;-webkit-animation-duration:.2s;animation-timing-function:ease-in-out;-webkit-animation-timing-function:ease-in-out}@keyframes ui-dialog-show{0%{transform:translateY(-30px);opacity:0}100%{transform:translateY(0);opacity:1}}@-webkit-keyframes ui-dialog-show{0%{-webkit-transform:translateY(-30px);opacity:0}100%{-webkit-transform:translateY(0);opacity:1}}.ui-widget-overlay.ui-front{animation-name:ui-dialog-fadeIn;-webkit-animation-name:ui-dialog-fadeIn;animation-duration:.2s;-webkit-animation-duration:.2s;animation-timing-function:ease-in-out;-webkit-animation-timing-function:ease-in-out}@keyframes ui-dialog-fadeIn{0%{opacity:0}100%{opacity:.5}}@-webkit-keyframes ui-dialog-fadeIn{0%{opacity:0}100%{opacity:.5}}.page .dialog{display:none}.ui-dialog{padding:0;border-color:#333;background:#fcfcfc;box-shadow:rgba(20,20,20,.7) 0 0 50px;top:50px!important}.ui-dialog .ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom-color:#d1d1d1;background:#333;color:#fff;font-size:1.1em;font-weight:normal;text-transform:uppercase;padding:.6em 1em}body .ui-tooltip{border-width:1px;-webkit-box-shadow:none;box-shadow:none}@font-face{font-family:'FontAwesome';src:url('/ClientSource/Style/FontAwesome//fontawesome-webfont.eot?v=4.1.0');src:url('/ClientSource/Style/FontAwesome//fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'),url('/ClientSource/Style/FontAwesome//fontawesome-webfont.woff?v=4.1.0') format('woff'),url('/ClientSource/Style/FontAwesome//fontawesome-webfont.ttf?v=4.1.0') format('truetype'),url('/ClientSource/Style/FontAwesome//fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);}100%{-o-transform:rotate(359deg);}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-square:before,.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}body{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;margin:0;padding:0;color:#333}body.layout{background:url(data:image/png;base64,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) left top repeat-x #d1d1d1;background:linear-gradient(to bottom,#f2f2f2 0,#d1d1d1 370px) left top repeat-x #d1d1d1;min-height:370px}.page{max-width:1232px;min-width:768px;margin-left:auto;margin-right:auto}header,#header{position:relative;background-color:#333;margin:0;padding:0;height:34px}header #heading,#header #heading{float:left;height:34px}header #heading i,#header #heading i{display:block;height:34px;width:34px;background-image:url(data:image/png;base64,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)}header nav,#header nav{float:left;height:34px;padding:0;margin:0}header nav ul#menu,#header nav ul#menu{height:26px;padding:0;margin:8px 0 0 4px;list-style:none;z-index:100000;font-size:0;line-height:0}header nav ul#menu>li,#header nav ul#menu>li{display:inline-block;z-index:100000;font-size:13.2px;line-height:19.2px}header nav ul#menu>li.moveRight,#header nav ul#menu>li.moveRight{margin-left:20px}header nav ul#menu>li>a,#header nav ul#menu>li>a{display:inline-block;padding:2px 10px 4px 10px;height:20px;color:#fff;font-weight:400;text-transform:uppercase;text-decoration:none}header nav ul#menu>li>a:active,#header nav ul#menu>li>a:active{text-decoration:none}header nav ul#menu>li.active>a,#header nav ul#menu>li.active>a{background-color:#222}header nav ul#menu>li:hover>a,#header nav ul#menu>li:hover>a{background-color:#111;text-decoration:none}header nav ul#menu>li>ul,#header nav ul#menu>li>ul{z-index:100000;display:none;list-style:none;position:absolute;margin:0;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1;background-color:#f2f2f2;padding:0;min-width:180px;box-shadow:2px 2px 5px rgba(209,209,209,.5)}header nav ul#menu>li>ul li,#header nav ul#menu>li>ul li{position:relative;background-position:top;background-repeat:repeat-x;border-top:1px solid #e6e6e6}header nav ul#menu>li>ul li:first-child,#header nav ul#menu>li>ul li:first-child{border-top:1px solid #d1d1d1}header nav ul#menu>li>ul li:last-child,#header nav ul#menu>li>ul li:last-child{border-bottom:1px solid #d1d1d1}header nav ul#menu>li>ul li:hover,#header nav ul#menu>li>ul li:hover{border-top:1px solid #d9d9d9;background-color:#e6e6e6}header nav ul#menu>li>ul li a,#header nav ul#menu>li>ul li a{display:block;color:#000;padding:4px 8px;text-decoration:none}header nav ul#menu>li>ul li a:hover,#header nav ul#menu>li>ul li a:hover{color:#335a87;text-decoration:none}header nav ul#menu>li>ul li a:active,#header nav ul#menu>li>ul li a:active{text-decoration:none}header nav ul#menu>li>ul li i.fa-caret-right,#header nav ul#menu>li>ul li i.fa-caret-right{cursor:pointer;color:#666;font-size:16px;position:absolute;display:block;right:12px;top:7px}header nav ul#menu>li>ul li:hover i.fa-caret-right,#header nav ul#menu>li>ul li:hover i.fa-caret-right{color:#333}header nav ul#menu>li>ul ul,#header nav ul#menu>li>ul ul{display:none;list-style:none;position:absolute;top:-1px;left:180px;background-color:#f2f2f2;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1;padding:0;min-width:180px;box-shadow:2px 2px 5px rgba(209,209,209,.5)}header #headerMenu,#header #headerMenu{float:right;height:24px;padding:5px 8px;font-size:.9em;line-height:24px;text-align:right;color:#fff}header #headerMenu a,#header #headerMenu a{color:#fff;text-decoration:none}header #headerMenu a:hover,#header #headerMenu a:hover{color:#cddbec;text-decoration:none}header #SearchQuery,#header #SearchQuery{font-size:.9em;margin-left:6px;width:130px;background-color:#eee;-moz-transition-property:width;-o-transition-property:width;-webkit-transition-property:width;transition-property:width;-moz-transition-duration:.1s;-o-transition-duration:.1s;-webkit-transition-duration:.1s;transition-duration:.1s}header #SearchQuery:hover,#header #SearchQuery:hover,header #SearchQuery:focus,#header #SearchQuery:focus{background-color:#fff;width:190px}header .watermark,#header .watermark{background-color:#888}#QuickSearchMenu{max-height:400px;font-size:.9em;background:none;background-color:#fafafa}#QuickSearchMenu li:not(:last-child){border-bottom:1px solid #d8d8d8}#QuickSearchMenu li>a{padding:2px}#QuickSearchMenu li>a>i{margin-right:2px}#QuickSearchMenu li>a>div{padding-left:1.2857142857142858em;margin-left:2px}#layout_PageHeading{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAA8CAYAAABfESsNAAAAOUlEQVRIx+2SuREAIAzDFELL/uOSFVLx3Mm1C8nnABaNDJq5WJzAVkZGZXyPMg7+jUwCIeNZmdcZC2pxCZOpoRNgAAAAAElFTkSuQmCC) left top repeat-x #fff;background:linear-gradient(to bottom,#f2f2f2 0,#fff 50px) #fff;height:50px;padding:6px 20px 4px 20px;font-size:2em;color:#000;line-height:50px;position:relative;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1}#layout_PageHeading a{text-decoration:none}#layout_Page{background-color:#fff;overflow:auto;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;padding:0 30px 15px 30px;-moz-border-radius:0 0 4px 4px;-webkit-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}#layout_Error{min-height:200px}#layout_Error table{background-color:#fff}#layout_Error h1,#layout_Error h2,#layout_Error h3,#layout_Error h4,#layout_Error h5{color:#fff;white-space:pre-wrap}#layout_Error h2.error{margin-bottom:10px}#layout_Error .stacktrace{white-space:pre;overflow:auto}#layout_Error>div{margin:0 auto;width:650px}#layout_uiExtensions{display:none}footer,#footer{color:#777;padding:10px 0;text-align:center;margin:0;font-size:.9em}footer a:link,#footer a:link,footer a:visited,#footer a:visited,footer a:active,#footer a:active{color:#777}footer a:link,#footer a:link,footer a:active,#footer a:active{text-decoration:underline}footer a:hover,#footer a:hover{color:#5e8cc2;text-decoration:none}p{margin:0 0 20px 0;line-height:1.6em}ul{margin:0;padding:0 0 0 25px;list-style:square;line-height:1.6em}header,footer,nav,section{display:block}form{display:inline}img{border:none;padding:0;margin:0;vertical-align:bottom}code{font-family:Consolas,"Courier New",monospace}hr{border:none;border-bottom:1px dashed #aaa;margin-top:15px}a:link{color:#335a87;text-decoration:none}a:visited{color:#335a87}a:hover{color:#5e8cc2;text-decoration:underline}a:active{color:#335a87}a[disabled]{color:#6b6b6b;text-decoration:none;cursor:default}a.button{display:inline-block;padding:4px 10px;margin:2px;border:1px solid #1a5f95;background:#1e6dab;color:#fff;font-weight:bold;text-transform:uppercase;cursor:pointer;white-space:nowrap;text-decoration:none}a.button[disabled],a.button.disabled{background:#9e9e9e;border:1px solid #6b6b6b;cursor:default}a.button.alert{border-color:#900;background-color:#e51400}a.button.small{padding:2px 5px;font-size:.9em}a.button:hover{border:1px solid #6b6b6b;background:#9e9e9e}a.button i{margin-right:10px}div.actionBar{margin:0 -30px 0 -30px;padding:10px;border-top:1px solid #d1d1d1;text-align:right;background-color:#f2f2f2}div.actionBar:not(:first-child){margin-top:10px}div.actionBar:last-child{margin-bottom:-15px;-moz-border-radius:0 0 6px 6px;-webkit-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}h1,h2,h3,h4,h5,h6{color:#000;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;margin:0}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0!important;padding-top:0!important}h1>a:link,h2>a:link,h3>a:link,h4>a:link,h5>a:link,h6>a:link{text-decoration:none}h1{font-size:24px}h2{font-size:20px;padding:8px 0 4px 0}h3{font-size:18px}h4{font-size:14px}h5,h6{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-stretch:normal;font-weight:bold}table{border:none;border-collapse:collapse;width:100%}table td{padding:5px;margin:0;border:none;vertical-align:top}table th{padding:5px;margin:0;text-align:left;font-weight:bold;vertical-align:top}table.none{border:none!important}table.none tr,table.none td,table.none th{padding:0!important;margin:0!important;background:none!important;border:none!important}table.genericData{border:solid 1px #f4f4f4;border-collapse:collapse}table.genericData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}table.genericData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}table.genericData>thead>tr>th,table.genericData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}table.genericData>tbody>tr:hover>td{background-color:#fefefe}table.genericData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}table.genericData>tfoot>tr>th,table.genericData>tfoot>tr>td{background-color:#f4f4f4}table.genericData td.id{text-align:center}table.genericData td.id a{padding:0 6px}.smallTable th,.smallTable td{font-size:.9em}.dataTables_wrapper{position:relative}.dataTables_wrapper .dataTables_filter{position:absolute;height:20px;margin-top:-20px;right:0;font-size:.9em;-moz-opacity:.3;opacity:.3}.dataTables_wrapper .dataTables_filter input{font-size:.95em;padding:0;height:1.4em;width:150px}.dataTables_wrapper .dataTables_length{position:absolute;height:20px;margin-top:-20px;right:200px;font-size:.9em;-moz-opacity:.3;opacity:.3}.dataTables_wrapper .dataTables_length select{font-size:.95em;padding:0;height:1.4em}.dataTables_wrapper .dataTables_paginate{text-align:right;background-color:#f4f4f4;padding:2px 4px;font-size:.9em}.dataTables_wrapper .dataTables_paginate a{cursor:pointer;padding:2px;margin:0 3px;color:#335a87;background-repeat:no-repeat;-moz-opacity:.3;opacity:.3;text-transform:uppercase}.dataTables_wrapper .dataTables_paginate .first{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAKklEQVQI12NgQALGUe0SQPwfnY0iCcVwNjZJFAxT8J+QAvwmEHQDPl8AAAYqTAY6Jng6AAAAAElFTkSuQmCC);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .first.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAKklEQVQI12NgQAKxsbESQPwfnY0iCcVwNjZJFAxT8J+QAvwmEHQDPl8AAEm8TIFT3+fIAAAAAElFTkSuQmCC)}.dataTables_wrapper .dataTables_paginate .previous{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAGMo9olgPg/XkmsCpAlcSn4T0gBfhMIugFdEQCMVyg5CPiC8wAAAABJRU5ErkJggg==);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .previous.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAH6+vokgPg/XkmsCpAlcSn4T0gBfhMIugFdEQDzojUdMBAGjgAAAABJRU5ErkJggg==)}.dataTables_wrapper .dataTables_paginate .next{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Mwjmr/D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwCZ1Cg5w6CPqwAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper .dataTables_paginate .next.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Po6+v7D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwDwPjUdLMfQ6AAAAABJRU5ErkJggg==)}.dataTables_wrapper .dataTables_paginate .last{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAK0lEQVQI12Mwjmr/D8QSDECAzIYDqCBYApmNTQE6liCk4D/JJuB1A05fAABJ/EwGJKVDGAAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper .dataTables_paginate .last.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAK0lEQVQI12OIjY39D8QSDECAzIYDqCBYApmNTQE6liCk4D/JJuB1A05fAACQykyB48rZCQAAAABJRU5ErkJggg==)}.dataTables_wrapper .dataTables_paginate .paginate_active{font-weight:bold;color:#1e6dab}.dataTables_wrapper .dataTables_paginate .paginate_button_disabled{color:#ccc;cursor:default}.dataTables_wrapper .dataTables_paginate .paginate_enabled_previous{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAGMo9olgPg/XkmsCpAlcSn4T0gBfhMIugFdEQCMVyg5CPiC8wAAAABJRU5ErkJggg==);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .paginate_disabled_previous{color:#ccc;cursor:default;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAH6+vokgPg/XkmsCpAlcSn4T0gBfhMIugFdEQDzojUdMBAGjgAAAABJRU5ErkJggg==);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .paginate_enabled_next{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Mwjmr/D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwCZ1Cg5w6CPqwAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper .dataTables_paginate .paginate_disabled_next{color:#ccc;cursor:default;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Po6+v7D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwDwPjUdLMfQ6AAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper:hover .dataTables_filter,.dataTables_wrapper:hover .dataTables_length,.dataTables_wrapper:hover .dataTables_paginate a{-moz-opacity:1;opacity:1}.dataTables_wrapper table>thead tr>th{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAD6CAYAAACoLMeFAAAAdElEQVRo3u3bOwqAMBAFwBwjh/CUluKRhfVTiil0UYjMwJLqLfmUYUuBtw3jUreKfc2E43aTi/C9Jo3wUR4WAAAAAAAAejBPc90q9jUTjkdNTuGjPj9/bgfpO0i/AgAAAAAAAPQnPZ6YHpBsNEnNefrt4+9Wmn6nW/cZ1MQAAAAASUVORK5CYII=);background-repeat:no-repeat}.dataTables_wrapper table>thead tr>th.sorting{background-position:right center;cursor:pointer}.dataTables_wrapper table>thead tr>th.sorting_desc{background-position:right bottom;cursor:pointer}.dataTables_wrapper table>thead tr>th.sorting_asc{background-position:right top;cursor:pointer}.dataTables_wrapper table>thead tr>th.sorting_disabled{background-image:none}table.userTable div.flags{display:inline-block;float:right}table.userTable div.flags>i{cursor:default}table.userTable div.flags>i>.details{display:none}.jobStatus{color:#333}.jobStatus.Closed{color:#9e9e9e}.jobStatus.Open{color:#60a917}.jobStatus.AwaitingWarrantyRepair,.jobStatus.AwaitingRepairs{color:#1e6dab}.jobStatus.AwaitingDeviceReturn,.jobStatus.AwaitingUserAction,.jobStatus.AwaitingAccountingPayment,.jobStatus.AwaitingAccountingCharge{color:#f0a30a}.jobStatus.AwaitingInsuranceProcessing{color:#6a00ff}.deviceStatus{color:#333}.deviceStatus.Decommissioned{color:#9e9e9e}.deviceStatus.Active{color:#60a917}.deviceStatus.NotEnrolled{color:#f0a30a}table.jobTable{border:solid 1px #f4f4f4;border-collapse:collapse;table-layout:fixed}table.jobTable>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}table.jobTable>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}table.jobTable>thead>tr>th,table.jobTable>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}table.jobTable>tbody>tr:hover>td{background-color:#fefefe}table.jobTable>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}table.jobTable>tfoot>tr>th,table.jobTable>tfoot>tr>td{background-color:#f4f4f4}table.jobTable td{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}table.jobTable.hideStatusClosed tr[data-status=Closed]{display:none}table.jobTable td.id,table.jobTable th.id{width:50px;text-align:center}table.jobTable td.id a,table.jobTable th.id a{padding:0 6px}table.jobTable tr.statusSlaWarning td{background-color:#fdeed1}table.jobTable tr.statusSlaWarning td:not(:last-child){border-right:1px solid #f8e9cb}table.jobTable tr.statusSlaExpired td{background-color:#ffd7d3}table.jobTable tr.statusSlaExpired td:not(:last-child){border-right:1px solid #fad2ce}table.jobTable tr:nth-child(odd).statusSlaWarning td{background-color:#fcedcf!important}table.jobTable tr:nth-child(odd).statusSlaExpired td{background-color:#fed6d2!important}table.jobTable tr:hover.statusSlaWarning td{background-color:#fbebca!important}table.jobTable tr:hover.statusSlaExpired td{background-color:#fed1cd!important}table.jobTable div.queues{display:inline-block;float:right}table.jobTable td.lastActive,table.jobTable th.lastActive{width:130px}table.jobTable td.dates,table.jobTable th.dates{width:130px}table.jobTable td.type,table.jobTable th.type{width:50px}table.jobTable td.device,table.jobTable th.device{width:110px}table.jobTable td.user,table.jobTable th.user{width:240px}table.jobTable td.technician,table.jobTable th.technician{width:80px}table.jobTable td.location,table.jobTable th.location{width:200px}div.jobTable>a.dataTables_showStatusClosed{margin:10px 5px}div.jobTable>h3,div.jobTable>div.allClosed_container{margin:50px 20px!important}div.jobTable>h3 a.button,div.jobTable>div.allClosed_container a.button{margin-top:10px}table.deviceTable tr.decommissioned{background-color:#ededed}textarea{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;border:1px solid #ccc;min-height:75px;padding:2px;color:#444;width:200px}input[type="text"],input[type="password"],input[type="file"],input[type="number"]{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;border:1px solid #ccc;padding:2px;color:#444;width:200px}input[type="text"].small,input[type="password"].small,input[type="file"].small,input[type="number"].small{padding:0 2px;width:150px}input[type="text"].discreet,input[type="password"].discreet,input[type="file"].discreet,input[type="number"].discreet{border:1px solid #fff}input[type="text"].discreet:hover,input[type="password"].discreet:hover,input[type="file"].discreet:hover,input[type="number"].discreet:hover,input[type="text"].discreet:focus,input[type="password"].discreet:focus,input[type="file"].discreet:focus,input[type="number"].discreet:focus{border:1px solid #ccc}input[type="checkbox"],input[type="radio"]{margin-right:4px;vertical-align:sub}select{font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-size:12px;border:1px solid #ccc;padding:2px;color:#444}select.small{padding:0}input[type="submit"],button{font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;padding:5px}input[type="submit"].button,button.button{font-size:12px;padding:4px 10px 4px 10px;margin:2px;border:1px solid #1a5f95;background:#1e6dab;color:#fff;font-weight:600;text-transform:uppercase;cursor:pointer}input[type="submit"].button.alert,button.button.alert{border-color:#900;background-color:#e51400}input[type="submit"].button.small,button.button.small{padding:2px 5px;font-size:.9em}input[type="submit"].button[disabled],button.button[disabled]{background:#9e9e9e;border:1px solid #6b6b6b;cursor:default}input[type="submit"].button:hover,button.button:hover{border:1px solid #6b6b6b;background:#9e9e9e}ul.none{list-style:none;margin:0;padding:0}ul.none li{margin:0}div.form{margin:0 auto}div.form>p.actions{text-align:right}div.form>table{border-top:6px solid #1e6dab;border-left:1px solid #1e6dab;border-right:1px solid #1e6dab;border-bottom:3px solid #1e6dab;background-color:#fff}div.form>table>tbody>tr>td,div.form>table>tbody>tr>th{background:none;border:none;margin:0;padding:8px 5px}div.form>table>tbody>tr>th{font-weight:normal;text-align:right}div.form>table>tbody>tr:nth-child(odd){background-color:#f2f2f2;margin:0;padding:0}div.form>table>tbody>tr>td.details{padding:0}div.form>table>tbody>tr>th.name{width:150px;text-align:right}div.form>table table.sub>tbody>tr:not(:first-child)>th,div.form>table table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}div.form>table table.sub>tbody>tr>th{font-weight:normal;text-align:right}div.form>table table.sub>tbody>tr>th.name{text-align:right}#pageMenu td{border-right:1px dashed #aaa;width:33%;padding:10px}#pageMenu td .pageMenuArea>.fa{font-size:1.3em;color:#6b6b6b;margin-right:4px}#pageMenu td .pageMenuArea>a,#pageMenu td .pageMenuArea>h3{text-decoration:none;font-size:1.2em}#pageMenu td .pageMenuArea .pageMenuBlurb{font-size:.9em;color:#888;margin-bottom:10px}#pageMenu td .pageMenuArea .pageMenuBlurb a{text-decoration:none}#pageMenu td .pageMenuArea:not(:last-child){border-bottom:1px dashed #aaa}#pageMenu td .pageMenuArea.noSeperator{border-bottom:none}#pageMenu td:first-child{padding-left:0}#pageMenu td:last-child{border-right:none;padding-right:0}div.disco-attachmentUpload-dropTarget{display:none}div.disco-attachmentUpload-dropTarget.dragHighlight{display:block;position:absolute;z-index:1000;top:0;left:0;width:calc(100% - 6px);height:calc(100% - 6px);background-color:rgba(251,218,152,.5);border:3px dashed #f0a30a}div.disco-attachmentUpload-dropTarget.dragHighlight h2{margin-top:3em!important;color:#2c1e02;text-align:center;font-weight:bold}div.disco-attachmentUpload-dropTarget.dragHighlight.dragHover{background-color:rgba(173,235,110,.5);border:3px dashed #60a917}div.disco-attachmentUpload-dropTarget.dragHighlight.dragHover h2{color:#000}div.disco-attachmentUpload-progress{position:absolute;right:0;bottom:48px}div.disco-attachmentUpload-progress>div{background-color:#fafafa;padding:4px 8px}div.disco-attachmentUpload-progress>div i{color:#1e6dab;margin-right:4px}div.disco-attachmentUpload-commentDialog{padding:.25em .5em!important}div.disco-attachmentUpload-commentDialog table{border:solid 1px #f4f4f4;border-collapse:collapse;table-layout:fixed}div.disco-attachmentUpload-commentDialog table>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}div.disco-attachmentUpload-commentDialog table>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}div.disco-attachmentUpload-commentDialog table>thead>tr>th,div.disco-attachmentUpload-commentDialog table>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}div.disco-attachmentUpload-commentDialog table>tbody>tr:hover>td{background-color:#fefefe}div.disco-attachmentUpload-commentDialog table>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}div.disco-attachmentUpload-commentDialog table>tfoot>tr>th,div.disco-attachmentUpload-commentDialog table>tfoot>tr>td{background-color:#f4f4f4}div.disco-attachmentUpload-commentDialog table th{width:80px}div.disco-attachmentUpload-commentDialog table td.filename{font-family:Consolas,"Courier New",monospace;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}div.disco-attachmentUpload-commentDialog table input.comments{width:calc(100% - 5px)}div.disco-attachmentUpload-commentDialog table td.thumbnail{display:none;text-align:center}div.disco-attachmentUpload-commentDialog table td.thumbnail img{border:1px solid #9e9e9e;max-height:250px;max-width:374px}div.disco-attachmentUpload-imageDialog{background-color:#000!important;padding:0!important;overflow:hidden!important;width:720px!important;height:540px!important}body>.User_FlagAssignment_Tooltip span.name{display:block;font-weight:bold}body>.User_FlagAssignment_Tooltip span.comments{display:block;padding:2px 0 2px 4px}body>.User_FlagAssignment_Tooltip span.added{font-style:italic;font-size:.9em}.d-priority-high{color:#fa6800;width:1.2857142857142858em;text-align:center}.d-priority-high:before{content:""}.d-priority-normal{color:#60a917;width:1.2857142857142858em;text-align:center}.d-priority-normal:before{content:""}.d-priority-low{color:#1e6dab;width:1.2857142857142858em;text-align:center}.d-priority-low:before{content:""}.fa-stack .d-priority-high,.fa-stack .d-priority-normal,.fa-stack .d-priority-low{width:100%;font-size:.8em;margin-left:.5em;margin-top:.4em;opacity:.6}.d-lime{color:#a4c400}.d-green{color:#60a917}.d-emerald{color:#008a00}.d-teal{color:#00aba9}.d-cyan{color:#1ba1e2}.d-cobalt{color:#0050ef}.d-indigo{color:#6a00ff}.d-violet{color:#a0f}.d-pink{color:#f472d0}.d-magenta{color:#d80073}.d-crimson{color:#a20025}.d-red{color:#e51400}.d-orange{color:#fa6800}.d-amber{color:#f0a30a}.d-yellow{color:#e3c800}.d-brown{color:#825a2c}.d-olive{color:#6d8764}.d-steel{color:#647689}.d-mauve{color:#76608a}.d-sienna{color:#a0522d}table.subtleHighlight{border:1px solid #ccc;background-color:#ededed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}td.subtleHighlight{border:1px solid #ccc;background-color:#ededed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.field-validation-error{color:#e51400!important}.field-validation-valid{display:none}.input-validation-error{border:1px solid #e51400!important;background-color:#fff7f7!important}.validation-summary-errors{font-weight:bold!important;color:#e51400!important}.validation-summary-valid{display:none}.ajaxLoading{height:11px;width:16px;display:inline-block;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEAALAPQAAP///zNah+Hm7dng6O7x9DddiTNah1d3nJqtw3+Xs8fS3k5vlm6JqaGzx4KatcrU4FFymDZciHGMq+ru8t/l7Pb3+V9+oeLo7vT2+MTP3LLB0dTc5fHz9gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA);margin-bottom:0}.ajaxOk{color:#60a917}.ajaxSave{color:#1e6dab;cursor:pointer}.ajaxRemove{color:#e51400;cursor:pointer;opacity:.8}.ajaxRemove:hover{opacity:1}#layout_Page div.hiddenDialog{display:none}* html .clearfix{height:1%;overflow:visible}*+html .clearfix{min-height:1%}.clearfix:after{clear:both;content:".";display:block;height:0;visibility:hidden;font-size:0}div.columnHost .column50{float:left;width:50%}.hidden{display:none}.success{color:#60a917}.information{color:#1e6dab}.warning{color:#f0a30a}.error{color:#e51400}.alert{color:#fa6800}.smallText{font-size:.9em}.smallMessage{font-style:italic;color:#666;font-size:.9em}.nowrap{white-space:nowrap}.code{font-family:Consolas,"Courier New",monospace}div.code{border:1px dashed #bbb;background-color:#fff;margin:3px 6px;padding:4px;font-size:.9em}a.smallLink{font-size:.9em}textarea.block{width:250px;height:100px}.checkboxBulkSelectContainer{margin-top:6px;font-size:.8em}.checkboxBulkSelectContainer a{text-decoration:none}.ui-widget .checkboxBulkSelectContainer{font-size:1em}#licence{text-align:justify}#licence p{font-size:.9em}#licence li{font-size:.9em} \ No newline at end of file diff --git a/Disco.Web/ClientSource/Style/Config.css b/Disco.Web/ClientSource/Style/Config.css index 4a15e89b..4fa42f31 100644 --- a/Disco.Web/ClientSource/Style/Config.css +++ b/Disco.Web/ClientSource/Style/Config.css @@ -1176,3 +1176,52 @@ div.logEventsViewport table.logEventsViewport > tbody > tr > td.eventType { #Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_List li .remove:hover { opacity: 1; } +#Config_UserFlags_Index i { + width: 1.2857142857142858em; + text-align: center; +} +#Config_UserFlags_Icon { + display: block; + margin: 0 0 10px 10px; +} +#Config_UserFlags_Icon_Update_Dialog { + display: none; +} +#Config_UserFlags_Icon_Update_Dialog div.colours { + text-align: center; + font-size: 30px; +} +#Config_UserFlags_Icon_Update_Dialog div.colours i { + cursor: pointer; + padding: 1px; + opacity: .9; +} +#Config_UserFlags_Icon_Update_Dialog div.colours i:hover { + opacity: 1; +} +#Config_UserFlags_Icon_Update_Dialog div.colours i.selected { + opacity: 1; +} +#Config_UserFlags_Icon_Update_Dialog div.icons { + text-align: center; + font-size: 34px; + background-color: #ffffff; + border: 1px solid #d1d1d1; + margin: 6px 0 14px 0; +} +#Config_UserFlags_Icon_Update_Dialog div.icons i { + width: 1.2857142857142858em; + text-align: center; + cursor: pointer; + padding: 6px 0px; + color: #333333; + opacity: .6; +} +#Config_UserFlags_Icon_Update_Dialog div.icons i:hover { + opacity: .9; + color: inherit; +} +#Config_UserFlags_Icon_Update_Dialog div.icons i.selected { + opacity: 1; + color: inherit; +} diff --git a/Disco.Web/ClientSource/Style/Config.less b/Disco.Web/ClientSource/Style/Config.less index 80091c72..ebcd3e5a 100644 --- a/Disco.Web/ClientSource/Style/Config.less +++ b/Disco.Web/ClientSource/Style/Config.less @@ -1368,3 +1368,65 @@ div.logEventsViewport { } } } + +#Config_UserFlags_Index { + i { + width: 1.2857142857142858em; + text-align: center; + } +} + +#Config_UserFlags_Icon { + display: block; + margin: 0 0 10px 10px; +} + +#Config_UserFlags_Icon_Update_Dialog { + display: none; + + div.colours { + text-align: center; + font-size: 30px; + + i { + cursor: pointer; + padding: 1px; + opacity: .9; + + &:hover { + opacity: 1; + } + + &.selected { + opacity: 1; + } + } + } + + div.icons { + text-align: center; + font-size: 34px; + background-color: @white; + border: 1px solid @BackgroundColour; + margin: 6px 0 14px 0; + + i { + width: 1.2857142857142858em; + text-align: center; + cursor: pointer; + padding: 6px 0px; + color: @HeaderBackgroundColour; + opacity: .6; + + &:hover { + opacity: .9; + color: inherit; + } + + &.selected { + opacity: 1; + color: inherit; + } + } + } +} \ No newline at end of file diff --git a/Disco.Web/ClientSource/Style/Config.min.css b/Disco.Web/ClientSource/Style/Config.min.css index d694f9d1..863e5674 100644 --- a/Disco.Web/ClientSource/Style/Config.min.css +++ b/Disco.Web/ClientSource/Style/Config.min.css @@ -1 +1 @@ -.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}#updateAvailableContainer{float:right;border:1px dashed #ddd;background-color:#fff;font-size:.6em;line-height:1em;padding:10px 10px 4px 70px;text-align:right;height:50px}#updateAvailableContainer i{position:absolute;display:block;height:64px;width:64px;vertical-align:middle;margin-left:-70px;font-size:50px;color:#e51400}#updateAvailableContainer a.button{font-size:12px;margin-top:8px}#expressionEditor #expressionEditorExceptionContainer{display:none;border:1px dashed #ff9696;background-color:#ffd8d8;margin:10px 0;padding:10px}#expressionEditor #expressionEditorContainer{border:1px solid #1e6dab;background-color:#f4f4f4;height:100px}.expressionTree span.dynatree-node span.dynatree-icon{background-image:url(data:image/png;base64,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);background-position-y:0}.expressionTree span.dynatree-node.object span.dynatree-icon{background-position-x:0}.expressionTree span.dynatree-node.parameter span.dynatree-icon{background-position-x:-16px}.expressionTree span.dynatree-node.function span.dynatree-icon{background-position-x:-32px}.expressionTree span.dynatree-node.property span.dynatree-icon{background-position-x:-48px}table.expressionsTable{border:solid 1px #f4f4f4;border-collapse:collapse}table.expressionsTable>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}table.expressionsTable>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}table.expressionsTable>thead>tr>th,table.expressionsTable>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}table.expressionsTable>tbody>tr:hover>td{background-color:#fefefe}table.expressionsTable>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}table.expressionsTable>tfoot>tr>th,table.expressionsTable>tfoot>tr>td{background-color:#f4f4f4}table.expressionsTable td.parseError{background-color:#ffd8d8}#AttachmentType_FilterExpression{width:375px}#deviceComponents{border:solid 1px #f4f4f4;border-collapse:collapse}#deviceComponents>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}#deviceComponents>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}#deviceComponents>thead>tr>th,#deviceComponents>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}#deviceComponents>tbody>tr:hover>td{background-color:#fefefe}#deviceComponents>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}#deviceComponents>tfoot>tr>th,#deviceComponents>tfoot>tr>td{background-color:#f4f4f4}#deviceComponents tr th.actions{width:20px}#deviceComponents tr input.description{width:300px}#deviceComponents tr input.cost{width:75px}#deviceComponents tr i.remove{font-size:1.6em;color:#e51400;cursor:pointer;opacity:.8}#deviceComponents tr i.remove:hover{opacity:1}#deviceComponents tr i.fa-list-alt{color:#1e6dab;font-size:1.6em;cursor:pointer}#deviceComponents tr i.fa-asterisk{color:#fa6800;font-size:1em;left:10px;top:3px;cursor:pointer}#deviceComponents tr input.updating{background-position:right center;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEAALAPQAAP///zNah+Hm7dng6O7x9DddiTNah1d3nJqtw3+Xs8fS3k5vlm6JqaGzx4KatcrU4FFymDZciHGMq+ru8t/l7Pb3+V9+oeLo7vT2+MTP3LLB0dTc5fHz9gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA)}#organisationAddresses{font-size:.9em}#organisationAddresses tr:not(:last-child){border-bottom:1px dashed #aaa}#organisationAddresses th{padding:2px;font-weight:bold;width:200px}#organisationAddresses td{padding:2px;vertical-align:middle}#organisationAddresses tr:nth-child(even){background-color:#fff}#organisationAddresses i.fa{font-size:1.7em;cursor:pointer}#organisationAddresses i.fa.delete{color:#e51400;opacity:.8}#organisationAddresses i.fa.delete:hover{opacity:1}#organisationAddresses i.fa.edit{color:#1e6dab}ul#loggingEntries{overflow:auto;max-height:230px;padding-left:20px}table.deviceProfileTable th.name{width:300px}table.deviceProfileTable th.type{width:120px}table.deviceProfileTable th.deviceCount{width:120px}#configurationDeviceProfileShow #ComputerNameTemplate{width:300px}#configurationDeviceProfileShow #expressionBrowserAnchor{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACKUlEQVQ4jaWTTU4UURDHf/W6gXFgJlHZKFvEe3gBvYhewXgGTXRpOILhGESGgEuNjB9N/BgCTJjufvXhonsQ176kkqpFVf2q6v8kIvifV77b2wsAU6MsCop/LCEpISIkEUAoioSZYWZczOeUp6en1ZPHT+4FQXgQERDBMrZlHACOpIKcM23bMN3fr0pEcDfub21x9/YdIhwR6QoJWFY8wF2JAHfH3fh8MoUISoGugxnPnj1lZ2eHg/cHTL9MMTdy09K0LVkVy8rsbMZkMukpoRQRRBIAZ2czNjbWWV1bZXY2I6WCpq5pmgY1ZXoypaoqAEQSsSQQ6Tb67es3Xr9+Q103PHy4w+Fkgpoxn1/y8eMn6rq+3v4yp0TkOvpeVaytreHuHB4egggXFxdUVUVZrrKxXmJuLBYLut15PwIwGo1IqTuTSGJlJfj1+xdXV1eMx2PCnTZn3B1VRZY6kJ5gc3MTEenO1Cy4nF9SpILxaIya4maUqrgqdU8QEd0IArgbOStFmVFVNCuqirtjalgYboa5A3KDIAJEGA7XiQiauiZnZTgcXhdwM7RXX1ZlsbgCEUTkL8GD7W3UjMGtAUUqMDMiosf3niqTVbk1GLDUT5nV5Oj4A293d1G1647m3qvOb/hGBLRty9HxB8xM5OWrV49+/vj5wuk07x4CEZ2clxcWUuqclFIgiSIJo9Houdz8zufn56siMgBKoACkNwdcRDIRzWg8bpY5fwBYR4lbku/2TAAAAABJRU5ErkJggg==);text-decoration:none}#configurationDeviceProfileShow #displayComputerNameTemplate{margin:0 0 6px 0}#configurationDeviceProfileShow #displayOrganisationalUnit{margin:0 0 6px 0}.organisationalUnitTree span.fancytree-node{padding:1px;border:none}.organisationalUnitTree span.fancytree-node>span.fancytree-icon{background:none;display:inline-block;font-family:FontAwesome;font-size:1.2em;width:14px}.organisationalUnitTree span.fancytree-ico-ef>span.fancytree-icon:before{color:#1e6dab;font-size:1em;content:""}.organisationalUnitTree span.fancytree-ico-cf>span.fancytree-icon:before{color:#1e6dab;font-size:1em;content:""}.organisationalUnitTree ul.fancytree-container>li>span>span.fancytree-icon:before{color:#fa6800;font-size:1em;content:""}.organisationalUnitTree span.fancytree-node.fancytree-selected{font-style:normal;background:none}#Config_System_AD_SearchScope_Dialog_Loading,#dialogOrganisationalUnit_Loading{text-align:center;padding:40px 0}#configurationDocumentTemplateExpressionBrowser{padding-right:275px;background-image:url(data:image/png;base64,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);background-position:right top;background-repeat:no-repeat}#Logging_Task_Status{width:520px;margin:40px auto 60px auto}#Logging_Task_Status th.process{text-align:left;font-weight:bold;background-color:#f4f4f4;min-height:30px;vertical-align:middle}#Logging_Task_Status td.description{font-size:.9em;min-height:60px}#Logging_Task_Status td.progress{padding:8px 10px}#Logging_Task_Status td.finishedMessage i{display:none}#Logging_Task_Status td.finishedRedirect{position:relative}#Logging_Task_Status td.finishedRedirect i{color:#1e6dab;position:absolute;right:10px;top:calc(57% - .5em);display:inline-block}#Logging_Task_Status td.exception{background-color:#ffd8d8}div.logEventsViewport{border:1px solid #bbb;-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}div.logEventsViewport div.logEventsViewportContainer{overflow-y:auto;overflow-x:hidden}div.logEventsViewport div.logEventsViewportContainer .logEventsViewportNoLogs{padding-top:20px;text-align:center;font-style:italic}div.logEventsViewport table.logEventsViewport{padding:0;margin:0;background-color:#bbb;table-layout:fixed}div.logEventsViewport table.logEventsViewport>thead>tr{background-color:#eee}div.logEventsViewport table.logEventsViewport>thead>tr>th{padding:4px 2px;font-weight:bold;border-bottom:1px solid #bbb}div.logEventsViewport table.logEventsViewport>thead>tr>th.icon{width:20px}div.logEventsViewport table.logEventsViewport>thead>tr>th.timestamp{width:155px}div.logEventsViewport table.logEventsViewport>thead>tr>th.eventType{width:180px}div.logEventsViewport table.logEventsViewport>tbody>tr{background-color:#fff}div.logEventsViewport table.logEventsViewport>tbody>tr:nth-child(even){background-color:#eee}div.logEventsViewport table.logEventsViewport>tbody>tr>td{padding:2px}div.logEventsViewport table.logEventsViewport>tbody>tr>td.icon{width:20px;vertical-align:middle;text-align:center}div.logEventsViewport table.logEventsViewport>tbody>tr>td.icon>i{display:block;font-size:1.2em}div.logEventsViewport table.logEventsViewport>tbody>tr>td.icon>i.fa-info-circle{color:#1e6dab}div.logEventsViewport table.logEventsViewport>tbody>tr>td.icon>i.fa-exclamation-triangle{color:#f0a30a}div.logEventsViewport table.logEventsViewport>tbody>tr>td.icon>i.fa-exclamation-circle{color:#e51400}div.logEventsViewport table.logEventsViewport>tbody>tr>td.timestamp{width:155px}div.logEventsViewport table.logEventsViewport>tbody>tr>td.eventType{width:180px}#enrolStatus #sessions .session{width:280px;padding:4px 4px 4px 72px;margin:8px;border:5px solid #efefef;-moz-border-radius:0 20px 0 0;-webkit-border-radius:0 20px 0 0;border-radius:0 20px 0 0;background-color:#f5f5f5;background-repeat:no-repeat,no-repeat;background-position:36px 36px,4px 4px;-moz-background-size:32px,64px;-o-background-size:32px,64px;-webkit-background-size:32px,64px;background-size:32px,64px;min-height:72px;cursor:pointer}#enrolStatus #sessions .session>h3{padding-bottom:3px;border-bottom:1px dashed #ccc}#enrolStatus #sessions .session>h3 span.details{font-size:.8em}#enrolStatus #sessions .session>p.sessionStart{color:#888;font-size:.8em;margin-bottom:2px}#enrolStatus #sessions .session>p.sessionStatus{font-size:.9em;height:1.6em;overflow:hidden;margin-bottom:3px}#enrolStatus #sessions .session:hover{border:5px solid #6c7a87;background-color:#dfe1f8}#dialogSession .sessionHeader{width:400px;float:left;padding:0 0 0 134px;background-repeat:no-repeat,no-repeat;background-position:96px 96px,0 0;-moz-background-size:32px,128px;-o-background-size:32px,128px;-webkit-background-size:32px,128px;background-size:32px,128px;min-height:134px}#dialogSession .sessionHeader>h2{padding-bottom:0}#dialogSession .sessionHeader>table{margin-top:4px}#dialogSession .sessionHeader>table th{width:128px;text-align:right}#dialogSession .sessionHeader>table td,#dialogSession .sessionHeader>table th{padding:1px 2px}#dialogSession .sessionProgress{width:320px;float:right;text-align:right}#dialogSession .sessionProgress>p.sessionStart{color:#888;margin-bottom:2px}#dialogSession .sessionProgress>p.sessionStatus{height:1.6em;overflow:hidden;margin-bottom:3px}#dialogSession .sessionInfoContainer>div{float:left;width:428px;overflow:auto}#dialogSession .sessionInfoContainer .sessionInfoMessages{height:440px;border:1px solid #bbb;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:#fff}#dialogSession .sessionInfoContainer .sessionInfoMessages div.logEventsViewportContainer{overflow:auto}#dialogSession .sessionInfoContainer .sessionInfoMessages div.logEventsViewportContainer .logEventsViewportNoLogs{padding-top:20px;text-align:center;font-style:italic}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport{padding:0;margin:0;background-color:#fff}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>thead>tr{background-color:#eee}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>thead>tr>th{padding:4px 2px;font-weight:bold;border-bottom:1px solid #bbb}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>thead>tr>th.icon{width:20px}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>thead>tr>th.timestamp{width:155px}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>thead>tr>th.eventType{width:180px}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr{background-color:#fff}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr:nth-child(even){background-color:#eee}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td{padding:2px}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon{width:20px;vertical-align:middle;text-align:center}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i{display:block;font-size:1.2em}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i.fa-info-circle{color:#1e6dab}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i.fa-exclamation-triangle{color:#f0a30a}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i.fa-exclamation-circle{color:#e51400}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.timestamp{width:155px}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.eventType{width:180px}#dialogSession .sessionInfoContainer .sessionInfoConsole{margin-left:6px;background-color:#222;color:#0f0;font-family:Consolas,"Courier New",monospace;border:4px solid #ccc;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;padding:2px;height:430px}#Config_DocumentTemplates_JobSubTypes{border:1px dashed #d8d8d8;background-color:#fff;padding:4px;margin-top:6px}#Config_DocumentTemplates_JobSubTypes>h4{margin-bottom:4px}#Config_DocumentTemplates_JobSubTypes #Config_DocumentTemplates_JobSubTypes_Update{margin-top:4px}#Config_DocumentTemplates_JobSubTypes_Update_Dialog #Config_DocumentTemplates_JobSubTypes_Update_Dialog_Types{margin:0 0 8px 0}#Config_DocumentTemplates_JobSubTypes_Update_Dialog .jobTypes{padding:6px 0}#Config_DocumentTemplates_JobSubTypes_Update_Dialog .jobTypes .jobSubTypes{background-color:#f2f2f2;border-left:4px solid #d8d8d8;padding:4px 0 4px 8px;margin:4px 0 0 6px}#Config_DocumentTemplates_JobSubTypes_Update_Dialog .checkboxBulkSelectContainer{font-size:.8em}#dialogBulkGenerate .brief{margin:0 0 8px 0}#dialogBulkGenerate .brief .scopeDescBulkGenerate{font-weight:bold}#dialogBulkGenerate .brief div.examples{margin:8px auto;width:300px}#dialogBulkGenerate .brief div.examples div{margin:2px 4px 2px 0;width:150px;float:left}#dialogBulkGenerate .brief div.examples div.example1{width:100px}#dialogBulkGenerate textarea{width:100%;height:200px;margin:0 auto}#importStatus #sessions .session{padding:4px;margin-bottom:10px;border:1px solid #efefef;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:#f5f5f5;min-height:72px}#importStatus #sessions .session .sessionLeftPane{width:48%;float:left}#importStatus #sessions .session .sessionLeftPane>h3{padding-bottom:3px;border-bottom:1px dashed #ccc}#importStatus #sessions .session .sessionLeftPane>h3 span.details{font-size:.8em}#importStatus #sessions .session .sessionRightPane{width:48%;float:right;text-align:right}#importStatus #sessions .session .sessionRightPane>p.sessionStart{color:#888;font-size:.8em;margin-bottom:2px}#importStatus #sessions .session .sessionRightPane>p.sessionStatus{font-size:.9em;height:1.6em;overflow:hidden;margin-bottom:3px}#importStatus #sessions .session .sessionPages>.sessionPage{min-height:56px;min-width:256px;float:left;margin:3px 0 3px 0;padding:170px 0 0 0;background-color:#fff;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;border:1px solid #eee;background-repeat:no-repeat;background-position:center top}#importStatus #sessions .session .sessionPages>.sessionPage>.sessionPageDetails{height:84px;padding:2px 4px 0 4px;background-color:rgba(255,255,255,.8)}#importStatus #sessions .session .sessionPages>.sessionPage>.sessionPageDetails p.sessionStatus{font-size:.9em;height:1.6em;margin-bottom:3px}#importStatus #sessions .session .sessionInfoMessages{margin-top:6px;border:1px solid #bbb;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:#fff}#importStatus #sessions .session .sessionInfoMessages div.logEventsViewportContainer{max-height:220px;overflow:auto}#importStatus #sessions .session .sessionInfoMessages div.logEventsViewportContainer .logEventsViewportNoLogs{padding-top:20px;text-align:center;font-style:italic}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport{padding:0;margin:0;background-color:#fff}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>thead>tr{background-color:#eee}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>thead>tr>th{padding:4px 2px;font-weight:bold;border-bottom:1px solid #bbb}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>thead>tr>th.icon{width:20px}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>thead>tr>th.timestamp{width:155px}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>thead>tr>th.eventType{width:180px}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr{background-color:#fff}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr:nth-child(even){background-color:#eee}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td{padding:2px}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon{width:20px;vertical-align:middle;text-align:center}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i{display:block;font-size:1.2em}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i.fa-info-circle{color:#1e6dab}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i.fa-exclamation-triangle{color:#f0a30a}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i.fa-exclamation-circle{color:#e51400}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.timestamp{width:155px}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.eventType{width:180px}#undetectedPagesContainer #undetectedPages{list-style:none;margin:0;padding:0}#undetectedPagesContainer #undetectedPages>.undetectedPage{float:left;margin:4px;border:1px solid #f4f4f4;background-color:#fcfcfc;height:256px;width:256px;background-position:top center;background-repeat:no-repeat;cursor:pointer}#undetectedPagesContainer #undetectedPages>.undetectedPage>.pageDetails{margin-top:232px;height:24px;text-align:center}#undetectedPagesContainer #undetectedPages>.undetectedPage:hover{border:1px solid #d8d8d8;background-color:#f4f4f4}#undetectedPageDialog>.pagePreview{height:700px;background-position:top center;background-repeat:no-repeat}#undetectedPageDialog .actions{border-top:1px solid #d1d1d1;padding-top:8px;margin-top:8px;text-align:right}#Config_DeviceBatches #Config_DeviceBatches_List tr.decommissioned{display:none}#Config_DeviceBatches #Config_DeviceBatches_List tr.decommissioned>td{background-color:#f7f7f7;color:#888}#Config_DeviceBatches #Config_DeviceBatches_List tr.decommissioned:nth-child(odd)>td{background-color:#f2f2f2}#Config_DeviceBatches_ShowDecommissioned{position:absolute;right:30px;bottom:8px;font-size:.5em;line-height:1em;text-align:right}.deviceBatches #DeviceBatch_PurchaseDetails_Container{padding:5px 0 5px 5px}.deviceBatches #DeviceBatch_PurchaseDetails{width:570px;height:200px}.deviceBatches #DeviceBatch_WarrantyDetails_Container{padding:5px 0 5px 5px}.deviceBatches #DeviceBatch_WarrantyDetails{width:570px;height:200px}.deviceBatches #DeviceBatch_InsuranceDetails_Container{padding:5px 0 5px 5px}.deviceBatches #DeviceBatch_InsuranceDetails{width:570px;height:200px}.deviceBatches #DeviceBatch_Comments{width:570px;height:200px}#plugins .pageMenuArea a>h3{display:inline;color:#335a87}#plugins .pageMenuArea a>h3:hover{color:#5e8cc2}#plugins .pageMenuArea .pageMenuBlurb{padding-left:18px}#plugins .pageMenuArea .pageMenuBlurb i{font-size:.9em}#plugins #pageMenu td .pageMenuArea:not(:last-child){padding-bottom:5px;margin-bottom:10px}#plugins #pageMenu td .pageMenuArea>a,#plugins #pageMenu td .pageMenuArea>h3{color:#333}#plugins #pageMenu td .pageMenuArea>a:hover,#plugins #pageMenu td .pageMenuArea>h3:hover{color:#335a87}#pluginCatalog #pluginCatalogHeading{margin-bottom:20px;text-align:right}#pluginCatalog .pluginItem .pluginItemBlurb{margin:4px 0 4px 2px;padding:0 4px;border-left:4px solid #f4f4f4}#pluginCatalog .pluginItem .pluginItemBlurb *{padding:0;margin:0}#pluginCatalog .pluginItem .pageMenuBlurb i{font-size:.9em}#pluginCatalog .pluginItem>h2:first-child{min-height:22px}#pluginCatalog .pluginItem>h2:first-child i{font-size:.9em;padding-right:4px;color:#333}#pluginCatalog .pluginItem>h2:first-child a{float:right;font-size:12px}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-node{padding:1px;border:none}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-node>span.fancytree-icon{background:none;display:inline-block;font-family:FontAwesome;font-size:1.2em;width:14px}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-ico-ef>span.fancytree-icon:before{color:#9e9e9e;font-size:1em;content:""}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-ico-cf>span.fancytree-icon:before{color:#9e9e9e;font-size:1em;content:""}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-ico-c>span.fancytree-icon:before{color:#e51400;content:""}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-ico-c.fancytree-selected>span.fancytree-icon:before{color:#60a917;content:""}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-node.fancytree-selected{font-style:normal;background:none}#Config_AuthRoles_Subjects li,#Config_AuthRoles_Subjects_Update_Dialog_List li{padding:4px 0 4px 4px}#Config_AuthRoles_Subjects li i.fa-user,#Config_AuthRoles_Subjects_Update_Dialog_List li i.fa-user,#Config_AuthRoles_Subjects li i.fa-users,#Config_AuthRoles_Subjects_Update_Dialog_List li i.fa-users{min-width:22px}#Config_AuthRoles_Subjects_Update_Dialog{display:none}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_ListContainer{height:280px;overflow-y:auto;background-color:#fff;border:1px solid #d8d8d8}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_None{padding-top:15px;display:block;text-align:center}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_AddContainer{padding-top:10px;padding-left:10px}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_List li{cursor:pointer}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_List li:hover{background-color:#f4f4f4}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_List li:hover .remove{opacity:.8}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_List li .remove{margin-top:2px;padding-right:6px;float:right;cursor:pointer;opacity:0;color:#e51400;font-size:1.3em}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_List li .remove:hover{opacity:1}#Config_Location{margin-top:10px}#Config_Location #Config_Location_Unrestricted,#Config_Location #Config_Location_List,#Config_Location #Config_Location_Optional,#Config_Location #Config_Location_Restricted{display:none;margin-top:6px}#Config_Location_List_Dialog{display:none}#Config_Location_List_Dialog #Config_Location_List_Dialog_ListContainer{height:280px;overflow-y:auto;background-color:#fff;border:1px solid #d8d8d8}#Config_Location_List_Dialog #Config_Location_List_Dialog_None{padding-top:15px;display:block;text-align:center}#Config_Location_List_Dialog #Config_Location_List_Dialog_AddContainer{padding-top:10px;padding-left:10px}#Config_Location_List_Dialog #Config_Location_List_Dialog_List li{padding:2px 0 2px 4px;cursor:pointer}#Config_Location_List_Dialog #Config_Location_List_Dialog_List li:hover{background-color:#f4f4f4}#Config_Location_List_Dialog #Config_Location_List_Dialog_List li:hover .remove{opacity:.8}#Config_Location_List_Dialog #Config_Location_List_Dialog_List li .remove{margin-top:2px;padding-right:6px;float:right;cursor:pointer;opacity:0;color:#e51400;font-size:1.3em}#Config_Location_List_Dialog #Config_Location_List_Dialog_List li .remove:hover{opacity:1}#Config_Location_ListImport_Dialog{display:none}#Config_Location_ListImport_Dialog #Config_Location_ListImport_Dialog_Overwrite_Container{margin:6px 0}#Config_Location_ListImport_Dialog #Config_Location_ListImport_Dialog_LocationList{width:100%;height:200px;margin:0 auto}#Config_JobQueues_Index i{width:1.2857142857142858em;text-align:center}#Config_JobQueues_Icon{display:block;margin:0 0 10px 10px}#Config_JobQueues_Icon_Update_Dialog{display:none}#Config_JobQueues_Icon_Update_Dialog div.colours{text-align:center;font-size:30px}#Config_JobQueues_Icon_Update_Dialog div.colours i{cursor:pointer;padding:1px;opacity:.9}#Config_JobQueues_Icon_Update_Dialog div.colours i:hover{opacity:1}#Config_JobQueues_Icon_Update_Dialog div.colours i.selected{opacity:1}#Config_JobQueues_Icon_Update_Dialog div.icons{text-align:center;font-size:34px;background-color:#fff;border:1px solid #d1d1d1;margin:6px 0 14px 0}#Config_JobQueues_Icon_Update_Dialog div.icons i{width:1.2857142857142858em;text-align:center;cursor:pointer;padding:6px 0;color:#333;opacity:.6}#Config_JobQueues_Icon_Update_Dialog div.icons i:hover{opacity:.9;color:inherit}#Config_JobQueues_Icon_Update_Dialog div.icons i.selected{opacity:1;color:inherit}#Config_JobQueues_JobSubTypes_Update{margin:8px 0}#Config_JobQueues_JobSubTypes_Update_Dialog #Config_JobQueues_JobSubTypes_Update_Dialog_Types{margin:0 0 8px 0}#Config_JobQueues_JobSubTypes_Update_Dialog .jobTypes{padding:6px 0}#Config_JobQueues_JobSubTypes_Update_Dialog .jobTypes .jobSubTypes{background-color:#f2f2f2;border-left:4px solid #d8d8d8;padding:4px 0 4px 8px;margin:4px 0 0 6px}#Config_JobQueues_JobSubTypes_Update_Dialog .checkboxBulkSelectContainer{font-size:.8em}#Config_JobQueues_Subjects li,#Config_JobQueues_Subjects_Update_Dialog_List li{padding:4px 0 4px 4px}#Config_JobQueues_Subjects li i.fa-user,#Config_JobQueues_Subjects_Update_Dialog_List li i.fa-user,#Config_JobQueues_Subjects li i.fa-users,#Config_JobQueues_Subjects_Update_Dialog_List li i.fa-users{width:1.2857142857142858em;text-align:center}#Config_JobQueues_Subjects_Update_Dialog{display:none}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_ListContainer{height:280px;overflow-y:auto;background-color:#fff;border:1px solid #d8d8d8}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_None{padding-top:15px;display:block;text-align:center}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_AddContainer{padding-top:10px;padding-left:10px}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_List li{cursor:pointer}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_List li:hover{background-color:#f4f4f4}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_List li:hover .remove{opacity:.8}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_List li .remove{margin-top:2px;padding-right:6px;float:right;cursor:pointer;opacity:0;color:#e51400;font-size:1.3em}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_List li .remove:hover{opacity:1} \ No newline at end of file +.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}#updateAvailableContainer{float:right;border:1px dashed #ddd;background-color:#fff;font-size:.6em;line-height:1em;padding:10px 10px 4px 70px;text-align:right;height:50px}#updateAvailableContainer i{position:absolute;display:block;height:64px;width:64px;vertical-align:middle;margin-left:-70px;font-size:50px;color:#e51400}#updateAvailableContainer a.button{font-size:12px;margin-top:8px}#expressionEditor #expressionEditorExceptionContainer{display:none;border:1px dashed #ff9696;background-color:#ffd8d8;margin:10px 0;padding:10px}#expressionEditor #expressionEditorContainer{border:1px solid #1e6dab;background-color:#f4f4f4;height:100px}.expressionTree span.dynatree-node span.dynatree-icon{background-image:url(data:image/png;base64,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);background-position-y:0}.expressionTree span.dynatree-node.object span.dynatree-icon{background-position-x:0}.expressionTree span.dynatree-node.parameter span.dynatree-icon{background-position-x:-16px}.expressionTree span.dynatree-node.function span.dynatree-icon{background-position-x:-32px}.expressionTree span.dynatree-node.property span.dynatree-icon{background-position-x:-48px}table.expressionsTable{border:solid 1px #f4f4f4;border-collapse:collapse}table.expressionsTable>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}table.expressionsTable>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}table.expressionsTable>thead>tr>th,table.expressionsTable>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}table.expressionsTable>tbody>tr:hover>td{background-color:#fefefe}table.expressionsTable>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}table.expressionsTable>tfoot>tr>th,table.expressionsTable>tfoot>tr>td{background-color:#f4f4f4}table.expressionsTable td.parseError{background-color:#ffd8d8}#AttachmentType_FilterExpression{width:375px}#deviceComponents{border:solid 1px #f4f4f4;border-collapse:collapse}#deviceComponents>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}#deviceComponents>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}#deviceComponents>thead>tr>th,#deviceComponents>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}#deviceComponents>tbody>tr:hover>td{background-color:#fefefe}#deviceComponents>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}#deviceComponents>tfoot>tr>th,#deviceComponents>tfoot>tr>td{background-color:#f4f4f4}#deviceComponents tr th.actions{width:20px}#deviceComponents tr input.description{width:300px}#deviceComponents tr input.cost{width:75px}#deviceComponents tr i.remove{font-size:1.6em;color:#e51400;cursor:pointer;opacity:.8}#deviceComponents tr i.remove:hover{opacity:1}#deviceComponents tr i.fa-list-alt{color:#1e6dab;font-size:1.6em;cursor:pointer}#deviceComponents tr i.fa-asterisk{color:#fa6800;font-size:1em;left:10px;top:3px;cursor:pointer}#deviceComponents tr input.updating{background-position:right center;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEAALAPQAAP///zNah+Hm7dng6O7x9DddiTNah1d3nJqtw3+Xs8fS3k5vlm6JqaGzx4KatcrU4FFymDZciHGMq+ru8t/l7Pb3+V9+oeLo7vT2+MTP3LLB0dTc5fHz9gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA)}#organisationAddresses{font-size:.9em}#organisationAddresses tr:not(:last-child){border-bottom:1px dashed #aaa}#organisationAddresses th{padding:2px;font-weight:bold;width:200px}#organisationAddresses td{padding:2px;vertical-align:middle}#organisationAddresses tr:nth-child(even){background-color:#fff}#organisationAddresses i.fa{font-size:1.7em;cursor:pointer}#organisationAddresses i.fa.delete{color:#e51400;opacity:.8}#organisationAddresses i.fa.delete:hover{opacity:1}#organisationAddresses i.fa.edit{color:#1e6dab}ul#loggingEntries{overflow:auto;max-height:230px;padding-left:20px}table.deviceProfileTable th.name{width:300px}table.deviceProfileTable th.type{width:120px}table.deviceProfileTable th.deviceCount{width:120px}#configurationDeviceProfileShow #ComputerNameTemplate{width:300px}#configurationDeviceProfileShow #expressionBrowserAnchor{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACKUlEQVQ4jaWTTU4UURDHf/W6gXFgJlHZKFvEe3gBvYhewXgGTXRpOILhGESGgEuNjB9N/BgCTJjufvXhonsQ176kkqpFVf2q6v8kIvifV77b2wsAU6MsCop/LCEpISIkEUAoioSZYWZczOeUp6en1ZPHT+4FQXgQERDBMrZlHACOpIKcM23bMN3fr0pEcDfub21x9/YdIhwR6QoJWFY8wF2JAHfH3fh8MoUISoGugxnPnj1lZ2eHg/cHTL9MMTdy09K0LVkVy8rsbMZkMukpoRQRRBIAZ2czNjbWWV1bZXY2I6WCpq5pmgY1ZXoypaoqAEQSsSQQ6Tb67es3Xr9+Q103PHy4w+Fkgpoxn1/y8eMn6rq+3v4yp0TkOvpeVaytreHuHB4egggXFxdUVUVZrrKxXmJuLBYLut15PwIwGo1IqTuTSGJlJfj1+xdXV1eMx2PCnTZn3B1VRZY6kJ5gc3MTEenO1Cy4nF9SpILxaIya4maUqrgqdU8QEd0IArgbOStFmVFVNCuqirtjalgYboa5A3KDIAJEGA7XiQiauiZnZTgcXhdwM7RXX1ZlsbgCEUTkL8GD7W3UjMGtAUUqMDMiosf3niqTVbk1GLDUT5nV5Oj4A293d1G1647m3qvOb/hGBLRty9HxB8xM5OWrV49+/vj5wuk07x4CEZ2clxcWUuqclFIgiSIJo9Houdz8zufn56siMgBKoACkNwdcRDIRzWg8bpY5fwBYR4lbku/2TAAAAABJRU5ErkJggg==);text-decoration:none}#configurationDeviceProfileShow #displayComputerNameTemplate{margin:0 0 6px 0}#configurationDeviceProfileShow #displayOrganisationalUnit{margin:0 0 6px 0}.organisationalUnitTree span.fancytree-node{padding:1px;border:none}.organisationalUnitTree span.fancytree-node>span.fancytree-icon{background:none;display:inline-block;font-family:FontAwesome;font-size:1.2em;width:14px}.organisationalUnitTree span.fancytree-ico-ef>span.fancytree-icon:before{color:#1e6dab;font-size:1em;content:""}.organisationalUnitTree span.fancytree-ico-cf>span.fancytree-icon:before{color:#1e6dab;font-size:1em;content:""}.organisationalUnitTree ul.fancytree-container>li>span>span.fancytree-icon:before{color:#fa6800;font-size:1em;content:""}.organisationalUnitTree span.fancytree-node.fancytree-selected{font-style:normal;background:none}#Config_System_AD_SearchScope_Dialog_Loading,#dialogOrganisationalUnit_Loading{text-align:center;padding:40px 0}#configurationDocumentTemplateExpressionBrowser{padding-right:275px;background-image:url(data:image/png;base64,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);background-position:right top;background-repeat:no-repeat}#Logging_Task_Status{width:520px;margin:40px auto 60px auto}#Logging_Task_Status th.process{text-align:left;font-weight:bold;background-color:#f4f4f4;min-height:30px;vertical-align:middle}#Logging_Task_Status td.description{font-size:.9em;min-height:60px}#Logging_Task_Status td.progress{padding:8px 10px}#Logging_Task_Status td.finishedMessage i{display:none}#Logging_Task_Status td.finishedRedirect{position:relative}#Logging_Task_Status td.finishedRedirect i{color:#1e6dab;position:absolute;right:10px;top:calc(57% - .5em);display:inline-block}#Logging_Task_Status td.exception{background-color:#ffd8d8}div.logEventsViewport{border:1px solid #bbb;-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}div.logEventsViewport div.logEventsViewportContainer{overflow-y:auto;overflow-x:hidden}div.logEventsViewport div.logEventsViewportContainer .logEventsViewportNoLogs{padding-top:20px;text-align:center;font-style:italic}div.logEventsViewport table.logEventsViewport{padding:0;margin:0;background-color:#bbb;table-layout:fixed}div.logEventsViewport table.logEventsViewport>thead>tr{background-color:#eee}div.logEventsViewport table.logEventsViewport>thead>tr>th{padding:4px 2px;font-weight:bold;border-bottom:1px solid #bbb}div.logEventsViewport table.logEventsViewport>thead>tr>th.icon{width:20px}div.logEventsViewport table.logEventsViewport>thead>tr>th.timestamp{width:155px}div.logEventsViewport table.logEventsViewport>thead>tr>th.eventType{width:180px}div.logEventsViewport table.logEventsViewport>tbody>tr{background-color:#fff}div.logEventsViewport table.logEventsViewport>tbody>tr:nth-child(even){background-color:#eee}div.logEventsViewport table.logEventsViewport>tbody>tr>td{padding:2px}div.logEventsViewport table.logEventsViewport>tbody>tr>td.icon{width:20px;vertical-align:middle;text-align:center}div.logEventsViewport table.logEventsViewport>tbody>tr>td.icon>i{display:block;font-size:1.2em}div.logEventsViewport table.logEventsViewport>tbody>tr>td.icon>i.fa-info-circle{color:#1e6dab}div.logEventsViewport table.logEventsViewport>tbody>tr>td.icon>i.fa-exclamation-triangle{color:#f0a30a}div.logEventsViewport table.logEventsViewport>tbody>tr>td.icon>i.fa-exclamation-circle{color:#e51400}div.logEventsViewport table.logEventsViewport>tbody>tr>td.timestamp{width:155px}div.logEventsViewport table.logEventsViewport>tbody>tr>td.eventType{width:180px}#enrolStatus #sessions .session{width:280px;padding:4px 4px 4px 72px;margin:8px;border:5px solid #efefef;-moz-border-radius:0 20px 0 0;-webkit-border-radius:0 20px 0 0;border-radius:0 20px 0 0;background-color:#f5f5f5;background-repeat:no-repeat,no-repeat;background-position:36px 36px,4px 4px;-moz-background-size:32px,64px;-o-background-size:32px,64px;-webkit-background-size:32px,64px;background-size:32px,64px;min-height:72px;cursor:pointer}#enrolStatus #sessions .session>h3{padding-bottom:3px;border-bottom:1px dashed #ccc}#enrolStatus #sessions .session>h3 span.details{font-size:.8em}#enrolStatus #sessions .session>p.sessionStart{color:#888;font-size:.8em;margin-bottom:2px}#enrolStatus #sessions .session>p.sessionStatus{font-size:.9em;height:1.6em;overflow:hidden;margin-bottom:3px}#enrolStatus #sessions .session:hover{border:5px solid #6c7a87;background-color:#dfe1f8}#dialogSession .sessionHeader{width:400px;float:left;padding:0 0 0 134px;background-repeat:no-repeat,no-repeat;background-position:96px 96px,0 0;-moz-background-size:32px,128px;-o-background-size:32px,128px;-webkit-background-size:32px,128px;background-size:32px,128px;min-height:134px}#dialogSession .sessionHeader>h2{padding-bottom:0}#dialogSession .sessionHeader>table{margin-top:4px}#dialogSession .sessionHeader>table th{width:128px;text-align:right}#dialogSession .sessionHeader>table td,#dialogSession .sessionHeader>table th{padding:1px 2px}#dialogSession .sessionProgress{width:320px;float:right;text-align:right}#dialogSession .sessionProgress>p.sessionStart{color:#888;margin-bottom:2px}#dialogSession .sessionProgress>p.sessionStatus{height:1.6em;overflow:hidden;margin-bottom:3px}#dialogSession .sessionInfoContainer>div{float:left;width:428px;overflow:auto}#dialogSession .sessionInfoContainer .sessionInfoMessages{height:440px;border:1px solid #bbb;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:#fff}#dialogSession .sessionInfoContainer .sessionInfoMessages div.logEventsViewportContainer{overflow:auto}#dialogSession .sessionInfoContainer .sessionInfoMessages div.logEventsViewportContainer .logEventsViewportNoLogs{padding-top:20px;text-align:center;font-style:italic}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport{padding:0;margin:0;background-color:#fff}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>thead>tr{background-color:#eee}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>thead>tr>th{padding:4px 2px;font-weight:bold;border-bottom:1px solid #bbb}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>thead>tr>th.icon{width:20px}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>thead>tr>th.timestamp{width:155px}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>thead>tr>th.eventType{width:180px}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr{background-color:#fff}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr:nth-child(even){background-color:#eee}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td{padding:2px}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon{width:20px;vertical-align:middle;text-align:center}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i{display:block;font-size:1.2em}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i.fa-info-circle{color:#1e6dab}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i.fa-exclamation-triangle{color:#f0a30a}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i.fa-exclamation-circle{color:#e51400}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.timestamp{width:155px}#dialogSession .sessionInfoContainer .sessionInfoMessages table.logEventsViewport>tbody>tr>td.eventType{width:180px}#dialogSession .sessionInfoContainer .sessionInfoConsole{margin-left:6px;background-color:#222;color:#0f0;font-family:Consolas,"Courier New",monospace;border:4px solid #ccc;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;padding:2px;height:430px}#Config_DocumentTemplates_JobSubTypes{border:1px dashed #d8d8d8;background-color:#fff;padding:4px;margin-top:6px}#Config_DocumentTemplates_JobSubTypes>h4{margin-bottom:4px}#Config_DocumentTemplates_JobSubTypes #Config_DocumentTemplates_JobSubTypes_Update{margin-top:4px}#Config_DocumentTemplates_JobSubTypes_Update_Dialog #Config_DocumentTemplates_JobSubTypes_Update_Dialog_Types{margin:0 0 8px 0}#Config_DocumentTemplates_JobSubTypes_Update_Dialog .jobTypes{padding:6px 0}#Config_DocumentTemplates_JobSubTypes_Update_Dialog .jobTypes .jobSubTypes{background-color:#f2f2f2;border-left:4px solid #d8d8d8;padding:4px 0 4px 8px;margin:4px 0 0 6px}#Config_DocumentTemplates_JobSubTypes_Update_Dialog .checkboxBulkSelectContainer{font-size:.8em}#dialogBulkGenerate .brief{margin:0 0 8px 0}#dialogBulkGenerate .brief .scopeDescBulkGenerate{font-weight:bold}#dialogBulkGenerate .brief div.examples{margin:8px auto;width:300px}#dialogBulkGenerate .brief div.examples div{margin:2px 4px 2px 0;width:150px;float:left}#dialogBulkGenerate .brief div.examples div.example1{width:100px}#dialogBulkGenerate textarea{width:100%;height:200px;margin:0 auto}#importStatus #sessions .session{padding:4px;margin-bottom:10px;border:1px solid #efefef;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:#f5f5f5;min-height:72px}#importStatus #sessions .session .sessionLeftPane{width:48%;float:left}#importStatus #sessions .session .sessionLeftPane>h3{padding-bottom:3px;border-bottom:1px dashed #ccc}#importStatus #sessions .session .sessionLeftPane>h3 span.details{font-size:.8em}#importStatus #sessions .session .sessionRightPane{width:48%;float:right;text-align:right}#importStatus #sessions .session .sessionRightPane>p.sessionStart{color:#888;font-size:.8em;margin-bottom:2px}#importStatus #sessions .session .sessionRightPane>p.sessionStatus{font-size:.9em;height:1.6em;overflow:hidden;margin-bottom:3px}#importStatus #sessions .session .sessionPages>.sessionPage{min-height:56px;min-width:256px;float:left;margin:3px 0 3px 0;padding:170px 0 0 0;background-color:#fff;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;border:1px solid #eee;background-repeat:no-repeat;background-position:center top}#importStatus #sessions .session .sessionPages>.sessionPage>.sessionPageDetails{height:84px;padding:2px 4px 0 4px;background-color:rgba(255,255,255,.8)}#importStatus #sessions .session .sessionPages>.sessionPage>.sessionPageDetails p.sessionStatus{font-size:.9em;height:1.6em;margin-bottom:3px}#importStatus #sessions .session .sessionInfoMessages{margin-top:6px;border:1px solid #bbb;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:#fff}#importStatus #sessions .session .sessionInfoMessages div.logEventsViewportContainer{max-height:220px;overflow:auto}#importStatus #sessions .session .sessionInfoMessages div.logEventsViewportContainer .logEventsViewportNoLogs{padding-top:20px;text-align:center;font-style:italic}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport{padding:0;margin:0;background-color:#fff}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>thead>tr{background-color:#eee}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>thead>tr>th{padding:4px 2px;font-weight:bold;border-bottom:1px solid #bbb}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>thead>tr>th.icon{width:20px}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>thead>tr>th.timestamp{width:155px}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>thead>tr>th.eventType{width:180px}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr{background-color:#fff}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr:nth-child(even){background-color:#eee}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td{padding:2px}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon{width:20px;vertical-align:middle;text-align:center}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i{display:block;font-size:1.2em}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i.fa-info-circle{color:#1e6dab}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i.fa-exclamation-triangle{color:#f0a30a}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.icon>i.fa-exclamation-circle{color:#e51400}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.timestamp{width:155px}#importStatus #sessions .session .sessionInfoMessages table.logEventsViewport>tbody>tr>td.eventType{width:180px}#undetectedPagesContainer #undetectedPages{list-style:none;margin:0;padding:0}#undetectedPagesContainer #undetectedPages>.undetectedPage{float:left;margin:4px;border:1px solid #f4f4f4;background-color:#fcfcfc;height:256px;width:256px;background-position:top center;background-repeat:no-repeat;cursor:pointer}#undetectedPagesContainer #undetectedPages>.undetectedPage>.pageDetails{margin-top:232px;height:24px;text-align:center}#undetectedPagesContainer #undetectedPages>.undetectedPage:hover{border:1px solid #d8d8d8;background-color:#f4f4f4}#undetectedPageDialog>.pagePreview{height:700px;background-position:top center;background-repeat:no-repeat}#undetectedPageDialog .actions{border-top:1px solid #d1d1d1;padding-top:8px;margin-top:8px;text-align:right}#Config_DeviceBatches #Config_DeviceBatches_List tr.decommissioned{display:none}#Config_DeviceBatches #Config_DeviceBatches_List tr.decommissioned>td{background-color:#f7f7f7;color:#888}#Config_DeviceBatches #Config_DeviceBatches_List tr.decommissioned:nth-child(odd)>td{background-color:#f2f2f2}#Config_DeviceBatches_ShowDecommissioned{position:absolute;right:30px;bottom:8px;font-size:.5em;line-height:1em;text-align:right}.deviceBatches #DeviceBatch_PurchaseDetails_Container{padding:5px 0 5px 5px}.deviceBatches #DeviceBatch_PurchaseDetails{width:570px;height:200px}.deviceBatches #DeviceBatch_WarrantyDetails_Container{padding:5px 0 5px 5px}.deviceBatches #DeviceBatch_WarrantyDetails{width:570px;height:200px}.deviceBatches #DeviceBatch_InsuranceDetails_Container{padding:5px 0 5px 5px}.deviceBatches #DeviceBatch_InsuranceDetails{width:570px;height:200px}.deviceBatches #DeviceBatch_Comments{width:570px;height:200px}#plugins .pageMenuArea a>h3{display:inline;color:#335a87}#plugins .pageMenuArea a>h3:hover{color:#5e8cc2}#plugins .pageMenuArea .pageMenuBlurb{padding-left:18px}#plugins .pageMenuArea .pageMenuBlurb i{font-size:.9em}#plugins #pageMenu td .pageMenuArea:not(:last-child){padding-bottom:5px;margin-bottom:10px}#plugins #pageMenu td .pageMenuArea>a,#plugins #pageMenu td .pageMenuArea>h3{color:#333}#plugins #pageMenu td .pageMenuArea>a:hover,#plugins #pageMenu td .pageMenuArea>h3:hover{color:#335a87}#pluginCatalog #pluginCatalogHeading{margin-bottom:20px;text-align:right}#pluginCatalog .pluginItem .pluginItemBlurb{margin:4px 0 4px 2px;padding:0 4px;border-left:4px solid #f4f4f4}#pluginCatalog .pluginItem .pluginItemBlurb *{padding:0;margin:0}#pluginCatalog .pluginItem .pageMenuBlurb i{font-size:.9em}#pluginCatalog .pluginItem>h2:first-child{min-height:22px}#pluginCatalog .pluginItem>h2:first-child i{font-size:.9em;padding-right:4px;color:#333}#pluginCatalog .pluginItem>h2:first-child a{float:right;font-size:12px}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-node{padding:1px;border:none}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-node>span.fancytree-icon{background:none;display:inline-block;font-family:FontAwesome;font-size:1.2em;width:14px}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-ico-ef>span.fancytree-icon:before{color:#9e9e9e;font-size:1em;content:""}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-ico-cf>span.fancytree-icon:before{color:#9e9e9e;font-size:1em;content:""}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-ico-c>span.fancytree-icon:before{color:#e51400;content:""}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-ico-c.fancytree-selected>span.fancytree-icon:before{color:#60a917;content:""}#Config_AuthRoles_Show #Config_AuthRoles_Claims_Tree span.fancytree-node.fancytree-selected{font-style:normal;background:none}#Config_AuthRoles_Subjects li,#Config_AuthRoles_Subjects_Update_Dialog_List li{padding:4px 0 4px 4px}#Config_AuthRoles_Subjects li i.fa-user,#Config_AuthRoles_Subjects_Update_Dialog_List li i.fa-user,#Config_AuthRoles_Subjects li i.fa-users,#Config_AuthRoles_Subjects_Update_Dialog_List li i.fa-users{min-width:22px}#Config_AuthRoles_Subjects_Update_Dialog{display:none}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_ListContainer{height:280px;overflow-y:auto;background-color:#fff;border:1px solid #d8d8d8}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_None{padding-top:15px;display:block;text-align:center}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_AddContainer{padding-top:10px;padding-left:10px}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_List li{cursor:pointer}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_List li:hover{background-color:#f4f4f4}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_List li:hover .remove{opacity:.8}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_List li .remove{margin-top:2px;padding-right:6px;float:right;cursor:pointer;opacity:0;color:#e51400;font-size:1.3em}#Config_AuthRoles_Subjects_Update_Dialog #Config_AuthRoles_Subjects_Update_Dialog_List li .remove:hover{opacity:1}#Config_Location{margin-top:10px}#Config_Location #Config_Location_Unrestricted,#Config_Location #Config_Location_List,#Config_Location #Config_Location_Optional,#Config_Location #Config_Location_Restricted{display:none;margin-top:6px}#Config_Location_List_Dialog{display:none}#Config_Location_List_Dialog #Config_Location_List_Dialog_ListContainer{height:280px;overflow-y:auto;background-color:#fff;border:1px solid #d8d8d8}#Config_Location_List_Dialog #Config_Location_List_Dialog_None{padding-top:15px;display:block;text-align:center}#Config_Location_List_Dialog #Config_Location_List_Dialog_AddContainer{padding-top:10px;padding-left:10px}#Config_Location_List_Dialog #Config_Location_List_Dialog_List li{padding:2px 0 2px 4px;cursor:pointer}#Config_Location_List_Dialog #Config_Location_List_Dialog_List li:hover{background-color:#f4f4f4}#Config_Location_List_Dialog #Config_Location_List_Dialog_List li:hover .remove{opacity:.8}#Config_Location_List_Dialog #Config_Location_List_Dialog_List li .remove{margin-top:2px;padding-right:6px;float:right;cursor:pointer;opacity:0;color:#e51400;font-size:1.3em}#Config_Location_List_Dialog #Config_Location_List_Dialog_List li .remove:hover{opacity:1}#Config_Location_ListImport_Dialog{display:none}#Config_Location_ListImport_Dialog #Config_Location_ListImport_Dialog_Overwrite_Container{margin:6px 0}#Config_Location_ListImport_Dialog #Config_Location_ListImport_Dialog_LocationList{width:100%;height:200px;margin:0 auto}#Config_JobQueues_Index i{width:1.2857142857142858em;text-align:center}#Config_JobQueues_Icon{display:block;margin:0 0 10px 10px}#Config_JobQueues_Icon_Update_Dialog{display:none}#Config_JobQueues_Icon_Update_Dialog div.colours{text-align:center;font-size:30px}#Config_JobQueues_Icon_Update_Dialog div.colours i{cursor:pointer;padding:1px;opacity:.9}#Config_JobQueues_Icon_Update_Dialog div.colours i:hover{opacity:1}#Config_JobQueues_Icon_Update_Dialog div.colours i.selected{opacity:1}#Config_JobQueues_Icon_Update_Dialog div.icons{text-align:center;font-size:34px;background-color:#fff;border:1px solid #d1d1d1;margin:6px 0 14px 0}#Config_JobQueues_Icon_Update_Dialog div.icons i{width:1.2857142857142858em;text-align:center;cursor:pointer;padding:6px 0;color:#333;opacity:.6}#Config_JobQueues_Icon_Update_Dialog div.icons i:hover{opacity:.9;color:inherit}#Config_JobQueues_Icon_Update_Dialog div.icons i.selected{opacity:1;color:inherit}#Config_JobQueues_JobSubTypes_Update{margin:8px 0}#Config_JobQueues_JobSubTypes_Update_Dialog #Config_JobQueues_JobSubTypes_Update_Dialog_Types{margin:0 0 8px 0}#Config_JobQueues_JobSubTypes_Update_Dialog .jobTypes{padding:6px 0}#Config_JobQueues_JobSubTypes_Update_Dialog .jobTypes .jobSubTypes{background-color:#f2f2f2;border-left:4px solid #d8d8d8;padding:4px 0 4px 8px;margin:4px 0 0 6px}#Config_JobQueues_JobSubTypes_Update_Dialog .checkboxBulkSelectContainer{font-size:.8em}#Config_JobQueues_Subjects li,#Config_JobQueues_Subjects_Update_Dialog_List li{padding:4px 0 4px 4px}#Config_JobQueues_Subjects li i.fa-user,#Config_JobQueues_Subjects_Update_Dialog_List li i.fa-user,#Config_JobQueues_Subjects li i.fa-users,#Config_JobQueues_Subjects_Update_Dialog_List li i.fa-users{width:1.2857142857142858em;text-align:center}#Config_JobQueues_Subjects_Update_Dialog{display:none}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_ListContainer{height:280px;overflow-y:auto;background-color:#fff;border:1px solid #d8d8d8}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_None{padding-top:15px;display:block;text-align:center}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_AddContainer{padding-top:10px;padding-left:10px}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_List li{cursor:pointer}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_List li:hover{background-color:#f4f4f4}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_List li:hover .remove{opacity:.8}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_List li .remove{margin-top:2px;padding-right:6px;float:right;cursor:pointer;opacity:0;color:#e51400;font-size:1.3em}#Config_JobQueues_Subjects_Update_Dialog #Config_JobQueues_Subjects_Update_Dialog_List li .remove:hover{opacity:1}#Config_UserFlags_Index i{width:1.2857142857142858em;text-align:center}#Config_UserFlags_Icon{display:block;margin:0 0 10px 10px}#Config_UserFlags_Icon_Update_Dialog{display:none}#Config_UserFlags_Icon_Update_Dialog div.colours{text-align:center;font-size:30px}#Config_UserFlags_Icon_Update_Dialog div.colours i{cursor:pointer;padding:1px;opacity:.9}#Config_UserFlags_Icon_Update_Dialog div.colours i:hover{opacity:1}#Config_UserFlags_Icon_Update_Dialog div.colours i.selected{opacity:1}#Config_UserFlags_Icon_Update_Dialog div.icons{text-align:center;font-size:34px;background-color:#fff;border:1px solid #d1d1d1;margin:6px 0 14px 0}#Config_UserFlags_Icon_Update_Dialog div.icons i{width:1.2857142857142858em;text-align:center;cursor:pointer;padding:6px 0;color:#333;opacity:.6}#Config_UserFlags_Icon_Update_Dialog div.icons i:hover{opacity:.9;color:inherit}#Config_UserFlags_Icon_Update_Dialog div.icons i.selected{opacity:1;color:inherit} \ No newline at end of file diff --git a/Disco.Web/ClientSource/Style/Device.css b/Disco.Web/ClientSource/Style/Device.css index 9f7b26e0..ab0e1dc1 100644 --- a/Disco.Web/ClientSource/Style/Device.css +++ b/Disco.Web/ClientSource/Style/Device.css @@ -129,6 +129,15 @@ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACWUlEQVQ4y6XRXWiSURgHcJsXa4WNNuuyiy6CoAupixERoXXhmljuxaJiFrVA1i72cVFCOSMt8rNt2YfGO5g5Z1NstWW+c4ZBq4QpqMkEbZDSCObAMprjdf90sIjxsgUdODd/zvmd5zwPCwDrf/aGB7q6utgmk8ngdruzVqt10eVyTWu1Wuk/AXK5vMpoNPpjsRgGbU8/9fbdH/J4PAuRSARKpfLKhoBYLG595nTCaDSZVjPp6TPbHQ5H0mAwfBeJRHXrAp0dna9JcqCguX2H/Xd+S625aLFYQBDE8XWBd+8/TI6Njc+vzcfGX4nLX4FOp5OuC0wGAlS53NzaPPAm2Gi32+H3+5tYJEl+pigKoVAIPp+PnpqaosPhMF1uHB2Px2mv14vya6VgMKhhHGN3d/dSMplENptFIpHA3NwcCoUCSqUSKqvScZVKBbPZHGQEFApFMZ1OI5PJIBqNrkD5fB40Ta8AlcrUajVsNpufEbh+42YxHEkh+/UbUqlZpGd/lAH8WTMzMzDd64d7NMAMDOobi/OpHqh6rqK9jcCvBQncQzK0Xm5DPn0BJ4lz6GgVIkedYAaamxqK0dEDePl4FziczehTsZGLs7BnNwdiwRac4lejvp6La83VzABv/8FF/qG9oD/WQS/fhNptHEw8rEJiuAo7ubXACAtH9m0Fu2YHxQzweEuEVIYnaiFmvQ04f1aItksi5KaP4ZFGjDB5GG/7j4LL5YYYgZYW2c/yiJbv6h/A0EvC4RjGiOsFnK4J+KgABmyjsDufL0skki8CgYCoXOLz+TWrwG+kXMkgQ6yv+QAAAABJRU5ErkJggg==) /*Images/Actions/unlocked.png*/; background-repeat: no-repeat; } +#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_User #Device_Show_User_Flags { + font-size: 16px; +} +#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_User #Device_Show_User_Flags > i { + cursor: default; +} +#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_User #Device_Show_User_Flags > i > .details { + display: none; +} #Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_GenerateDocument_Container { padding-top: 4px; } diff --git a/Disco.Web/ClientSource/Style/Device.less b/Disco.Web/ClientSource/Style/Device.less index d2803748..06cbb7e0 100644 --- a/Disco.Web/ClientSource/Style/Device.less +++ b/Disco.Web/ClientSource/Style/Device.less @@ -68,6 +68,20 @@ background-repeat: no-repeat; } + #Device_Show_User { + #Device_Show_User_Flags { + font-size: 16px; + + & > i { + cursor: default; + + & > .details { + display: none; + } + } + } + } + #Device_Show_GenerateDocument_Container { padding-top: 4px; diff --git a/Disco.Web/ClientSource/Style/Device.min.css b/Disco.Web/ClientSource/Style/Device.min.css index a90f6561..aab99b79 100644 --- a/Disco.Web/ClientSource/Style/Device.min.css +++ b/Disco.Web/ClientSource/Style/Device.min.css @@ -1 +1 @@ -.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}#layout_PageHeading #Device_Show_Status{margin-left:20px;display:inline-block;height:50px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;font-size:.7em;text-transform:uppercase}#layout_PageHeading #Device_Show_Status span.icon{margin-right:6px}#Device_Show #Device_Show_Subjects{table-layout:fixed}#Device_Show #Device_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#Device_Show #Device_Show_Subjects>tbody>tr>td>div{position:relative}#Device_Show #Device_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#Device_Show #Device_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#Device_Show #Device_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#Device_Show #Device_Show_Subjects #Device_Show_Details table.verticalHeadings>tbody>tr>td:first-child{width:104px;font-weight:bold}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_Details_Asset_Name{font-weight:bold}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_Details_Asset_Enrolled_Trusted{display:inline-block;height:16px;padding-left:16px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACWUlEQVQ4y6XRXWiSURgHcJsXa4WNNuuyiy6CoAupixERoXXhmljuxaJiFrVA1i72cVFCOSMt8rNt2YfGO5g5Z1NstWW+c4ZBq4QpqMkEbZDSCObAMprjdf90sIjxsgUdODd/zvmd5zwPCwDrf/aGB7q6utgmk8ngdruzVqt10eVyTWu1Wuk/AXK5vMpoNPpjsRgGbU8/9fbdH/J4PAuRSARKpfLKhoBYLG595nTCaDSZVjPp6TPbHQ5H0mAwfBeJRHXrAp0dna9JcqCguX2H/Xd+S625aLFYQBDE8XWBd+8/TI6Njc+vzcfGX4nLX4FOp5OuC0wGAlS53NzaPPAm2Gi32+H3+5tYJEl+pigKoVAIPp+PnpqaosPhMF1uHB2Px2mv14vya6VgMKhhHGN3d/dSMplENptFIpHA3NwcCoUCSqUSKqvScZVKBbPZHGQEFApFMZ1OI5PJIBqNrkD5fB40Ta8AlcrUajVsNpufEbh+42YxHEkh+/UbUqlZpGd/lAH8WTMzMzDd64d7NMAMDOobi/OpHqh6rqK9jcCvBQncQzK0Xm5DPn0BJ4lz6GgVIkedYAaamxqK0dEDePl4FziczehTsZGLs7BnNwdiwRac4lejvp6La83VzABv/8FF/qG9oD/WQS/fhNptHEw8rEJiuAo7ubXACAtH9m0Fu2YHxQzweEuEVIYnaiFmvQ04f1aItksi5KaP4ZFGjDB5GG/7j4LL5YYYgZYW2c/yiJbv6h/A0EvC4RjGiOsFnK4J+KgABmyjsDufL0skki8CgYCoXOLz+TWrwG+kXMkgQ6yv+QAAAABJRU5ErkJggg==);background-repeat:no-repeat}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_GenerateDocument_Container{padding-top:4px}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_GenerateDocument_Container #Device_Show_GenerateDocument{padding:0}#Device_Show #Device_Show_Subjects #Device_Show_Policies table.verticalHeadings>tbody>tr>td:first-child{width:120px;font-weight:bold}#Device_Show #Device_Show_Subjects #Device_Show_Aspects #Device_Show_Aspects_Model_Image{display:block;width:256px;height:256px;margin:0 auto}#Device_Show #Device_Show_Subjects #Device_Show_Subjects_Actions>td{padding-top:4px}#DeviceDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#DeviceDetailTabs #DeviceDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#DeviceDetailTabs #DeviceDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#DeviceDetailTabs #DeviceDetailTabItems>li>a{padding:5px 8px}#DeviceDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-top:none;background-color:#eee}#Device_Show_Policies_Profile_Actions_Update_Dialog ul li,#Device_Show_Policies_Batch_Actions_Update_Dialog ul li{background-color:#fff;padding:2px 0}#Device_Show_Policies_Profile_Actions_Update_Dialog ul li:nth-child(odd),#Device_Show_Policies_Batch_Actions_Update_Dialog ul li:nth-child(odd){background-color:#fcfcfc}#Device_Show_Policies_Profile_Actions_Update_Dialog ul li.selected,#Device_Show_Policies_Batch_Actions_Update_Dialog ul li.selected{background-color:#d8d8d8;font-weight:bold}#DeviceDetailTab-JobsContainer div.jobTable{margin:-1px;border:1px solid #ddd}#DeviceDetailTab-JobsContainer .dataTables_wrapper .dataTables_filter{margin-top:-24px;-moz-opacity:1;opacity:1}#DeviceDetailTab-JobsContainer .dataTables_wrapper .dataTables_length{margin-top:-24px;-moz-opacity:1;opacity:1}#DeviceDetailTab-JobsContainer .dataTables_wrapper .dataTables_showStatusClosed{right:220px;margin-top:-24px}#DeviceDetailTab-DetailsContainer>table{border:solid 1px #f4f4f4;border-collapse:collapse}#DeviceDetailTab-DetailsContainer>table>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}#DeviceDetailTab-DetailsContainer>table>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}#DeviceDetailTab-DetailsContainer>table>thead>tr>th,#DeviceDetailTab-DetailsContainer>table>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}#DeviceDetailTab-DetailsContainer>table>tbody>tr:hover>td{background-color:#fefefe}#DeviceDetailTab-DetailsContainer>table>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}#DeviceDetailTab-DetailsContainer>table>tfoot>tr>th,#DeviceDetailTab-DetailsContainer>table>tfoot>tr>td{background-color:#f4f4f4}#DeviceDetailTab-DetailsContainer>table>tbody>tr>th{width:150px}#DeviceDetailTab-DetailsContainer>table>tbody>tr>th,#DeviceDetailTab-DetailsContainer>table>tbody>tr>td{padding:10px 6px}#deviceShowResources #AttachmentsContainer{padding:0}#deviceShowResources #Attachments{position:relative;border:1px solid #ccc;background-color:#fff}#deviceShowResources #Attachments div.attachmentOutput{position:relative;height:115px;overflow:auto;font-size:.95em}#deviceShowResources #Attachments div.attachmentOutput>a{display:block;float:left;height:48px;width:221px;padding:2px;margin:2px;font-size:.9em;border:1px solid #fff;color:#000;text-decoration:none}#deviceShowResources #Attachments div.attachmentOutput>a span.comments,#deviceShowResources #Attachments div.attachmentOutput>a span.author,#deviceShowResources #Attachments div.attachmentOutput>a span.timestamp{display:block;float:left;width:168px;overflow:hidden;height:16px}#deviceShowResources #Attachments div.attachmentOutput>a span.author{color:#888;width:150px}#deviceShowResources #Attachments div.attachmentOutput>a span.timestamp{color:#888;font-style:italic}#deviceShowResources #Attachments div.attachmentOutput>a span.icon{display:block;float:left;height:48px;width:48px;margin-right:2px}#deviceShowResources #Attachments div.attachmentOutput>a span.icon img{height:48px;width:48px}#deviceShowResources #Attachments div.attachmentOutput>a span.icon img.loading{display:none}#deviceShowResources #Attachments div.attachmentOutput>a:hover{background-color:#ededed;border:1px solid #ccc}#deviceShowResources #Attachments div.attachmentOutput>a:hover span.remove{opacity:.5}#deviceShowResources #Attachments div.attachmentOutput>a span.remove{font-size:1.4em;color:#e51400;margin-left:6px;cursor:pointer;opacity:0}#deviceShowResources #Attachments div.attachmentOutput>a span.remove:hover{opacity:1}#deviceShowResources #Attachments div.attachmentInput{border-top:1px solid #ccc;height:40px;background-color:#fff;padding:3px}#deviceShowResources #Attachments div.attachmentInput span.action{color:#333;display:block;margin:0 4px 0 0;font-size:1.5em;cursor:pointer;float:right;border:1px solid #fff;padding:.5em}#deviceShowResources #Attachments div.attachmentInput span.action:hover{color:#335a87;background-color:#ededed;border:1px solid #ccc}#Devices_Export .Devices_Export_Type_Target{margin-top:10px;display:none}#Devices_Export #Devices_Export_Fields #Devices_Export_Fields_Defaults{font-size:.75em}#Devices_Export #Devices_Export_Fields th{font-size:1.05em}#Devices_Export #Devices_Export_Fields th span{margin-top:4px;font-size:.8em}#Devices_Export_Download_Dialog{padding-top:20px;text-align:center}#Devices_Export_Download_Dialog h4{margin-bottom:30px}#Devices_Export_Download_Dialog a{margin-bottom:20px}#Devices_Export_Exporting{padding-top:50px;text-align:center}#Devices_Export_Exporting i{margin-right:10px;color:#1e6dab}#Devices_Import #ImportFile{width:96%;margin-bottom:8px}#Devices_Import #Devices_Import_Documentation{width:700px;margin:20px auto}#Devices_Import #Devices_Import_Documentation>table>tbody th:first-child{width:220px}#Devices_Import_Completed_Dialog{padding:50px 0;text-align:center}#Devices_Import_Completed_Dialog h3{margin-bottom:16px}#Devices_Import_Completed_Dialog i{margin-right:10px;color:#60a917}#Devices_Import_Loading_Dialog{padding-top:50px;text-align:center}#Devices_Import_Loading_Dialog i{margin-right:10px;color:#1e6dab}#Devices_Import_Headers #Devices_Import_Headers_TableContainer{margin:18px 0;overflow-x:auto;border:1px solid #ccc}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>thead{white-space:nowrap}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>thead ul.importHeaderType>li>a>span:not(.ui-menu-icon){padding-right:16px}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>thead ul.importHeaderType ul{z-index:1000}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>thead td.headerIgnoreColumn{background-color:#fa6800}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>thead td:not(.headerIgnoreColumn){background-color:#1e6dab}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>tbody td.headerDeviceSerialNumber{border-top-color:#d1e6f7;border-bottom-color:#d1e6f7;background-color:#e2f0fa}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>tbody td.headerIgnoreColumn{max-width:150px;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;color:#ccc}#Devices_Import_Parsing_Dialog{padding-top:50px;text-align:center}#Devices_Import_Parsing_Dialog i{margin-right:10px;color:#1e6dab}#Devices_Import_Review #Devices_Import_Review_Navigation{margin-top:15px;text-align:right}#Devices_Import_Review #Devices_Import_Review_Navigation ul{display:inline-block;padding:0;border:1px solid #bbb}#Devices_Import_Review #Devices_Import_Review_Navigation ul li{display:inline-block;padding:3px 10px;margin:0}#Devices_Import_Review #Devices_Import_Review_Navigation ul li.actionDetached{background-color:#ffd0cc}#Devices_Import_Review #Devices_Import_Review_Navigation ul li.actionModified{background-color:#e2f0fa}#Devices_Import_Review #Devices_Import_Review_Navigation ul li.actionAdded{background-color:#e7f9d5}#Devices_Import_Review #Devices_Import_Review_Navigation ul li.actionUnchanged{background-color:#fcfcfc}#Devices_Import_Review #Devices_Import_Review_TableContainer{margin:18px 0;overflow-x:auto;border:1px solid #ccc}#Devices_Import_Review #Devices_Import_Review_TableContainer table>thead{white-space:nowrap}#Devices_Import_Review #Devices_Import_Review_TableContainer table>thead tr:nth-child(2) th{padding-top:0;font-weight:normal;font-size:.9em}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.action{text-align:center}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionDetached td.action i:before{color:#e51400;content:""}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionDetached td{background-color:#ffe7e5}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionUnchanged td.action i:before{content:""}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionUnchanged td{background-color:#fcfcfc}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionUnchanged td:nth-child(n+3){color:#ccc}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionModified td.action i:before{color:#1e6dab;content:""}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionModified td{background-color:#f4f9fd}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionAdded td.action i:before{color:#60a917;content:""}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionAdded td{background-color:#e7f9d5}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr:not(.actionUnchanged) td.actionUnchanged:nth-child(n+3):not(.headerDeviceSerialNumber){color:#ccc}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.actionError{color:#e51400;background-color:#fff1ef}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.actionError span.errorMessage{display:none}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.actionModified{background-color:#e2f0fa!important}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerDeviceSerialNumber,#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerDeviceDecommissionedDate,#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerDeviceDecommissionedReason,#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerModelId,#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerBatchId,#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerProfileId,#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerAssignedUserId{white-space:nowrap}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody span.smallMessage{color:inherit} \ No newline at end of file +.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}#layout_PageHeading #Device_Show_Status{margin-left:20px;display:inline-block;height:50px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;font-size:.7em;text-transform:uppercase}#layout_PageHeading #Device_Show_Status span.icon{margin-right:6px}#Device_Show #Device_Show_Subjects{table-layout:fixed}#Device_Show #Device_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#Device_Show #Device_Show_Subjects>tbody>tr>td>div{position:relative}#Device_Show #Device_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#Device_Show #Device_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#Device_Show #Device_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#Device_Show #Device_Show_Subjects #Device_Show_Details table.verticalHeadings>tbody>tr>td:first-child{width:104px;font-weight:bold}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_Details_Asset_Name{font-weight:bold}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_Details_Asset_Enrolled_Trusted{display:inline-block;height:16px;padding-left:16px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACWUlEQVQ4y6XRXWiSURgHcJsXa4WNNuuyiy6CoAupixERoXXhmljuxaJiFrVA1i72cVFCOSMt8rNt2YfGO5g5Z1NstWW+c4ZBq4QpqMkEbZDSCObAMprjdf90sIjxsgUdODd/zvmd5zwPCwDrf/aGB7q6utgmk8ngdruzVqt10eVyTWu1Wuk/AXK5vMpoNPpjsRgGbU8/9fbdH/J4PAuRSARKpfLKhoBYLG595nTCaDSZVjPp6TPbHQ5H0mAwfBeJRHXrAp0dna9JcqCguX2H/Xd+S625aLFYQBDE8XWBd+8/TI6Njc+vzcfGX4nLX4FOp5OuC0wGAlS53NzaPPAm2Gi32+H3+5tYJEl+pigKoVAIPp+PnpqaosPhMF1uHB2Px2mv14vya6VgMKhhHGN3d/dSMplENptFIpHA3NwcCoUCSqUSKqvScZVKBbPZHGQEFApFMZ1OI5PJIBqNrkD5fB40Ta8AlcrUajVsNpufEbh+42YxHEkh+/UbUqlZpGd/lAH8WTMzMzDd64d7NMAMDOobi/OpHqh6rqK9jcCvBQncQzK0Xm5DPn0BJ4lz6GgVIkedYAaamxqK0dEDePl4FziczehTsZGLs7BnNwdiwRac4lejvp6La83VzABv/8FF/qG9oD/WQS/fhNptHEw8rEJiuAo7ubXACAtH9m0Fu2YHxQzweEuEVIYnaiFmvQ04f1aItksi5KaP4ZFGjDB5GG/7j4LL5YYYgZYW2c/yiJbv6h/A0EvC4RjGiOsFnK4J+KgABmyjsDufL0skki8CgYCoXOLz+TWrwG+kXMkgQ6yv+QAAAABJRU5ErkJggg==);background-repeat:no-repeat}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_User #Device_Show_User_Flags{font-size:16px}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_User #Device_Show_User_Flags>i{cursor:default}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_User #Device_Show_User_Flags>i>.details{display:none}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_GenerateDocument_Container{padding-top:4px}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_GenerateDocument_Container #Device_Show_GenerateDocument{padding:0}#Device_Show #Device_Show_Subjects #Device_Show_Policies table.verticalHeadings>tbody>tr>td:first-child{width:120px;font-weight:bold}#Device_Show #Device_Show_Subjects #Device_Show_Aspects #Device_Show_Aspects_Model_Image{display:block;width:256px;height:256px;margin:0 auto}#Device_Show #Device_Show_Subjects #Device_Show_Subjects_Actions>td{padding-top:4px}#DeviceDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#DeviceDetailTabs #DeviceDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#DeviceDetailTabs #DeviceDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#DeviceDetailTabs #DeviceDetailTabItems>li>a{padding:5px 8px}#DeviceDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-top:none;background-color:#eee}#Device_Show_Policies_Profile_Actions_Update_Dialog ul li,#Device_Show_Policies_Batch_Actions_Update_Dialog ul li{background-color:#fff;padding:2px 0}#Device_Show_Policies_Profile_Actions_Update_Dialog ul li:nth-child(odd),#Device_Show_Policies_Batch_Actions_Update_Dialog ul li:nth-child(odd){background-color:#fcfcfc}#Device_Show_Policies_Profile_Actions_Update_Dialog ul li.selected,#Device_Show_Policies_Batch_Actions_Update_Dialog ul li.selected{background-color:#d8d8d8;font-weight:bold}#DeviceDetailTab-JobsContainer div.jobTable{margin:-1px;border:1px solid #ddd}#DeviceDetailTab-JobsContainer .dataTables_wrapper .dataTables_filter{margin-top:-24px;-moz-opacity:1;opacity:1}#DeviceDetailTab-JobsContainer .dataTables_wrapper .dataTables_length{margin-top:-24px;-moz-opacity:1;opacity:1}#DeviceDetailTab-JobsContainer .dataTables_wrapper .dataTables_showStatusClosed{right:220px;margin-top:-24px}#DeviceDetailTab-DetailsContainer>table{border:solid 1px #f4f4f4;border-collapse:collapse}#DeviceDetailTab-DetailsContainer>table>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}#DeviceDetailTab-DetailsContainer>table>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}#DeviceDetailTab-DetailsContainer>table>thead>tr>th,#DeviceDetailTab-DetailsContainer>table>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}#DeviceDetailTab-DetailsContainer>table>tbody>tr:hover>td{background-color:#fefefe}#DeviceDetailTab-DetailsContainer>table>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}#DeviceDetailTab-DetailsContainer>table>tfoot>tr>th,#DeviceDetailTab-DetailsContainer>table>tfoot>tr>td{background-color:#f4f4f4}#DeviceDetailTab-DetailsContainer>table>tbody>tr>th{width:150px}#DeviceDetailTab-DetailsContainer>table>tbody>tr>th,#DeviceDetailTab-DetailsContainer>table>tbody>tr>td{padding:10px 6px}#deviceShowResources #AttachmentsContainer{padding:0}#deviceShowResources #Attachments{position:relative;border:1px solid #ccc;background-color:#fff}#deviceShowResources #Attachments div.attachmentOutput{position:relative;height:115px;overflow:auto;font-size:.95em}#deviceShowResources #Attachments div.attachmentOutput>a{display:block;float:left;height:48px;width:221px;padding:2px;margin:2px;font-size:.9em;border:1px solid #fff;color:#000;text-decoration:none}#deviceShowResources #Attachments div.attachmentOutput>a span.comments,#deviceShowResources #Attachments div.attachmentOutput>a span.author,#deviceShowResources #Attachments div.attachmentOutput>a span.timestamp{display:block;float:left;width:168px;overflow:hidden;height:16px}#deviceShowResources #Attachments div.attachmentOutput>a span.author{color:#888;width:150px}#deviceShowResources #Attachments div.attachmentOutput>a span.timestamp{color:#888;font-style:italic}#deviceShowResources #Attachments div.attachmentOutput>a span.icon{display:block;float:left;height:48px;width:48px;margin-right:2px}#deviceShowResources #Attachments div.attachmentOutput>a span.icon img{height:48px;width:48px}#deviceShowResources #Attachments div.attachmentOutput>a span.icon img.loading{display:none}#deviceShowResources #Attachments div.attachmentOutput>a:hover{background-color:#ededed;border:1px solid #ccc}#deviceShowResources #Attachments div.attachmentOutput>a:hover span.remove{opacity:.5}#deviceShowResources #Attachments div.attachmentOutput>a span.remove{font-size:1.4em;color:#e51400;margin-left:6px;cursor:pointer;opacity:0}#deviceShowResources #Attachments div.attachmentOutput>a span.remove:hover{opacity:1}#deviceShowResources #Attachments div.attachmentInput{border-top:1px solid #ccc;height:40px;background-color:#fff;padding:3px}#deviceShowResources #Attachments div.attachmentInput span.action{color:#333;display:block;margin:0 4px 0 0;font-size:1.5em;cursor:pointer;float:right;border:1px solid #fff;padding:.5em}#deviceShowResources #Attachments div.attachmentInput span.action:hover{color:#335a87;background-color:#ededed;border:1px solid #ccc}#Devices_Export .Devices_Export_Type_Target{margin-top:10px;display:none}#Devices_Export #Devices_Export_Fields #Devices_Export_Fields_Defaults{font-size:.75em}#Devices_Export #Devices_Export_Fields th{font-size:1.05em}#Devices_Export #Devices_Export_Fields th span{margin-top:4px;font-size:.8em}#Devices_Export_Download_Dialog{padding-top:20px;text-align:center}#Devices_Export_Download_Dialog h4{margin-bottom:30px}#Devices_Export_Download_Dialog a{margin-bottom:20px}#Devices_Export_Exporting{padding-top:50px;text-align:center}#Devices_Export_Exporting i{margin-right:10px;color:#1e6dab}#Devices_Import #ImportFile{width:96%;margin-bottom:8px}#Devices_Import #Devices_Import_Documentation{width:700px;margin:20px auto}#Devices_Import #Devices_Import_Documentation>table>tbody th:first-child{width:220px}#Devices_Import_Completed_Dialog{padding:50px 0;text-align:center}#Devices_Import_Completed_Dialog h3{margin-bottom:16px}#Devices_Import_Completed_Dialog i{margin-right:10px;color:#60a917}#Devices_Import_Loading_Dialog{padding-top:50px;text-align:center}#Devices_Import_Loading_Dialog i{margin-right:10px;color:#1e6dab}#Devices_Import_Headers #Devices_Import_Headers_TableContainer{margin:18px 0;overflow-x:auto;border:1px solid #ccc}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>thead{white-space:nowrap}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>thead ul.importHeaderType>li>a>span:not(.ui-menu-icon){padding-right:16px}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>thead ul.importHeaderType ul{z-index:1000}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>thead td.headerIgnoreColumn{background-color:#fa6800}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>thead td:not(.headerIgnoreColumn){background-color:#1e6dab}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>tbody td.headerDeviceSerialNumber{border-top-color:#d1e6f7;border-bottom-color:#d1e6f7;background-color:#e2f0fa}#Devices_Import_Headers #Devices_Import_Headers_TableContainer table>tbody td.headerIgnoreColumn{max-width:150px;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;color:#ccc}#Devices_Import_Parsing_Dialog{padding-top:50px;text-align:center}#Devices_Import_Parsing_Dialog i{margin-right:10px;color:#1e6dab}#Devices_Import_Review #Devices_Import_Review_Navigation{margin-top:15px;text-align:right}#Devices_Import_Review #Devices_Import_Review_Navigation ul{display:inline-block;padding:0;border:1px solid #bbb}#Devices_Import_Review #Devices_Import_Review_Navigation ul li{display:inline-block;padding:3px 10px;margin:0}#Devices_Import_Review #Devices_Import_Review_Navigation ul li.actionDetached{background-color:#ffd0cc}#Devices_Import_Review #Devices_Import_Review_Navigation ul li.actionModified{background-color:#e2f0fa}#Devices_Import_Review #Devices_Import_Review_Navigation ul li.actionAdded{background-color:#e7f9d5}#Devices_Import_Review #Devices_Import_Review_Navigation ul li.actionUnchanged{background-color:#fcfcfc}#Devices_Import_Review #Devices_Import_Review_TableContainer{margin:18px 0;overflow-x:auto;border:1px solid #ccc}#Devices_Import_Review #Devices_Import_Review_TableContainer table>thead{white-space:nowrap}#Devices_Import_Review #Devices_Import_Review_TableContainer table>thead tr:nth-child(2) th{padding-top:0;font-weight:normal;font-size:.9em}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.action{text-align:center}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionDetached td.action i:before{color:#e51400;content:""}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionDetached td{background-color:#ffe7e5}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionUnchanged td.action i:before{content:""}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionUnchanged td{background-color:#fcfcfc}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionUnchanged td:nth-child(n+3){color:#ccc}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionModified td.action i:before{color:#1e6dab;content:""}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionModified td{background-color:#f4f9fd}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionAdded td.action i:before{color:#60a917;content:""}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr.actionAdded td{background-color:#e7f9d5}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody tr:not(.actionUnchanged) td.actionUnchanged:nth-child(n+3):not(.headerDeviceSerialNumber){color:#ccc}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.actionError{color:#e51400;background-color:#fff1ef}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.actionError span.errorMessage{display:none}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.actionModified{background-color:#e2f0fa!important}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerDeviceSerialNumber,#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerDeviceDecommissionedDate,#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerDeviceDecommissionedReason,#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerModelId,#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerBatchId,#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerProfileId,#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody td.headerAssignedUserId{white-space:nowrap}#Devices_Import_Review #Devices_Import_Review_TableContainer table>tbody span.smallMessage{color:inherit} \ No newline at end of file diff --git a/Disco.Web/ClientSource/Style/Job.css b/Disco.Web/ClientSource/Style/Job.css index 78270859..25c428fa 100644 --- a/Disco.Web/ClientSource/Style/Job.css +++ b/Disco.Web/ClientSource/Style/Job.css @@ -192,6 +192,16 @@ #Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_DeviceHeld table > tbody > tr > td:first-child { width: 62px; } +#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Flags { + margin: 4px 0; + font-size: 16px; +} +#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Flags > i { + cursor: default; +} +#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Flags > i > .details { + display: none; +} #Job_Show #Job_Show_Subjects #Job_Show_Subjects_Actions > td { padding-top: 4px; } @@ -524,9 +534,9 @@ margin-top: 4px; font-size: .9em; } -#jobDetailTab-Queues #jobQueues td.added .comments, -#jobDetailTab-Queues #jobQueues td.removed .comments { - white-space: pre-line; +#jobDetailTab-Queues #jobQueues td.added .commentsRaw, +#jobDetailTab-Queues #jobQueues td.removed .commentsRaw { + display: none; } #jobDetailTab-Queues #jobQueues td.removed.na { vertical-align: middle; diff --git a/Disco.Web/ClientSource/Style/Job.less b/Disco.Web/ClientSource/Style/Job.less index f2434d42..e955afac 100644 --- a/Disco.Web/ClientSource/Style/Job.less +++ b/Disco.Web/ClientSource/Style/Job.less @@ -149,6 +149,21 @@ } } + #Job_Show_User { + #Job_Show_User_Flags { + margin: 4px 0; + font-size: 16px; + + & > i { + cursor: default; + + & > .details { + display: none; + } + } + } + } + #Job_Show_Subjects_Actions { & > td { padding-top: 4px; @@ -161,8 +176,6 @@ } } - - #jobDetailTabs { margin-top: 10px; /*.jobPart @@ -548,8 +561,8 @@ font-size: .9em; } - .comments { - white-space: pre-line; + .commentsRaw { + display: none; } } diff --git a/Disco.Web/ClientSource/Style/Job.min.css b/Disco.Web/ClientSource/Style/Job.min.css index eaa0d988..6ab3b3ff 100644 --- a/Disco.Web/ClientSource/Style/Job.min.css +++ b/Disco.Web/ClientSource/Style/Job.min.css @@ -1 +1 @@ -.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}#layout_PageHeading #Job_Show_Status{margin-left:20px;display:inline-block;height:50px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;font-size:.7em;text-transform:uppercase}#layout_PageHeading #Job_Show_Status span.icon{margin-right:6px}#layout_PageHeading #Job_Show_QueueStatus{display:inline-block;float:right;height:50px;font-size:.6em}#Job_List{padding-top:20px}#Job_List>.jobTable>h3{margin:30px 0 50px 20px!important}#Job_Show #Job_Show_Subjects{table-layout:fixed}#Job_Show #Job_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#Job_Show #Job_Show_Subjects>tbody>tr>td>div{position:relative}#Job_Show #Job_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#Job_Show #Job_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#Job_Show #Job_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Type>table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_1,#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_2{padding-left:16px;font-weight:bold}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_Update{margin-left:16px;font-size:.9em}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_Update_Dialog{display:none}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates{padding-bottom:6px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table>tbody>tr>td{vertical-align:middle}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table>tbody>tr>td:first-child{font-weight:bold;width:60px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_GenerateDocument_Container{padding-top:4px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_GenerateDocument_Container #Job_Show_GenerateDocument{padding:0}#Job_Show #Job_Show_Subjects #Job_Show_Device>div{padding-left:102px;min-height:100px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Model_Image{position:absolute;left:0;top:0;height:96px;width:96px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details{float:left}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HWar,#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HNWar{float:right;border-left:1px dashed #ddd;padding-left:4px;margin-right:2px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HWar_Details_Button,#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HNWar_Details_Button{font-size:.9em}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_DeviceHeld table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_DeviceHeld table>tbody>tr>td:first-child{width:62px}#Job_Show #Job_Show_Subjects #Job_Show_Subjects_Actions>td{padding-top:4px}#Job_Show #Job_Show_Subjects #Job_Show_Subjects_Actions #Job_Show_Device_Actions{padding-left:111px}#jobDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#jobDetailTabs #jobDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#jobDetailTabs #jobDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#jobDetailTabs #jobDetailTabItems>li>a{padding:5px 8px}#jobDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-top:none;background-color:#eee}#jobShowResources #CommentsContainer{padding:0;width:375px}#jobShowResources #Comments{height:300px;padding:0;border:1px solid #ccc;background-color:#fff}#jobShowResources #Comments div.commentOutput{height:249px;overflow:auto;background-color:#fafafa;color:#000}#jobShowResources #Comments div.commentOutput>div{padding:3px;margin:4px 6px;border-bottom:1px solid #ccc}#jobShowResources #Comments div.commentOutput>div span.author{color:#444;display:block;font-weight:bold;font-size:.95em;float:left}#jobShowResources #Comments div.commentOutput>div span.timestamp{display:block;float:right;font-size:.9em;font-style:italic}#jobShowResources #Comments div.commentOutput>div span.comment{clear:both;display:block;margin-left:4px}#jobShowResources #Comments div.commentOutput>div:hover span.remove{opacity:.5}#jobShowResources #Comments div.commentOutput>div span.remove{font-size:1.2em;color:#e51400;margin-left:6px;cursor:pointer;opacity:0}#jobShowResources #Comments div.commentOutput>div span.remove:hover{opacity:1}#jobShowResources #Comments div.commentOutput>div:last-child{border-bottom:none}#jobShowResources #Comments.cannotAddLogs div.commentOutput{height:300px}#jobShowResources #Comments div.commentInput{border-top:1px solid #ccc;height:40px;padding:5px}#jobShowResources #Comments div.commentInput textarea.commentInput{border:0;padding:0;margin:0;width:325px;height:40px;min-height:40px;overflow:auto;float:left;resize:none}#jobShowResources #Comments div.commentInput span.action{color:#333;font-size:1.5em;display:block;margin:0;cursor:pointer;float:left;border:1px solid #fff;padding:.5em}#jobShowResources #Comments div.commentInput span.action:hover{color:#335a87;background-color:#ededed;border:1px solid #ccc}#jobShowResources #AttachmentsContainer{padding:0}#jobShowResources #Attachments{position:relative;height:300px;border-top:1px solid #ccc;border-right:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#fff}#jobShowResources #Attachments div.attachmentOutput{position:relative;height:249px;overflow:auto}#jobShowResources #Attachments div.attachmentOutput>a{display:block;float:left;height:48px;width:221px;padding:2px;margin:2px;font-size:.95em;border:1px solid #fff;color:#000;text-decoration:none}#jobShowResources #Attachments div.attachmentOutput>a span.comments,#jobShowResources #Attachments div.attachmentOutput>a span.author,#jobShowResources #Attachments div.attachmentOutput>a span.timestamp{display:block;float:left;width:168px;overflow:hidden;height:16px}#jobShowResources #Attachments div.attachmentOutput>a span.author{color:#888;width:150px}#jobShowResources #Attachments div.attachmentOutput>a span.timestamp{color:#888;font-style:italic}#jobShowResources #Attachments div.attachmentOutput>a span.icon{display:block;float:left;height:48px;width:48px;margin-right:2px}#jobShowResources #Attachments div.attachmentOutput>a span.icon img{height:48px;width:48px}#jobShowResources #Attachments div.attachmentOutput>a span.icon img.loading{display:none}#jobShowResources #Attachments div.attachmentOutput>a:hover{background-color:#ededed;border:1px solid #ccc}#jobShowResources #Attachments div.attachmentOutput>a:hover span.remove{opacity:.5}#jobShowResources #Attachments div.attachmentOutput>a span.remove{font-size:1.2em;color:#e51400;margin-left:2px;cursor:pointer;opacity:0}#jobShowResources #Attachments div.attachmentOutput>a span.remove:hover{opacity:1}#jobShowResources #Attachments.cannotAddAttachments div.attachmentOutput{height:300px}#jobShowResources #Attachments div.attachmentInput{border-top:1px solid #ccc;height:40px;background-color:#fff;padding:5px}#jobShowResources #Attachments div.attachmentInput span.action{color:#333;display:block;margin:0 4px 0 0;font-size:1.5em;cursor:pointer;float:right;border:1px solid #fff;padding:.5em}#jobShowResources #Attachments div.attachmentInput span.action:hover{color:#335a87;background-color:#ededed;border:1px solid #ccc}#Job_Show_Job_Actions_AddQueue_Dialog{height:400px}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker{position:absolute;width:250px;height:300px;overflow-y:auto;background-color:#fcfcfc;border:1px solid #ccc}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div{background-color:#fff;border-bottom:1px solid #ddd;padding:6px 0 6px 6px;cursor:pointer}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div:hover{background-color:#f4f4f4}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div.selected,#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div.selected:hover{background-color:#eee}#Job_Show_Job_Actions_AddQueue_Dialog .details{display:none;position:absolute;left:280px;top:40px}#Job_Show_Job_Actions_AddQueue_Dialog .details h4{margin-bottom:4px}#Job_Show_Job_Actions_AddQueue_Dialog .details #Priority{margin-bottom:10px;min-width:200px}#Job_Show_Job_Actions_AddQueue_Dialog .details #SLAExpiresMinutes{margin-bottom:10px;min-width:200px}#Job_Show_Job_Actions_AddQueue_Dialog .details #Comment{min-width:280px}#jobDetailTab-Queues #jobQueues{border:solid 1px #d8d8d8;border-collapse:collapse;table-layout:fixed}#jobDetailTab-Queues #jobQueues td{border:solid 1px #d8d8d8;background-color:#fff}#jobDetailTab-Queues #jobQueues th{background-color:#eee;border:solid 1px #d8d8d8}#jobDetailTab-Queues #jobQueues i.fa-edit{float:right;margin-top:4px;font-size:1.1em;cursor:pointer;display:none;color:#335a87}#jobDetailTab-Queues #jobQueues i.fa-edit:hover{color:#5e8cc2}#jobDetailTab-Queues #jobQueues td:hover i.fa-edit{display:inline-block}#jobDetailTab-Queues #jobQueues th.name{width:200px}#jobDetailTab-Queues #jobQueues th.sla{width:130px}#jobDetailTab-Queues #jobQueues tr.removed td{background-color:#f4f4f4}#jobDetailTab-Queues #jobQueues td.name{vertical-align:middle}#jobDetailTab-Queues #jobQueues td.name .fa-stack{line-height:1.6em}#jobDetailTab-Queues #jobQueues td.added .when,#jobDetailTab-Queues #jobQueues td.removed .when{font-style:italic;margin-top:4px;font-size:.9em}#jobDetailTab-Queues #jobQueues td.added .comments,#jobDetailTab-Queues #jobQueues td.removed .comments{white-space:pre-line}#jobDetailTab-Queues #jobQueues td.removed.na{vertical-align:middle;text-align:center}#jobDetailTab-Queues #jobQueues td.sla{vertical-align:middle}#jobDetailTab-Queues #jobQueues td.sla.overdue{color:#e51400}#jobDetailTab-Queues>.none{text-align:center;padding:30px 0;font-style:italic;background-color:#fff}#Job_Show_Queues_Actions_EditAddedComment_Dialog h4,#Job_Show_Queues_Actions_EditRemovedComment_Dialog h4,#Job_Show_Queues_Actions_EditSla_Dialog h4{margin-bottom:4px}#Job_Show_Queues_Actions_EditAddedComment_Dialog_Comment{width:280px}#Job_Show_Queues_Actions_EditRemovedComment_Dialog_Comment{width:280px}#jobComponents{border:solid 1px #d8d8d8;border-collapse:collapse}#jobComponents td{border:solid 1px #d8d8d8;background-color:#fff}#jobComponents th{background-color:#eee;border:solid 1px #d8d8d8}#jobComponents tr th.actions{width:18px}#jobComponents tr input.description{width:400px}#jobComponents tr input.cost{width:150px}#jobComponents tr span.remove{font-size:1.5em;color:#e51400;cursor:pointer;opacity:.5}#jobComponents tr span.remove:hover{opacity:1}#jobComponents tr input.updating{background-position:right center;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEAALAPQAAP///zNah+Hm7dng6O7x9DddiTNah1d3nJqtw3+Xs8fS3k5vlm6JqaGzx4KatcrU4FFymDZciHGMq+ru8t/l7Pb3+V9+oeLo7vT2+MTP3LLB0dTc5fHz9gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA)}#jobComponents tr .totalCost{font-weight:bold}#jobNonWarrantyFinance{border:solid 1px #d8d8d8;border-collapse:collapse}#jobNonWarrantyFinance td{border:solid 1px #d8d8d8;background-color:#fff}#jobNonWarrantyFinance th{background-color:#eee;border:solid 1px #d8d8d8}#jobNonWarrantyFinance tr th{width:200px;text-align:right}#jobNonWarrantyRepairs{border:solid 1px #d8d8d8;border-collapse:collapse}#jobNonWarrantyRepairs td{border:solid 1px #d8d8d8;background-color:#fff}#jobNonWarrantyRepairs th{background-color:#eee;border:solid 1px #d8d8d8}#jobNonWarrantyRepairs tr th{width:200px;text-align:right}#jobNonWarrantyInsurance{border:solid 1px #d8d8d8;border-collapse:collapse}#jobNonWarrantyInsurance td{border:solid 1px #d8d8d8;background-color:#fff}#jobNonWarrantyInsurance th{background-color:#eee;border:solid 1px #d8d8d8}#jobNonWarrantyInsurance tr th{width:200px;text-align:right}#jobNonWarrantyInsurance tr td textarea{width:400px}#jobFlags{border:solid 1px #d8d8d8;border-collapse:collapse}#jobFlags td{border:solid 1px #d8d8d8;background-color:#fff}#jobFlags th{background-color:#eee;border:solid 1px #d8d8d8}#jobFlags tr th{width:200px;text-align:right}#warrantyJobForm #warrantyDisclosedInformation table{font-size:.9em}#warrantyJobForm #warrantyDisclosedInformation table tr:not(:last-child){border-bottom:1px dashed #aaa}#warrantyJobForm #warrantyDisclosedInformation table th{padding:2px;font-weight:bold;width:200px}#warrantyJobForm #warrantyDisclosedInformation table td{padding:2px}#warrantyJobFaultDescription #FaultDescription{width:600px;height:250px}#createJob_Container{margin:0 -20px}#createJob_Container img.modelImage{width:64px;height:64px}#createJob_Container .createJob_Component{margin:0 10px;padding:5px 0;border-bottom:1px dashed #ccc}#createJob_Container .createJob_Component:last-child{border-bottom:none}#createJob_Container #createJob_Type{border:1px solid #ccc;background-color:#f2f2f2;padding:2px 4px}#createJob_Container #createJob_SubTypes{margin:-1px 0 0 20px;border:1px solid #ccc;border-top:none;padding:2px 4px;background-color:#f2f2f2}#createJob_Container #createJob_SubTypes .createJob_SubType{display:none}#createJob_Container #createJob_Type li,#createJob_Container #createJob_SubTypes li{margin:2px 0;padding:0 0 0 4px}#createJob_Container #createJob_Type li i,#createJob_Container #createJob_SubTypes li i{display:none;cursor:default;font-weight:normal}#createJob_Container #createJob_Type li:hover i,#createJob_Container #createJob_SubTypes li:hover i{display:inline-block}#createJob_Container #createJob_Type li.highlight,#createJob_Container #createJob_SubTypes li.highlight{background-color:#cddbec;font-weight:600;color:#000}#createJob_Container #createJob_Type li.highlight i,#createJob_Container #createJob_SubTypes li.highlight i{display:inline-block}#createJob_Container #createJob_SubTypes.isQuickLog li i{display:none}#createJob_Container #createJob_CommentsContainer #Comments{width:100%;min-width:500px}#createJob_Container #createJob_QuickLogAutoCloseContainer h3{margin-bottom:4px}#createJob_Container #createJob_QuickLogAutoCloseContainer input{margin-left:4px}#createJob_Container #createJob_QuickLogTaskTimeContainer{display:none;margin:4px 0 0 25px;padding:4px 4px;background-color:#f2f2f2;border-left:4px solid #d8d8d8}#createJob_Container #createJob_QuickLogTaskTimeContainer h4{display:inline-block;padding-right:10px}#createJob_Container #createJob_QuickLogTaskTimeContainer label{margin-right:15px}#createJob_Container #createJob_QuickLogTaskTimeContainer #createJob_TaskTimeOtherMinutesContainer{display:none}#createJob_Container #createJob_QuickLogTaskTimeContainer #createJob_TaskTimeOtherMinutes{width:50px}#createJobRedirect h1{margin-top:60px!important;margin-bottom:60px}#createJobRedirect>div{text-align:right}#createJobRedirect>div i{margin-right:10px} \ No newline at end of file +.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}#layout_PageHeading #Job_Show_Status{margin-left:20px;display:inline-block;height:50px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;font-size:.7em;text-transform:uppercase}#layout_PageHeading #Job_Show_Status span.icon{margin-right:6px}#layout_PageHeading #Job_Show_QueueStatus{display:inline-block;float:right;height:50px;font-size:.6em}#Job_List{padding-top:20px}#Job_List>.jobTable>h3{margin:30px 0 50px 20px!important}#Job_Show #Job_Show_Subjects{table-layout:fixed}#Job_Show #Job_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#Job_Show #Job_Show_Subjects>tbody>tr>td>div{position:relative}#Job_Show #Job_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#Job_Show #Job_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#Job_Show #Job_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Type>table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_1,#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_2{padding-left:16px;font-weight:bold}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_Update{margin-left:16px;font-size:.9em}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_Update_Dialog{display:none}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates{padding-bottom:6px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table>tbody>tr>td{vertical-align:middle}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table>tbody>tr>td:first-child{font-weight:bold;width:60px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_GenerateDocument_Container{padding-top:4px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_GenerateDocument_Container #Job_Show_GenerateDocument{padding:0}#Job_Show #Job_Show_Subjects #Job_Show_Device>div{padding-left:102px;min-height:100px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Model_Image{position:absolute;left:0;top:0;height:96px;width:96px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details{float:left}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HWar,#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HNWar{float:right;border-left:1px dashed #ddd;padding-left:4px;margin-right:2px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HWar_Details_Button,#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HNWar_Details_Button{font-size:.9em}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_DeviceHeld table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_DeviceHeld table>tbody>tr>td:first-child{width:62px}#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Flags{margin:4px 0;font-size:16px}#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Flags>i{cursor:default}#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Flags>i>.details{display:none}#Job_Show #Job_Show_Subjects #Job_Show_Subjects_Actions>td{padding-top:4px}#Job_Show #Job_Show_Subjects #Job_Show_Subjects_Actions #Job_Show_Device_Actions{padding-left:111px}#jobDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#jobDetailTabs #jobDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#jobDetailTabs #jobDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#jobDetailTabs #jobDetailTabItems>li>a{padding:5px 8px}#jobDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-top:none;background-color:#eee}#jobShowResources #CommentsContainer{padding:0;width:375px}#jobShowResources #Comments{height:300px;padding:0;border:1px solid #ccc;background-color:#fff}#jobShowResources #Comments div.commentOutput{height:249px;overflow:auto;background-color:#fafafa;color:#000}#jobShowResources #Comments div.commentOutput>div{padding:3px;margin:4px 6px;border-bottom:1px solid #ccc}#jobShowResources #Comments div.commentOutput>div span.author{color:#444;display:block;font-weight:bold;font-size:.95em;float:left}#jobShowResources #Comments div.commentOutput>div span.timestamp{display:block;float:right;font-size:.9em;font-style:italic}#jobShowResources #Comments div.commentOutput>div span.comment{clear:both;display:block;margin-left:4px}#jobShowResources #Comments div.commentOutput>div:hover span.remove{opacity:.5}#jobShowResources #Comments div.commentOutput>div span.remove{font-size:1.2em;color:#e51400;margin-left:6px;cursor:pointer;opacity:0}#jobShowResources #Comments div.commentOutput>div span.remove:hover{opacity:1}#jobShowResources #Comments div.commentOutput>div:last-child{border-bottom:none}#jobShowResources #Comments.cannotAddLogs div.commentOutput{height:300px}#jobShowResources #Comments div.commentInput{border-top:1px solid #ccc;height:40px;padding:5px}#jobShowResources #Comments div.commentInput textarea.commentInput{border:0;padding:0;margin:0;width:325px;height:40px;min-height:40px;overflow:auto;float:left;resize:none}#jobShowResources #Comments div.commentInput span.action{color:#333;font-size:1.5em;display:block;margin:0;cursor:pointer;float:left;border:1px solid #fff;padding:.5em}#jobShowResources #Comments div.commentInput span.action:hover{color:#335a87;background-color:#ededed;border:1px solid #ccc}#jobShowResources #AttachmentsContainer{padding:0}#jobShowResources #Attachments{position:relative;height:300px;border-top:1px solid #ccc;border-right:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#fff}#jobShowResources #Attachments div.attachmentOutput{position:relative;height:249px;overflow:auto}#jobShowResources #Attachments div.attachmentOutput>a{display:block;float:left;height:48px;width:221px;padding:2px;margin:2px;font-size:.95em;border:1px solid #fff;color:#000;text-decoration:none}#jobShowResources #Attachments div.attachmentOutput>a span.comments,#jobShowResources #Attachments div.attachmentOutput>a span.author,#jobShowResources #Attachments div.attachmentOutput>a span.timestamp{display:block;float:left;width:168px;overflow:hidden;height:16px}#jobShowResources #Attachments div.attachmentOutput>a span.author{color:#888;width:150px}#jobShowResources #Attachments div.attachmentOutput>a span.timestamp{color:#888;font-style:italic}#jobShowResources #Attachments div.attachmentOutput>a span.icon{display:block;float:left;height:48px;width:48px;margin-right:2px}#jobShowResources #Attachments div.attachmentOutput>a span.icon img{height:48px;width:48px}#jobShowResources #Attachments div.attachmentOutput>a span.icon img.loading{display:none}#jobShowResources #Attachments div.attachmentOutput>a:hover{background-color:#ededed;border:1px solid #ccc}#jobShowResources #Attachments div.attachmentOutput>a:hover span.remove{opacity:.5}#jobShowResources #Attachments div.attachmentOutput>a span.remove{font-size:1.2em;color:#e51400;margin-left:2px;cursor:pointer;opacity:0}#jobShowResources #Attachments div.attachmentOutput>a span.remove:hover{opacity:1}#jobShowResources #Attachments.cannotAddAttachments div.attachmentOutput{height:300px}#jobShowResources #Attachments div.attachmentInput{border-top:1px solid #ccc;height:40px;background-color:#fff;padding:5px}#jobShowResources #Attachments div.attachmentInput span.action{color:#333;display:block;margin:0 4px 0 0;font-size:1.5em;cursor:pointer;float:right;border:1px solid #fff;padding:.5em}#jobShowResources #Attachments div.attachmentInput span.action:hover{color:#335a87;background-color:#ededed;border:1px solid #ccc}#Job_Show_Job_Actions_AddQueue_Dialog{height:400px}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker{position:absolute;width:250px;height:300px;overflow-y:auto;background-color:#fcfcfc;border:1px solid #ccc}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div{background-color:#fff;border-bottom:1px solid #ddd;padding:6px 0 6px 6px;cursor:pointer}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div:hover{background-color:#f4f4f4}#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div.selected,#Job_Show_Job_Actions_AddQueue_Dialog .queuePicker>div.selected:hover{background-color:#eee}#Job_Show_Job_Actions_AddQueue_Dialog .details{display:none;position:absolute;left:280px;top:40px}#Job_Show_Job_Actions_AddQueue_Dialog .details h4{margin-bottom:4px}#Job_Show_Job_Actions_AddQueue_Dialog .details #Priority{margin-bottom:10px;min-width:200px}#Job_Show_Job_Actions_AddQueue_Dialog .details #SLAExpiresMinutes{margin-bottom:10px;min-width:200px}#Job_Show_Job_Actions_AddQueue_Dialog .details #Comment{min-width:280px}#jobDetailTab-Queues #jobQueues{border:solid 1px #d8d8d8;border-collapse:collapse;table-layout:fixed}#jobDetailTab-Queues #jobQueues td{border:solid 1px #d8d8d8;background-color:#fff}#jobDetailTab-Queues #jobQueues th{background-color:#eee;border:solid 1px #d8d8d8}#jobDetailTab-Queues #jobQueues i.fa-edit{float:right;margin-top:4px;font-size:1.1em;cursor:pointer;display:none;color:#335a87}#jobDetailTab-Queues #jobQueues i.fa-edit:hover{color:#5e8cc2}#jobDetailTab-Queues #jobQueues td:hover i.fa-edit{display:inline-block}#jobDetailTab-Queues #jobQueues th.name{width:200px}#jobDetailTab-Queues #jobQueues th.sla{width:130px}#jobDetailTab-Queues #jobQueues tr.removed td{background-color:#f4f4f4}#jobDetailTab-Queues #jobQueues td.name{vertical-align:middle}#jobDetailTab-Queues #jobQueues td.name .fa-stack{line-height:1.6em}#jobDetailTab-Queues #jobQueues td.added .when,#jobDetailTab-Queues #jobQueues td.removed .when{font-style:italic;margin-top:4px;font-size:.9em}#jobDetailTab-Queues #jobQueues td.added .commentsRaw,#jobDetailTab-Queues #jobQueues td.removed .commentsRaw{display:none}#jobDetailTab-Queues #jobQueues td.removed.na{vertical-align:middle;text-align:center}#jobDetailTab-Queues #jobQueues td.sla{vertical-align:middle}#jobDetailTab-Queues #jobQueues td.sla.overdue{color:#e51400}#jobDetailTab-Queues>.none{text-align:center;padding:30px 0;font-style:italic;background-color:#fff}#Job_Show_Queues_Actions_EditAddedComment_Dialog h4,#Job_Show_Queues_Actions_EditRemovedComment_Dialog h4,#Job_Show_Queues_Actions_EditSla_Dialog h4{margin-bottom:4px}#Job_Show_Queues_Actions_EditAddedComment_Dialog_Comment{width:280px}#Job_Show_Queues_Actions_EditRemovedComment_Dialog_Comment{width:280px}#jobComponents{border:solid 1px #d8d8d8;border-collapse:collapse}#jobComponents td{border:solid 1px #d8d8d8;background-color:#fff}#jobComponents th{background-color:#eee;border:solid 1px #d8d8d8}#jobComponents tr th.actions{width:18px}#jobComponents tr input.description{width:400px}#jobComponents tr input.cost{width:150px}#jobComponents tr span.remove{font-size:1.5em;color:#e51400;cursor:pointer;opacity:.5}#jobComponents tr span.remove:hover{opacity:1}#jobComponents tr input.updating{background-position:right center;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEAALAPQAAP///zNah+Hm7dng6O7x9DddiTNah1d3nJqtw3+Xs8fS3k5vlm6JqaGzx4KatcrU4FFymDZciHGMq+ru8t/l7Pb3+V9+oeLo7vT2+MTP3LLB0dTc5fHz9gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA)}#jobComponents tr .totalCost{font-weight:bold}#jobNonWarrantyFinance{border:solid 1px #d8d8d8;border-collapse:collapse}#jobNonWarrantyFinance td{border:solid 1px #d8d8d8;background-color:#fff}#jobNonWarrantyFinance th{background-color:#eee;border:solid 1px #d8d8d8}#jobNonWarrantyFinance tr th{width:200px;text-align:right}#jobNonWarrantyRepairs{border:solid 1px #d8d8d8;border-collapse:collapse}#jobNonWarrantyRepairs td{border:solid 1px #d8d8d8;background-color:#fff}#jobNonWarrantyRepairs th{background-color:#eee;border:solid 1px #d8d8d8}#jobNonWarrantyRepairs tr th{width:200px;text-align:right}#jobNonWarrantyInsurance{border:solid 1px #d8d8d8;border-collapse:collapse}#jobNonWarrantyInsurance td{border:solid 1px #d8d8d8;background-color:#fff}#jobNonWarrantyInsurance th{background-color:#eee;border:solid 1px #d8d8d8}#jobNonWarrantyInsurance tr th{width:200px;text-align:right}#jobNonWarrantyInsurance tr td textarea{width:400px}#jobFlags{border:solid 1px #d8d8d8;border-collapse:collapse}#jobFlags td{border:solid 1px #d8d8d8;background-color:#fff}#jobFlags th{background-color:#eee;border:solid 1px #d8d8d8}#jobFlags tr th{width:200px;text-align:right}#warrantyJobForm #warrantyDisclosedInformation table{font-size:.9em}#warrantyJobForm #warrantyDisclosedInformation table tr:not(:last-child){border-bottom:1px dashed #aaa}#warrantyJobForm #warrantyDisclosedInformation table th{padding:2px;font-weight:bold;width:200px}#warrantyJobForm #warrantyDisclosedInformation table td{padding:2px}#warrantyJobFaultDescription #FaultDescription{width:600px;height:250px}#createJob_Container{margin:0 -20px}#createJob_Container img.modelImage{width:64px;height:64px}#createJob_Container .createJob_Component{margin:0 10px;padding:5px 0;border-bottom:1px dashed #ccc}#createJob_Container .createJob_Component:last-child{border-bottom:none}#createJob_Container #createJob_Type{border:1px solid #ccc;background-color:#f2f2f2;padding:2px 4px}#createJob_Container #createJob_SubTypes{margin:-1px 0 0 20px;border:1px solid #ccc;border-top:none;padding:2px 4px;background-color:#f2f2f2}#createJob_Container #createJob_SubTypes .createJob_SubType{display:none}#createJob_Container #createJob_Type li,#createJob_Container #createJob_SubTypes li{margin:2px 0;padding:0 0 0 4px}#createJob_Container #createJob_Type li i,#createJob_Container #createJob_SubTypes li i{display:none;cursor:default;font-weight:normal}#createJob_Container #createJob_Type li:hover i,#createJob_Container #createJob_SubTypes li:hover i{display:inline-block}#createJob_Container #createJob_Type li.highlight,#createJob_Container #createJob_SubTypes li.highlight{background-color:#cddbec;font-weight:600;color:#000}#createJob_Container #createJob_Type li.highlight i,#createJob_Container #createJob_SubTypes li.highlight i{display:inline-block}#createJob_Container #createJob_SubTypes.isQuickLog li i{display:none}#createJob_Container #createJob_CommentsContainer #Comments{width:100%;min-width:500px}#createJob_Container #createJob_QuickLogAutoCloseContainer h3{margin-bottom:4px}#createJob_Container #createJob_QuickLogAutoCloseContainer input{margin-left:4px}#createJob_Container #createJob_QuickLogTaskTimeContainer{display:none;margin:4px 0 0 25px;padding:4px 4px;background-color:#f2f2f2;border-left:4px solid #d8d8d8}#createJob_Container #createJob_QuickLogTaskTimeContainer h4{display:inline-block;padding-right:10px}#createJob_Container #createJob_QuickLogTaskTimeContainer label{margin-right:15px}#createJob_Container #createJob_QuickLogTaskTimeContainer #createJob_TaskTimeOtherMinutesContainer{display:none}#createJob_Container #createJob_QuickLogTaskTimeContainer #createJob_TaskTimeOtherMinutes{width:50px}#createJobRedirect h1{margin-top:60px!important;margin-bottom:60px}#createJobRedirect>div{text-align:right}#createJobRedirect>div i{margin-right:10px} \ No newline at end of file diff --git a/Disco.Web/ClientSource/Style/Site.css b/Disco.Web/ClientSource/Style/Site.css index ab851644..ad713bee 100644 --- a/Disco.Web/ClientSource/Style/Site.css +++ b/Disco.Web/ClientSource/Style/Site.css @@ -745,6 +745,16 @@ table.genericData td.id a { .dataTables_wrapper table > thead tr > th.sorting_disabled { background-image: none; } +table.userTable div.flags { + display: inline-block; + float: right; +} +table.userTable div.flags > i { + cursor: default; +} +table.userTable div.flags > i > .details { + display: none; +} .jobStatus { color: #333333; } @@ -1182,6 +1192,18 @@ div.disco-attachmentUpload-imageDialog { width: 720px !important; height: 540px !important; } +body > .User_FlagAssignment_Tooltip span.name { + display: block; + font-weight: bold; +} +body > .User_FlagAssignment_Tooltip span.comments { + display: block; + padding: 2px 0 2px 4px; +} +body > .User_FlagAssignment_Tooltip span.added { + font-style: italic; + font-size: 0.9em; +} .d-priority-high { color: #fa6800; width: 1.2857142857142858em; diff --git a/Disco.Web/ClientSource/Style/Site.less b/Disco.Web/ClientSource/Style/Site.less index 12769f0a..10ca094b 100644 --- a/Disco.Web/ClientSource/Style/Site.less +++ b/Disco.Web/ClientSource/Style/Site.less @@ -702,6 +702,21 @@ table { } } +table.userTable { + div.flags { + display: inline-block; + float: right; + + & > i { + cursor: default; + + & > .details { + display: none; + } + } + } +} + .jobStatus { color: @StatusUnknown; @@ -1169,6 +1184,23 @@ div.disco-attachmentUpload-imageDialog { height: 540px !important; } +body > .User_FlagAssignment_Tooltip { + span.name { + display: block; + font-weight: bold; + } + + span.comments { + display: block; + padding: 2px 0 2px 4px; + } + + span.added { + font-style: italic; + font-size: 0.9em; + } +} + // Priority Colours .d-priority-high { color: @PriorityHigh; diff --git a/Disco.Web/ClientSource/Style/Site.min.css b/Disco.Web/ClientSource/Style/Site.min.css index c6fee324..b13f00e3 100644 --- a/Disco.Web/ClientSource/Style/Site.min.css +++ b/Disco.Web/ClientSource/Style/Site.min.css @@ -1 +1 @@ -.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}body{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;margin:0;padding:0;color:#333}body.layout{background:url(data:image/png;base64,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) left top repeat-x #d1d1d1;background:linear-gradient(to bottom,#f2f2f2 0,#d1d1d1 370px) left top repeat-x #d1d1d1;min-height:370px}.page{max-width:1232px;min-width:768px;margin-left:auto;margin-right:auto}header,#header{position:relative;background-color:#333;margin:0;padding:0;height:34px}header #heading,#header #heading{float:left;height:34px}header #heading i,#header #heading i{display:block;height:34px;width:34px;background-image:url(data:image/png;base64,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)}header nav,#header nav{float:left;height:34px;padding:0;margin:0}header nav ul#menu,#header nav ul#menu{height:26px;padding:0;margin:8px 0 0 4px;list-style:none;z-index:100000;font-size:0;line-height:0}header nav ul#menu>li,#header nav ul#menu>li{display:inline-block;z-index:100000;font-size:13.2px;line-height:19.2px}header nav ul#menu>li.moveRight,#header nav ul#menu>li.moveRight{margin-left:20px}header nav ul#menu>li>a,#header nav ul#menu>li>a{display:inline-block;padding:2px 10px 4px 10px;height:20px;color:#fff;font-weight:400;text-transform:uppercase;text-decoration:none}header nav ul#menu>li>a:active,#header nav ul#menu>li>a:active{text-decoration:none}header nav ul#menu>li.active>a,#header nav ul#menu>li.active>a{background-color:#222}header nav ul#menu>li:hover>a,#header nav ul#menu>li:hover>a{background-color:#111;text-decoration:none}header nav ul#menu>li>ul,#header nav ul#menu>li>ul{z-index:100000;display:none;list-style:none;position:absolute;margin:0;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1;background-color:#f2f2f2;padding:0;min-width:180px;box-shadow:2px 2px 5px rgba(209,209,209,.5)}header nav ul#menu>li>ul li,#header nav ul#menu>li>ul li{position:relative;background-position:top;background-repeat:repeat-x;border-top:1px solid #e6e6e6}header nav ul#menu>li>ul li:first-child,#header nav ul#menu>li>ul li:first-child{border-top:1px solid #d1d1d1}header nav ul#menu>li>ul li:last-child,#header nav ul#menu>li>ul li:last-child{border-bottom:1px solid #d1d1d1}header nav ul#menu>li>ul li:hover,#header nav ul#menu>li>ul li:hover{border-top:1px solid #d9d9d9;background-color:#e6e6e6}header nav ul#menu>li>ul li a,#header nav ul#menu>li>ul li a{display:block;color:#000;padding:4px 8px;text-decoration:none}header nav ul#menu>li>ul li a:hover,#header nav ul#menu>li>ul li a:hover{color:#335a87;text-decoration:none}header nav ul#menu>li>ul li a:active,#header nav ul#menu>li>ul li a:active{text-decoration:none}header nav ul#menu>li>ul li i.fa-caret-right,#header nav ul#menu>li>ul li i.fa-caret-right{cursor:pointer;color:#666;font-size:16px;position:absolute;display:block;right:12px;top:7px}header nav ul#menu>li>ul li:hover i.fa-caret-right,#header nav ul#menu>li>ul li:hover i.fa-caret-right{color:#333}header nav ul#menu>li>ul ul,#header nav ul#menu>li>ul ul{display:none;list-style:none;position:absolute;top:-1px;left:180px;background-color:#f2f2f2;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1;padding:0;min-width:180px;box-shadow:2px 2px 5px rgba(209,209,209,.5)}header #headerMenu,#header #headerMenu{float:right;height:24px;padding:5px 8px;font-size:.9em;line-height:24px;text-align:right;color:#fff}header #headerMenu a,#header #headerMenu a{color:#fff;text-decoration:none}header #headerMenu a:hover,#header #headerMenu a:hover{color:#cddbec;text-decoration:none}header #SearchQuery,#header #SearchQuery{font-size:.9em;margin-left:6px;width:130px;background-color:#eee;-moz-transition-property:width;-o-transition-property:width;-webkit-transition-property:width;transition-property:width;-moz-transition-duration:.1s;-o-transition-duration:.1s;-webkit-transition-duration:.1s;transition-duration:.1s}header #SearchQuery:hover,#header #SearchQuery:hover,header #SearchQuery:focus,#header #SearchQuery:focus{background-color:#fff;width:190px}header .watermark,#header .watermark{background-color:#888}#QuickSearchMenu{max-height:400px;font-size:.9em;background:none;background-color:#fafafa}#QuickSearchMenu li:not(:last-child){border-bottom:1px solid #d8d8d8}#QuickSearchMenu li>a{padding:2px}#QuickSearchMenu li>a>i{margin-right:2px}#QuickSearchMenu li>a>div{padding-left:1.2857142857142858em;margin-left:2px}#layout_PageHeading{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAA8CAYAAABfESsNAAAAOUlEQVRIx+2SuREAIAzDFELL/uOSFVLx3Mm1C8nnABaNDJq5WJzAVkZGZXyPMg7+jUwCIeNZmdcZC2pxCZOpoRNgAAAAAElFTkSuQmCC) left top repeat-x #fff;background:linear-gradient(to bottom,#f2f2f2 0,#fff 50px) #fff;height:50px;padding:6px 20px 4px 20px;font-size:2em;color:#000;line-height:50px;position:relative;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1}#layout_PageHeading a{text-decoration:none}#layout_Page{background-color:#fff;overflow:auto;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;padding:0 30px 15px 30px;-moz-border-radius:0 0 4px 4px;-webkit-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}#layout_Error{min-height:200px}#layout_Error table{background-color:#fff}#layout_Error h1,#layout_Error h2,#layout_Error h3,#layout_Error h4,#layout_Error h5{color:#fff;white-space:pre-wrap}#layout_Error h2.error{margin-bottom:10px}#layout_Error .stacktrace{white-space:pre;overflow:auto}#layout_Error>div{margin:0 auto;width:650px}#layout_uiExtensions{display:none}footer,#footer{color:#777;padding:10px 0;text-align:center;margin:0;font-size:.9em}footer a:link,#footer a:link,footer a:visited,#footer a:visited,footer a:active,#footer a:active{color:#777}footer a:link,#footer a:link,footer a:active,#footer a:active{text-decoration:underline}footer a:hover,#footer a:hover{color:#5e8cc2;text-decoration:none}p{margin:0 0 20px 0;line-height:1.6em}ul{margin:0;padding:0 0 0 25px;list-style:square;line-height:1.6em}header,footer,nav,section{display:block}form{display:inline}img{border:none;padding:0;margin:0;vertical-align:bottom}code{font-family:Consolas,"Courier New",monospace}hr{border:none;border-bottom:1px dashed #aaa;margin-top:15px}a:link{color:#335a87;text-decoration:none}a:visited{color:#335a87}a:hover{color:#5e8cc2;text-decoration:underline}a:active{color:#335a87}a[disabled]{color:#6b6b6b;text-decoration:none;cursor:default}a.button{display:inline-block;padding:4px 10px;margin:2px;border:1px solid #1a5f95;background:#1e6dab;color:#fff;font-weight:bold;text-transform:uppercase;cursor:pointer;white-space:nowrap;text-decoration:none}a.button[disabled],a.button.disabled{background:#9e9e9e;border:1px solid #6b6b6b;cursor:default}a.button.alert{border-color:#900;background-color:#e51400}a.button.small{padding:2px 5px;font-size:.9em}a.button:hover{border:1px solid #6b6b6b;background:#9e9e9e}a.button i{margin-right:10px}div.actionBar{margin:0 -30px 0 -30px;padding:10px;border-top:1px solid #d1d1d1;text-align:right;background-color:#f2f2f2}div.actionBar:not(:first-child){margin-top:10px}div.actionBar:last-child{margin-bottom:-15px;-moz-border-radius:0 0 6px 6px;-webkit-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}h1,h2,h3,h4,h5,h6{color:#000;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;margin:0}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0!important;padding-top:0!important}h1>a:link,h2>a:link,h3>a:link,h4>a:link,h5>a:link,h6>a:link{text-decoration:none}h1{font-size:24px}h2{font-size:20px;padding:8px 0 4px 0}h3{font-size:18px}h4{font-size:14px}h5,h6{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-stretch:normal;font-weight:bold}table{border:none;border-collapse:collapse;width:100%}table td{padding:5px;margin:0;border:none;vertical-align:top}table th{padding:5px;margin:0;text-align:left;font-weight:bold;vertical-align:top}table.none{border:none!important}table.none tr,table.none td,table.none th{padding:0!important;margin:0!important;background:none!important;border:none!important}table.genericData{border:solid 1px #f4f4f4;border-collapse:collapse}table.genericData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}table.genericData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}table.genericData>thead>tr>th,table.genericData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}table.genericData>tbody>tr:hover>td{background-color:#fefefe}table.genericData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}table.genericData>tfoot>tr>th,table.genericData>tfoot>tr>td{background-color:#f4f4f4}table.genericData td.id{text-align:center}table.genericData td.id a{padding:0 6px}.smallTable th,.smallTable td{font-size:.9em}.dataTables_wrapper{position:relative}.dataTables_wrapper .dataTables_filter{position:absolute;height:20px;margin-top:-20px;right:0;font-size:.9em;-moz-opacity:.3;opacity:.3}.dataTables_wrapper .dataTables_filter input{font-size:.95em;padding:0;height:1.4em;width:150px}.dataTables_wrapper .dataTables_length{position:absolute;height:20px;margin-top:-20px;right:200px;font-size:.9em;-moz-opacity:.3;opacity:.3}.dataTables_wrapper .dataTables_length select{font-size:.95em;padding:0;height:1.4em}.dataTables_wrapper .dataTables_paginate{text-align:right;background-color:#f4f4f4;padding:2px 4px;font-size:.9em}.dataTables_wrapper .dataTables_paginate a{cursor:pointer;padding:2px;margin:0 3px;color:#335a87;background-repeat:no-repeat;-moz-opacity:.3;opacity:.3;text-transform:uppercase}.dataTables_wrapper .dataTables_paginate .first{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAKklEQVQI12NgQALGUe0SQPwfnY0iCcVwNjZJFAxT8J+QAvwmEHQDPl8AAAYqTAY6Jng6AAAAAElFTkSuQmCC);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .first.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAKklEQVQI12NgQAKxsbESQPwfnY0iCcVwNjZJFAxT8J+QAvwmEHQDPl8AAEm8TIFT3+fIAAAAAElFTkSuQmCC)}.dataTables_wrapper .dataTables_paginate .previous{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAGMo9olgPg/XkmsCpAlcSn4T0gBfhMIugFdEQCMVyg5CPiC8wAAAABJRU5ErkJggg==);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .previous.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAH6+vokgPg/XkmsCpAlcSn4T0gBfhMIugFdEQDzojUdMBAGjgAAAABJRU5ErkJggg==)}.dataTables_wrapper .dataTables_paginate .next{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Mwjmr/D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwCZ1Cg5w6CPqwAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper .dataTables_paginate .next.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Po6+v7D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwDwPjUdLMfQ6AAAAABJRU5ErkJggg==)}.dataTables_wrapper .dataTables_paginate .last{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAK0lEQVQI12Mwjmr/D8QSDECAzIYDqCBYApmNTQE6liCk4D/JJuB1A05fAABJ/EwGJKVDGAAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper .dataTables_paginate .last.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAK0lEQVQI12OIjY39D8QSDECAzIYDqCBYApmNTQE6liCk4D/JJuB1A05fAACQykyB48rZCQAAAABJRU5ErkJggg==)}.dataTables_wrapper .dataTables_paginate .paginate_active{font-weight:bold;color:#1e6dab}.dataTables_wrapper .dataTables_paginate .paginate_button_disabled{color:#ccc;cursor:default}.dataTables_wrapper .dataTables_paginate .paginate_enabled_previous{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAGMo9olgPg/XkmsCpAlcSn4T0gBfhMIugFdEQCMVyg5CPiC8wAAAABJRU5ErkJggg==);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .paginate_disabled_previous{color:#ccc;cursor:default;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAH6+vokgPg/XkmsCpAlcSn4T0gBfhMIugFdEQDzojUdMBAGjgAAAABJRU5ErkJggg==);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .paginate_enabled_next{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Mwjmr/D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwCZ1Cg5w6CPqwAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper .dataTables_paginate .paginate_disabled_next{color:#ccc;cursor:default;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Po6+v7D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwDwPjUdLMfQ6AAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper:hover .dataTables_filter,.dataTables_wrapper:hover .dataTables_length,.dataTables_wrapper:hover .dataTables_paginate a{-moz-opacity:1;opacity:1}.dataTables_wrapper table>thead tr>th{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAD6CAYAAACoLMeFAAAAdElEQVRo3u3bOwqAMBAFwBwjh/CUluKRhfVTiil0UYjMwJLqLfmUYUuBtw3jUreKfc2E43aTi/C9Jo3wUR4WAAAAAAAAejBPc90q9jUTjkdNTuGjPj9/bgfpO0i/AgAAAAAAAPQnPZ6YHpBsNEnNefrt4+9Wmn6nW/cZ1MQAAAAASUVORK5CYII=);background-repeat:no-repeat}.dataTables_wrapper table>thead tr>th.sorting{background-position:right center;cursor:pointer}.dataTables_wrapper table>thead tr>th.sorting_desc{background-position:right bottom;cursor:pointer}.dataTables_wrapper table>thead tr>th.sorting_asc{background-position:right top;cursor:pointer}.dataTables_wrapper table>thead tr>th.sorting_disabled{background-image:none}.jobStatus{color:#333}.jobStatus.Closed{color:#9e9e9e}.jobStatus.Open{color:#60a917}.jobStatus.AwaitingWarrantyRepair,.jobStatus.AwaitingRepairs{color:#1e6dab}.jobStatus.AwaitingDeviceReturn,.jobStatus.AwaitingUserAction,.jobStatus.AwaitingAccountingPayment,.jobStatus.AwaitingAccountingCharge{color:#f0a30a}.jobStatus.AwaitingInsuranceProcessing{color:#6a00ff}.deviceStatus{color:#333}.deviceStatus.Decommissioned{color:#9e9e9e}.deviceStatus.Active{color:#60a917}.deviceStatus.NotEnrolled{color:#f0a30a}table.jobTable{border:solid 1px #f4f4f4;border-collapse:collapse;table-layout:fixed}table.jobTable>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}table.jobTable>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}table.jobTable>thead>tr>th,table.jobTable>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}table.jobTable>tbody>tr:hover>td{background-color:#fefefe}table.jobTable>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}table.jobTable>tfoot>tr>th,table.jobTable>tfoot>tr>td{background-color:#f4f4f4}table.jobTable td{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}table.jobTable.hideStatusClosed tr[data-status=Closed]{display:none}table.jobTable td.id,table.jobTable th.id{width:50px;text-align:center}table.jobTable td.id a,table.jobTable th.id a{padding:0 6px}table.jobTable tr.statusSlaWarning td{background-color:#fdeed1}table.jobTable tr.statusSlaWarning td:not(:last-child){border-right:1px solid #f8e9cb}table.jobTable tr.statusSlaExpired td{background-color:#ffd7d3}table.jobTable tr.statusSlaExpired td:not(:last-child){border-right:1px solid #fad2ce}table.jobTable tr:nth-child(odd).statusSlaWarning td{background-color:#fcedcf!important}table.jobTable tr:nth-child(odd).statusSlaExpired td{background-color:#fed6d2!important}table.jobTable tr:hover.statusSlaWarning td{background-color:#fbebca!important}table.jobTable tr:hover.statusSlaExpired td{background-color:#fed1cd!important}table.jobTable div.queues{display:inline-block;float:right}table.jobTable td.lastActive,table.jobTable th.lastActive{width:130px}table.jobTable td.dates,table.jobTable th.dates{width:130px}table.jobTable td.type,table.jobTable th.type{width:50px}table.jobTable td.device,table.jobTable th.device{width:110px}table.jobTable td.user,table.jobTable th.user{width:240px}table.jobTable td.technician,table.jobTable th.technician{width:80px}table.jobTable td.location,table.jobTable th.location{width:200px}div.jobTable>a.dataTables_showStatusClosed{margin:10px 5px}div.jobTable>h3,div.jobTable>div.allClosed_container{margin:50px 20px!important}div.jobTable>h3 a.button,div.jobTable>div.allClosed_container a.button{margin-top:10px}table.deviceTable tr.decommissioned{background-color:#ededed}textarea{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;border:1px solid #ccc;min-height:75px;padding:2px;color:#444;width:200px}input[type="text"],input[type="password"],input[type="file"],input[type="number"]{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;border:1px solid #ccc;padding:2px;color:#444;width:200px}input[type="text"].small,input[type="password"].small,input[type="file"].small,input[type="number"].small{padding:0 2px;width:150px}input[type="text"].discreet,input[type="password"].discreet,input[type="file"].discreet,input[type="number"].discreet{border:1px solid #fff}input[type="text"].discreet:hover,input[type="password"].discreet:hover,input[type="file"].discreet:hover,input[type="number"].discreet:hover,input[type="text"].discreet:focus,input[type="password"].discreet:focus,input[type="file"].discreet:focus,input[type="number"].discreet:focus{border:1px solid #ccc}input[type="checkbox"],input[type="radio"]{margin-right:4px;vertical-align:sub}select{font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-size:12px;border:1px solid #ccc;padding:2px;color:#444}select.small{padding:0}input[type="submit"],button{font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;padding:5px}input[type="submit"].button,button.button{font-size:12px;padding:4px 10px 4px 10px;margin:2px;border:1px solid #1a5f95;background:#1e6dab;color:#fff;font-weight:600;text-transform:uppercase;cursor:pointer}input[type="submit"].button.alert,button.button.alert{border-color:#900;background-color:#e51400}input[type="submit"].button.small,button.button.small{padding:2px 5px;font-size:.9em}input[type="submit"].button[disabled],button.button[disabled]{background:#9e9e9e;border:1px solid #6b6b6b;cursor:default}input[type="submit"].button:hover,button.button:hover{border:1px solid #6b6b6b;background:#9e9e9e}ul.none{list-style:none;margin:0;padding:0}ul.none li{margin:0}div.form{margin:0 auto}div.form>p.actions{text-align:right}div.form>table{border-top:6px solid #1e6dab;border-left:1px solid #1e6dab;border-right:1px solid #1e6dab;border-bottom:3px solid #1e6dab;background-color:#fff}div.form>table>tbody>tr>td,div.form>table>tbody>tr>th{background:none;border:none;margin:0;padding:8px 5px}div.form>table>tbody>tr>th{font-weight:normal;text-align:right}div.form>table>tbody>tr:nth-child(odd){background-color:#f2f2f2;margin:0;padding:0}div.form>table>tbody>tr>td.details{padding:0}div.form>table>tbody>tr>th.name{width:150px;text-align:right}div.form>table table.sub>tbody>tr:not(:first-child)>th,div.form>table table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}div.form>table table.sub>tbody>tr>th{font-weight:normal;text-align:right}div.form>table table.sub>tbody>tr>th.name{text-align:right}#pageMenu td{border-right:1px dashed #aaa;width:33%;padding:10px}#pageMenu td .pageMenuArea>.fa{font-size:1.3em;color:#6b6b6b;margin-right:4px}#pageMenu td .pageMenuArea>a,#pageMenu td .pageMenuArea>h3{text-decoration:none;font-size:1.2em}#pageMenu td .pageMenuArea .pageMenuBlurb{font-size:.9em;color:#888;margin-bottom:10px}#pageMenu td .pageMenuArea .pageMenuBlurb a{text-decoration:none}#pageMenu td .pageMenuArea:not(:last-child){border-bottom:1px dashed #aaa}#pageMenu td .pageMenuArea.noSeperator{border-bottom:none}#pageMenu td:first-child{padding-left:0}#pageMenu td:last-child{border-right:none;padding-right:0}div.disco-attachmentUpload-dropTarget{display:none}div.disco-attachmentUpload-dropTarget.dragHighlight{display:block;position:absolute;z-index:1000;top:0;left:0;width:calc(100% - 6px);height:calc(100% - 6px);background-color:rgba(251,218,152,.5);border:3px dashed #f0a30a}div.disco-attachmentUpload-dropTarget.dragHighlight h2{margin-top:3em!important;color:#2c1e02;text-align:center;font-weight:bold}div.disco-attachmentUpload-dropTarget.dragHighlight.dragHover{background-color:rgba(173,235,110,.5);border:3px dashed #60a917}div.disco-attachmentUpload-dropTarget.dragHighlight.dragHover h2{color:#000}div.disco-attachmentUpload-progress{position:absolute;right:0;bottom:48px}div.disco-attachmentUpload-progress>div{background-color:#fafafa;padding:4px 8px}div.disco-attachmentUpload-progress>div i{color:#1e6dab;margin-right:4px}div.disco-attachmentUpload-commentDialog{padding:.25em .5em!important}div.disco-attachmentUpload-commentDialog table{border:solid 1px #f4f4f4;border-collapse:collapse;table-layout:fixed}div.disco-attachmentUpload-commentDialog table>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}div.disco-attachmentUpload-commentDialog table>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}div.disco-attachmentUpload-commentDialog table>thead>tr>th,div.disco-attachmentUpload-commentDialog table>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}div.disco-attachmentUpload-commentDialog table>tbody>tr:hover>td{background-color:#fefefe}div.disco-attachmentUpload-commentDialog table>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}div.disco-attachmentUpload-commentDialog table>tfoot>tr>th,div.disco-attachmentUpload-commentDialog table>tfoot>tr>td{background-color:#f4f4f4}div.disco-attachmentUpload-commentDialog table th{width:80px}div.disco-attachmentUpload-commentDialog table td.filename{font-family:Consolas,"Courier New",monospace;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}div.disco-attachmentUpload-commentDialog table input.comments{width:calc(100% - 5px)}div.disco-attachmentUpload-commentDialog table td.thumbnail{display:none;text-align:center}div.disco-attachmentUpload-commentDialog table td.thumbnail img{border:1px solid #9e9e9e;max-height:250px;max-width:374px}div.disco-attachmentUpload-imageDialog{background-color:#000!important;padding:0!important;overflow:hidden!important;width:720px!important;height:540px!important}.d-priority-high{color:#fa6800;width:1.2857142857142858em;text-align:center}.d-priority-high:before{content:""}.d-priority-normal{color:#60a917;width:1.2857142857142858em;text-align:center}.d-priority-normal:before{content:""}.d-priority-low{color:#1e6dab;width:1.2857142857142858em;text-align:center}.d-priority-low:before{content:""}.fa-stack .d-priority-high,.fa-stack .d-priority-normal,.fa-stack .d-priority-low{width:100%;font-size:.8em;margin-left:.5em;margin-top:.4em;opacity:.6}.d-lime{color:#a4c400}.d-green{color:#60a917}.d-emerald{color:#008a00}.d-teal{color:#00aba9}.d-cyan{color:#1ba1e2}.d-cobalt{color:#0050ef}.d-indigo{color:#6a00ff}.d-violet{color:#a0f}.d-pink{color:#f472d0}.d-magenta{color:#d80073}.d-crimson{color:#a20025}.d-red{color:#e51400}.d-orange{color:#fa6800}.d-amber{color:#f0a30a}.d-yellow{color:#e3c800}.d-brown{color:#825a2c}.d-olive{color:#6d8764}.d-steel{color:#647689}.d-mauve{color:#76608a}.d-sienna{color:#a0522d}table.subtleHighlight{border:1px solid #ccc;background-color:#ededed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}td.subtleHighlight{border:1px solid #ccc;background-color:#ededed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.field-validation-error{color:#e51400!important}.field-validation-valid{display:none}.input-validation-error{border:1px solid #e51400!important;background-color:#fff7f7!important}.validation-summary-errors{font-weight:bold!important;color:#e51400!important}.validation-summary-valid{display:none}.ajaxLoading{height:11px;width:16px;display:inline-block;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEAALAPQAAP///zNah+Hm7dng6O7x9DddiTNah1d3nJqtw3+Xs8fS3k5vlm6JqaGzx4KatcrU4FFymDZciHGMq+ru8t/l7Pb3+V9+oeLo7vT2+MTP3LLB0dTc5fHz9gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA);margin-bottom:0}.ajaxOk{color:#60a917}.ajaxSave{color:#1e6dab;cursor:pointer}.ajaxRemove{color:#e51400;cursor:pointer;opacity:.8}.ajaxRemove:hover{opacity:1}#layout_Page div.hiddenDialog{display:none}* html .clearfix{height:1%;overflow:visible}*+html .clearfix{min-height:1%}.clearfix:after{clear:both;content:".";display:block;height:0;visibility:hidden;font-size:0}div.columnHost .column50{float:left;width:50%}.hidden{display:none}.success{color:#60a917}.information{color:#1e6dab}.warning{color:#f0a30a}.error{color:#e51400}.alert{color:#fa6800}.smallText{font-size:.9em}.smallMessage{font-style:italic;color:#666;font-size:.9em}.nowrap{white-space:nowrap}.code{font-family:Consolas,"Courier New",monospace}div.code{border:1px dashed #bbb;background-color:#fff;margin:3px 6px;padding:4px;font-size:.9em}a.smallLink{font-size:.9em}textarea.block{width:250px;height:100px}.checkboxBulkSelectContainer{margin-top:6px;font-size:.8em}.checkboxBulkSelectContainer a{text-decoration:none}.ui-widget .checkboxBulkSelectContainer{font-size:1em}#licence{text-align:justify}#licence p{font-size:.9em}#licence li{font-size:.9em} \ No newline at end of file +.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}body{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;margin:0;padding:0;color:#333}body.layout{background:url(data:image/png;base64,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) left top repeat-x #d1d1d1;background:linear-gradient(to bottom,#f2f2f2 0,#d1d1d1 370px) left top repeat-x #d1d1d1;min-height:370px}.page{max-width:1232px;min-width:768px;margin-left:auto;margin-right:auto}header,#header{position:relative;background-color:#333;margin:0;padding:0;height:34px}header #heading,#header #heading{float:left;height:34px}header #heading i,#header #heading i{display:block;height:34px;width:34px;background-image:url(data:image/png;base64,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)}header nav,#header nav{float:left;height:34px;padding:0;margin:0}header nav ul#menu,#header nav ul#menu{height:26px;padding:0;margin:8px 0 0 4px;list-style:none;z-index:100000;font-size:0;line-height:0}header nav ul#menu>li,#header nav ul#menu>li{display:inline-block;z-index:100000;font-size:13.2px;line-height:19.2px}header nav ul#menu>li.moveRight,#header nav ul#menu>li.moveRight{margin-left:20px}header nav ul#menu>li>a,#header nav ul#menu>li>a{display:inline-block;padding:2px 10px 4px 10px;height:20px;color:#fff;font-weight:400;text-transform:uppercase;text-decoration:none}header nav ul#menu>li>a:active,#header nav ul#menu>li>a:active{text-decoration:none}header nav ul#menu>li.active>a,#header nav ul#menu>li.active>a{background-color:#222}header nav ul#menu>li:hover>a,#header nav ul#menu>li:hover>a{background-color:#111;text-decoration:none}header nav ul#menu>li>ul,#header nav ul#menu>li>ul{z-index:100000;display:none;list-style:none;position:absolute;margin:0;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1;background-color:#f2f2f2;padding:0;min-width:180px;box-shadow:2px 2px 5px rgba(209,209,209,.5)}header nav ul#menu>li>ul li,#header nav ul#menu>li>ul li{position:relative;background-position:top;background-repeat:repeat-x;border-top:1px solid #e6e6e6}header nav ul#menu>li>ul li:first-child,#header nav ul#menu>li>ul li:first-child{border-top:1px solid #d1d1d1}header nav ul#menu>li>ul li:last-child,#header nav ul#menu>li>ul li:last-child{border-bottom:1px solid #d1d1d1}header nav ul#menu>li>ul li:hover,#header nav ul#menu>li>ul li:hover{border-top:1px solid #d9d9d9;background-color:#e6e6e6}header nav ul#menu>li>ul li a,#header nav ul#menu>li>ul li a{display:block;color:#000;padding:4px 8px;text-decoration:none}header nav ul#menu>li>ul li a:hover,#header nav ul#menu>li>ul li a:hover{color:#335a87;text-decoration:none}header nav ul#menu>li>ul li a:active,#header nav ul#menu>li>ul li a:active{text-decoration:none}header nav ul#menu>li>ul li i.fa-caret-right,#header nav ul#menu>li>ul li i.fa-caret-right{cursor:pointer;color:#666;font-size:16px;position:absolute;display:block;right:12px;top:7px}header nav ul#menu>li>ul li:hover i.fa-caret-right,#header nav ul#menu>li>ul li:hover i.fa-caret-right{color:#333}header nav ul#menu>li>ul ul,#header nav ul#menu>li>ul ul{display:none;list-style:none;position:absolute;top:-1px;left:180px;background-color:#f2f2f2;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1;padding:0;min-width:180px;box-shadow:2px 2px 5px rgba(209,209,209,.5)}header #headerMenu,#header #headerMenu{float:right;height:24px;padding:5px 8px;font-size:.9em;line-height:24px;text-align:right;color:#fff}header #headerMenu a,#header #headerMenu a{color:#fff;text-decoration:none}header #headerMenu a:hover,#header #headerMenu a:hover{color:#cddbec;text-decoration:none}header #SearchQuery,#header #SearchQuery{font-size:.9em;margin-left:6px;width:130px;background-color:#eee;-moz-transition-property:width;-o-transition-property:width;-webkit-transition-property:width;transition-property:width;-moz-transition-duration:.1s;-o-transition-duration:.1s;-webkit-transition-duration:.1s;transition-duration:.1s}header #SearchQuery:hover,#header #SearchQuery:hover,header #SearchQuery:focus,#header #SearchQuery:focus{background-color:#fff;width:190px}header .watermark,#header .watermark{background-color:#888}#QuickSearchMenu{max-height:400px;font-size:.9em;background:none;background-color:#fafafa}#QuickSearchMenu li:not(:last-child){border-bottom:1px solid #d8d8d8}#QuickSearchMenu li>a{padding:2px}#QuickSearchMenu li>a>i{margin-right:2px}#QuickSearchMenu li>a>div{padding-left:1.2857142857142858em;margin-left:2px}#layout_PageHeading{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAA8CAYAAABfESsNAAAAOUlEQVRIx+2SuREAIAzDFELL/uOSFVLx3Mm1C8nnABaNDJq5WJzAVkZGZXyPMg7+jUwCIeNZmdcZC2pxCZOpoRNgAAAAAElFTkSuQmCC) left top repeat-x #fff;background:linear-gradient(to bottom,#f2f2f2 0,#fff 50px) #fff;height:50px;padding:6px 20px 4px 20px;font-size:2em;color:#000;line-height:50px;position:relative;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1}#layout_PageHeading a{text-decoration:none}#layout_Page{background-color:#fff;overflow:auto;border-left:1px solid #d1d1d1;border-right:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;padding:0 30px 15px 30px;-moz-border-radius:0 0 4px 4px;-webkit-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}#layout_Error{min-height:200px}#layout_Error table{background-color:#fff}#layout_Error h1,#layout_Error h2,#layout_Error h3,#layout_Error h4,#layout_Error h5{color:#fff;white-space:pre-wrap}#layout_Error h2.error{margin-bottom:10px}#layout_Error .stacktrace{white-space:pre;overflow:auto}#layout_Error>div{margin:0 auto;width:650px}#layout_uiExtensions{display:none}footer,#footer{color:#777;padding:10px 0;text-align:center;margin:0;font-size:.9em}footer a:link,#footer a:link,footer a:visited,#footer a:visited,footer a:active,#footer a:active{color:#777}footer a:link,#footer a:link,footer a:active,#footer a:active{text-decoration:underline}footer a:hover,#footer a:hover{color:#5e8cc2;text-decoration:none}p{margin:0 0 20px 0;line-height:1.6em}ul{margin:0;padding:0 0 0 25px;list-style:square;line-height:1.6em}header,footer,nav,section{display:block}form{display:inline}img{border:none;padding:0;margin:0;vertical-align:bottom}code{font-family:Consolas,"Courier New",monospace}hr{border:none;border-bottom:1px dashed #aaa;margin-top:15px}a:link{color:#335a87;text-decoration:none}a:visited{color:#335a87}a:hover{color:#5e8cc2;text-decoration:underline}a:active{color:#335a87}a[disabled]{color:#6b6b6b;text-decoration:none;cursor:default}a.button{display:inline-block;padding:4px 10px;margin:2px;border:1px solid #1a5f95;background:#1e6dab;color:#fff;font-weight:bold;text-transform:uppercase;cursor:pointer;white-space:nowrap;text-decoration:none}a.button[disabled],a.button.disabled{background:#9e9e9e;border:1px solid #6b6b6b;cursor:default}a.button.alert{border-color:#900;background-color:#e51400}a.button.small{padding:2px 5px;font-size:.9em}a.button:hover{border:1px solid #6b6b6b;background:#9e9e9e}a.button i{margin-right:10px}div.actionBar{margin:0 -30px 0 -30px;padding:10px;border-top:1px solid #d1d1d1;text-align:right;background-color:#f2f2f2}div.actionBar:not(:first-child){margin-top:10px}div.actionBar:last-child{margin-bottom:-15px;-moz-border-radius:0 0 6px 6px;-webkit-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}h1,h2,h3,h4,h5,h6{color:#000;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;margin:0}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0!important;padding-top:0!important}h1>a:link,h2>a:link,h3>a:link,h4>a:link,h5>a:link,h6>a:link{text-decoration:none}h1{font-size:24px}h2{font-size:20px;padding:8px 0 4px 0}h3{font-size:18px}h4{font-size:14px}h5,h6{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-stretch:normal;font-weight:bold}table{border:none;border-collapse:collapse;width:100%}table td{padding:5px;margin:0;border:none;vertical-align:top}table th{padding:5px;margin:0;text-align:left;font-weight:bold;vertical-align:top}table.none{border:none!important}table.none tr,table.none td,table.none th{padding:0!important;margin:0!important;background:none!important;border:none!important}table.genericData{border:solid 1px #f4f4f4;border-collapse:collapse}table.genericData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}table.genericData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}table.genericData>thead>tr>th,table.genericData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}table.genericData>tbody>tr:hover>td{background-color:#fefefe}table.genericData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}table.genericData>tfoot>tr>th,table.genericData>tfoot>tr>td{background-color:#f4f4f4}table.genericData td.id{text-align:center}table.genericData td.id a{padding:0 6px}.smallTable th,.smallTable td{font-size:.9em}.dataTables_wrapper{position:relative}.dataTables_wrapper .dataTables_filter{position:absolute;height:20px;margin-top:-20px;right:0;font-size:.9em;-moz-opacity:.3;opacity:.3}.dataTables_wrapper .dataTables_filter input{font-size:.95em;padding:0;height:1.4em;width:150px}.dataTables_wrapper .dataTables_length{position:absolute;height:20px;margin-top:-20px;right:200px;font-size:.9em;-moz-opacity:.3;opacity:.3}.dataTables_wrapper .dataTables_length select{font-size:.95em;padding:0;height:1.4em}.dataTables_wrapper .dataTables_paginate{text-align:right;background-color:#f4f4f4;padding:2px 4px;font-size:.9em}.dataTables_wrapper .dataTables_paginate a{cursor:pointer;padding:2px;margin:0 3px;color:#335a87;background-repeat:no-repeat;-moz-opacity:.3;opacity:.3;text-transform:uppercase}.dataTables_wrapper .dataTables_paginate .first{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAKklEQVQI12NgQALGUe0SQPwfnY0iCcVwNjZJFAxT8J+QAvwmEHQDPl8AAAYqTAY6Jng6AAAAAElFTkSuQmCC);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .first.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAKklEQVQI12NgQAKxsbESQPwfnY0iCcVwNjZJFAxT8J+QAvwmEHQDPl8AAEm8TIFT3+fIAAAAAElFTkSuQmCC)}.dataTables_wrapper .dataTables_paginate .previous{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAGMo9olgPg/XkmsCpAlcSn4T0gBfhMIugFdEQCMVyg5CPiC8wAAAABJRU5ErkJggg==);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .previous.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAH6+vokgPg/XkmsCpAlcSn4T0gBfhMIugFdEQDzojUdMBAGjgAAAABJRU5ErkJggg==)}.dataTables_wrapper .dataTables_paginate .next{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Mwjmr/D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwCZ1Cg5w6CPqwAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper .dataTables_paginate .next.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Po6+v7D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwDwPjUdLMfQ6AAAAABJRU5ErkJggg==)}.dataTables_wrapper .dataTables_paginate .last{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAK0lEQVQI12Mwjmr/D8QSDECAzIYDqCBYApmNTQE6liCk4D/JJuB1A05fAABJ/EwGJKVDGAAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper .dataTables_paginate .last.paginate_button_disabled{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAK0lEQVQI12OIjY39D8QSDECAzIYDqCBYApmNTQE6liCk4D/JJuB1A05fAACQykyB48rZCQAAAABJRU5ErkJggg==)}.dataTables_wrapper .dataTables_paginate .paginate_active{font-weight:bold;color:#1e6dab}.dataTables_wrapper .dataTables_paginate .paginate_button_disabled{color:#ccc;cursor:default}.dataTables_wrapper .dataTables_paginate .paginate_enabled_previous{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAGMo9olgPg/XkmsCpAlcSn4T0gBfhMIugFdEQCMVyg5CPiC8wAAAABJRU5ErkJggg==);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .paginate_disabled_previous{color:#ccc;cursor:default;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12NgwAH6+vokgPg/XkmsCpAlcSn4T0gBfhMIugFdEQDzojUdMBAGjgAAAABJRU5ErkJggg==);background-position:left center;padding-left:12px}.dataTables_wrapper .dataTables_paginate .paginate_enabled_next{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Mwjmr/D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwCZ1Cg5w6CPqwAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper .dataTables_paginate .paginate_disabled_next{color:#ccc;cursor:default;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAYAAAA1WQxeAAAAJUlEQVQI12Po6+v7D8QSDLgAVAFuRUgKsCtCU/CfIhPwugGnLwDwPjUdLMfQ6AAAAABJRU5ErkJggg==);background-position:right center;padding-right:12px}.dataTables_wrapper:hover .dataTables_filter,.dataTables_wrapper:hover .dataTables_length,.dataTables_wrapper:hover .dataTables_paginate a{-moz-opacity:1;opacity:1}.dataTables_wrapper table>thead tr>th{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAD6CAYAAACoLMeFAAAAdElEQVRo3u3bOwqAMBAFwBwjh/CUluKRhfVTiil0UYjMwJLqLfmUYUuBtw3jUreKfc2E43aTi/C9Jo3wUR4WAAAAAAAAejBPc90q9jUTjkdNTuGjPj9/bgfpO0i/AgAAAAAAAPQnPZ6YHpBsNEnNefrt4+9Wmn6nW/cZ1MQAAAAASUVORK5CYII=);background-repeat:no-repeat}.dataTables_wrapper table>thead tr>th.sorting{background-position:right center;cursor:pointer}.dataTables_wrapper table>thead tr>th.sorting_desc{background-position:right bottom;cursor:pointer}.dataTables_wrapper table>thead tr>th.sorting_asc{background-position:right top;cursor:pointer}.dataTables_wrapper table>thead tr>th.sorting_disabled{background-image:none}table.userTable div.flags{display:inline-block;float:right}table.userTable div.flags>i{cursor:default}table.userTable div.flags>i>.details{display:none}.jobStatus{color:#333}.jobStatus.Closed{color:#9e9e9e}.jobStatus.Open{color:#60a917}.jobStatus.AwaitingWarrantyRepair,.jobStatus.AwaitingRepairs{color:#1e6dab}.jobStatus.AwaitingDeviceReturn,.jobStatus.AwaitingUserAction,.jobStatus.AwaitingAccountingPayment,.jobStatus.AwaitingAccountingCharge{color:#f0a30a}.jobStatus.AwaitingInsuranceProcessing{color:#6a00ff}.deviceStatus{color:#333}.deviceStatus.Decommissioned{color:#9e9e9e}.deviceStatus.Active{color:#60a917}.deviceStatus.NotEnrolled{color:#f0a30a}table.jobTable{border:solid 1px #f4f4f4;border-collapse:collapse;table-layout:fixed}table.jobTable>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}table.jobTable>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}table.jobTable>thead>tr>th,table.jobTable>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}table.jobTable>tbody>tr:hover>td{background-color:#fefefe}table.jobTable>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}table.jobTable>tfoot>tr>th,table.jobTable>tfoot>tr>td{background-color:#f4f4f4}table.jobTable td{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}table.jobTable.hideStatusClosed tr[data-status=Closed]{display:none}table.jobTable td.id,table.jobTable th.id{width:50px;text-align:center}table.jobTable td.id a,table.jobTable th.id a{padding:0 6px}table.jobTable tr.statusSlaWarning td{background-color:#fdeed1}table.jobTable tr.statusSlaWarning td:not(:last-child){border-right:1px solid #f8e9cb}table.jobTable tr.statusSlaExpired td{background-color:#ffd7d3}table.jobTable tr.statusSlaExpired td:not(:last-child){border-right:1px solid #fad2ce}table.jobTable tr:nth-child(odd).statusSlaWarning td{background-color:#fcedcf!important}table.jobTable tr:nth-child(odd).statusSlaExpired td{background-color:#fed6d2!important}table.jobTable tr:hover.statusSlaWarning td{background-color:#fbebca!important}table.jobTable tr:hover.statusSlaExpired td{background-color:#fed1cd!important}table.jobTable div.queues{display:inline-block;float:right}table.jobTable td.lastActive,table.jobTable th.lastActive{width:130px}table.jobTable td.dates,table.jobTable th.dates{width:130px}table.jobTable td.type,table.jobTable th.type{width:50px}table.jobTable td.device,table.jobTable th.device{width:110px}table.jobTable td.user,table.jobTable th.user{width:240px}table.jobTable td.technician,table.jobTable th.technician{width:80px}table.jobTable td.location,table.jobTable th.location{width:200px}div.jobTable>a.dataTables_showStatusClosed{margin:10px 5px}div.jobTable>h3,div.jobTable>div.allClosed_container{margin:50px 20px!important}div.jobTable>h3 a.button,div.jobTable>div.allClosed_container a.button{margin-top:10px}table.deviceTable tr.decommissioned{background-color:#ededed}textarea{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;border:1px solid #ccc;min-height:75px;padding:2px;color:#444;width:200px}input[type="text"],input[type="password"],input[type="file"],input[type="number"]{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;border:1px solid #ccc;padding:2px;color:#444;width:200px}input[type="text"].small,input[type="password"].small,input[type="file"].small,input[type="number"].small{padding:0 2px;width:150px}input[type="text"].discreet,input[type="password"].discreet,input[type="file"].discreet,input[type="number"].discreet{border:1px solid #fff}input[type="text"].discreet:hover,input[type="password"].discreet:hover,input[type="file"].discreet:hover,input[type="number"].discreet:hover,input[type="text"].discreet:focus,input[type="password"].discreet:focus,input[type="file"].discreet:focus,input[type="number"].discreet:focus{border:1px solid #ccc}input[type="checkbox"],input[type="radio"]{margin-right:4px;vertical-align:sub}select{font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-size:12px;border:1px solid #ccc;padding:2px;color:#444}select.small{padding:0}input[type="submit"],button{font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;padding:5px}input[type="submit"].button,button.button{font-size:12px;padding:4px 10px 4px 10px;margin:2px;border:1px solid #1a5f95;background:#1e6dab;color:#fff;font-weight:600;text-transform:uppercase;cursor:pointer}input[type="submit"].button.alert,button.button.alert{border-color:#900;background-color:#e51400}input[type="submit"].button.small,button.button.small{padding:2px 5px;font-size:.9em}input[type="submit"].button[disabled],button.button[disabled]{background:#9e9e9e;border:1px solid #6b6b6b;cursor:default}input[type="submit"].button:hover,button.button:hover{border:1px solid #6b6b6b;background:#9e9e9e}ul.none{list-style:none;margin:0;padding:0}ul.none li{margin:0}div.form{margin:0 auto}div.form>p.actions{text-align:right}div.form>table{border-top:6px solid #1e6dab;border-left:1px solid #1e6dab;border-right:1px solid #1e6dab;border-bottom:3px solid #1e6dab;background-color:#fff}div.form>table>tbody>tr>td,div.form>table>tbody>tr>th{background:none;border:none;margin:0;padding:8px 5px}div.form>table>tbody>tr>th{font-weight:normal;text-align:right}div.form>table>tbody>tr:nth-child(odd){background-color:#f2f2f2;margin:0;padding:0}div.form>table>tbody>tr>td.details{padding:0}div.form>table>tbody>tr>th.name{width:150px;text-align:right}div.form>table table.sub>tbody>tr:not(:first-child)>th,div.form>table table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}div.form>table table.sub>tbody>tr>th{font-weight:normal;text-align:right}div.form>table table.sub>tbody>tr>th.name{text-align:right}#pageMenu td{border-right:1px dashed #aaa;width:33%;padding:10px}#pageMenu td .pageMenuArea>.fa{font-size:1.3em;color:#6b6b6b;margin-right:4px}#pageMenu td .pageMenuArea>a,#pageMenu td .pageMenuArea>h3{text-decoration:none;font-size:1.2em}#pageMenu td .pageMenuArea .pageMenuBlurb{font-size:.9em;color:#888;margin-bottom:10px}#pageMenu td .pageMenuArea .pageMenuBlurb a{text-decoration:none}#pageMenu td .pageMenuArea:not(:last-child){border-bottom:1px dashed #aaa}#pageMenu td .pageMenuArea.noSeperator{border-bottom:none}#pageMenu td:first-child{padding-left:0}#pageMenu td:last-child{border-right:none;padding-right:0}div.disco-attachmentUpload-dropTarget{display:none}div.disco-attachmentUpload-dropTarget.dragHighlight{display:block;position:absolute;z-index:1000;top:0;left:0;width:calc(100% - 6px);height:calc(100% - 6px);background-color:rgba(251,218,152,.5);border:3px dashed #f0a30a}div.disco-attachmentUpload-dropTarget.dragHighlight h2{margin-top:3em!important;color:#2c1e02;text-align:center;font-weight:bold}div.disco-attachmentUpload-dropTarget.dragHighlight.dragHover{background-color:rgba(173,235,110,.5);border:3px dashed #60a917}div.disco-attachmentUpload-dropTarget.dragHighlight.dragHover h2{color:#000}div.disco-attachmentUpload-progress{position:absolute;right:0;bottom:48px}div.disco-attachmentUpload-progress>div{background-color:#fafafa;padding:4px 8px}div.disco-attachmentUpload-progress>div i{color:#1e6dab;margin-right:4px}div.disco-attachmentUpload-commentDialog{padding:.25em .5em!important}div.disco-attachmentUpload-commentDialog table{border:solid 1px #f4f4f4;border-collapse:collapse;table-layout:fixed}div.disco-attachmentUpload-commentDialog table>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}div.disco-attachmentUpload-commentDialog table>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}div.disco-attachmentUpload-commentDialog table>thead>tr>th,div.disco-attachmentUpload-commentDialog table>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}div.disco-attachmentUpload-commentDialog table>tbody>tr:hover>td{background-color:#fefefe}div.disco-attachmentUpload-commentDialog table>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}div.disco-attachmentUpload-commentDialog table>tfoot>tr>th,div.disco-attachmentUpload-commentDialog table>tfoot>tr>td{background-color:#f4f4f4}div.disco-attachmentUpload-commentDialog table th{width:80px}div.disco-attachmentUpload-commentDialog table td.filename{font-family:Consolas,"Courier New",monospace;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}div.disco-attachmentUpload-commentDialog table input.comments{width:calc(100% - 5px)}div.disco-attachmentUpload-commentDialog table td.thumbnail{display:none;text-align:center}div.disco-attachmentUpload-commentDialog table td.thumbnail img{border:1px solid #9e9e9e;max-height:250px;max-width:374px}div.disco-attachmentUpload-imageDialog{background-color:#000!important;padding:0!important;overflow:hidden!important;width:720px!important;height:540px!important}body>.User_FlagAssignment_Tooltip span.name{display:block;font-weight:bold}body>.User_FlagAssignment_Tooltip span.comments{display:block;padding:2px 0 2px 4px}body>.User_FlagAssignment_Tooltip span.added{font-style:italic;font-size:.9em}.d-priority-high{color:#fa6800;width:1.2857142857142858em;text-align:center}.d-priority-high:before{content:""}.d-priority-normal{color:#60a917;width:1.2857142857142858em;text-align:center}.d-priority-normal:before{content:""}.d-priority-low{color:#1e6dab;width:1.2857142857142858em;text-align:center}.d-priority-low:before{content:""}.fa-stack .d-priority-high,.fa-stack .d-priority-normal,.fa-stack .d-priority-low{width:100%;font-size:.8em;margin-left:.5em;margin-top:.4em;opacity:.6}.d-lime{color:#a4c400}.d-green{color:#60a917}.d-emerald{color:#008a00}.d-teal{color:#00aba9}.d-cyan{color:#1ba1e2}.d-cobalt{color:#0050ef}.d-indigo{color:#6a00ff}.d-violet{color:#a0f}.d-pink{color:#f472d0}.d-magenta{color:#d80073}.d-crimson{color:#a20025}.d-red{color:#e51400}.d-orange{color:#fa6800}.d-amber{color:#f0a30a}.d-yellow{color:#e3c800}.d-brown{color:#825a2c}.d-olive{color:#6d8764}.d-steel{color:#647689}.d-mauve{color:#76608a}.d-sienna{color:#a0522d}table.subtleHighlight{border:1px solid #ccc;background-color:#ededed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}td.subtleHighlight{border:1px solid #ccc;background-color:#ededed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.field-validation-error{color:#e51400!important}.field-validation-valid{display:none}.input-validation-error{border:1px solid #e51400!important;background-color:#fff7f7!important}.validation-summary-errors{font-weight:bold!important;color:#e51400!important}.validation-summary-valid{display:none}.ajaxLoading{height:11px;width:16px;display:inline-block;background-repeat:no-repeat;background-image:url(data:image/gif;base64,R0lGODlhEAALAPQAAP///zNah+Hm7dng6O7x9DddiTNah1d3nJqtw3+Xs8fS3k5vlm6JqaGzx4KatcrU4FFymDZciHGMq+ru8t/l7Pb3+V9+oeLo7vT2+MTP3LLB0dTc5fHz9gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA);margin-bottom:0}.ajaxOk{color:#60a917}.ajaxSave{color:#1e6dab;cursor:pointer}.ajaxRemove{color:#e51400;cursor:pointer;opacity:.8}.ajaxRemove:hover{opacity:1}#layout_Page div.hiddenDialog{display:none}* html .clearfix{height:1%;overflow:visible}*+html .clearfix{min-height:1%}.clearfix:after{clear:both;content:".";display:block;height:0;visibility:hidden;font-size:0}div.columnHost .column50{float:left;width:50%}.hidden{display:none}.success{color:#60a917}.information{color:#1e6dab}.warning{color:#f0a30a}.error{color:#e51400}.alert{color:#fa6800}.smallText{font-size:.9em}.smallMessage{font-style:italic;color:#666;font-size:.9em}.nowrap{white-space:nowrap}.code{font-family:Consolas,"Courier New",monospace}div.code{border:1px dashed #bbb;background-color:#fff;margin:3px 6px;padding:4px;font-size:.9em}a.smallLink{font-size:.9em}textarea.block{width:250px;height:100px}.checkboxBulkSelectContainer{margin-top:6px;font-size:.8em}.checkboxBulkSelectContainer a{text-decoration:none}.ui-widget .checkboxBulkSelectContainer{font-size:1em}#licence{text-align:justify}#licence p{font-size:.9em}#licence li{font-size:.9em} \ No newline at end of file diff --git a/Disco.Web/ClientSource/Style/User.css b/Disco.Web/ClientSource/Style/User.css index a7e04303..497ebd09 100644 --- a/Disco.Web/ClientSource/Style/User.css +++ b/Disco.Web/ClientSource/Style/User.css @@ -78,6 +78,18 @@ -moz-opacity: 1; opacity: 1; } +#layout_PageHeading #User_Show_Flags { + display: inline-block; + float: right; + height: 50px; + font-size: 0.6em; +} +#layout_PageHeading #User_Show_Flags > i { + cursor: default; +} +#layout_PageHeading #User_Show_Flags > i > .details { + display: none; +} #User_Show #User_Show_Subjects { table-layout: fixed; } @@ -196,6 +208,113 @@ right: 220px; margin-top: -24px; } +#User_Show_Details_Actions_AddFlag_Dialog { + height: 400px; +} +#User_Show_Details_Actions_AddFlag_Dialog .flagPicker { + position: absolute; + width: 250px; + height: 300px; + overflow-y: auto; + background-color: #fcfcfc; + border: 1px solid #ccc; +} +#User_Show_Details_Actions_AddFlag_Dialog .flagPicker > div { + background-color: #ffffff; + border-bottom: 1px solid #ddd; + padding: 6px 0 6px 6px; + cursor: pointer; +} +#User_Show_Details_Actions_AddFlag_Dialog .flagPicker > div:hover { + background-color: #f4f4f4; +} +#User_Show_Details_Actions_AddFlag_Dialog .flagPicker > div.selected, +#User_Show_Details_Actions_AddFlag_Dialog .flagPicker > div.selected:hover { + background-color: #eeeeee; +} +#User_Show_Details_Actions_AddFlag_Dialog .details { + display: none; + position: absolute; + left: 280px; + top: 1em; +} +#User_Show_Details_Actions_AddFlag_Dialog .details h4 { + margin-bottom: 4px; +} +#User_Show_Details_Actions_AddFlag_Dialog .details textarea { + min-width: 280px; + height: 200px; +} +#UserDetailTab-Flags #userFlags { + border: solid 1px #d8d8d8; + border-collapse: collapse; + table-layout: fixed; +} +#UserDetailTab-Flags #userFlags td { + border: solid 1px #d8d8d8; + background-color: #ffffff; +} +#UserDetailTab-Flags #userFlags th { + background-color: #eeeeee; + border: solid 1px #d8d8d8; +} +#UserDetailTab-Flags #userFlags i.fa-edit { + position: absolute; + top: 0; + right: 0; + margin-top: 4px; + font-size: 1.1em; + cursor: pointer; + display: none; + color: #335a87; +} +#UserDetailTab-Flags #userFlags i.fa-edit:hover { + color: #5e8cc2; +} +#UserDetailTab-Flags #userFlags td:hover i.fa-edit { + display: inline-block; +} +#UserDetailTab-Flags #userFlags th.name { + width: 200px; +} +#UserDetailTab-Flags #userFlags tr.removed td { + background-color: #f4f4f4; +} +#UserDetailTab-Flags #userFlags td.name { + vertical-align: middle; +} +#UserDetailTab-Flags #userFlags td.name .fa-stack { + line-height: 1.6em; +} +#UserDetailTab-Flags #userFlags td.added, +#UserDetailTab-Flags #userFlags td.removed { + vertical-align: middle; +} +#UserDetailTab-Flags #userFlags td.comments { + vertical-align: middle; +} +#UserDetailTab-Flags #userFlags td.comments .editable { + position: relative; +} +#UserDetailTab-Flags #userFlags td.comments .commentsRaw { + display: none; +} +#UserDetailTab-Flags #userFlags td.removed.na { + vertical-align: middle; + text-align: center; +} +#UserDetailTab-Flags > .none { + text-align: center; + padding: 30px 0; + font-style: italic; + background-color: #ffffff; +} +#User_Show_Flags_Actions_EditComments_Dialog h4 { + margin-bottom: 4px; +} +#User_Show_Flags_Actions_EditComments_Dialog_Comments { + width: 280px; +} #UserDetailTab-Authorization #UserDetailTab-AuthorizationContainer { background-color: #ffffff; border: 1px solid #cccccc; diff --git a/Disco.Web/ClientSource/Style/User.less b/Disco.Web/ClientSource/Style/User.less index c1ec69df..30c3b186 100644 --- a/Disco.Web/ClientSource/Style/User.less +++ b/Disco.Web/ClientSource/Style/User.less @@ -1,5 +1,22 @@ @import "Shared"; +#layout_PageHeading { + #User_Show_Flags { + display: inline-block; + float: right; + height: 50px; + font-size: 0.6em; + + & > i { + cursor: default; + + & > .details { + display: none; + } + } + } +} + #User_Show { #User_Show_Subjects { table-layout: fixed; @@ -157,6 +174,139 @@ } } +#User_Show_Details_Actions_AddFlag_Dialog { + height: 400px; + + .flagPicker { + position: absolute; + width: 250px; + height: 300px; + overflow-y: auto; + background-color: #fcfcfc; + border: 1px solid #ccc; + + & > div { + background-color: @white; + border-bottom: 1px solid #ddd; + padding: 6px 0 6px 6px; + cursor: pointer; + + &:hover { + background-color: @TableDataBorderColour; + } + + &.selected, &.selected:hover { + background-color: @TableDataDarkBackgroundColour; + } + } + } + + .details { + display: none; + position: absolute; + left: 280px; + top: 1em; + + h4 { + margin-bottom: 4px; + } + + textarea { + min-width: 280px; + height: 200px; + } + } +} + + +#UserDetailTab-Flags { + #userFlags { + .tableDataDark; + table-layout: fixed; + + i.fa-edit { + position: absolute; + top: 0; + right: 0; + margin-top: 4px; + font-size: 1.1em; + cursor: pointer; + display: none; + color: @HyperLinkColour; + + &:hover { + color: @HyperLinkHoverColour; + } + } + + td:hover i.fa-edit { + display: inline-block; + } + + th.name { + width: 200px; + } + + th.added { + } + + th.removed { + } + + tr.removed td { + background-color: @TableDataBorderColour; + } + + td.name { + vertical-align: middle; + + .fa-stack { + line-height: 1.6em; + } + } + + td.added, td.removed { + vertical-align: middle; + } + + td.comments { + vertical-align: middle; + + .editable { + position: relative; + } + + .commentsRaw { + display: none; + } + } + + td.removed { + &.na { + vertical-align: middle; + text-align: center; + } + } + } + + & > .none { + text-align: center; + padding: 30px 0; + font-style: italic; + background-color: @white; + } +} + +#User_Show_Flags_Actions_EditComments_Dialog { + h4 { + margin-bottom: 4px; + } +} + +#User_Show_Flags_Actions_EditComments_Dialog_Comments { + width: 280px; +} + #UserDetailTab-Authorization { #UserDetailTab-AuthorizationContainer { background-color: @white; diff --git a/Disco.Web/ClientSource/Style/User.min.css b/Disco.Web/ClientSource/Style/User.min.css index 28c6c8ed..8f6a7b31 100644 --- a/Disco.Web/ClientSource/Style/User.min.css +++ b/Disco.Web/ClientSource/Style/User.min.css @@ -1 +1 @@ -.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}#User_Show #User_Show_Subjects{table-layout:fixed}#User_Show #User_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#User_Show #User_Show_Subjects>tbody>tr>td>div{position:relative}#User_Show #User_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#User_Show #User_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#User_Show #User_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#User_Show #User_Show_Subjects #User_Show_Details{width:330px}#User_Show #User_Show_Subjects #User_Show_Details table.verticalHeadings>tbody>tr>td:first-child{width:104px;font-weight:bold}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_Details_Identity_Id{font-weight:bold}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_GenerateDocument_Container{padding-top:4px}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_GenerateDocument_Container #User_Show_GenerateDocument{padding:0}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_Details_Actions{margin-top:4px}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment{border-bottom:1px dashed #ddd;padding:4px}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment td:first-child{width:90px;font-weight:bold}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment img.User_Show_AssignedDevices_CurrentAssignment_Image{float:left;width:64px;height:64px;margin-right:6px}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment div.User_Show_AssignedDevices_CurrentAssignment_Details{float:left}#User_Show #User_Show_Subjects #User_Show_Subjects_Actions>td{padding-top:4px}#UserDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#UserDetailTabs #UserDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#UserDetailTabs #UserDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#UserDetailTabs #UserDetailTabItems>li>a{padding:5px 8px}#UserDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-top:none;background-color:#eee}#UserDetailTab-JobsContainer div.jobTable{margin:-1px;border:1px solid #ddd}#UserDetailTab-JobsContainer .dataTables_wrapper .dataTables_filter{margin-top:-24px;-moz-opacity:1;opacity:1}#UserDetailTab-JobsContainer .dataTables_wrapper .dataTables_length{margin-top:-24px;-moz-opacity:1;opacity:1}#UserDetailTab-JobsContainer .dataTables_wrapper .dataTables_showStatusClosed{right:220px;margin-top:-24px}#UserDetailTab-Authorization #UserDetailTab-AuthorizationContainer{background-color:#fff;border:1px solid #ccc}#UserDetailTab-Authorization #UserDetailTab-Authorization_ClaimsTree_Container{width:50%;float:left;padding:6px 10px 6px 4px}#UserDetailTab-Authorization #UserDetailTab-Authorization_ClaimsTree_Container>span.smallMessage:last-child{display:block;text-align:right}#UserDetailTab-Authorization #UserDetailTab-Authorization_Membership{width:40%;float:right;padding:6px 10px;border-left:1px dashed #ccc;border-bottom:1px dashed #ccc}#UserDetailTab-Authorization #UserDetailTab-Authorization_Membership #UserDetailTab-Authorization_Membership_Roles{margin-bottom:10px}#UserDetailTab-Authorization #UserDetailTab-Authorization_Membership #UserDetailTab-Authorization_Membership_Groups_Container>span.smallMessage:last-child{display:block;text-align:right}#UserDetailTab-Authorization #UserDetailTab-Authorization_NoAccess{width:50%;float:left;padding:6px 10px}#UserDetailTab-Authorization #UserDetailTab-Authorization_NoAccess h3{margin-bottom:10px}#userShowResources #AttachmentsContainer{padding:0}#userShowResources #Attachments{position:relative;border:1px solid #ccc;background-color:#fff}#userShowResources #Attachments div.attachmentOutput{position:relative;height:115px;overflow:auto;font-size:.95em}#userShowResources #Attachments div.attachmentOutput>a{display:block;float:left;height:48px;width:221px;padding:2px;margin:2px;font-size:.9em;border:1px solid #fff;color:#000;text-decoration:none}#userShowResources #Attachments div.attachmentOutput>a span.comments,#userShowResources #Attachments div.attachmentOutput>a span.author,#userShowResources #Attachments div.attachmentOutput>a span.timestamp{display:block;float:left;width:168px;overflow:hidden;height:16px}#userShowResources #Attachments div.attachmentOutput>a span.author{color:#888;width:150px}#userShowResources #Attachments div.attachmentOutput>a span.timestamp{color:#888;font-style:italic}#userShowResources #Attachments div.attachmentOutput>a span.icon{display:block;float:left;height:48px;width:48px;margin-right:2px}#userShowResources #Attachments div.attachmentOutput>a span.icon img{height:48px;width:48px}#userShowResources #Attachments div.attachmentOutput>a span.icon img.loading{display:none}#userShowResources #Attachments div.attachmentOutput>a:hover span.remove{opacity:.5}#userShowResources #Attachments div.attachmentOutput>a span.remove{font-size:1.4em;color:#e51400;margin-left:6px;cursor:pointer;opacity:0}#userShowResources #Attachments div.attachmentOutput>a span.remove:hover{opacity:1}#userShowResources #Attachments.cannotAddAttachments div.attachmentOutput{height:162px}#userShowResources #Attachments div.attachmentInput{border-top:1px solid #ccc;height:40px;background-color:#fff;padding:3px}#userShowResources #Attachments div.attachmentInput span.action{color:#333;display:block;margin:0 4px 0 0;font-size:1.5em;cursor:pointer;float:right;border:1px solid #fff;padding:.5em}#userShowResources #Attachments div.attachmentInput span.action:hover{color:#335a87;background-color:#ededed;border:1px solid #ccc}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments{margin-top:6px;background-color:#fff;line-height:1.3em;border:1px solid #ddd}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments li.CreateJob_Assignment{display:block;padding:4px;cursor:pointer}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments li.CreateJob_Assignment:not(:last-child){border-bottom:1px dashed #ddd}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments li.CreateJob_Assignment:hover{background-color:#f4f4f4}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments li.CreateJob_Assignment td:first-child{width:90px;font-weight:bold}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments li.CreateJob_Assignment img.CreateJob_Assignment_Image{float:left;width:64px;height:64px;margin-right:6px}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments li.CreateJob_Assignment div.CreateJob_Assignment_Details{float:left} \ No newline at end of file +.tableData{border:solid 1px #f4f4f4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}#layout_PageHeading #User_Show_Flags{display:inline-block;float:right;height:50px;font-size:.6em}#layout_PageHeading #User_Show_Flags>i{cursor:default}#layout_PageHeading #User_Show_Flags>i>.details{display:none}#User_Show #User_Show_Subjects{table-layout:fixed}#User_Show #User_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#User_Show #User_Show_Subjects>tbody>tr>td>div{position:relative}#User_Show #User_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#User_Show #User_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#User_Show #User_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#User_Show #User_Show_Subjects #User_Show_Details{width:330px}#User_Show #User_Show_Subjects #User_Show_Details table.verticalHeadings>tbody>tr>td:first-child{width:104px;font-weight:bold}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_Details_Identity_Id{font-weight:bold}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_GenerateDocument_Container{padding-top:4px}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_GenerateDocument_Container #User_Show_GenerateDocument{padding:0}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_Details_Actions{margin-top:4px}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment{border-bottom:1px dashed #ddd;padding:4px}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment td:first-child{width:90px;font-weight:bold}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment img.User_Show_AssignedDevices_CurrentAssignment_Image{float:left;width:64px;height:64px;margin-right:6px}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment div.User_Show_AssignedDevices_CurrentAssignment_Details{float:left}#User_Show #User_Show_Subjects #User_Show_Subjects_Actions>td{padding-top:4px}#UserDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#UserDetailTabs #UserDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#UserDetailTabs #UserDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#UserDetailTabs #UserDetailTabItems>li>a{padding:5px 8px}#UserDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-top:none;background-color:#eee}#UserDetailTab-JobsContainer div.jobTable{margin:-1px;border:1px solid #ddd}#UserDetailTab-JobsContainer .dataTables_wrapper .dataTables_filter{margin-top:-24px;-moz-opacity:1;opacity:1}#UserDetailTab-JobsContainer .dataTables_wrapper .dataTables_length{margin-top:-24px;-moz-opacity:1;opacity:1}#UserDetailTab-JobsContainer .dataTables_wrapper .dataTables_showStatusClosed{right:220px;margin-top:-24px}#User_Show_Details_Actions_AddFlag_Dialog{height:400px}#User_Show_Details_Actions_AddFlag_Dialog .flagPicker{position:absolute;width:250px;height:300px;overflow-y:auto;background-color:#fcfcfc;border:1px solid #ccc}#User_Show_Details_Actions_AddFlag_Dialog .flagPicker>div{background-color:#fff;border-bottom:1px solid #ddd;padding:6px 0 6px 6px;cursor:pointer}#User_Show_Details_Actions_AddFlag_Dialog .flagPicker>div:hover{background-color:#f4f4f4}#User_Show_Details_Actions_AddFlag_Dialog .flagPicker>div.selected,#User_Show_Details_Actions_AddFlag_Dialog .flagPicker>div.selected:hover{background-color:#eee}#User_Show_Details_Actions_AddFlag_Dialog .details{display:none;position:absolute;left:280px;top:1em}#User_Show_Details_Actions_AddFlag_Dialog .details h4{margin-bottom:4px}#User_Show_Details_Actions_AddFlag_Dialog .details textarea{min-width:280px;height:200px}#UserDetailTab-Flags #userFlags{border:solid 1px #d8d8d8;border-collapse:collapse;table-layout:fixed}#UserDetailTab-Flags #userFlags td{border:solid 1px #d8d8d8;background-color:#fff}#UserDetailTab-Flags #userFlags th{background-color:#eee;border:solid 1px #d8d8d8}#UserDetailTab-Flags #userFlags i.fa-edit{position:absolute;top:0;right:0;margin-top:4px;font-size:1.1em;cursor:pointer;display:none;color:#335a87}#UserDetailTab-Flags #userFlags i.fa-edit:hover{color:#5e8cc2}#UserDetailTab-Flags #userFlags td:hover i.fa-edit{display:inline-block}#UserDetailTab-Flags #userFlags th.name{width:200px}#UserDetailTab-Flags #userFlags tr.removed td{background-color:#f4f4f4}#UserDetailTab-Flags #userFlags td.name{vertical-align:middle}#UserDetailTab-Flags #userFlags td.name .fa-stack{line-height:1.6em}#UserDetailTab-Flags #userFlags td.added,#UserDetailTab-Flags #userFlags td.removed{vertical-align:middle}#UserDetailTab-Flags #userFlags td.comments{vertical-align:middle}#UserDetailTab-Flags #userFlags td.comments .editable{position:relative}#UserDetailTab-Flags #userFlags td.comments .commentsRaw{display:none}#UserDetailTab-Flags #userFlags td.removed.na{vertical-align:middle;text-align:center}#UserDetailTab-Flags>.none{text-align:center;padding:30px 0;font-style:italic;background-color:#fff}#User_Show_Flags_Actions_EditComments_Dialog h4{margin-bottom:4px}#User_Show_Flags_Actions_EditComments_Dialog_Comments{width:280px}#UserDetailTab-Authorization #UserDetailTab-AuthorizationContainer{background-color:#fff;border:1px solid #ccc}#UserDetailTab-Authorization #UserDetailTab-Authorization_ClaimsTree_Container{width:50%;float:left;padding:6px 10px 6px 4px}#UserDetailTab-Authorization #UserDetailTab-Authorization_ClaimsTree_Container>span.smallMessage:last-child{display:block;text-align:right}#UserDetailTab-Authorization #UserDetailTab-Authorization_Membership{width:40%;float:right;padding:6px 10px;border-left:1px dashed #ccc;border-bottom:1px dashed #ccc}#UserDetailTab-Authorization #UserDetailTab-Authorization_Membership #UserDetailTab-Authorization_Membership_Roles{margin-bottom:10px}#UserDetailTab-Authorization #UserDetailTab-Authorization_Membership #UserDetailTab-Authorization_Membership_Groups_Container>span.smallMessage:last-child{display:block;text-align:right}#UserDetailTab-Authorization #UserDetailTab-Authorization_NoAccess{width:50%;float:left;padding:6px 10px}#UserDetailTab-Authorization #UserDetailTab-Authorization_NoAccess h3{margin-bottom:10px}#userShowResources #AttachmentsContainer{padding:0}#userShowResources #Attachments{position:relative;border:1px solid #ccc;background-color:#fff}#userShowResources #Attachments div.attachmentOutput{position:relative;height:115px;overflow:auto;font-size:.95em}#userShowResources #Attachments div.attachmentOutput>a{display:block;float:left;height:48px;width:221px;padding:2px;margin:2px;font-size:.9em;border:1px solid #fff;color:#000;text-decoration:none}#userShowResources #Attachments div.attachmentOutput>a span.comments,#userShowResources #Attachments div.attachmentOutput>a span.author,#userShowResources #Attachments div.attachmentOutput>a span.timestamp{display:block;float:left;width:168px;overflow:hidden;height:16px}#userShowResources #Attachments div.attachmentOutput>a span.author{color:#888;width:150px}#userShowResources #Attachments div.attachmentOutput>a span.timestamp{color:#888;font-style:italic}#userShowResources #Attachments div.attachmentOutput>a span.icon{display:block;float:left;height:48px;width:48px;margin-right:2px}#userShowResources #Attachments div.attachmentOutput>a span.icon img{height:48px;width:48px}#userShowResources #Attachments div.attachmentOutput>a span.icon img.loading{display:none}#userShowResources #Attachments div.attachmentOutput>a:hover span.remove{opacity:.5}#userShowResources #Attachments div.attachmentOutput>a span.remove{font-size:1.4em;color:#e51400;margin-left:6px;cursor:pointer;opacity:0}#userShowResources #Attachments div.attachmentOutput>a span.remove:hover{opacity:1}#userShowResources #Attachments.cannotAddAttachments div.attachmentOutput{height:162px}#userShowResources #Attachments div.attachmentInput{border-top:1px solid #ccc;height:40px;background-color:#fff;padding:3px}#userShowResources #Attachments div.attachmentInput span.action{color:#333;display:block;margin:0 4px 0 0;font-size:1.5em;cursor:pointer;float:right;border:1px solid #fff;padding:.5em}#userShowResources #Attachments div.attachmentInput span.action:hover{color:#335a87;background-color:#ededed;border:1px solid #ccc}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments{margin-top:6px;background-color:#fff;line-height:1.3em;border:1px solid #ddd}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments li.CreateJob_Assignment{display:block;padding:4px;cursor:pointer}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments li.CreateJob_Assignment:not(:last-child){border-bottom:1px dashed #ddd}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments li.CreateJob_Assignment:hover{background-color:#f4f4f4}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments li.CreateJob_Assignment td:first-child{width:90px;font-weight:bold}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments li.CreateJob_Assignment img.CreateJob_Assignment_Image{float:left;width:64px;height:64px;margin-right:6px}#User_Show_Details_Actions_CreateJob_Dialog #CreateJob_Assignments li.CreateJob_Assignment div.CreateJob_Assignment_Details{float:left} \ No newline at end of file diff --git a/Disco.Web/Controllers/DeviceController.cs b/Disco.Web/Controllers/DeviceController.cs index 9ca8c3bb..3bf01a56 100644 --- a/Disco.Web/Controllers/DeviceController.cs +++ b/Disco.Web/Controllers/DeviceController.cs @@ -203,7 +203,7 @@ namespace Disco.Web.Controllers m.Device = Database.Devices .Include("DeviceModel").Include("DeviceProfile").Include("DeviceBatch").Include("DeviceDetails") - .Include("DeviceUserAssignments.AssignedUser").Include("AssignedUser").Include("DeviceCertificates") + .Include("DeviceUserAssignments.AssignedUser.UserFlagAssignments").Include("AssignedUser.UserFlagAssignments").Include("DeviceCertificates") .Include("DeviceAttachments.TechUser").Include("DeviceAttachments.DocumentTemplate") .FirstOrDefault(d => d.SerialNumber == id); diff --git a/Disco.Web/Controllers/JobController.cs b/Disco.Web/Controllers/JobController.cs index cd7fa20f..eb6a1613 100644 --- a/Disco.Web/Controllers/JobController.cs +++ b/Disco.Web/Controllers/JobController.cs @@ -296,7 +296,7 @@ namespace Disco.Web.Controllers m.Job = Database.Jobs .Include("Device.DeviceModel").Include("Device.DeviceBatch").Include("DeviceHeldTechUser").Include("DeviceReadyForReturnTechUser").Include("DeviceReturnedTechUser") - .Include("OpenedTechUser").Include("ClosedTechUser").Include("JobType").Include("JobSubTypes").Include("User").Include("JobLogs.TechUser") + .Include("OpenedTechUser").Include("ClosedTechUser").Include("JobType").Include("JobSubTypes").Include("User.UserFlagAssignments").Include("JobLogs.TechUser") .Include("JobAttachments.TechUser").Include("JobAttachments.DocumentTemplate") .FirstOrDefault(j => j.Id == id.Value); diff --git a/Disco.Web/Controllers/SearchController.cs b/Disco.Web/Controllers/SearchController.cs index 35ffb646..f4b85936 100644 --- a/Disco.Web/Controllers/SearchController.cs +++ b/Disco.Web/Controllers/SearchController.cs @@ -84,7 +84,7 @@ namespace Disco.Web.Controllers if (vm != null) { m.FriendlyTerm = string.Format("Device Model: {0}", vm.ToString()); - m.Devices = Services.Searching.Search.SearchDeviceModel(Database, vm.Id, LimitCount: null); + m.Devices = Services.Searching.Search.SearchDeviceModel(Database, vm.Id); break; } } @@ -101,7 +101,7 @@ namespace Disco.Web.Controllers if (dp != null) { m.FriendlyTerm = string.Format("Device Profile: {0}", dp.ToString()); - m.Devices = Services.Searching.Search.SearchDeviceProfile(Database, dp.Id, LimitCount: null); + m.Devices = Services.Searching.Search.SearchDeviceProfile(Database, dp.Id); break; } } @@ -118,7 +118,7 @@ namespace Disco.Web.Controllers if (db != null) { m.FriendlyTerm = string.Format("Device Batch: {0}", db.ToString()); - m.Devices = Services.Searching.Search.SearchDeviceBatch(Database, db.Id, LimitCount: null); + m.Devices = Services.Searching.Search.SearchDeviceBatch(Database, db.Id); break; } } @@ -232,6 +232,23 @@ namespace Disco.Web.Controllers return View(m); } } + case "userflag": + Authorization.RequireAll(Claims.User.Search, Claims.User.ShowFlagAssignments); + int flagId; + if (int.TryParse(term, out flagId)) + { + var flag = Database.UserFlags.Find(flagId); + if (flag != null) + { + m.FriendlyTerm = string.Format("User Flag: {0}", flag.ToString()); + m.Users = Services.Searching.Search.SearchUserFlag(Database, flag.Id); + break; + } + } + m.FriendlyTerm = string.Format("User Flag: {0}", term); + m.Success = false; + m.ErrorMessage = "Invalid User Flag Id"; + break; } } diff --git a/Disco.Web/Controllers/UserController.cs b/Disco.Web/Controllers/UserController.cs index 53f1e592..bf8dc129 100644 --- a/Disco.Web/Controllers/UserController.cs +++ b/Disco.Web/Controllers/UserController.cs @@ -7,6 +7,7 @@ using Disco.Services.Authorization.Roles; using Disco.Services.Interop.ActiveDirectory; using Disco.Services.Plugins.Features.UIExtension; using Disco.Services.Users; +using Disco.Services.Users.UserFlags; using Disco.Services.Web; using System; using System.Linq; @@ -61,6 +62,8 @@ namespace Disco.Web.Controllers .Include("DeviceUserAssignments.Device.DeviceBatch") .Include("UserAttachments.TechUser") .Include("UserAttachments.DocumentTemplate") + .Include("UserFlagAssignments.AddedUser") + .Include("UserFlagAssignments.RemovedUser") .FirstOrDefault(um => um.UserId == id); if (m.User == null) @@ -80,6 +83,16 @@ namespace Disco.Web.Controllers m.Jobs.Fill(Database, Disco.Services.Searching.Search.BuildJobTableModel(Database).Where(j => j.UserId == id).OrderByDescending(j => j.Id), true); } + if (Authorization.Has(Claims.User.ShowFlagAssignments)) + { + var usedFlags = m.User.UserFlagAssignments + .Where(a => !a.RemovedDate.HasValue) + .Select(a => a.UserFlagId) + .Distinct().ToList(); + + m.AvailableUserFlags = UserFlagService.GetUserFlags().Where(f => !usedFlags.Contains(f.Id)).ToList(); + } + try { if (Authorization.Has(Claims.User.ShowAuthorization)) diff --git a/Disco.Web/Disco.Web.csproj b/Disco.Web/Disco.Web.csproj index 68d84f8d..037c0a20 100644 --- a/Disco.Web/Disco.Web.csproj +++ b/Disco.Web/Disco.Web.csproj @@ -196,6 +196,8 @@
+ + @@ -205,12 +207,16 @@ + + + + @@ -277,6 +283,21 @@ True TaskStatus.cshtml + + Create.cshtml + True + True + + + Index.cshtml + True + True + + + Show.cshtml + True + True + Index.cshtml @@ -905,6 +926,11 @@ True Show.cshtml + + _Flags.cshtml + True + True + _Authorization.cshtml True @@ -992,6 +1018,18 @@ RazorGenerator TaskStatus.generated.cs + + RazorGenerator + Create.generated.cs + + + RazorGenerator + Index.generated.cs + + + RazorGenerator + Show.generated.cs + RazorGenerator Index.generated.cs @@ -1962,6 +2000,10 @@ RazorGenerator Show.generated.cs + + RazorGenerator + _Flags.generated.cs + RazorGenerator _Authorization.generated.cs @@ -2112,7 +2154,7 @@ False - + diff --git a/Disco.Web/Extensions/HtmlExtensions.cs b/Disco.Web/Extensions/HtmlExtensions.cs index 775f0353..28316671 100644 --- a/Disco.Web/Extensions/HtmlExtensions.cs +++ b/Disco.Web/Extensions/HtmlExtensions.cs @@ -11,6 +11,8 @@ using System.Web.WebPages; using System.Text.RegularExpressions; using System.IO; using System.Globalization; +using System.Text; +using Disco.Services.Interop.ActiveDirectory; namespace Disco.Web { @@ -107,13 +109,67 @@ namespace Disco.Web return breadCrumbs; } - private static Lazy _ToMultilineJobRefString = new Lazy(() => { return new Regex("(? htmlCommentJobRegex = new Lazy(() => { return new Regex(@"(#(\d+))", RegexOptions.Compiled, TimeSpan.FromSeconds(.1)); }); + private static Lazy htmlCommentUserRegex = new Lazy(() => { return new Regex(@"(@([^\s\\]+\\)?([^\s\\]+[\w\d]))", RegexOptions.Compiled, TimeSpan.FromSeconds(.1)); }); + private static Lazy htmlCommentDeviceRegex = new Lazy(() => { return new Regex(@"(!([\S]+[\w\d]))", RegexOptions.Compiled, TimeSpan.FromSeconds(.1)); }); + public static MvcHtmlString ToHtmlComment(this string s) { - var multiLineString = HttpUtility.HtmlEncode(s).Replace("\n", "
").Replace(Environment.NewLine, "
"); var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext); - return new MvcHtmlString(_ToMultilineJobRefString.Value.Replace(multiLineString, string.Format("#$1", urlHelper.Action(MVC.Job.Show(null))))); - } + var html = HttpUtility.HtmlEncode(s); + + try + { + // Job Matches + html = htmlCommentJobRegex.Value.Replace(html, match => { + int jobId; + if (int.TryParse(match.Groups[2].Value, out jobId)) + return string.Format("{0}", match.Value, jobId, urlHelper.Action(MVC.Job.Show(jobId))); + else + return match.Value; + }); + + // User Matches + html = htmlCommentUserRegex.Value.Replace(html, match => + { + string domainId = match.Groups[2].Value; + string userId = match.Groups[3].Value; + + try + { + if (string.IsNullOrWhiteSpace(userId)) + return match.Value; + if (string.IsNullOrWhiteSpace(domainId)) + userId = string.Concat(ActiveDirectory.Context.PrimaryDomain.NetBiosName, @"\", userId); + else + userId = string.Concat(domainId, userId); + + return string.Format("{0}", match.Value, userId, urlHelper.Action(MVC.User.Show(userId))); + } + catch (Exception) + { + // Ignore incorrectly encoded User Ids + return match.Value; + } + }); + + // Device Matches + html = htmlCommentDeviceRegex.Value.Replace(html, match => + { + string deviceSerialNumber = match.Groups[2].Value; + + if (string.IsNullOrWhiteSpace(deviceSerialNumber)) + return match.Value; + + return string.Format("{0}", match.Value, deviceSerialNumber, urlHelper.Action(MVC.Device.Show(deviceSerialNumber))); + }); + } + catch (Exception) + { + // Ignore Encoding Exceptions + } + + return new MvcHtmlString(html.Replace("\n", "
").Replace(Environment.NewLine, "
")); + } public static IEnumerable ToSelectListItems(this IEnumerable Items, string SelectedItem = null) { diff --git a/Disco.Web/Models/User/ShowModel.cs b/Disco.Web/Models/User/ShowModel.cs index 9d85926e..e65a42e5 100644 --- a/Disco.Web/Models/User/ShowModel.cs +++ b/Disco.Web/Models/User/ShowModel.cs @@ -1,6 +1,8 @@ -using Disco.Models.Services.Authorization; +using Disco.Models.Repository; +using Disco.Models.Services.Authorization; using Disco.Models.Services.Jobs.JobLists; using Disco.Models.UI.User; +using Disco.Services.Users.UserFlags; using Disco.Web.Extensions; using Disco.Web.Models.Shared; using System.Collections.Generic; @@ -13,7 +15,10 @@ namespace Disco.Web.Models.User { public Disco.Models.Repository.User User { get; set; } public JobTableModel Jobs { get; set; } - public List DocumentTemplates { get; set; } + public List DocumentTemplates { get; set; } + + public List AvailableUserFlags { get; set; } + public IAuthorizationToken AuthorizationToken { get; set; } public IClaimNavigatorItem ClaimNavigator { get; set; } diff --git a/Disco.Web/T4MVC.cs b/Disco.Web/T4MVC.cs index 3ddf81e3..bb8f43db 100644 --- a/Disco.Web/T4MVC.cs +++ b/Disco.Web/T4MVC.cs @@ -67,6 +67,8 @@ namespace T4MVC public Disco.Web.Areas.API.Controllers.SearchController Search = new Disco.Web.Areas.API.Controllers.T4MVC_SearchController(); public Disco.Web.Areas.API.Controllers.SystemController System = new Disco.Web.Areas.API.Controllers.T4MVC_SystemController(); public Disco.Web.Areas.API.Controllers.UserController User = new Disco.Web.Areas.API.Controllers.T4MVC_UserController(); + public Disco.Web.Areas.API.Controllers.UserFlagAssignmentController UserFlagAssignment = new Disco.Web.Areas.API.Controllers.T4MVC_UserFlagAssignmentController(); + public Disco.Web.Areas.API.Controllers.UserFlagController UserFlag = new Disco.Web.Areas.API.Controllers.T4MVC_UserFlagController(); } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public class ConfigClass @@ -86,6 +88,7 @@ namespace T4MVC public Disco.Web.Areas.Config.Controllers.OrganisationController Organisation = new Disco.Web.Areas.Config.Controllers.T4MVC_OrganisationController(); public Disco.Web.Areas.Config.Controllers.PluginsController Plugins = new Disco.Web.Areas.Config.Controllers.T4MVC_PluginsController(); public Disco.Web.Areas.Config.Controllers.SystemConfigController SystemConfig = new Disco.Web.Areas.Config.Controllers.T4MVC_SystemConfigController(); + public Disco.Web.Areas.Config.Controllers.UserFlagController UserFlag = new Disco.Web.Areas.Config.Controllers.T4MVC_UserFlagController(); public T4MVC.Config.SharedController Shared = new T4MVC.Config.SharedController(); } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] @@ -2517,12 +2520,14 @@ namespace Disco.Web.Controllers { public readonly string _AssignmentHistory = "_AssignmentHistory"; public readonly string _Authorization = "_Authorization"; + public readonly string _Flags = "_Flags"; public readonly string _Jobs = "_Jobs"; public readonly string _Resources = "_Resources"; public readonly string _Subject = "_Subject"; } public readonly string _AssignmentHistory = "~/Views/User/UserParts/_AssignmentHistory.cshtml"; public readonly string _Authorization = "~/Views/User/UserParts/_Authorization.cshtml"; + public readonly string _Flags = "~/Views/User/UserParts/_Flags.cshtml"; public readonly string _Jobs = "~/Views/User/UserParts/_Jobs.cshtml"; public readonly string _Resources = "~/Views/User/UserParts/_Resources.cshtml"; public readonly string _Subject = "~/Views/User/UserParts/_Subject.cshtml"; @@ -10834,6 +10839,522 @@ namespace Disco.Web.Areas.API.Controllers } } +namespace Disco.Web.Areas.API.Controllers +{ + public partial class UserFlagAssignmentController + { + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public UserFlagAssignmentController() { } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected UserFlagAssignmentController(Dummy d) { } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected RedirectToRouteResult RedirectToAction(ActionResult result) + { + var callInfo = result.GetT4MVCResult(); + return RedirectToRoute(callInfo.RouteValueDictionary); + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected RedirectToRouteResult RedirectToAction(Task taskResult) + { + return RedirectToAction(taskResult.Result); + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected RedirectToRouteResult RedirectToActionPermanent(ActionResult result) + { + var callInfo = result.GetT4MVCResult(); + return RedirectToRoutePermanent(callInfo.RouteValueDictionary); + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected RedirectToRouteResult RedirectToActionPermanent(Task taskResult) + { + return RedirectToActionPermanent(taskResult.Result); + } + + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult Update() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Update); + } + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult UpdateComments() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateComments); + } + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult AddUser() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.AddUser); + } + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult RemoveUser() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.RemoveUser); + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public UserFlagAssignmentController Actions { get { return MVC.API.UserFlagAssignment; } } + [GeneratedCode("T4MVC", "2.0")] + public readonly string Area = "API"; + [GeneratedCode("T4MVC", "2.0")] + public readonly string Name = "UserFlagAssignment"; + [GeneratedCode("T4MVC", "2.0")] + public const string NameConst = "UserFlagAssignment"; + + static readonly ActionNamesClass s_actions = new ActionNamesClass(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionNamesClass ActionNames { get { return s_actions; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionNamesClass + { + public readonly string Update = "Update"; + public readonly string UpdateComments = "UpdateComments"; + public readonly string AddUser = "AddUser"; + public readonly string RemoveUser = "RemoveUser"; + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionNameConstants + { + public const string Update = "Update"; + public const string UpdateComments = "UpdateComments"; + public const string AddUser = "AddUser"; + public const string RemoveUser = "RemoveUser"; + } + + + static readonly ActionParamsClass_Update s_params_Update = new ActionParamsClass_Update(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_Update UpdateParams { get { return s_params_Update; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_Update + { + public readonly string id = "id"; + public readonly string key = "key"; + public readonly string value = "value"; + public readonly string redirect = "redirect"; + } + static readonly ActionParamsClass_UpdateComments s_params_UpdateComments = new ActionParamsClass_UpdateComments(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_UpdateComments UpdateCommentsParams { get { return s_params_UpdateComments; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_UpdateComments + { + public readonly string id = "id"; + public readonly string Comments = "Comments"; + public readonly string redirect = "redirect"; + } + static readonly ActionParamsClass_AddUser s_params_AddUser = new ActionParamsClass_AddUser(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_AddUser AddUserParams { get { return s_params_AddUser; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_AddUser + { + public readonly string id = "id"; + public readonly string UserId = "UserId"; + public readonly string Comments = "Comments"; + } + static readonly ActionParamsClass_RemoveUser s_params_RemoveUser = new ActionParamsClass_RemoveUser(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_RemoveUser RemoveUserParams { get { return s_params_RemoveUser; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_RemoveUser + { + public readonly string id = "id"; + } + static readonly ViewsClass s_views = new ViewsClass(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ViewsClass Views { get { return s_views; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ViewsClass + { + static readonly _ViewNamesClass s_ViewNames = new _ViewNamesClass(); + public _ViewNamesClass ViewNames { get { return s_ViewNames; } } + public class _ViewNamesClass + { + } + } + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public partial class T4MVC_UserFlagAssignmentController : Disco.Web.Areas.API.Controllers.UserFlagAssignmentController + { + public T4MVC_UserFlagAssignmentController() : base(Dummy.Instance) { } + + [NonAction] + partial void UpdateOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string key, string value, bool? redirect); + + [NonAction] + public override System.Web.Mvc.ActionResult Update(int id, string key, string value, bool? redirect) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Update); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "key", key); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "value", value); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); + UpdateOverride(callInfo, id, key, value, redirect); + return callInfo; + } + + [NonAction] + partial void UpdateCommentsOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string Comments, bool? redirect); + + [NonAction] + public override System.Web.Mvc.ActionResult UpdateComments(int id, string Comments, bool? redirect) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateComments); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "Comments", Comments); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); + UpdateCommentsOverride(callInfo, id, Comments, redirect); + return callInfo; + } + + [NonAction] + partial void AddUserOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string UserId, string Comments); + + [NonAction] + public override System.Web.Mvc.ActionResult AddUser(int id, string UserId, string Comments) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.AddUser); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "UserId", UserId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "Comments", Comments); + AddUserOverride(callInfo, id, UserId, Comments); + return callInfo; + } + + [NonAction] + partial void RemoveUserOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id); + + [NonAction] + public override System.Web.Mvc.ActionResult RemoveUser(int id) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.RemoveUser); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + RemoveUserOverride(callInfo, id); + return callInfo; + } + + } +} + +namespace Disco.Web.Areas.API.Controllers +{ + public partial class UserFlagController + { + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public UserFlagController() { } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected UserFlagController(Dummy d) { } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected RedirectToRouteResult RedirectToAction(ActionResult result) + { + var callInfo = result.GetT4MVCResult(); + return RedirectToRoute(callInfo.RouteValueDictionary); + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected RedirectToRouteResult RedirectToAction(Task taskResult) + { + return RedirectToAction(taskResult.Result); + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected RedirectToRouteResult RedirectToActionPermanent(ActionResult result) + { + var callInfo = result.GetT4MVCResult(); + return RedirectToRoutePermanent(callInfo.RouteValueDictionary); + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected RedirectToRouteResult RedirectToActionPermanent(Task taskResult) + { + return RedirectToActionPermanent(taskResult.Result); + } + + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult Update() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Update); + } + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult UpdateName() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateName); + } + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult UpdateDescription() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateDescription); + } + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult UpdateIcon() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateIcon); + } + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult UpdateIconColour() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateIconColour); + } + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult UpdateIconAndColour() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateIconAndColour); + } + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult Delete() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Delete); + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public UserFlagController Actions { get { return MVC.API.UserFlag; } } + [GeneratedCode("T4MVC", "2.0")] + public readonly string Area = "API"; + [GeneratedCode("T4MVC", "2.0")] + public readonly string Name = "UserFlag"; + [GeneratedCode("T4MVC", "2.0")] + public const string NameConst = "UserFlag"; + + static readonly ActionNamesClass s_actions = new ActionNamesClass(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionNamesClass ActionNames { get { return s_actions; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionNamesClass + { + public readonly string Update = "Update"; + public readonly string UpdateName = "UpdateName"; + public readonly string UpdateDescription = "UpdateDescription"; + public readonly string UpdateIcon = "UpdateIcon"; + public readonly string UpdateIconColour = "UpdateIconColour"; + public readonly string UpdateIconAndColour = "UpdateIconAndColour"; + public readonly string Delete = "Delete"; + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionNameConstants + { + public const string Update = "Update"; + public const string UpdateName = "UpdateName"; + public const string UpdateDescription = "UpdateDescription"; + public const string UpdateIcon = "UpdateIcon"; + public const string UpdateIconColour = "UpdateIconColour"; + public const string UpdateIconAndColour = "UpdateIconAndColour"; + public const string Delete = "Delete"; + } + + + static readonly ActionParamsClass_Update s_params_Update = new ActionParamsClass_Update(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_Update UpdateParams { get { return s_params_Update; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_Update + { + public readonly string id = "id"; + public readonly string key = "key"; + public readonly string value = "value"; + public readonly string redirect = "redirect"; + } + static readonly ActionParamsClass_UpdateName s_params_UpdateName = new ActionParamsClass_UpdateName(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_UpdateName UpdateNameParams { get { return s_params_UpdateName; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_UpdateName + { + public readonly string id = "id"; + public readonly string FlagName = "FlagName"; + public readonly string redirect = "redirect"; + } + static readonly ActionParamsClass_UpdateDescription s_params_UpdateDescription = new ActionParamsClass_UpdateDescription(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_UpdateDescription UpdateDescriptionParams { get { return s_params_UpdateDescription; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_UpdateDescription + { + public readonly string id = "id"; + public readonly string Description = "Description"; + public readonly string redirect = "redirect"; + } + static readonly ActionParamsClass_UpdateIcon s_params_UpdateIcon = new ActionParamsClass_UpdateIcon(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_UpdateIcon UpdateIconParams { get { return s_params_UpdateIcon; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_UpdateIcon + { + public readonly string id = "id"; + public readonly string Icon = "Icon"; + public readonly string redirect = "redirect"; + } + static readonly ActionParamsClass_UpdateIconColour s_params_UpdateIconColour = new ActionParamsClass_UpdateIconColour(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_UpdateIconColour UpdateIconColourParams { get { return s_params_UpdateIconColour; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_UpdateIconColour + { + public readonly string id = "id"; + public readonly string IconColour = "IconColour"; + public readonly string redirect = "redirect"; + } + static readonly ActionParamsClass_UpdateIconAndColour s_params_UpdateIconAndColour = new ActionParamsClass_UpdateIconAndColour(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_UpdateIconAndColour UpdateIconAndColourParams { get { return s_params_UpdateIconAndColour; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_UpdateIconAndColour + { + public readonly string id = "id"; + public readonly string Icon = "Icon"; + public readonly string IconColour = "IconColour"; + public readonly string redirect = "redirect"; + } + static readonly ActionParamsClass_Delete s_params_Delete = new ActionParamsClass_Delete(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_Delete DeleteParams { get { return s_params_Delete; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_Delete + { + public readonly string id = "id"; + public readonly string redirect = "redirect"; + } + static readonly ViewsClass s_views = new ViewsClass(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ViewsClass Views { get { return s_views; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ViewsClass + { + static readonly _ViewNamesClass s_ViewNames = new _ViewNamesClass(); + public _ViewNamesClass ViewNames { get { return s_ViewNames; } } + public class _ViewNamesClass + { + } + } + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public partial class T4MVC_UserFlagController : Disco.Web.Areas.API.Controllers.UserFlagController + { + public T4MVC_UserFlagController() : base(Dummy.Instance) { } + + [NonAction] + partial void UpdateOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string key, string value, bool? redirect); + + [NonAction] + public override System.Web.Mvc.ActionResult Update(int id, string key, string value, bool? redirect) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Update); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "key", key); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "value", value); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); + UpdateOverride(callInfo, id, key, value, redirect); + return callInfo; + } + + [NonAction] + partial void UpdateNameOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string FlagName, bool? redirect); + + [NonAction] + public override System.Web.Mvc.ActionResult UpdateName(int id, string FlagName, bool? redirect) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateName); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "FlagName", FlagName); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); + UpdateNameOverride(callInfo, id, FlagName, redirect); + return callInfo; + } + + [NonAction] + partial void UpdateDescriptionOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string Description, bool? redirect); + + [NonAction] + public override System.Web.Mvc.ActionResult UpdateDescription(int id, string Description, bool? redirect) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateDescription); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "Description", Description); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); + UpdateDescriptionOverride(callInfo, id, Description, redirect); + return callInfo; + } + + [NonAction] + partial void UpdateIconOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string Icon, bool? redirect); + + [NonAction] + public override System.Web.Mvc.ActionResult UpdateIcon(int id, string Icon, bool? redirect) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateIcon); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "Icon", Icon); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); + UpdateIconOverride(callInfo, id, Icon, redirect); + return callInfo; + } + + [NonAction] + partial void UpdateIconColourOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string IconColour, bool? redirect); + + [NonAction] + public override System.Web.Mvc.ActionResult UpdateIconColour(int id, string IconColour, bool? redirect) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateIconColour); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "IconColour", IconColour); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); + UpdateIconColourOverride(callInfo, id, IconColour, redirect); + return callInfo; + } + + [NonAction] + partial void UpdateIconAndColourOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string Icon, string IconColour, bool redirect); + + [NonAction] + public override System.Web.Mvc.ActionResult UpdateIconAndColour(int id, string Icon, string IconColour, bool redirect) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateIconAndColour); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "Icon", Icon); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "IconColour", IconColour); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); + UpdateIconAndColourOverride(callInfo, id, Icon, IconColour, redirect); + return callInfo; + } + + [NonAction] + partial void DeleteOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, bool? redirect); + + [NonAction] + public override System.Web.Mvc.ActionResult Delete(int id, bool? redirect) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Delete); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); + DeleteOverride(callInfo, id, redirect); + return callInfo; + } + + } +} + namespace Disco.Web.Areas.Config.Controllers { public partial class AuthorizationRoleController @@ -12703,6 +13224,155 @@ namespace Disco.Web.Areas.Config.Controllers } } +namespace Disco.Web.Areas.Config.Controllers +{ + public partial class UserFlagController + { + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public UserFlagController() { } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected UserFlagController(Dummy d) { } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected RedirectToRouteResult RedirectToAction(ActionResult result) + { + var callInfo = result.GetT4MVCResult(); + return RedirectToRoute(callInfo.RouteValueDictionary); + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected RedirectToRouteResult RedirectToAction(Task taskResult) + { + return RedirectToAction(taskResult.Result); + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected RedirectToRouteResult RedirectToActionPermanent(ActionResult result) + { + var callInfo = result.GetT4MVCResult(); + return RedirectToRoutePermanent(callInfo.RouteValueDictionary); + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + protected RedirectToRouteResult RedirectToActionPermanent(Task taskResult) + { + return RedirectToActionPermanent(taskResult.Result); + } + + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult Index() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Index); + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public UserFlagController Actions { get { return MVC.Config.UserFlag; } } + [GeneratedCode("T4MVC", "2.0")] + public readonly string Area = "Config"; + [GeneratedCode("T4MVC", "2.0")] + public readonly string Name = "UserFlag"; + [GeneratedCode("T4MVC", "2.0")] + public const string NameConst = "UserFlag"; + + static readonly ActionNamesClass s_actions = new ActionNamesClass(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionNamesClass ActionNames { get { return s_actions; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionNamesClass + { + public readonly string Index = "Index"; + public readonly string Create = "Create"; + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionNameConstants + { + public const string Index = "Index"; + public const string Create = "Create"; + } + + + static readonly ActionParamsClass_Index s_params_Index = new ActionParamsClass_Index(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_Index IndexParams { get { return s_params_Index; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_Index + { + public readonly string id = "id"; + } + static readonly ActionParamsClass_Create s_params_Create = new ActionParamsClass_Create(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_Create CreateParams { get { return s_params_Create; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_Create + { + public readonly string model = "model"; + } + static readonly ViewsClass s_views = new ViewsClass(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ViewsClass Views { get { return s_views; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ViewsClass + { + static readonly _ViewNamesClass s_ViewNames = new _ViewNamesClass(); + public _ViewNamesClass ViewNames { get { return s_ViewNames; } } + public class _ViewNamesClass + { + public readonly string Create = "Create"; + public readonly string Index = "Index"; + public readonly string Show = "Show"; + } + public readonly string Create = "~/Areas/Config/Views/UserFlag/Create.cshtml"; + public readonly string Index = "~/Areas/Config/Views/UserFlag/Index.cshtml"; + public readonly string Show = "~/Areas/Config/Views/UserFlag/Show.cshtml"; + } + } + + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public partial class T4MVC_UserFlagController : Disco.Web.Areas.Config.Controllers.UserFlagController + { + public T4MVC_UserFlagController() : base(Dummy.Instance) { } + + [NonAction] + partial void IndexOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int? id); + + [NonAction] + public override System.Web.Mvc.ActionResult Index(int? id) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Index); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + IndexOverride(callInfo, id); + return callInfo; + } + + [NonAction] + partial void CreateOverride(T4MVC_System_Web_Mvc_ActionResult callInfo); + + [NonAction] + public override System.Web.Mvc.ActionResult Create() + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Create); + CreateOverride(callInfo); + return callInfo; + } + + [NonAction] + partial void CreateOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, Disco.Web.Areas.Config.Models.UserFlag.CreateModel model); + + [NonAction] + public override System.Web.Mvc.ActionResult Create(Disco.Web.Areas.Config.Models.UserFlag.CreateModel model) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Create); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "model", model); + CreateOverride(callInfo, model); + return callInfo; + } + + } +} + namespace T4MVC.Config { public class SharedController diff --git a/Disco.Web/Views/Device/DeviceParts/_Subject.cshtml b/Disco.Web/Views/Device/DeviceParts/_Subject.cshtml index 2e107aa1..7e2c4c91 100644 --- a/Disco.Web/Views/Device/DeviceParts/_Subject.cshtml +++ b/Disco.Web/Views/Device/DeviceParts/_Subject.cshtml @@ -1,4 +1,5 @@ @model Disco.Web.Models.Device.ShowModel +@using Disco.Services.Users.UserFlags; @{ Authorization.Require(Claims.Device.Show); @@ -210,6 +211,46 @@ } } + @if (Authorization.Has(Claims.User.ShowFlagAssignments)) + { +
+ @foreach (var flag in assignedUser.UserFlagAssignments.Where(f => !f.RemovedDate.HasValue).Select(f => Tuple.Create(f, UserFlagService.GetUserFlag(f.UserFlagId)))) + { + @flag.Item2.Name@if (flag.Item1.Comments != null) + {@flag.Item1.Comments.ToHtmlComment()}@CommonHelpers.FriendlyDateAndUser(flag.Item1.AddedDate, flag.Item1.AddedUserId) + } + +
+ } } else diff --git a/Disco.Web/Views/Device/DeviceParts/_Subject.generated.cs b/Disco.Web/Views/Device/DeviceParts/_Subject.generated.cs index 1dbeeb00..38fccee7 100644 --- a/Disco.Web/Views/Device/DeviceParts/_Subject.generated.cs +++ b/Disco.Web/Views/Device/DeviceParts/_Subject.generated.cs @@ -31,6 +31,12 @@ namespace Disco.Web.Views.Device.DeviceParts using Disco.Models.Repository; using Disco.Services; using Disco.Services.Authorization; + + #line 2 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + using Disco.Services.Users.UserFlags; + + #line default + #line hidden using Disco.Services.Web; using Disco.Web; using Disco.Web.Extensions; @@ -45,7 +51,7 @@ namespace Disco.Web.Views.Device.DeviceParts public override void Execute() { - #line 2 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 3 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Authorization.Require(Claims.Device.Show); @@ -78,7 +84,7 @@ WriteLiteral(">Name:\r\n \r\n ">"); - #line 16 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 17 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (string.IsNullOrWhiteSpace(Model.Device.DeviceDomainId)) { @@ -96,7 +102,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral("><Unknown/Not Allocated>\r\n"); - #line 19 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 20 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } else { @@ -113,7 +119,7 @@ WriteLiteral(" title=\"Computer Name\""); WriteLiteral(">"); - #line 22 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 23 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Model.Device.ComputerName); @@ -122,7 +128,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 23 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 24 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -137,7 +143,7 @@ WriteLiteral(">Domain:\r\n \r\n "td>"); - #line 29 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 30 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (string.IsNullOrWhiteSpace(Model.Device.DeviceDomainId)) { @@ -155,7 +161,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral("><Unknown/Not Allocated>\r\n"); - #line 32 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 33 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } else { @@ -172,7 +178,7 @@ WriteLiteral(" title=\"Computer Domain\""); WriteLiteral(">"); - #line 35 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 36 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Model.Device.ComputerDomainName); @@ -181,7 +187,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 36 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 37 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -192,13 +198,13 @@ WriteLiteral(" \r\n " \r\n"); - #line 42 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 43 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 42 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 43 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Authorization.Has(Claims.Device.Properties.AssetNumber)) { @@ -206,40 +212,40 @@ WriteLiteral(" \r\n #line default #line hidden - #line 44 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 45 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.TextBoxFor(m => m.Device.AssetNumber, new { @class = "small discreet" })); #line default #line hidden - #line 44 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 45 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 44 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 45 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(AjaxHelpers.AjaxSave()); #line default #line hidden - #line 44 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 45 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 44 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 45 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(AjaxHelpers.AjaxLoader()); #line default #line hidden - #line 44 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 45 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } else @@ -255,7 +261,7 @@ WriteLiteral(" class=\"small discreet\""); WriteLiteral(">"); - #line 48 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 49 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Model.Device.AssetNumber ?? "Unknown"); @@ -264,7 +270,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 49 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 50 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -275,13 +281,13 @@ WriteLiteral(" \r\n " \r\n"); - #line 55 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 56 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 55 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 56 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Authorization.Has(Claims.Device.Properties.Location)) { @@ -289,40 +295,40 @@ WriteLiteral(" \r\n #line default #line hidden - #line 57 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 58 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.TextBoxFor(m => m.Device.Location, new { @class = "small discreet" })); #line default #line hidden - #line 57 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 58 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 57 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 58 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(AjaxHelpers.AjaxSave()); #line default #line hidden - #line 57 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 58 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 57 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 58 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(AjaxHelpers.AjaxLoader()); #line default #line hidden - #line 57 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 58 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } else @@ -338,7 +344,7 @@ WriteLiteral(" class=\"small discreet\""); WriteLiteral(">"); - #line 61 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 62 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Model.Device.Location ?? "Unknown"); @@ -347,7 +353,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 62 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 63 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -357,13 +363,13 @@ WriteLiteral(" \r\n " \r\n"); - #line 66 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 67 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 66 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 67 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Authorization.HasAny(Claims.Device.Properties.AssetNumber, Claims.Device.Properties.Location)) { @@ -373,13 +379,13 @@ WriteLiteral(" \r\n WriteLiteral(" \r\n"); - #line 76 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 77 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -458,7 +464,7 @@ WriteLiteral(" id=\"Device_Show_Details_Dates_Created\""); WriteLiteral(">"); - #line 83 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 84 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(CommonHelpers.FriendlyDate(Model.Device.CreatedDate)); @@ -467,13 +473,13 @@ WriteLiteral(">"); WriteLiteral("\r\n \r\n"); - #line 85 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 86 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 85 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 86 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Model.Device.DecommissionedDate.HasValue) { @@ -489,7 +495,7 @@ WriteLiteral(" id=\"Device_Show_Details_Dates_Decommissioned\""); WriteLiteral(">"); - #line 90 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 91 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(CommonHelpers.FriendlyDate(Model.Device.DecommissionedDate)); @@ -498,7 +504,7 @@ WriteLiteral(">"); WriteLiteral("\r\n \r\n"); - #line 92 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 93 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -508,13 +514,13 @@ WriteLiteral("\r\n \r\n \r\n \r\n"); - #line 98 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 99 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 98 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 99 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Model.Device.EnrolledDate.HasValue) { @@ -532,7 +538,7 @@ WriteLiteral(" id=\"Device_Show_Details_Asset_Enrolled_First\""); WriteLiteral(">"); - #line 100 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 101 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(CommonHelpers.FriendlyDate(Model.Device.EnrolledDate)); @@ -541,7 +547,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 101 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 102 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Model.Device.LastEnrolDate.HasValue && Model.Device.EnrolledDate.Value != Model.Device.LastEnrolDate.Value) { @@ -559,7 +565,7 @@ WriteLiteral(" id=\"Device_Show_Details_Asset_Enrolled_Last\""); WriteLiteral(">"); - #line 103 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 104 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(CommonHelpers.FriendlyDate(Model.Device.LastEnrolDate)); @@ -568,7 +574,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 104 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 105 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } } else @@ -586,7 +592,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral(">Never\r\n"); - #line 109 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 110 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -595,7 +601,7 @@ WriteLiteral(">Never\r\n"); WriteLiteral(" "); - #line 110 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 111 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Model.Device.AllowUnauthenticatedEnrol) { @@ -611,7 +617,7 @@ WriteLiteral(" title=\"Trusted Unauthenticated Enrolment is Allowed\""); WriteLiteral(">\r\n"); - #line 113 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 114 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -636,7 +642,7 @@ WriteLiteral(">Last Seen:\r\n \r\n " "); - #line 124 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 125 "..\..\Views\Device\DeviceParts\_Subject.cshtml" string lastSeenClass = null; if (Model.Device.LastNetworkLogonDate.HasValue) @@ -661,20 +667,20 @@ WriteLiteral("\r\n (lastSeenClass + #line 142 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 8100), Tuple.Create(lastSeenClass #line default #line hidden -, 8060), false) +, 8100), false) ); WriteLiteral(">"); - #line 141 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 142 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(CommonHelpers.FriendlyDate(Model.Device.LastNetworkLogonDate)); @@ -683,13 +689,13 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 142 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 143 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 142 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 143 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (!string.IsNullOrEmpty(Model.Device.ComputerName)) { @@ -709,7 +715,7 @@ WriteLiteral(@"> $.getJSON('"); - #line 150 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 151 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Url.Action(MVC.API.Device.LastNetworkLogonDate(Model.Device.SerialNumber))); @@ -741,7 +747,7 @@ WriteLiteral("\', function (response, result) {\r\n " \r\n"); - #line 175 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 176 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -755,13 +761,13 @@ WriteLiteral(" class=\"status\""); WriteLiteral(">\r\n"); - #line 180 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 181 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 180 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 181 "..\..\Views\Device\DeviceParts\_Subject.cshtml" var assignedUser = Model.Device.AssignedUser; @@ -776,13 +782,13 @@ WriteLiteral(">\r\n \r\n < " \r\n \r\n"); - #line 188 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 189 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 188 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 189 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (assignedUser != null) { @@ -802,13 +808,13 @@ WriteLiteral(" title=\"Display Name\""); WriteLiteral(">\r\n"); - #line 192 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 193 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 192 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 193 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Authorization.Has(Claims.User.Show)) { @@ -816,14 +822,14 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 194 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 195 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.ActionLink(assignedUser.DisplayName, MVC.User.Show(assignedUser.UserId))); #line default #line hidden - #line 194 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 195 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } else @@ -833,14 +839,14 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 198 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 199 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(assignedUser.DisplayName); #line default #line hidden - #line 198 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 199 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -857,7 +863,7 @@ WriteLiteral(" title=\"Id\""); WriteLiteral(">"); - #line 201 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 202 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(assignedUser.FriendlyId()); @@ -866,13 +872,13 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 202 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 203 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 202 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 203 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Authorization.Has(Claims.User.ShowDetails)) { if (!string.IsNullOrWhiteSpace(assignedUser.PhoneNumber)) @@ -890,7 +896,7 @@ WriteLiteral(" title=\"Phone Number\""); WriteLiteral(">"); - #line 206 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 207 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(assignedUser.PhoneNumber); @@ -899,7 +905,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 207 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 208 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } if (!string.IsNullOrWhiteSpace(assignedUser.EmailAddress)) { @@ -915,21 +921,21 @@ WriteLiteral(" title=\"Email Address\""); WriteLiteral(">(Model.Device.AssignedUser.EmailAddress + #line 211 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 12799), Tuple.Create(Model.Device.AssignedUser.EmailAddress #line default #line hidden -, 12759), false) +, 12799), false) ); WriteLiteral(">"); - #line 210 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 211 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(assignedUser.EmailAddress); @@ -938,17 +944,183 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 211 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 212 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } } + #line default + #line hidden +WriteLiteral(" "); + + + #line 214 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + if (Authorization.Has(Claims.User.ShowFlagAssignments)) + { + + + #line default + #line hidden +WriteLiteral(" \r\n"); + + + #line 217 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + + + #line default + #line hidden + + #line 217 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + foreach (var flag in assignedUser.UserFlagAssignments.Where(f => !f.RemovedDate.HasValue).Select(f => Tuple.Create(f, UserFlagService.GetUserFlag(f.UserFlagId)))) + { + + + #line default + #line hidden +WriteLiteral(" (flag.Item2.Icon + + #line default + #line hidden +, 13527), false) +, Tuple.Create(Tuple.Create(" ", 13545), Tuple.Create("fa-fw", 13546), true) +, Tuple.Create(Tuple.Create(" ", 13551), Tuple.Create("d-", 13552), true) + + #line 219 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 13554), Tuple.Create(flag.Item2.IconColour + + #line default + #line hidden +, 13554), false) +); + +WriteLiteral(">"); + + + #line 219 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + Write(flag.Item2.Name); + + + #line default + #line hidden +WriteLiteral(""); + + + #line 219 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + if (flag.Item1.Comments != null) + { + + #line default + #line hidden +WriteLiteral(""); + + + #line 220 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + Write(flag.Item1.Comments.ToHtmlComment()); + + + #line default + #line hidden +WriteLiteral(""); + + + #line 220 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + } + + #line default + #line hidden +WriteLiteral(""); + + + #line 220 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + Write(CommonHelpers.FriendlyDateAndUser(flag.Item1.AddedDate, flag.Item1.AddedUserId)); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 221 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n $(function () {\r\n " + +" $(\'#Device_Show_User_Flags\')\r\n " + +" .tooltip({\r\n " + +" items: \'i.flag\',\r\n " + +" content: function () {\r\n " + +" var $this = $" + +"(this);\r\n ret" + +"urn $this.children(\'.details\').html();\r\n " + +" },\r\n " + +" tooltipClass: \'User_FlagAssignment_Tooltip\',\r\n " + +" position: {\r\n " + +" my: \"right top\",\r\n " + +" at: \"right bottom\",\r\n " + +" collision: \"flipfit fl" + +"ip\"\r\n },\r\n " + +" hade: {\r\n " + +" effect: \'\'\r\n " + +" },\r\n " + +" close: function (e, ui) {\r\n " + +" ui.tooltip.hover(\r\n " + +" function () {\r\n " + +" $(thi" + +"s).stop(true).fadeTo(100, 1);\r\n " + +" },\r\n " + +" function () {\r\n " + +" $(this).fadeOut(100, function () { $(this).remove(" + +"); });\r\n " + +"});\r\n }\r\n " + +" });\r\n " + +" });\r\n " + +" \r\n \r\n"); + + + #line 253 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + } + + #line default #line hidden WriteLiteral(" \r\n"); - #line 214 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 255 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } else { @@ -963,7 +1135,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral(">Not Assigned\r\n"); - #line 218 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 259 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -973,13 +1145,13 @@ WriteLiteral(" \r\n " \r\n \r\n"); - #line 223 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 264 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 223 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 264 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Authorization.Has(Claims.Device.Actions.GenerateDocuments)) { @@ -997,7 +1169,7 @@ WriteLiteral(">\r\n"); WriteLiteral(" "); - #line 226 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 267 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.DropDownList("Device_Show_GenerateDocument", Model.DocumentTemplatesSelectListItems)); @@ -1011,7 +1183,7 @@ WriteLiteral(">\r\n $(function () {\r\n "ar generatePdfUrl = \'"); - #line 229 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 270 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Url.Action(MVC.API.Device.GeneratePdf(Model.Device.SerialNumber.ToString(), null))); @@ -1044,7 +1216,7 @@ WriteLiteral("?DocumentTemplateId=\';\r\n var $do " });\r\n \r\n \r\n"); - #line 261 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 302 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -1067,7 +1239,7 @@ WriteLiteral(" title=\"Device Profile\""); WriteLiteral(">"); - #line 267 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 308 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Authorization.Has(Claims.Config.DeviceProfile.Show)) { @@ -1075,14 +1247,14 @@ WriteLiteral(">"); #line default #line hidden - #line 269 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 310 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.ActionLink(Model.Device.DeviceProfile.Name, MVC.Config.DeviceProfile.Index(Model.Device.DeviceProfileId))); #line default #line hidden - #line 269 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 310 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } else @@ -1092,14 +1264,14 @@ WriteLiteral(">"); #line default #line hidden - #line 273 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 314 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Model.Device.DeviceProfile.Name); #line default #line hidden - #line 273 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 314 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -1117,7 +1289,7 @@ WriteLiteral(">Distribution:\r\n \r\n " "); - #line 279 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 320 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Model.Device.DeviceProfile.DistributionType.ToString()); @@ -1132,7 +1304,7 @@ WriteLiteral(">Address:\r\n \r\n ""); - #line 285 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 326 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Model.DeviceProfileDefaultOrganisationAddress != null) { @@ -1147,7 +1319,7 @@ WriteLiteral(" id=\"Device_Show_Policies_Profile_Address\""); WriteLiteral(">"); - #line 288 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 329 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Model.DeviceProfileDefaultOrganisationAddress.Name); @@ -1156,7 +1328,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 289 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 330 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } else { @@ -1173,7 +1345,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral(">None\r\n"); - #line 293 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 334 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -1188,7 +1360,7 @@ WriteLiteral(">Provision Account:\r\n \r\ " "); - #line 300 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 341 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Model.Device.DeviceProfile.ProvisionADAccount ? "Active Directory" : "No"); @@ -1203,7 +1375,7 @@ WriteLiteral(">Allocate Certificate:\r\n " "); - #line 306 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 347 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Model.DeviceProfileCertificateProvider != null ? Model.DeviceProfileCertificateProvider.Name : "No"); @@ -1213,13 +1385,13 @@ WriteLiteral("\r\n \r\n < " \r\n"); - #line 310 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 351 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 310 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 351 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Model.Device.CanUpdateDeviceProfile()) { @@ -1227,14 +1399,14 @@ WriteLiteral("\r\n \r\n < #line default #line hidden - #line 312 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 353 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Update Profile", MVC.API.Device.UpdateDeviceProfileId(Model.Device.SerialNumber, null, true), "Device_Show_Policies_Profile_Actions_Update_Button")); #line default #line hidden - #line 312 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 353 "..\..\Views\Device\DeviceParts\_Subject.cshtml" @@ -1256,13 +1428,13 @@ WriteLiteral(" class=\"none\""); WriteLiteral(">\r\n"); - #line 317 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 358 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 317 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 358 "..\..\Views\Device\DeviceParts\_Subject.cshtml" foreach (var dp in Model.DeviceProfiles.OrderBy(i => i.Name)) { @@ -1277,7 +1449,7 @@ WriteLiteral(" type=\"radio\""); WriteLiteral(" data-deviceprofileid=\""); - #line 320 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 361 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(dp.Id); @@ -1287,45 +1459,45 @@ WriteLiteral("\""); WriteLiteral(" name=\"DeviceProfile\""); -WriteAttribute("id", Tuple.Create(" id=\"", 19325), Tuple.Create("\"", 19352) -, Tuple.Create(Tuple.Create("", 19330), Tuple.Create("DeviceProfile_", 19330), true) +WriteAttribute("id", Tuple.Create(" id=\"", 23090), Tuple.Create("\"", 23117) +, Tuple.Create(Tuple.Create("", 23095), Tuple.Create("DeviceProfile_", 23095), true) - #line 320 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 19344), Tuple.Create(dp.Id + #line 361 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 23109), Tuple.Create(dp.Id #line default #line hidden -, 19344), false) +, 23109), false) ); WriteLiteral(" />(dp.Id + #line 361 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 23147), Tuple.Create(dp.Id #line default #line hidden -, 19382), false) +, 23147), false) ); -WriteAttribute("title", Tuple.Create(" title=\"", 19391), Tuple.Create("\"", 19435) -, Tuple.Create(Tuple.Create("", 19399), Tuple.Create("Distribution:", 19399), true) +WriteAttribute("title", Tuple.Create(" title=\"", 23156), Tuple.Create("\"", 23200) +, Tuple.Create(Tuple.Create("", 23164), Tuple.Create("Distribution:", 23164), true) - #line 320 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create(" ", 19412), Tuple.Create(dp.DistributionType + #line 361 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create(" ", 23177), Tuple.Create(dp.DistributionType #line default #line hidden -, 19413), false) +, 23178), false) ); WriteLiteral(">"); - #line 320 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 361 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(dp.Name); @@ -1334,7 +1506,7 @@ WriteLiteral(">"); WriteLiteral(" \r\n"); - #line 321 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 362 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -1347,7 +1519,7 @@ WriteLiteral(" \r\n"); - #line 494 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 535 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -1806,7 +1978,7 @@ WriteLiteral(" title=\"Model Description\""); WriteLiteral(">"); - #line 501 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 542 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Authorization.Has(Claims.Config.DeviceModel.Show)) { @@ -1814,14 +1986,14 @@ WriteLiteral(">"); #line default #line hidden - #line 503 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 544 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.ActionLink(Model.Device.DeviceModel.ToString(), MVC.Config.DeviceModel.Index(Model.Device.DeviceModelId))); #line default #line hidden - #line 503 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 544 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } else @@ -1831,14 +2003,14 @@ WriteLiteral(">"); #line default #line hidden - #line 507 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 548 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Model.Device.DeviceModel.ToString()); #line default #line hidden - #line 507 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 548 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -1850,14 +2022,14 @@ WriteLiteral(" id=\"Device_Show_Aspects_Model_Image\""); WriteLiteral(" alt=\"Model Image\""); -WriteAttribute("src", Tuple.Create(" src=\"", 32056), Tuple.Create("\"", 32166) +WriteAttribute("src", Tuple.Create(" src=\"", 35821), Tuple.Create("\"", 35931) - #line 509 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 32062), Tuple.Create(Url.Action(MVC.API.DeviceModel.Image(Model.Device.DeviceModelId, Model.Device.DeviceModel.ImageHash())) + #line 550 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 35827), Tuple.Create(Url.Action(MVC.API.DeviceModel.Image(Model.Device.DeviceModelId, Model.Device.DeviceModel.ImageHash())) #line default #line hidden -, 32062), false) +, 35827), false) ); WriteLiteral(" />\r\n \r\n \r\n \r\n \r\n \r\n"); - #line 516 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 557 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 516 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 557 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Model.Device.CanCreateJob()) { Html.BundleDeferred("~/ClientScripts/Modules/Disco-CreateJob"); @@ -1887,14 +2059,14 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 519 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 560 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Create Job", MVC.Job.Create(Model.Device.SerialNumber, Model.Device.AssignedUserId), "buttonCreateJob")); #line default #line hidden - #line 519 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 560 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -1904,7 +2076,7 @@ WriteLiteral(">\r\n"); WriteLiteral(" "); - #line 521 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 562 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Model.Device.CanUpdateAssignment()) { @@ -1912,14 +2084,14 @@ WriteLiteral(" "); #line default #line hidden - #line 523 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 564 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Update Assignment", MVC.API.Device.UpdateAssignedUserId(Model.Device.SerialNumber, null, null, true), "Device_Show_User_Actions_Assign_Button")); #line default #line hidden - #line 523 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 564 "..\..\Views\Device\DeviceParts\_Subject.cshtml" @@ -1960,13 +2132,13 @@ WriteLiteral(@"> "); - #line 536 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 577 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 536 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 577 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (assignedUser != null) { @@ -1988,7 +2160,7 @@ WriteLiteral(@" WriteLiteral("\r\n"); - #line 547 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 588 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -2019,7 +2191,7 @@ WriteLiteral("\r\n \"Assign\": function () {\r\n " source: \'"); - #line 578 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 619 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Url.Action(MVC.API.Search.UsersUpstream())); @@ -2049,7 +2221,7 @@ WriteLiteral(@"', "); - #line 599 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 640 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -2058,7 +2230,7 @@ WriteLiteral(@"', WriteLiteral(" "); - #line 600 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 641 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Model.Device.CanUpdateTrustEnrol()) { @@ -2066,14 +2238,14 @@ WriteLiteral(" "); #line default #line hidden - #line 602 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 643 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Trust Enrol", MVC.API.Device.UpdateAllowUnauthenticatedEnrol(Model.Device.SerialNumber, true.ToString(), true), "Device_Show_Device_Actions_TrustEnrol_Button")); #line default #line hidden - #line 602 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 643 "..\..\Views\Device\DeviceParts\_Subject.cshtml" @@ -2109,7 +2281,7 @@ WriteLiteral("> \r\n This action will al "claiming to have the Serial Number \'"); - #line 608 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 649 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Model.Device.SerialNumber); @@ -2160,7 +2332,7 @@ WriteLiteral(">\r\n $(function () {\r\n " });\r\n \r\n"); - #line 651 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 692 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -2169,7 +2341,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" "); - #line 652 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 693 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Model.Device.CanUpdateUntrustEnrol()) { @@ -2177,14 +2349,14 @@ WriteLiteral(" "); #line default #line hidden - #line 654 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 695 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Untrust Enrol", MVC.API.Device.UpdateAllowUnauthenticatedEnrol(Model.Device.SerialNumber, false.ToString(), true), "Device_Show_Device_Actions_UntrustEnrol_Button")); #line default #line hidden - #line 654 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 695 "..\..\Views\Device\DeviceParts\_Subject.cshtml" @@ -2246,7 +2418,7 @@ WriteLiteral(@"> "); - #line 690 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 731 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -2255,7 +2427,7 @@ WriteLiteral(@"> WriteLiteral(" "); - #line 691 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 732 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Model.Device.CanDecommission()) { @@ -2263,14 +2435,14 @@ WriteLiteral(" "); #line default #line hidden - #line 693 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 734 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Decommission", MVC.API.Device.Decommission(), "Device_Show_Device_Actions_Decommission_Button")); #line default #line hidden - #line 693 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 734 "..\..\Views\Device\DeviceParts\_Subject.cshtml" @@ -2302,13 +2474,13 @@ WriteLiteral(" class=\"none\""); WriteLiteral(">\r\n"); - #line 700 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 741 "..\..\Views\Device\DeviceParts\_Subject.cshtml" #line default #line hidden - #line 700 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 741 "..\..\Views\Device\DeviceParts\_Subject.cshtml" foreach (DecommissionReasons decommissionReason in Enum.GetValues(typeof(DecommissionReasons))) { @@ -2319,34 +2491,34 @@ WriteLiteral("
  • \r\n WriteLiteral(" type=\"radio\""); -WriteAttribute("id", Tuple.Create(" id=\"", 43533), Tuple.Create("\"", 43611) -, Tuple.Create(Tuple.Create("", 43538), Tuple.Create("Device_Show_Device_Actions_Decommission_Reason_", 43538), true) +WriteAttribute("id", Tuple.Create(" id=\"", 47298), Tuple.Create("\"", 47376) +, Tuple.Create(Tuple.Create("", 47303), Tuple.Create("Device_Show_Device_Actions_Decommission_Reason_", 47303), true) - #line 703 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 43585), Tuple.Create((int)decommissionReason + #line 744 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 47350), Tuple.Create((int)decommissionReason #line default #line hidden -, 43585), false) +, 47350), false) ); WriteLiteral("\r\n name=\"Device_Show_Device_Actions_Decomm" + "ission_Reason\""); -WriteAttribute("value", Tuple.Create(" value=\"", 43707), Tuple.Create("\"", 43741) +WriteAttribute("value", Tuple.Create(" value=\"", 47472), Tuple.Create("\"", 47506) - #line 704 "..\..\Views\Device\DeviceParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 43715), Tuple.Create((int)decommissionReason + #line 745 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 47480), Tuple.Create((int)decommissionReason #line default #line hidden -, 43715), false) +, 47480), false) ); WriteLiteral(" "); - #line 704 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 745 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write((decommissionReason == DecommissionReasons.EndOfLife) ? "checked=\"checked\"" : string.Empty); @@ -2354,21 +2526,21 @@ WriteLiteral(" "); #line hidden WriteLiteral("/>\r\n ((int)decommissionReason + #line 746 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 47702), Tuple.Create((int)decommissionReason #line default #line hidden -, 43937), false) +, 47702), false) ); WriteLiteral(">"); - #line 705 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 746 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(decommissionReason.ReasonMessage()); @@ -2377,7 +2549,7 @@ WriteLiteral(">"); WriteLiteral("\r\n
  • \r\n"); - #line 707 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 748 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -2395,7 +2567,7 @@ WriteLiteral(">\r\n $(function () {\r\n "uttonDialog = null;\r\n var deviceSerialNumber = \'"); - #line 715 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 756 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Model.Device.SerialNumber); @@ -2428,7 +2600,7 @@ WriteLiteral("\';\r\n\r\n button.click(function () {\r\n\ " });\r\n \r\n"); - #line 751 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 792 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -2437,7 +2609,7 @@ WriteLiteral("\';\r\n\r\n button.click(function () {\r\n\ WriteLiteral(" "); - #line 752 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 793 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Model.Device.CanRecommission()) { @@ -2445,14 +2617,14 @@ WriteLiteral(" "); #line default #line hidden - #line 754 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 795 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Recommission", MVC.API.Device.Recommission(Model.Device.SerialNumber, true), "Device_Show_Device_Actions_Recommission_Button")); #line default #line hidden - #line 754 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 795 "..\..\Views\Device\DeviceParts\_Subject.cshtml" @@ -2506,7 +2678,7 @@ WriteLiteral(@"> "); - #line 789 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 830 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } @@ -2515,7 +2687,7 @@ WriteLiteral(@"> WriteLiteral(" "); - #line 790 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 831 "..\..\Views\Device\DeviceParts\_Subject.cshtml" if (Model.Device.CanDelete()) { @@ -2523,14 +2695,14 @@ WriteLiteral(" "); #line default #line hidden - #line 792 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 833 "..\..\Views\Device\DeviceParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Delete Device", MVC.API.Device.Delete(Model.Device.SerialNumber, true), "Device_Show_Device_Actions_Delete_Button")); #line default #line hidden - #line 792 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 833 "..\..\Views\Device\DeviceParts\_Subject.cshtml" @@ -2590,7 +2762,7 @@ WriteLiteral(@"> "); - #line 830 "..\..\Views\Device\DeviceParts\_Subject.cshtml" + #line 871 "..\..\Views\Device\DeviceParts\_Subject.cshtml" } diff --git a/Disco.Web/Views/Job/JobParts/Queues.cshtml b/Disco.Web/Views/Job/JobParts/Queues.cshtml index 41fce8f4..790efcf6 100644 --- a/Disco.Web/Views/Job/JobParts/Queues.cshtml +++ b/Disco.Web/Views/Job/JobParts/Queues.cshtml @@ -11,7 +11,7 @@ var hasJobQueueShow = Authorization.Has(Claims.Config.JobQueue.Show); var queues = JobQueueService.GetQueues(); - var queueHistory = Model.Job.JobQueues.Select(jq => new Tuple(jq, queues.First(q => q.JobQueue.Id == jq.JobQueueId))).OrderBy(jq => jq.Item1.AddedDate).ToList(); + var queueHistory = Model.Job.JobQueues.Select(jq => new Tuple(jq, queues.First(q => q.JobQueue.Id == jq.JobQueueId))).ToList(); } @if (queueHistory.Count > 0) { @@ -52,7 +52,8 @@ } else { -
    @jq.Item1.AddedComment
    +
    @jq.Item1.AddedComment.ToHtmlComment()
    +
    @jq.Item1.AddedComment
    }
    @CommonHelpers.FriendlyDateAndUser(jq.Item1.AddedDate, jq.Item1.AddedUser)
    @@ -69,7 +70,8 @@ } else { -
    @jq.Item1.RemovedComment
    +
    @jq.Item1.RemovedComment.ToHtmlComment()
    +
    @jq.Item1.RemovedComment
    }
    @CommonHelpers.FriendlyDateAndUser(jq.Item1.RemovedDate.Value, jq.Item1.RemovedUser)
    } @@ -250,7 +252,7 @@ }); } - var $comments = $this.closest('td').find('.comments'); + var $comments = $this.closest('td').find('.commentsRaw'); if ($comments.hasClass('smallMessage')) { $('#Job_Show_Queues_Actions_EditAddedComment_Dialog_Comment').val(''); } else { @@ -288,7 +290,7 @@ }); } - var $comments = $this.closest('td').find('.comments'); + var $comments = $this.closest('td').find('.commentsRaw'); if ($comments.hasClass('smallMessage')) { $('#Job_Show_Queues_Actions_EditRemovedComment_Dialog_Comment').val(''); } else { diff --git a/Disco.Web/Views/Job/JobParts/Queues.generated.cs b/Disco.Web/Views/Job/JobParts/Queues.generated.cs index 6b6cf09d..81598d4b 100644 --- a/Disco.Web/Views/Job/JobParts/Queues.generated.cs +++ b/Disco.Web/Views/Job/JobParts/Queues.generated.cs @@ -63,7 +63,7 @@ namespace Disco.Web.Views.Job.JobParts var hasJobQueueShow = Authorization.Has(Claims.Config.JobQueue.Show); var queues = JobQueueService.GetQueues(); - var queueHistory = Model.Job.JobQueues.Select(jq => new Tuple(jq, queues.First(q => q.JobQueue.Id == jq.JobQueueId))).OrderBy(jq => jq.Item1.AddedDate).ToList(); + var queueHistory = Model.Job.JobQueues.Select(jq => new Tuple(jq, queues.First(q => q.JobQueue.Id == jq.JobQueueId))).ToList(); #line default @@ -139,14 +139,14 @@ WriteLiteral(" data-jobqueuejobaddeddate=\""); #line hidden WriteLiteral("\""); -WriteAttribute("class", Tuple.Create(" class=\"", 1405), Tuple.Create("\"", 1468) +WriteAttribute("class", Tuple.Create(" class=\"", 1371), Tuple.Create("\"", 1434) #line 28 "..\..\Views\Job\JobParts\Queues.cshtml" - , Tuple.Create(Tuple.Create("", 1413), Tuple.Create(!jq.Item1.RemovedDate.HasValue ? "added" : "removed" + , Tuple.Create(Tuple.Create("", 1379), Tuple.Create(!jq.Item1.RemovedDate.HasValue ? "added" : "removed" #line default #line hidden -, 1413), false) +, 1379), false) ); WriteLiteral(">\r\n \r\n (jq.Item2.JobQueue.Icon +, Tuple.Create(Tuple.Create("", 1509), Tuple.Create(jq.Item2.JobQueue.Icon #line default #line hidden -, 1543), false) -, Tuple.Create(Tuple.Create(" ", 1568), Tuple.Create("fa-fw", 1569), true) -, Tuple.Create(Tuple.Create(" ", 1574), Tuple.Create("fa-lg", 1575), true) -, Tuple.Create(Tuple.Create(" ", 1580), Tuple.Create("d-", 1581), true) +, 1509), false) +, Tuple.Create(Tuple.Create(" ", 1534), Tuple.Create("fa-fw", 1535), true) +, Tuple.Create(Tuple.Create(" ", 1540), Tuple.Create("fa-lg", 1541), true) +, Tuple.Create(Tuple.Create(" ", 1546), Tuple.Create("d-", 1547), true) #line 30 "..\..\Views\Job\JobParts\Queues.cshtml" -, Tuple.Create(Tuple.Create("", 1583), Tuple.Create(jq.Item2.JobQueue.IconColour +, Tuple.Create(Tuple.Create("", 1549), Tuple.Create(jq.Item2.JobQueue.IconColour #line default #line hidden -, 1583), false) +, 1549), false) ); WriteLiteral(">\r\n"); @@ -237,28 +237,28 @@ WriteLiteral(" "); #line hidden WriteLiteral(" (jq.Item2.JobQueue.Priority.ToString().ToLower() +, Tuple.Create(Tuple.Create("", 2065), Tuple.Create(jq.Item2.JobQueue.Priority.ToString().ToLower() #line default #line hidden -, 2099), false) +, 2065), false) ); -WriteAttribute("title", Tuple.Create(" title=\"", 2150), Tuple.Create("\"", 2213) +WriteAttribute("title", Tuple.Create(" title=\"", 2116), Tuple.Create("\"", 2179) #line 41 "..\..\Views\Job\JobParts\Queues.cshtml" - , Tuple.Create(Tuple.Create("", 2158), Tuple.Create(jq.Item2.JobQueue.Priority.ToString() + , Tuple.Create(Tuple.Create("", 2124), Tuple.Create(jq.Item2.JobQueue.Priority.ToString() #line default #line hidden -, 2158), false) -, Tuple.Create(Tuple.Create(" ", 2198), Tuple.Create("Queue", 2199), true) -, Tuple.Create(Tuple.Create(" ", 2204), Tuple.Create("Priority", 2205), true) +, 2124), false) +, Tuple.Create(Tuple.Create(" ", 2164), Tuple.Create("Queue", 2165), true) +, Tuple.Create(Tuple.Create(" ", 2170), Tuple.Create("Priority", 2171), true) ); WriteLiteral(">\r\n"); @@ -338,7 +338,22 @@ WriteLiteral(">"); #line 55 "..\..\Views\Job\JobParts\Queues.cshtml" - Write(jq.Item1.AddedComment); + Write(jq.Item1.AddedComment.ToHtmlComment()); + + + #line default + #line hidden +WriteLiteral("\r\n"); + +WriteLiteral(" "); + + + #line 56 "..\..\Views\Job\JobParts\Queues.cshtml" + Write(jq.Item1.AddedComment); #line default @@ -346,7 +361,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 56 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 57 "..\..\Views\Job\JobParts\Queues.cshtml" } @@ -359,7 +374,7 @@ WriteLiteral(" class=\"when\""); WriteLiteral(">"); - #line 57 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 58 "..\..\Views\Job\JobParts\Queues.cshtml" Write(CommonHelpers.FriendlyDateAndUser(jq.Item1.AddedDate, jq.Item1.AddedUser)); @@ -367,27 +382,27 @@ WriteLiteral(">"); #line hidden WriteLiteral("\r\n \r\n (!jq.Item1.RemovedDate.HasValue ? " na" : null + #line 60 "..\..\Views\Job\JobParts\Queues.cshtml" +, Tuple.Create(Tuple.Create("", 3054), Tuple.Create(!jq.Item1.RemovedDate.HasValue ? " na" : null #line default #line hidden -, 2993), false) +, 3054), false) ); WriteLiteral(">\r\n"); - #line 60 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 61 "..\..\Views\Job\JobParts\Queues.cshtml" #line default #line hidden - #line 60 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 61 "..\..\Views\Job\JobParts\Queues.cshtml" if (jq.Item1.RemovedDate.HasValue) { if (jq.Item1.CanEditRemovedComment()) @@ -405,7 +420,7 @@ WriteLiteral(" title=\"Edit Comment\""); WriteLiteral(">\r\n"); - #line 65 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 66 "..\..\Views\Job\JobParts\Queues.cshtml" } if (jq.Item1.RemovedComment == null) { @@ -420,7 +435,7 @@ WriteLiteral(" class=\"comments smallMessage\""); WriteLiteral(">[no comment]\r\n"); - #line 69 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 70 "..\..\Views\Job\JobParts\Queues.cshtml" } else { @@ -435,8 +450,23 @@ WriteLiteral(" class=\"comments\""); WriteLiteral(">"); - #line 72 "..\..\Views\Job\JobParts\Queues.cshtml" - Write(jq.Item1.RemovedComment); + #line 73 "..\..\Views\Job\JobParts\Queues.cshtml" + Write(jq.Item1.RemovedComment.ToHtmlComment()); + + + #line default + #line hidden +WriteLiteral("\r\n"); + +WriteLiteral(" "); + + + #line 74 "..\..\Views\Job\JobParts\Queues.cshtml" + Write(jq.Item1.RemovedComment); #line default @@ -444,7 +474,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 73 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 75 "..\..\Views\Job\JobParts\Queues.cshtml" } @@ -457,7 +487,7 @@ WriteLiteral(" class=\"when\""); WriteLiteral(">"); - #line 74 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 76 "..\..\Views\Job\JobParts\Queues.cshtml" Write(CommonHelpers.FriendlyDateAndUser(jq.Item1.RemovedDate.Value, jq.Item1.RemovedUser)); @@ -466,7 +496,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 75 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 77 "..\..\Views\Job\JobParts\Queues.cshtml" } else if (jq.Item1.CanRemove()) { @@ -478,23 +508,23 @@ WriteLiteral(" (jq.Item1.CanCloseJobNormallyAfterRemoved() ? "canCloseNormally" : null + #line 80 "..\..\Views\Job\JobParts\Queues.cshtml" +, Tuple.Create(Tuple.Create(" ", 4130), Tuple.Create(jq.Item1.CanCloseJobNormallyAfterRemoved() ? "canCloseNormally" : null #line default #line hidden -, 3973), false) +, 4131), false) ); WriteLiteral(">Remove\r\n"); - #line 79 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 81 "..\..\Views\Job\JobParts\Queues.cshtml" } else { @@ -509,7 +539,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral(">In Progress\r\n"); - #line 83 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 85 "..\..\Views\Job\JobParts\Queues.cshtml" } @@ -517,35 +547,35 @@ WriteLiteral(">In Progress\r\n"); #line hidden WriteLiteral(" \r\n (overdue ? "overdue" : null + #line 87 "..\..\Views\Job\JobParts\Queues.cshtml" +, Tuple.Create(Tuple.Create(" ", 4437), Tuple.Create(overdue ? "overdue" : null #line default #line hidden -, 4280), false) +, 4438), false) - #line 85 "..\..\Views\Job\JobParts\Queues.cshtml" -, Tuple.Create(Tuple.Create(" ", 4309), Tuple.Create(jq.Item1.CanEditSla() ? "canEditSLA" : null + #line 87 "..\..\Views\Job\JobParts\Queues.cshtml" +, Tuple.Create(Tuple.Create(" ", 4467), Tuple.Create(jq.Item1.CanEditSla() ? "canEditSLA" : null #line default #line hidden -, 4310), false) +, 4468), false) - #line 85 "..\..\Views\Job\JobParts\Queues.cshtml" - , Tuple.Create(Tuple.Create(" ", 4356), Tuple.Create(jq.Item1.CanEditPriority() ? "canEditPriority" : null + #line 87 "..\..\Views\Job\JobParts\Queues.cshtml" + , Tuple.Create(Tuple.Create(" ", 4514), Tuple.Create(jq.Item1.CanEditPriority() ? "canEditPriority" : null #line default #line hidden -, 4357), false) +, 4515), false) ); WriteLiteral(" data-priority=\""); - #line 85 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 87 "..\..\Views\Job\JobParts\Queues.cshtml" Write(jq.Item1.Priority.ToString()); @@ -556,7 +586,7 @@ WriteLiteral("\""); WriteLiteral(" data-sla=\""); - #line 85 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 87 "..\..\Views\Job\JobParts\Queues.cshtml" Write(jq.Item1.SLAExpiresDate.HasValue ? jq.Item1.SLAExpiresDate.Value.ToString("s") : null); @@ -567,13 +597,13 @@ WriteLiteral("\""); WriteLiteral(">\r\n"); - #line 86 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 88 "..\..\Views\Job\JobParts\Queues.cshtml" #line default #line hidden - #line 86 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 88 "..\..\Views\Job\JobParts\Queues.cshtml" if (jq.Item1.CanEditSla() || jq.Item1.CanEditPriority()) { @@ -589,7 +619,7 @@ WriteLiteral(" title=\"Edit SLA\""); WriteLiteral(">\r\n"); - #line 89 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 91 "..\..\Views\Job\JobParts\Queues.cshtml" } @@ -597,40 +627,40 @@ WriteLiteral(">\r\n"); #line hidden WriteLiteral(" (jq.Item1.Priority.ToString().ToLower() + #line 92 "..\..\Views\Job\JobParts\Queues.cshtml" +, Tuple.Create(Tuple.Create("", 4967), Tuple.Create(jq.Item1.Priority.ToString().ToLower() #line default #line hidden -, 4809), false) +, 4967), false) ); -WriteAttribute("title", Tuple.Create(" title=\"", 4851), Tuple.Create("\"", 4903) +WriteAttribute("title", Tuple.Create(" title=\"", 5009), Tuple.Create("\"", 5061) - #line 90 "..\..\Views\Job\JobParts\Queues.cshtml" - , Tuple.Create(Tuple.Create("", 4859), Tuple.Create(jq.Item1.Priority.ToString() + #line 92 "..\..\Views\Job\JobParts\Queues.cshtml" + , Tuple.Create(Tuple.Create("", 5017), Tuple.Create(jq.Item1.Priority.ToString() #line default #line hidden -, 4859), false) -, Tuple.Create(Tuple.Create(" ", 4890), Tuple.Create("Job", 4891), true) -, Tuple.Create(Tuple.Create(" ", 4894), Tuple.Create("Priority", 4895), true) +, 5017), false) +, Tuple.Create(Tuple.Create(" ", 5048), Tuple.Create("Job", 5049), true) +, Tuple.Create(Tuple.Create(" ", 5052), Tuple.Create("Priority", 5053), true) ); WriteLiteral(">\r\n"); - #line 91 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 93 "..\..\Views\Job\JobParts\Queues.cshtml" #line default #line hidden - #line 91 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 93 "..\..\Views\Job\JobParts\Queues.cshtml" if (jq.Item1.SLAExpiresDate.HasValue) { if (jq.Item1.RemovedDate.HasValue) @@ -640,14 +670,14 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 95 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 97 "..\..\Views\Job\JobParts\Queues.cshtml" Write(CommonHelpers.FriendlyDate(jq.Item1.SLAExpiresDate.Value, WithoutSuffix: true)); #line default #line hidden - #line 95 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 97 "..\..\Views\Job\JobParts\Queues.cshtml" if (jq.Item1.RemovedDate.Value <= jq.Item1.SLAExpiresDate.Value) { @@ -658,7 +688,7 @@ WriteLiteral(">\r\n"); WriteLiteral(" early\r\n"); - #line 99 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 101 "..\..\Views\Job\JobParts\Queues.cshtml" } else { @@ -669,7 +699,7 @@ WriteLiteral(" early\r\n"); WriteLiteral(" late\r\n"); - #line 103 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 105 "..\..\Views\Job\JobParts\Queues.cshtml" } } else @@ -681,20 +711,20 @@ WriteLiteral(" late\r\n"); WriteLiteral(" due "); - #line 107 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 109 "..\..\Views\Job\JobParts\Queues.cshtml" #line default #line hidden - #line 107 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 109 "..\..\Views\Job\JobParts\Queues.cshtml" Write(CommonHelpers.FriendlyDate(jq.Item1.SLAExpiresDate.Value)); #line default #line hidden - #line 107 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 109 "..\..\Views\Job\JobParts\Queues.cshtml" } } @@ -705,7 +735,7 @@ WriteLiteral(" due "); WriteLiteral(" \r\n \r\n"); - #line 112 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 114 "..\..\Views\Job\JobParts\Queues.cshtml" } @@ -724,13 +754,13 @@ WriteLiteral(" title=\"Remove this Job from the queue?\""); WriteLiteral(">\r\n"); - #line 115 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 117 "..\..\Views\Job\JobParts\Queues.cshtml" #line default #line hidden - #line 115 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 117 "..\..\Views\Job\JobParts\Queues.cshtml" using (Html.BeginForm(MVC.API.JobQueueJob.RemoveJob())) { @@ -786,7 +816,7 @@ WriteLiteral(" for=\"Job_Show_Queues_Actions_Remove_Dialog_CloseJob\""); WriteLiteral(">Close the Job\r\n \r\n"); - #line 129 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 131 "..\..\Views\Job\JobParts\Queues.cshtml" } @@ -805,13 +835,13 @@ WriteLiteral(" title=\"Edit the Added Comment\""); WriteLiteral(">\r\n"); - #line 132 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 134 "..\..\Views\Job\JobParts\Queues.cshtml" #line default #line hidden - #line 132 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 134 "..\..\Views\Job\JobParts\Queues.cshtml" using (Html.BeginForm(MVC.API.JobQueueJob.UpdateAddedComment())) { @@ -853,7 +883,7 @@ WriteLiteral(" class=\"block\""); WriteLiteral(">\r\n

    \r\n"); - #line 140 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 142 "..\..\Views\Job\JobParts\Queues.cshtml" } @@ -872,13 +902,13 @@ WriteLiteral(" title=\"Edit the Removed Comment\""); WriteLiteral(">\r\n"); - #line 143 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 145 "..\..\Views\Job\JobParts\Queues.cshtml" #line default #line hidden - #line 143 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 145 "..\..\Views\Job\JobParts\Queues.cshtml" using (Html.BeginForm(MVC.API.JobQueueJob.UpdateRemovedComment())) { @@ -920,7 +950,7 @@ WriteLiteral(" class=\"block\""); WriteLiteral(">\r\n

    \r\n"); - #line 151 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 153 "..\..\Views\Job\JobParts\Queues.cshtml" } @@ -939,13 +969,13 @@ WriteLiteral(" title=\"Edit the SLA\""); WriteLiteral(">\r\n"); - #line 154 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 156 "..\..\Views\Job\JobParts\Queues.cshtml" #line default #line hidden - #line 154 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 156 "..\..\Views\Job\JobParts\Queues.cshtml" using (Html.BeginForm(MVC.API.JobQueueJob.UpdateSlaAndPriority())) { @@ -994,13 +1024,13 @@ WriteLiteral(" autofocus=\"autofocus\""); WriteLiteral(">\r\n"); - #line 163 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 165 "..\..\Views\Job\JobParts\Queues.cshtml" #line default #line hidden - #line 163 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 165 "..\..\Views\Job\JobParts\Queues.cshtml" foreach (var priorityItem in Enum.GetNames(typeof(JobQueuePriority))) { @@ -1009,20 +1039,20 @@ WriteLiteral(">\r\n"); #line hidden WriteLiteral(" (priorityItem + #line 167 "..\..\Views\Job\JobParts\Queues.cshtml" +, Tuple.Create(Tuple.Create("", 8852), Tuple.Create(priorityItem #line default #line hidden -, 8694), false) +, 8852), false) ); WriteLiteral(">"); - #line 165 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 167 "..\..\Views\Job\JobParts\Queues.cshtml" Write(priorityItem); @@ -1031,7 +1061,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 166 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 168 "..\..\Views\Job\JobParts\Queues.cshtml" } @@ -1057,7 +1087,7 @@ WriteLiteral(" placeholder=\"None\""); WriteLiteral(" />\r\n

    \r\n \r\n"); - #line 176 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 178 "..\..\Views\Job\JobParts\Queues.cshtml" } @@ -1080,7 +1110,7 @@ WriteLiteral(@"> var dialogEditSla_BothUrl = '"); - #line 186 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 188 "..\..\Views\Job\JobParts\Queues.cshtml" Write(Url.Action(MVC.API.JobQueueJob.UpdateSlaAndPriority())); @@ -1089,7 +1119,7 @@ WriteLiteral(@"> WriteLiteral("\';\r\n var dialogEditSla_SlaUrl = \'"); - #line 187 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 189 "..\..\Views\Job\JobParts\Queues.cshtml" Write(Url.Action(MVC.API.JobQueueJob.UpdateSla())); @@ -1098,7 +1128,7 @@ WriteLiteral("\';\r\n var dialogEditSla_SlaUrl = \'"); WriteLiteral("\';\r\n var dialogEditSla_PriorityUrl = \'"); - #line 188 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 190 "..\..\Views\Job\JobParts\Queues.cshtml" Write(Url.Action(MVC.API.JobQueueJob.UpdatePriority())); @@ -1139,88 +1169,88 @@ WriteLiteral("\';\r\n\r\n jobQueues.on(\'click\', \'a.remove\', funct " },\r\n Cancel: function () {\r\n " + " $(this).dialog(\"close\");\r\n }\r\n " + " }\r\n });\r\n }\r\n\r\n " + -" var $comments = $this.closest(\'td\').find(\'.comments\');\r\n if " + -"($comments.hasClass(\'smallMessage\')) {\r\n $(\'#Job_Show_Queues_" + -"Actions_EditAddedComment_Dialog_Comment\').val(\'\');\r\n } else {\r\n " + -" $(\'#Job_Show_Queues_Actions_EditAddedComment_Dialog_Comment\')." + -"val($comments.text());\r\n }\r\n\r\n $(\'#Job_Show_Queues" + -"_Actions_EditAddedComment_Dialog_Id\').val(jobQueueJobId);\r\n dialo" + -"gEditAddedComment.dialog(\'open\');\r\n e.preventDefault();\r\n " + -" return false;\r\n });\r\n\r\n jobQueues.on(\'click\', \'td." + -"removed i.fa-edit\', function (e) {\r\n var $this = $(this);\r\n " + -" var jobQueueJobId = $this.closest(\'tr\').attr(\'data-jobqueuejobid\');\r\n\r" + -"\n if (!dialogEditRemovedComment) {\r\n dialogEdi" + -"tRemovedComment = $(\'#Job_Show_Queues_Actions_EditRemovedComment_Dialog\');\r\n " + -" dialogEditRemovedComment.dialog({\r\n resiz" + -"able: false,\r\n modal: true,\r\n widt" + -"h: 320,\r\n autoOpen: false,\r\n butto" + -"ns: {\r\n \"Save Changes\": function () {\r\n " + -" var $this = $(this);\r\n $this.di" + -"alog(\"disable\");\r\n $this.dialog(\"option\", \"button" + -"s\", null);\r\n $this.find(\'form\').submit();\r\n " + -" },\r\n Cancel: function () {\r\n " + -" $(this).dialog(\"close\");\r\n " + -" }\r\n }\r\n });\r\n }\r\n\r\n " + -" var $comments = $this.closest(\'td\').find(\'.comments\');\r\n " + -" if ($comments.hasClass(\'smallMessage\')) {\r\n $(\'#Job_Sh" + -"ow_Queues_Actions_EditRemovedComment_Dialog_Comment\').val(\'\');\r\n " + -"} else {\r\n $(\'#Job_Show_Queues_Actions_EditRemovedComment_Dia" + -"log_Comment\').val($comments.text());\r\n }\r\n\r\n $(\'#J" + -"ob_Show_Queues_Actions_EditRemovedComment_Dialog_Id\').val(jobQueueJobId);\r\n " + -" dialogEditRemovedComment.dialog(\'open\');\r\n e.preventDe" + -"fault();\r\n return false;\r\n });\r\n\r\n jobQueue" + -"s.on(\'click\', \'td.sla i.fa-edit\', function (e) {\r\n var $this = $(" + -"this);\r\n var jobQueueJobId = $this.closest(\'tr\').attr(\'data-jobqu" + -"euejobid\');\r\n\r\n var priorityChange = function () {\r\n " + -" var $element = $(\'#Job_Show_Queues_Actions_EditSla_Dialog_Priority\');\r\n " + -" var icon = dialogEditSla.find(\'.priority i\');\r\n " + -" icon[0].className = \'\';\r\n icon.addClass(\'fa d-priority-\'" + -" + $element.val().toLowerCase()).attr(\'title\', $element.val() + \' Priority\');\r\n " + -" };\r\n\r\n if (!dialogEditSla) {\r\n " + -"dialogEditSla = $(\'#Job_Show_Queues_Actions_EditSla_Dialog\');\r\n " + -" dialogEditSla.dialog({\r\n resizable: false,\r\n " + -" modal: true,\r\n width: 320,\r\n " + -" autoOpen: false,\r\n buttons: {\r\n " + -" \"Save Changes\": function () {\r\n var $t" + -"his = $(this);\r\n $this.dialog(\"disable\");\r\n " + -" $this.dialog(\"option\", \"buttons\", null);\r\n " + -" $this.find(\'form\').submit();\r\n }," + -"\r\n Cancel: function () {\r\n " + -" $(this).dialog(\"close\");\r\n }\r\n " + -" }\r\n });\r\n\r\n $(\'#Job_Show_Queues_Acti" + -"ons_EditSla_Dialog_Priority\').change(priorityChange);\r\n }\r\n\r\n " + -" var $td = $this.closest(\'td\');\r\n var priority = $td.a" + -"ttr(\'data-priority\');\r\n var sla = $td.attr(\'data-sla\');\r\n " + -" var slaStart = $this.closest(\'tr\').attr(\'data-jobqueuejobaddeddate\');\r\n\r" + -"\n var canEditSla = $td.hasClass(\'canEditSLA\');\r\n v" + -"ar canEditPriority = $td.hasClass(\'canEditPriority\');\r\n\r\n if (can" + -"EditPriority) {\r\n $(\'#Job_Show_Queues_Actions_EditSla_Dialog_" + -"Priority\').val(priority);\r\n priorityChange();\r\n " + -" dialogEditSla.find(\'div.priority\').show();\r\n } else {\r\n " + -" dialogEditSla.find(\'div.priority\').hide();\r\n }\r\n\r" + -"\n if (canEditSla) {\r\n var $sla = $(\'#Job_Show_" + -"Queues_Actions_EditSla_Dialog_Sla\');\r\n\r\n $sla.datetimepicker(" + -"\'destroy\').datetimepicker({\r\n defaultDate: new Date(),\r\n " + -" ampm: true,\r\n changeYear: true,\r\n " + -" changeMonth: true,\r\n minDate: mome" + -"nt(slaStart).add(\'m\', 1).toDate(),\r\n dateFormat: \'yy/mm/d" + -"d\'\r\n });\r\n\r\n if (sla) {\r\n " + -" $sla.datetimepicker(\'setDate\', moment(sla).toDate());\r\n " + -" } else {\r\n $sla.val(\'\');\r\n }\r\n " + -" dialogEditSla.find(\'div.sla\').show();\r\n } else {\r\n " + -" dialogEditSla.find(\'div.sla\').hide();\r\n }\r\n\r\n " + -" if (canEditPriority && canEditSla)\r\n dialogEdi" + -"tSla.find(\'form\').attr(\'action\', dialogEditSla_BothUrl);\r\n else i" + -"f (canEditPriority)\r\n dialogEditSla.find(\'form\').attr(\'action" + -"\', dialogEditSla_PriorityUrl);\r\n else if (canEditSla)\r\n " + -" dialogEditSla.find(\'form\').attr(\'action\', dialogEditSla_SlaUrl);\r\n\r\n " + -" $(\'#Job_Show_Queues_Actions_EditSla_Dialog_Id\').val(jobQueueJobId)" + -";\r\n dialogEditSla.dialog(\'open\');\r\n e.preventDefau" + -"lt();\r\n return false;\r\n });\r\n });\r\n \r\n"); +" var $comments = $this.closest(\'td\').find(\'.commentsRaw\');\r\n " + +"if ($comments.hasClass(\'smallMessage\')) {\r\n $(\'#Job_Show_Queu" + +"es_Actions_EditAddedComment_Dialog_Comment\').val(\'\');\r\n } else {\r" + +"\n $(\'#Job_Show_Queues_Actions_EditAddedComment_Dialog_Comment" + +"\').val($comments.text());\r\n }\r\n\r\n $(\'#Job_Show_Que" + +"ues_Actions_EditAddedComment_Dialog_Id\').val(jobQueueJobId);\r\n di" + +"alogEditAddedComment.dialog(\'open\');\r\n e.preventDefault();\r\n " + +" return false;\r\n });\r\n\r\n jobQueues.on(\'click\', \'" + +"td.removed i.fa-edit\', function (e) {\r\n var $this = $(this);\r\n " + +" var jobQueueJobId = $this.closest(\'tr\').attr(\'data-jobqueuejobid\');" + +"\r\n\r\n if (!dialogEditRemovedComment) {\r\n dialog" + +"EditRemovedComment = $(\'#Job_Show_Queues_Actions_EditRemovedComment_Dialog\');\r\n " + +" dialogEditRemovedComment.dialog({\r\n re" + +"sizable: false,\r\n modal: true,\r\n w" + +"idth: 320,\r\n autoOpen: false,\r\n bu" + +"ttons: {\r\n \"Save Changes\": function () {\r\n " + +" var $this = $(this);\r\n $this" + +".dialog(\"disable\");\r\n $this.dialog(\"option\", \"but" + +"tons\", null);\r\n $this.find(\'form\').submit();\r\n " + +" },\r\n Cancel: function () {\r\n" + +" $(this).dialog(\"close\");\r\n " + +" }\r\n }\r\n });\r\n }\r\n" + +"\r\n var $comments = $this.closest(\'td\').find(\'.commentsRaw\');\r\n " + +" if ($comments.hasClass(\'smallMessage\')) {\r\n $(\'#" + +"Job_Show_Queues_Actions_EditRemovedComment_Dialog_Comment\').val(\'\');\r\n " + +" } else {\r\n $(\'#Job_Show_Queues_Actions_EditRemovedComme" + +"nt_Dialog_Comment\').val($comments.text());\r\n }\r\n\r\n " + +" $(\'#Job_Show_Queues_Actions_EditRemovedComment_Dialog_Id\').val(jobQueueJobId);\r" + +"\n dialogEditRemovedComment.dialog(\'open\');\r\n e.pre" + +"ventDefault();\r\n return false;\r\n });\r\n\r\n jo" + +"bQueues.on(\'click\', \'td.sla i.fa-edit\', function (e) {\r\n var $thi" + +"s = $(this);\r\n var jobQueueJobId = $this.closest(\'tr\').attr(\'data" + +"-jobqueuejobid\');\r\n\r\n var priorityChange = function () {\r\n " + +" var $element = $(\'#Job_Show_Queues_Actions_EditSla_Dialog_Priority\'" + +");\r\n var icon = dialogEditSla.find(\'.priority i\');\r\n " + +" icon[0].className = \'\';\r\n icon.addClass(\'fa d-prio" + +"rity-\' + $element.val().toLowerCase()).attr(\'title\', $element.val() + \' Priority" + +"\');\r\n };\r\n\r\n if (!dialogEditSla) {\r\n " + +" dialogEditSla = $(\'#Job_Show_Queues_Actions_EditSla_Dialog\');\r\n " + +" dialogEditSla.dialog({\r\n resizable: false,\r\n " + +" modal: true,\r\n width: 320,\r\n " + +" autoOpen: false,\r\n buttons: {\r\n " + +" \"Save Changes\": function () {\r\n " + +"var $this = $(this);\r\n $this.dialog(\"disable\");\r\n" + +" $this.dialog(\"option\", \"buttons\", null);\r\n " + +" $this.find(\'form\').submit();\r\n " + +" },\r\n Cancel: function () {\r\n " + +" $(this).dialog(\"close\");\r\n }\r\n " + +" }\r\n });\r\n\r\n $(\'#Job_Show_Queue" + +"s_Actions_EditSla_Dialog_Priority\').change(priorityChange);\r\n }\r\n" + +"\r\n var $td = $this.closest(\'td\');\r\n var priority =" + +" $td.attr(\'data-priority\');\r\n var sla = $td.attr(\'data-sla\');\r\n " + +" var slaStart = $this.closest(\'tr\').attr(\'data-jobqueuejobaddeddate" + +"\');\r\n\r\n var canEditSla = $td.hasClass(\'canEditSLA\');\r\n " + +" var canEditPriority = $td.hasClass(\'canEditPriority\');\r\n\r\n i" + +"f (canEditPriority) {\r\n $(\'#Job_Show_Queues_Actions_EditSla_D" + +"ialog_Priority\').val(priority);\r\n priorityChange();\r\n " + +" dialogEditSla.find(\'div.priority\').show();\r\n } else {" + +"\r\n dialogEditSla.find(\'div.priority\').hide();\r\n " + +" }\r\n\r\n if (canEditSla) {\r\n var $sla = $(\'#Job" + +"_Show_Queues_Actions_EditSla_Dialog_Sla\');\r\n\r\n $sla.datetimep" + +"icker(\'destroy\').datetimepicker({\r\n defaultDate: new Date" + +"(),\r\n ampm: true,\r\n changeYear: tr" + +"ue,\r\n changeMonth: true,\r\n minDate" + +": moment(slaStart).add(\'m\', 1).toDate(),\r\n dateFormat: \'y" + +"y/mm/dd\'\r\n });\r\n\r\n if (sla) {\r\n " + +" $sla.datetimepicker(\'setDate\', moment(sla).toDate());\r\n " + +" } else {\r\n $sla.val(\'\');\r\n }\r\n" + +" dialogEditSla.find(\'div.sla\').show();\r\n } els" + +"e {\r\n dialogEditSla.find(\'div.sla\').hide();\r\n " + +"}\r\n\r\n if (canEditPriority && canEditSla)\r\n dia" + +"logEditSla.find(\'form\').attr(\'action\', dialogEditSla_BothUrl);\r\n " + +"else if (canEditPriority)\r\n dialogEditSla.find(\'form\').attr(\'" + +"action\', dialogEditSla_PriorityUrl);\r\n else if (canEditSla)\r\n " + +" dialogEditSla.find(\'form\').attr(\'action\', dialogEditSla_SlaUrl);" + +"\r\n\r\n $(\'#Job_Show_Queues_Actions_EditSla_Dialog_Id\').val(jobQueue" + +"JobId);\r\n dialogEditSla.dialog(\'open\');\r\n e.preven" + +"tDefault();\r\n return false;\r\n });\r\n });\r\n \r\n"); - #line 390 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 392 "..\..\Views\Job\JobParts\Queues.cshtml" } else { @@ -1235,7 +1265,7 @@ WriteLiteral(" class=\"none\""); WriteLiteral(">This job has no associated queue history\r\n"); - #line 394 "..\..\Views\Job\JobParts\Queues.cshtml" + #line 396 "..\..\Views\Job\JobParts\Queues.cshtml" } #line default diff --git a/Disco.Web/Views/Job/JobParts/Resources.cshtml b/Disco.Web/Views/Job/JobParts/Resources.cshtml index 39c1c199..538b0345 100644 --- a/Disco.Web/Views/Job/JobParts/Resources.cshtml +++ b/Disco.Web/Views/Job/JobParts/Resources.cshtml @@ -36,7 +36,7 @@
    @jl.TechUser.ToStringFriendly()@if (canRemoveAnyLogs || (canRemoveOwnLogs && jl.TechUserId == CurrentUser.UserId)) {}@jl.Timestamp.ToFullDateTime() - @jl.Comments.ToMultilineJobRefString() + @jl.Comments.ToHtmlComment()
    } @@ -264,10 +264,7 @@ e.find('.timestamp').text(c.TimestampFull).attr('title', c.TimestampFull).livestamp(c.TimestampUnixEpoc); if (canRemove) e.find('.remove').click(removePost); - var eComment = e.find('.comment').text(c.Comments); - var commentHtml = eComment.text().replace(/\r\n|\r|\n/g, '
    '); - commentHtml = commentHtml.replace(/\#(\d+)/g, '#$1'); - eComment.html(commentHtml); + var eComment = e.find('.comment').html(c.HtmlComments); $CommentOutput.append(e); diff --git a/Disco.Web/Views/Job/JobParts/Resources.generated.cs b/Disco.Web/Views/Job/JobParts/Resources.generated.cs index 9f251253..7ef70745 100644 --- a/Disco.Web/Views/Job/JobParts/Resources.generated.cs +++ b/Disco.Web/Views/Job/JobParts/Resources.generated.cs @@ -240,7 +240,7 @@ WriteLiteral(">"); #line 39 "..\..\Views\Job\JobParts\Resources.cshtml" - Write(jl.Comments.ToMultilineJobRefString()); + Write(jl.Comments.ToHtmlComment()); #line default @@ -324,14 +324,14 @@ WriteLiteral(">\r\n (canAddAttachments ? "canAddAttachments" : "cannotAddAttachments" +, Tuple.Create(Tuple.Create("", 2949), Tuple.Create(canAddAttachments ? "canAddAttachments" : "cannotAddAttachments" #line default #line hidden -, 2959), false) +, 2949), false) ); WriteLiteral(">\r\n \r\n"); #line hidden WriteLiteral(" (Url.Action(MVC.API.Job.AttachmentDownload(ja.Id)) +, Tuple.Create(Tuple.Create("", 3360), Tuple.Create(Url.Action(MVC.API.Job.AttachmentDownload(ja.Id)) #line default #line hidden -, 3370), false) +, 3360), false) ); WriteLiteral(" data-attachmentid=\""); @@ -397,42 +397,42 @@ WriteLiteral(">\r\n (ja.Filename +, Tuple.Create(Tuple.Create("", 3528), Tuple.Create(ja.Filename #line default #line hidden -, 3538), false) +, 3528), false) ); WriteLiteral(">\r\n (Url.Action(MVC.API.Job.AttachmentThumbnail(ja.Id)) +, Tuple.Create(Tuple.Create("", 3617), Tuple.Create(Url.Action(MVC.API.Job.AttachmentThumbnail(ja.Id)) #line default #line hidden -, 3627), false) +, 3617), false) ); WriteLiteral(" />\r\n (ja.Comments +, Tuple.Create(Tuple.Create("", 3745), Tuple.Create(ja.Comments #line default #line hidden -, 3755), false) +, 3745), false) ); WriteLiteral(">\r\n"); @@ -527,14 +527,14 @@ WriteLiteral(" data-livestamp=\""); #line hidden WriteLiteral("\""); -WriteAttribute("title", Tuple.Create(" title=\"", 4462), Tuple.Create("\"", 4500) +WriteAttribute("title", Tuple.Create(" title=\"", 4452), Tuple.Create("\"", 4490) #line 72 "..\..\Views\Job\JobParts\Resources.cshtml" - , Tuple.Create(Tuple.Create("", 4470), Tuple.Create(ja.Timestamp.ToFullDateTime() + , Tuple.Create(Tuple.Create("", 4460), Tuple.Create(ja.Timestamp.ToFullDateTime() #line default #line hidden -, 4470), false) +, 4460), false) ); WriteLiteral(">"); @@ -925,76 +925,42 @@ WriteLiteral("addComment(d, false, false);"); #line default #line hidden -WriteLiteral(@" - } - }, - error: function (jqXHR, textStatus, errorThrown) { - alert('Unable to load live comment ' + id + ': ' + textStatus); - } - }); - } - function liveRemoveComment(key) { - $CommentOutput.children('div[data-logid=""' + key + '""]').slideUp(300).delay(300).queue(function () { - var $this = $(this); - $this.find('.timestamp').livestamp('destroy'); - $this.remove(); - }); - } - function addComment(c, quick, canRemove) { - var t = '
    '; - if (canRemove) - t += ''; - t += '
    '; - - var e = $(t); - e.attr('data-logid', c.Id); - e.find('.author').text(c.Author); - e.find('.timestamp').text(c.TimestampFull).attr('title', c.TimestampFull).livestamp(c.TimestampUnixEpoc); - if (canRemove) - e.find('.remove').click(removePost); - var eComment = e.find('.comment').text(c.Comments); - var commentHtml = eComment.text().replace(/\r\n|\r|\n/g, '
    '); - commentHtml = commentHtml.replace(/\#(\d+)/g, '\';\r\n if (canRemove)\r\n t += \'\';\r\n t += \'\';\r\n\r\n var e = $(t);\r\n " + +" e.attr(\'data-logid\', c.Id);\r\n e.find(\'.author\').text(c.Au" + +"thor);\r\n e.find(\'.timestamp\').text(c.TimestampFull).attr(\'title\'," + +" c.TimestampFull).livestamp(c.TimestampUnixEpoc);\r\n if (canRemove" + +")\r\n e.find(\'.remove\').click(removePost);\r\n var" + +" eComment = e.find(\'.comment\').html(c.HtmlComments);\r\n\r\n $Comment" + +"Output.append(e);\r\n\r\n if (!quick) {\r\n e.animat" + +"e({ backgroundColor: \'#ffff99\' }, 500, function () {\r\n e." + +"animate({ backgroundColor: \'#fafafa\' }, 500, function () {\r\n " + +" e.css(\'background-color\', \'\');\r\n });\r\n " + +" });\r\n $CommentOutput.animate({ scrollTop: $CommentOu" + +"tput[0].scrollHeight }, 250)\r\n }\r\n }\r\n\r\n //" + +" Add Globally Available Functions\r\n document.DiscoFunctions.liveLoadC" + +"omment = loadLiveComment;\r\n document.DiscoFunctions.liveRemoveComment" + +" = liveRemoveComment;\r\n //#endregion\r\n });\r\n \r\n"); - #line 269 "..\..\Views\Job\JobParts\Resources.cshtml" - Write(Url.Action(MVC.Job.Show(null))); - - - #line default - #line hidden -WriteLiteral(@"?id=$1"">#$1'); - eComment.html(commentHtml); - - $CommentOutput.append(e); - - if (!quick) { - e.animate({ backgroundColor: '#ffff99' }, 500, function () { - e.animate({ backgroundColor: '#fafafa' }, 500, function () { - e.css('background-color', ''); - }); - }); - $CommentOutput.animate({ scrollTop: $CommentOutput[0].scrollHeight }, 250) - } - } - - // Add Globally Available Functions - document.DiscoFunctions.liveLoadComment = loadLiveComment; - document.DiscoFunctions.liveRemoveComment = liveRemoveComment; - //#endregion - }); - -"); - - - #line 290 "..\..\Views\Job\JobParts\Resources.cshtml" + #line 287 "..\..\Views\Job\JobParts\Resources.cshtml" } #line default #line hidden - #line 291 "..\..\Views\Job\JobParts\Resources.cshtml" + #line 288 "..\..\Views\Job\JobParts\Resources.cshtml" if (canShowAttachments) { @@ -1015,7 +981,7 @@ WriteLiteral(@" + + } @if (Model.Job.WaitingForUserAction.HasValue) {
    @@ -694,6 +735,7 @@ var buttonLink = button.attr('href'); var queuePicker = null; + var queueId = null; var details = null; function queueSelected(){ @@ -702,7 +744,7 @@ queuePicker.children().removeClass('selected'); queue.addClass('selected'); - $('#Job_Show_Job_Actions_AddQueue_Dialog_Id').val(queue.attr('data-queueid')); + queueId.val(queue.attr('data-queueid')); var queueSLA = queue.attr('data-queuesla'); if (!queueSLA) @@ -730,15 +772,20 @@ $(this).dialog("close"); }, "Add to Queue": function () { - var $this = $(this); - $this.dialog("disable"); - $this.dialog("option", "buttons", null); - buttonDialog.find('form').submit(); + if (!!queueId.val()){ + var $this = $(this); + $this.dialog("disable"); + $this.dialog("option", "buttons", null); + buttonDialog.find('form').submit(); + }else{ + alert('Select a Job Queue'); + } } } }); queuePicker = buttonDialog.find('.queuePicker'); + queueId = $('#Job_Show_Job_Actions_AddQueue_Dialog_Id'); details = buttonDialog.find('.details'); var priorityList = buttonDialog.find('#Priority'); diff --git a/Disco.Web/Views/Job/JobParts/_Subject.generated.cs b/Disco.Web/Views/Job/JobParts/_Subject.generated.cs index 2e06ba48..e60c7894 100644 --- a/Disco.Web/Views/Job/JobParts/_Subject.generated.cs +++ b/Disco.Web/Views/Job/JobParts/_Subject.generated.cs @@ -31,6 +31,12 @@ namespace Disco.Web.Views.Job.JobParts using Disco.Models.Repository; using Disco.Services; using Disco.Services.Authorization; + + #line 2 "..\..\Views\Job\JobParts\_Subject.cshtml" + using Disco.Services.Users.UserFlags; + + #line default + #line hidden using Disco.Services.Web; using Disco.Web; using Disco.Web.Extensions; @@ -45,7 +51,7 @@ namespace Disco.Web.Views.Job.JobParts public override void Execute() { - #line 2 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 3 "..\..\Views\Job\JobParts\_Subject.cshtml" Authorization.Require(Claims.Job.Show); @@ -76,7 +82,7 @@ WriteLiteral(" id=\"Job_Show_Job_Dates_Opened\""); WriteLiteral(">"); - #line 14 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 15 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(CommonHelpers.FriendlyDateAndTitleUser(Model.Job.OpenedDate, Model.Job.OpenedTechUser)); @@ -85,13 +91,13 @@ WriteLiteral(">"); WriteLiteral("\r\n \r\n"); - #line 16 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 17 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 16 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 17 "..\..\Views\Job\JobParts\_Subject.cshtml" if (!Model.Job.ClosedDate.HasValue || Model.Job.ExpectedClosedDate.HasValue) { @@ -107,7 +113,7 @@ WriteLiteral(">Expected:\r\n \r\n " "); - #line 22 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 23 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Authorization.Has(Claims.Job.Properties.ExpectedClosedDate)) { @@ -115,40 +121,40 @@ WriteLiteral(">Expected:\r\n \r\n #line default #line hidden - #line 24 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 25 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.TextBoxFor(m => m.Job.ExpectedClosedDate, "{0:yyyy/MM/dd hh:mm tt}", new { @class = "small discreet" })); #line default #line hidden - #line 24 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 25 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 24 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 25 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(AjaxHelpers.AjaxSave()); #line default #line hidden - #line 24 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 25 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 24 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 25 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(AjaxHelpers.AjaxLoader()); #line default #line hidden - #line 24 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 25 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -172,7 +178,7 @@ WriteLiteral(@"> minDate: "); - #line 36 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 37 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.OpenedDate.ToJavascriptDate()); @@ -196,7 +202,7 @@ WriteLiteral(@", $.getJSON('"); - #line 51 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 52 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Url.Action(MVC.API.Job.UpdateExpectedClosedDate(Model.Job.Id, null))); @@ -219,7 +225,7 @@ WriteLiteral(@"', data, function (response, result) { "); - #line 65 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 66 "..\..\Views\Job\JobParts\_Subject.cshtml" } else { @@ -228,14 +234,14 @@ WriteLiteral(@"', data, function (response, result) { #line default #line hidden - #line 68 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 69 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(CommonHelpers.FriendlyDate(Model.Job.ExpectedClosedDate)); #line default #line hidden - #line 68 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 69 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -245,7 +251,7 @@ WriteLiteral(@"', data, function (response, result) { WriteLiteral(" \r\n \r\n"); - #line 72 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 73 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -254,7 +260,7 @@ WriteLiteral(" \r\n WriteLiteral(" "); - #line 73 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 74 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.ClosedDate.HasValue) { @@ -269,7 +275,7 @@ WriteLiteral(" id=\"Job_Show_Job_Dates_Closed\""); WriteLiteral(">"); - #line 78 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 79 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(CommonHelpers.FriendlyDateAndTitleUser(Model.Job.ClosedDate, Model.Job.ClosedTechUser)); @@ -278,7 +284,7 @@ WriteLiteral(">"); WriteLiteral("\r\n \r\n"); - #line 80 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 81 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -292,20 +298,20 @@ WriteLiteral(" class=\"status\""); WriteLiteral(">\r\n (Model.Job.JobType.Id + #line 85 "..\..\Views\Job\JobParts\_Subject.cshtml" +, Tuple.Create(Tuple.Create("", 5625), Tuple.Create(Model.Job.JobType.Id #line default #line hidden -, 5585), false) +, 5625), false) ); WriteLiteral(">"); - #line 84 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 85 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.JobType.Description); @@ -318,13 +324,13 @@ WriteLiteral(" class=\"none\""); WriteLiteral(">\r\n \r\n"); - #line 87 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 88 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 87 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 88 "..\..\Views\Job\JobParts\_Subject.cshtml" var jobSubTypeFirst = (int)Math.Ceiling((double)(Model.Job.JobSubTypes.Count + 1) / 2); @@ -338,13 +344,13 @@ WriteLiteral(" id=\"Job_Show_Job_SubTypes_1\""); WriteLiteral(">\r\n"); - #line 92 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 93 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 92 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 93 "..\..\Views\Job\JobParts\_Subject.cshtml" foreach (var jobSubType in Model.Job.JobSubTypes.Take(jobSubTypeFirst)) { @@ -353,20 +359,20 @@ WriteLiteral(">\r\n"); #line hidden WriteLiteral(" (jobSubType.Id + #line 95 "..\..\Views\Job\JobParts\_Subject.cshtml" +, Tuple.Create(Tuple.Create("", 6242), Tuple.Create(jobSubType.Id #line default #line hidden -, 6202), false) +, 6242), false) ); WriteLiteral(">"); - #line 94 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 95 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(jobSubType.Description); @@ -375,7 +381,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 95 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 96 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -389,13 +395,13 @@ WriteLiteral(" id=\"Job_Show_Job_SubTypes_2\""); WriteLiteral(">\r\n"); - #line 100 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 101 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 100 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 101 "..\..\Views\Job\JobParts\_Subject.cshtml" foreach (var jobSubType in Model.Job.JobSubTypes.Skip(jobSubTypeFirst)) { @@ -404,20 +410,20 @@ WriteLiteral(">\r\n"); #line hidden WriteLiteral(" (jobSubType.Id + #line 103 "..\..\Views\Job\JobParts\_Subject.cshtml" +, Tuple.Create(Tuple.Create("", 6702), Tuple.Create(jobSubType.Id #line default #line hidden -, 6662), false) +, 6702), false) ); WriteLiteral(">"); - #line 102 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 103 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(jobSubType.Description); @@ -426,7 +432,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 103 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 104 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -435,13 +441,13 @@ WriteLiteral("\r\n"); WriteLiteral(" \r\n"); - #line 105 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 106 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 105 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 106 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Authorization.Has(Claims.Job.Actions.UpdateSubTypes) && !Model.Job.ClosedDate.HasValue) { @@ -457,7 +463,7 @@ WriteLiteral(" id=\"Job_Show_Job_SubTypes_Update\""); WriteLiteral(">Update Sub Types\r\n"); - #line 108 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 109 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -467,13 +473,13 @@ WriteLiteral(" \r\n " \r\n"); - #line 112 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 113 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 112 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 113 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Authorization.Has(Claims.Job.Actions.UpdateSubTypes)) { @@ -491,7 +497,7 @@ WriteLiteral(">\r\n
    \r\n WriteLiteral(" "); - #line 117 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 118 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.JobType.Description); @@ -500,13 +506,13 @@ WriteLiteral(" "); WriteLiteral("\r\n"); - #line 118 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 119 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 118 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 119 "..\..\Views\Job\JobParts\_Subject.cshtml" using (Html.BeginForm(MVC.API.Job.UpdateSubTypes(Model.Job.Id, redirect: true), FormMethod.Post, new { id = "formUpdateJobTypes" })) { @@ -514,14 +520,14 @@ WriteLiteral("\r\n"); #line default #line hidden - #line 120 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 121 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(CommonHelpers.CheckBoxList("SubTypes", Model.UpdatableJobSubTypes.ToSelectListItems(Model.Job.JobSubTypes.ToList()), 3)); #line default #line hidden - #line 120 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 121 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -550,7 +556,7 @@ WriteLiteral(">Add Components for newly added Sub Types\r\n "
    \r\n"); - #line 126 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 127 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -582,7 +588,7 @@ WriteLiteral(" \r\n"); - #line 158 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 159 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -591,13 +597,13 @@ WriteLiteral(" \r\n
    \r\n"); - #line 198 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 199 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -671,13 +677,13 @@ WriteLiteral("?DocumentTemplateId=\';\r\n var $do WriteLiteral(" \r\n \r\n"); - #line 201 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 202 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 201 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 202 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.Device != null) { @@ -697,21 +703,21 @@ WriteLiteral(" title=\"Serial Number\""); WriteLiteral(">"); - #line 205 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 206 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Authorization.Has(Claims.Device.Show)) { #line default #line hidden - #line 206 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 207 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLink(Model.Job.DeviceSerialNumber, MVC.Device.Show(Model.Job.DeviceSerialNumber))); #line default #line hidden - #line 206 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 207 "..\..\Views\Job\JobParts\_Subject.cshtml" } else { @@ -719,14 +725,14 @@ WriteLiteral(">"); #line default #line hidden - #line 208 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 209 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.DeviceSerialNumber); #line default #line hidden - #line 208 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 209 "..\..\Views\Job\JobParts\_Subject.cshtml" } #line default @@ -745,14 +751,14 @@ WriteLiteral(" id=\"Job_Show_Device_Model_Image\""); WriteLiteral(" alt=\"Model Image\""); -WriteAttribute("src", Tuple.Create(" src=\"", 13561), Tuple.Create("\"", 13679) +WriteAttribute("src", Tuple.Create(" src=\"", 13601), Tuple.Create("\"", 13719) - #line 211 "..\..\Views\Job\JobParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 13567), Tuple.Create(Url.Action(MVC.API.DeviceModel.Image(Model.Job.Device.DeviceModelId, Model.Job.Device.DeviceModel.ImageHash())) + #line 212 "..\..\Views\Job\JobParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 13607), Tuple.Create(Url.Action(MVC.API.DeviceModel.Image(Model.Job.Device.DeviceModelId, Model.Job.Device.DeviceModel.ImageHash())) #line default #line hidden -, 13567), false) +, 13607), false) ); WriteLiteral(" />\r\n "); - #line 212 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 213 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.Device.ComputerName); @@ -779,7 +785,7 @@ WriteLiteral(" title=\"Model\""); WriteLiteral(">"); - #line 213 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 214 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLink(Model.Job.Device.DeviceModel.ToString(), MVC.Config.DeviceModel.Index(Model.Job.Device.DeviceModelId))); @@ -788,13 +794,13 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 214 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 215 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 214 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 215 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.Device.DeviceBatch != null) { @@ -810,7 +816,7 @@ WriteLiteral(" title=\"Batch\""); WriteLiteral(">"); - #line 216 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 217 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLink(Model.Job.Device.DeviceBatch.Name, MVC.Config.DeviceBatch.Index(Model.Job.Device.DeviceBatchId))); @@ -819,7 +825,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 217 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 218 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -828,13 +834,13 @@ WriteLiteral("\r\n"); WriteLiteral(" \r\n"); - #line 219 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 220 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 219 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 220 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.Device.DeviceBatch != null) { if (Model.Job.JobTypeId == JobType.JobTypeIds.HWar) @@ -855,7 +861,7 @@ WriteLiteral(" id=\"Job_Show_Device_Details_HWar_ValidUntil\""); WriteLiteral(" data-livestamp=\""); - #line 225 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 226 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.Device.DeviceBatch.WarrantyValidUntil.ToUnixEpoc()); @@ -866,7 +872,7 @@ WriteLiteral("\""); WriteLiteral(">"); - #line 225 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 226 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.Device.DeviceBatch.WarrantyValidUntil.ToFullDateTime("Unknown")); @@ -875,13 +881,13 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 226 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 227 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 226 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 227 "..\..\Views\Job\JobParts\_Subject.cshtml" if (!string.IsNullOrWhiteSpace(Model.Job.Device.DeviceBatch.WarrantyDetails)) { @@ -902,23 +908,23 @@ WriteLiteral(" id=\"Job_Show_Device_Details_HWar_Details_Dialog\""); WriteLiteral(" class=\"dialog\""); -WriteAttribute("title", Tuple.Create(" title=\"", 15343), Tuple.Create("\"", 15408) -, Tuple.Create(Tuple.Create("", 15351), Tuple.Create("Warranty", 15351), true) -, Tuple.Create(Tuple.Create(" ", 15359), Tuple.Create("Details", 15360), true) -, Tuple.Create(Tuple.Create(" ", 15367), Tuple.Create("for", 15368), true) +WriteAttribute("title", Tuple.Create(" title=\"", 15383), Tuple.Create("\"", 15448) +, Tuple.Create(Tuple.Create("", 15391), Tuple.Create("Warranty", 15391), true) +, Tuple.Create(Tuple.Create(" ", 15399), Tuple.Create("Details", 15400), true) +, Tuple.Create(Tuple.Create(" ", 15407), Tuple.Create("for", 15408), true) - #line 229 "..\..\Views\Job\JobParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create(" ", 15371), Tuple.Create(Model.Job.Device.DeviceBatch.Name + #line 230 "..\..\Views\Job\JobParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create(" ", 15411), Tuple.Create(Model.Job.Device.DeviceBatch.Name #line default #line hidden -, 15372), false) +, 15412), false) ); WriteLiteral(">\r\n
    "); - #line 230 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 231 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(new HtmlString(Model.Job.Device.DeviceBatch.WarrantyDetails)); @@ -948,7 +954,7 @@ WriteLiteral(@"> "); - #line 247 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 248 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -957,7 +963,7 @@ WriteLiteral(@"> WriteLiteral("
    \r\n"); - #line 249 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 250 "..\..\Views\Job\JobParts\_Subject.cshtml" } if (Model.Job.JobTypeId == JobType.JobTypeIds.HNWar) { @@ -977,7 +983,7 @@ WriteLiteral(" id=\"Job_Show_Device_Details_HNWar_InsuranceSupplier\""); WriteLiteral(">"); - #line 254 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 255 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.Device.DeviceBatch.InsuranceSupplier); @@ -990,7 +996,7 @@ WriteLiteral(" id=\"Job_Show_Device_Details_HNWar_ValidUntil\""); WriteLiteral(" data-livestamp=\""); - #line 255 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 256 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.Device.DeviceBatch.InsuredUntil.ToUnixEpoc()); @@ -1001,7 +1007,7 @@ WriteLiteral("\""); WriteLiteral(">"); - #line 255 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 256 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.Device.DeviceBatch.InsuredUntil.ToFullDateTime("Unknown")); @@ -1010,13 +1016,13 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 256 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 257 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 256 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 257 "..\..\Views\Job\JobParts\_Subject.cshtml" if (!string.IsNullOrWhiteSpace(Model.Job.Device.DeviceBatch.InsuranceDetails)) { @@ -1037,23 +1043,23 @@ WriteLiteral(" id=\"Job_Show_Device_Details_HNWar_Details_Dialog\""); WriteLiteral(" class=\"dialog\""); -WriteAttribute("title", Tuple.Create(" title=\"", 17671), Tuple.Create("\"", 17737) -, Tuple.Create(Tuple.Create("", 17679), Tuple.Create("Insurance", 17679), true) -, Tuple.Create(Tuple.Create(" ", 17688), Tuple.Create("Details", 17689), true) -, Tuple.Create(Tuple.Create(" ", 17696), Tuple.Create("for", 17697), true) +WriteAttribute("title", Tuple.Create(" title=\"", 17711), Tuple.Create("\"", 17777) +, Tuple.Create(Tuple.Create("", 17719), Tuple.Create("Insurance", 17719), true) +, Tuple.Create(Tuple.Create(" ", 17728), Tuple.Create("Details", 17729), true) +, Tuple.Create(Tuple.Create(" ", 17736), Tuple.Create("for", 17737), true) - #line 259 "..\..\Views\Job\JobParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create(" ", 17700), Tuple.Create(Model.Job.Device.DeviceBatch.Name + #line 260 "..\..\Views\Job\JobParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create(" ", 17740), Tuple.Create(Model.Job.Device.DeviceBatch.Name #line default #line hidden -, 17701), false) +, 17741), false) ); WriteLiteral(">\r\n
    "); - #line 260 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 261 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(new HtmlString(Model.Job.Device.DeviceBatch.InsuranceDetails)); @@ -1083,7 +1089,7 @@ WriteLiteral(@"> "); - #line 277 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 278 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1092,7 +1098,7 @@ WriteLiteral(@"> WriteLiteral("
    \r\n"); - #line 279 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 280 "..\..\Views\Job\JobParts\_Subject.cshtml" } } @@ -1102,13 +1108,13 @@ WriteLiteral(" \r\n"); WriteLiteral(" \r\n"); - #line 282 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 283 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 282 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 283 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.DeviceHeld.HasValue) { var canEditLocation = Authorization.Has(Claims.Job.Properties.DeviceHeldLocation); @@ -1135,13 +1141,13 @@ WriteLiteral(" id=\"Job_Show_Device_DeviceHeld_Location\""); WriteLiteral(">\r\n"); - #line 291 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 292 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 291 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 292 "..\..\Views\Job\JobParts\_Subject.cshtml" if (canEditLocation) { switch (Model.LocationMode) @@ -1153,14 +1159,14 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 297 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 298 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.TextBoxFor(m => m.Job.DeviceHeldLocation, new { @class = "small discreet" })); #line default #line hidden - #line 297 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 298 "..\..\Views\Job\JobParts\_Subject.cshtml" break; case Disco.Models.BI.Job.LocationModes.RestrictedList: @@ -1175,14 +1181,14 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 306 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 307 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.DropDownListFor(m => m.Job.DeviceHeldLocation, listOptions, new { @class = "small discreet" })); #line default #line hidden - #line 306 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 307 "..\..\Views\Job\JobParts\_Subject.cshtml" ; break; } @@ -1191,27 +1197,27 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 309 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 310 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(AjaxHelpers.AjaxSave()); #line default #line hidden - #line 309 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 310 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 309 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 310 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(AjaxHelpers.AjaxLoader()); #line default #line hidden - #line 309 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 310 "..\..\Views\Job\JobParts\_Subject.cshtml" } else if (string.IsNullOrEmpty(Model.Job.DeviceHeldLocation)) @@ -1227,7 +1233,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral("><None/Unknown>\r\n"); - #line 314 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 315 "..\..\Views\Job\JobParts\_Subject.cshtml" } else { @@ -1236,14 +1242,14 @@ WriteLiteral("><None/Unknown>\r\n"); #line default #line hidden - #line 317 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 318 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.DeviceHeldLocation); #line default #line hidden - #line 317 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 318 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1262,7 +1268,7 @@ WriteLiteral(" id=\"Job_Show_Device_DeviceHeld_DeviceHeld\""); WriteLiteral(">"); - #line 324 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 325 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(CommonHelpers.FriendlyDateAndTitleUser(Model.Job.DeviceHeld, Model.Job.DeviceHeldTechUser)); @@ -1271,13 +1277,13 @@ WriteLiteral(">"); WriteLiteral("\r\n \r\n"); - #line 326 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 327 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 326 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 327 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.DeviceReadyForReturn.HasValue) { @@ -1292,7 +1298,7 @@ WriteLiteral(" id=\"Job_Show_Device_DeviceHeld_DeviceReadyForReturn\""); WriteLiteral(">"); - #line 330 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 331 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(CommonHelpers.FriendlyDateAndTitleUser(Model.Job.DeviceReadyForReturn, Model.Job.DeviceReadyForReturnTechUser)); @@ -1301,7 +1307,7 @@ WriteLiteral(">"); WriteLiteral("\r\n \r\n"); - #line 332 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 333 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1310,7 +1316,7 @@ WriteLiteral("\r\n \r\n"); WriteLiteral(" "); - #line 333 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 334 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.DeviceReturnedDate.HasValue) { @@ -1325,7 +1331,7 @@ WriteLiteral(" id=\"Job_Show_Device_DeviceHeld_DeviceReturnedDate\""); WriteLiteral(">"); - #line 337 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 338 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(CommonHelpers.FriendlyDateAndTitleUser(Model.Job.DeviceReturnedDate, Model.Job.DeviceReturnedTechUser)); @@ -1334,7 +1340,7 @@ WriteLiteral(">"); WriteLiteral("\r\n \r\n"); - #line 339 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 340 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1343,13 +1349,13 @@ WriteLiteral("\r\n \r\n"); WriteLiteral(" \r\n"); - #line 341 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 342 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 341 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 342 "..\..\Views\Job\JobParts\_Subject.cshtml" if (canEditLocation) { @@ -1363,13 +1369,13 @@ WriteLiteral(" type=\"text/javascript\""); WriteLiteral(">\r\n $(function () {\r\n"); - #line 345 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 346 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 345 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 346 "..\..\Views\Job\JobParts\_Subject.cshtml" switch (Model.LocationMode) { case Disco.Models.BI.Job.LocationModes.Unrestricted: @@ -1396,7 +1402,7 @@ WriteLiteral(@" url: '"); - #line 362 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 363 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Url.Action(MVC.API.Job.DeviceHeldLocations())); @@ -1454,7 +1460,7 @@ WriteLiteral("\',\r\n dat " url: \'"); - #line 413 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 414 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Url.Action(MVC.API.Job.UpdateDeviceHeldLocation(Model.Job.Id, null))); @@ -1482,7 +1488,7 @@ WriteLiteral(@"', WriteLiteral("\r\n"); - #line 431 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 432 "..\..\Views\Job\JobParts\_Subject.cshtml" break; case Disco.Models.BI.Job.LocationModes.RestrictedList: @@ -1498,7 +1504,7 @@ WriteLiteral(@" '"); - #line 437 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 438 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Url.Action(MVC.API.Job.UpdateDeviceHeldLocation(Model.Job.Id, null))); @@ -1510,7 +1516,7 @@ WriteLiteral("\',\r\n \'DeviceHeldLoc WriteLiteral("\r\n"); - #line 440 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 441 "..\..\Views\Job\JobParts\_Subject.cshtml" break; } @@ -1521,7 +1527,7 @@ WriteLiteral("\r\n \r\n ");\r\n \r\n"); - #line 446 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 447 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1530,7 +1536,7 @@ WriteLiteral("\r\n \r\n WriteLiteral(" \r\n"); - #line 448 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 449 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1539,7 +1545,7 @@ WriteLiteral(" \r\n"); WriteLiteral(" \r\n \r\n"); - #line 451 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 452 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1548,7 +1554,7 @@ WriteLiteral(" \r\n \r\n"); WriteLiteral(" "); - #line 452 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 453 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.User != null) { @@ -1568,21 +1574,21 @@ WriteLiteral(" title=\"Display Name\""); WriteLiteral(">"); - #line 456 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 457 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Authorization.Has(Claims.User.Show)) { #line default #line hidden - #line 457 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 458 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLink(Model.Job.User.DisplayName, MVC.User.Show(Model.Job.UserId))); #line default #line hidden - #line 457 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 458 "..\..\Views\Job\JobParts\_Subject.cshtml" } else { @@ -1590,14 +1596,14 @@ WriteLiteral(">"); #line default #line hidden - #line 459 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 460 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.User.DisplayName); #line default #line hidden - #line 459 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 460 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1612,7 +1618,7 @@ WriteLiteral(" title=\"Id\""); WriteLiteral(">"); - #line 461 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 462 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.User.FriendlyId()); @@ -1621,13 +1627,13 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 462 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 463 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 462 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 463 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Authorization.Has(Claims.User.ShowDetails)) { if (!string.IsNullOrWhiteSpace(Model.Job.User.PhoneNumber)) @@ -1644,7 +1650,7 @@ WriteLiteral(" title=\"Phone Number\""); WriteLiteral(">Phone: "); - #line 465 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 466 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.User.PhoneNumber); @@ -1653,7 +1659,7 @@ WriteLiteral(">Phone: "); WriteLiteral(""); - #line 465 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 466 "..\..\Views\Job\JobParts\_Subject.cshtml" } if (!string.IsNullOrWhiteSpace(Model.Job.User.EmailAddress)) { @@ -1668,21 +1674,21 @@ WriteLiteral(" title=\"Email Address\""); WriteLiteral(">Email: (Model.Job.User.EmailAddress + #line 468 "..\..\Views\Job\JobParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 32996), Tuple.Create(Model.Job.User.EmailAddress #line default #line hidden -, 32956), false) +, 32996), false) ); WriteLiteral(">"); - #line 467 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 468 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.User.EmailAddress); @@ -1691,7 +1697,7 @@ WriteLiteral(">"); WriteLiteral(""); - #line 467 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 468 "..\..\Views\Job\JobParts\_Subject.cshtml" } } @@ -1701,7 +1707,166 @@ WriteLiteral(""); WriteLiteral(" "); - #line 469 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 470 "..\..\Views\Job\JobParts\_Subject.cshtml" + if (Authorization.Has(Claims.User.ShowFlagAssignments)) + { + + + #line default + #line hidden +WriteLiteral(" \r\n"); + + + #line 473 "..\..\Views\Job\JobParts\_Subject.cshtml" + + + #line default + #line hidden + + #line 473 "..\..\Views\Job\JobParts\_Subject.cshtml" + foreach (var flag in Model.Job.User.UserFlagAssignments.Where(f => !f.RemovedDate.HasValue).Select(f => Tuple.Create(f, UserFlagService.GetUserFlag(f.UserFlagId)))) + { + + + #line default + #line hidden +WriteLiteral(" (flag.Item2.Icon + + #line default + #line hidden +, 33528), false) +, Tuple.Create(Tuple.Create(" ", 33546), Tuple.Create("fa-fw", 33547), true) +, Tuple.Create(Tuple.Create(" ", 33552), Tuple.Create("d-", 33553), true) + + #line 475 "..\..\Views\Job\JobParts\_Subject.cshtml" +, Tuple.Create(Tuple.Create("", 33555), Tuple.Create(flag.Item2.IconColour + + #line default + #line hidden +, 33555), false) +); + +WriteLiteral(">"); + + + #line 475 "..\..\Views\Job\JobParts\_Subject.cshtml" + Write(flag.Item2.Name); + + + #line default + #line hidden +WriteLiteral(""); + + + #line 475 "..\..\Views\Job\JobParts\_Subject.cshtml" + if (flag.Item1.Comments != null) + { + + #line default + #line hidden +WriteLiteral(""); + + + #line 476 "..\..\Views\Job\JobParts\_Subject.cshtml" + Write(flag.Item1.Comments.ToHtmlComment()); + + + #line default + #line hidden +WriteLiteral(""); + + + #line 476 "..\..\Views\Job\JobParts\_Subject.cshtml" + } + + #line default + #line hidden +WriteLiteral(""); + + + #line 476 "..\..\Views\Job\JobParts\_Subject.cshtml" + Write(CommonHelpers.FriendlyDateAndUser(flag.Item1.AddedDate, flag.Item1.AddedUserId)); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 477 "..\..\Views\Job\JobParts\_Subject.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n $(function () {\r\n " + +" $(\'#Job_Show_User_Flags\')\r\n .toolt" + +"ip({\r\n items: \'i.flag\',\r\n " + +" content: function () {\r\n " + +" var $this = $(this);\r\n " + +" return $this.children(\'.details\').html();\r\n " + +" },\r\n tooltipClas" + +"s: \'User_FlagAssignment_Tooltip\',\r\n p" + +"osition: {\r\n my: \"right top\",\r\n " + +" at: \"right bottom\",\r\n " + +" collision: \"flipfit flip\"\r\n " + +" },\r\n hade: " + +"{\r\n effect: \'\'\r\n " + +" },\r\n close" + +": function (e, ui) {\r\n ui.tooltip" + +".hover(\r\n function () {\r\n " + +" $(this).stop(true).fadeTo(10" + +"0, 1);\r\n },\r\n " + +" function () {\r\n " + +" $(this).fadeOut(100, function () { $(this).remove(); " + +"});\r\n });\r\n " + +" }\r\n });\r\n " + +" });\r\n \r\n " + +" \r\n"); + + + #line 509 "..\..\Views\Job\JobParts\_Subject.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 510 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.WaitingForUserAction.HasValue) { @@ -1720,7 +1885,7 @@ WriteLiteral(">\r\n

    Awaiting Action

    \r\n WriteLiteral(" data-livestamp=\""); - #line 473 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 514 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.WaitingForUserAction.ToUnixEpoc()); @@ -1731,7 +1896,7 @@ WriteLiteral("\""); WriteLiteral(">"); - #line 473 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 514 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Model.Job.WaitingForUserAction.ToFullDateTime()); @@ -1740,7 +1905,7 @@ WriteLiteral(">"); WriteLiteral("\r\n \r\n"); - #line 475 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 516 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1749,7 +1914,7 @@ WriteLiteral("\r\n \r\n"); WriteLiteral(" \r\n \r\n"); - #line 478 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 519 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1766,13 +1931,13 @@ WriteLiteral(" id=\"Job_Show_Job_Actions\""); WriteLiteral(">\r\n"); - #line 482 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 523 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 482 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 523 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanCloseForced()) { @@ -1780,14 +1945,14 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 484 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 525 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Forcibly Close", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_ForceClose_Button")); #line default #line hidden - #line 484 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 525 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -1804,13 +1969,13 @@ WriteLiteral(" title=\"Forcibly Close this Job?\""); WriteLiteral(">\r\n"); - #line 486 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 527 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 486 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 527 "..\..\Views\Job\JobParts\_Subject.cshtml" using (Html.BeginForm(MVC.API.Job.ForceClose(Model.Job.Id, null, true))) { @@ -1834,7 +1999,7 @@ WriteLiteral(" class=\"block\""); WriteLiteral(">\r\n

    \r\n"); - #line 495 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 536 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1867,7 +2032,7 @@ WriteLiteral(">\r\n $(function () {\r\n " });\r\n });\r\n \r\n"); - #line 528 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 569 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1876,13 +2041,13 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral("\r\n"); - #line 530 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 571 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 530 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 571 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanCloseNormally()) { @@ -1890,14 +2055,14 @@ WriteLiteral("\r\n"); #line default #line hidden - #line 532 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 573 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Close", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_Close_Button")); #line default #line hidden - #line 532 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 573 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -1943,7 +2108,7 @@ WriteLiteral(">\r\n $(function () {\r\n " });\r\n });\r\n \r\n"); - #line 569 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 610 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -1952,7 +2117,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" "); - #line 570 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 611 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanReopen()) { @@ -1960,14 +2125,14 @@ WriteLiteral(" "); #line default #line hidden - #line 572 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 613 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Reopen Job", MVC.API.Job.Reopen(Model.Job.Id, true), "Job_Show_Job_Actions_Reopen_Button")); #line default #line hidden - #line 572 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 613 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -2014,7 +2179,7 @@ WriteLiteral(">\r\n $(function () {\r\n " });\r\n \r\n"); - #line 610 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 651 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2023,7 +2188,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" "); - #line 611 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 652 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanDelete()) { @@ -2031,14 +2196,14 @@ WriteLiteral(" "); #line default #line hidden - #line 613 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 654 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Delete", MVC.API.Job.Delete(Model.Job.Id, true), "Job_Show_Job_Actions_Delete_Button")); #line default #line hidden - #line 613 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 654 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -2086,7 +2251,7 @@ WriteLiteral(">\r\n $(function () {\r\n " \r\n"); - #line 651 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 692 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2095,7 +2260,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" "); - #line 652 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 693 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanAddQueues() && Model.AvailableQueues != null && Model.AvailableQueues.Count > 0) { @@ -2109,14 +2274,14 @@ WriteLiteral(" "); #line default #line hidden - #line 660 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 701 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Add to Queue", MVC.API.JobQueueJob.AddJob(), "Job_Show_Job_Actions_AddQueue_Button")); #line default #line hidden - #line 660 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 701 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -2133,13 +2298,13 @@ WriteLiteral(" title=\"Add Job to Queue\""); WriteLiteral(">\r\n"); - #line 662 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 703 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 662 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 703 "..\..\Views\Job\JobParts\_Subject.cshtml" using (Html.BeginForm(MVC.API.JobQueueJob.AddJob())) { @@ -2164,14 +2329,14 @@ WriteLiteral(" type=\"hidden\""); WriteLiteral(" name=\"JobId\""); -WriteAttribute("value", Tuple.Create(" value=\"", 43645), Tuple.Create("\"", 43666) +WriteAttribute("value", Tuple.Create(" value=\"", 46606), Tuple.Create("\"", 46627) - #line 665 "..\..\Views\Job\JobParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 43653), Tuple.Create(Model.Job.Id + #line 706 "..\..\Views\Job\JobParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 46614), Tuple.Create(Model.Job.Id #line default #line hidden -, 43653), false) +, 46614), false) ); WriteLiteral(" />\r\n"); @@ -2183,13 +2348,13 @@ WriteLiteral(" class=\"queuePicker\""); WriteLiteral(">\r\n"); - #line 667 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 708 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 667 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 708 "..\..\Views\Job\JobParts\_Subject.cshtml" foreach (var jobQueue in Model.AvailableQueues.OrderBy(jq => jq.Name)) { @@ -2203,7 +2368,7 @@ WriteLiteral(" class=\"queue\""); WriteLiteral(" data-queueid=\""); - #line 669 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 710 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(jobQueue.Id); @@ -2214,7 +2379,7 @@ WriteLiteral("\""); WriteLiteral(" data-queuesla=\""); - #line 669 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 710 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(jobQueue.DefaultSLAExpiry.HasValue ? jobQueue.DefaultSLAExpiry.Value.ToString() : null); @@ -2225,7 +2390,7 @@ WriteLiteral("\""); WriteLiteral(" data-queuepriority=\""); - #line 669 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 710 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(jobQueue.Priority.ToString()); @@ -2235,32 +2400,32 @@ WriteLiteral("\""); WriteLiteral(">\r\n (jobQueue.Icon + #line 711 "..\..\Views\Job\JobParts\_Subject.cshtml" +, Tuple.Create(Tuple.Create("", 47110), Tuple.Create(jobQueue.Icon #line default #line hidden -, 44149), false) -, Tuple.Create(Tuple.Create(" ", 44165), Tuple.Create("fa-fw", 44166), true) -, Tuple.Create(Tuple.Create(" ", 44171), Tuple.Create("fa-lg", 44172), true) -, Tuple.Create(Tuple.Create(" ", 44177), Tuple.Create("d-", 44178), true) +, 47110), false) +, Tuple.Create(Tuple.Create(" ", 47126), Tuple.Create("fa-fw", 47127), true) +, Tuple.Create(Tuple.Create(" ", 47132), Tuple.Create("fa-lg", 47133), true) +, Tuple.Create(Tuple.Create(" ", 47138), Tuple.Create("d-", 47139), true) - #line 670 "..\..\Views\Job\JobParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 44180), Tuple.Create(jobQueue.IconColour + #line 711 "..\..\Views\Job\JobParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 47141), Tuple.Create(jobQueue.IconColour #line default #line hidden -, 44180), false) +, 47141), false) ); WriteLiteral(">"); - #line 670 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 711 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(jobQueue.Name); @@ -2269,7 +2434,7 @@ WriteLiteral(">"); WriteLiteral("\r\n \r\n"); - #line 672 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 713 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2287,7 +2452,7 @@ WriteLiteral(">\r\n
    \r\n WriteLiteral(" "); - #line 677 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 718 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.DropDownList("Priority", priorityItems)); @@ -2295,27 +2460,27 @@ WriteLiteral(" "); #line hidden WriteLiteral(" (priorityValue.ToLower() + #line 718 "..\..\Views\Job\JobParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 47527), Tuple.Create(priorityValue.ToLower() #line default #line hidden -, 44566), false) +, 47527), false) ); -WriteAttribute("title", Tuple.Create(" title=\"", 44593), Tuple.Create("\"", 44626) +WriteAttribute("title", Tuple.Create(" title=\"", 47554), Tuple.Create("\"", 47587) - #line 677 "..\..\Views\Job\JobParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 44601), Tuple.Create(priorityValue + #line 718 "..\..\Views\Job\JobParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 47562), Tuple.Create(priorityValue #line default #line hidden -, 44601), false) -, Tuple.Create(Tuple.Create(" ", 44617), Tuple.Create("Priority", 44618), true) +, 47562), false) +, Tuple.Create(Tuple.Create(" ", 47578), Tuple.Create("Priority", 47579), true) ); WriteLiteral(">\r\n
    \r\n
    \r\n " + @@ -2324,7 +2489,7 @@ WriteLiteral(">\r\n
    \r\n WriteLiteral(" "); - #line 681 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 722 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.DropDownList("SLAExpiresMinutes", slaOptions)); @@ -2336,7 +2501,7 @@ WriteLiteral("\r\n \r\n WriteLiteral(" "); - #line 685 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 726 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.TextArea("Comment")); @@ -2345,7 +2510,7 @@ WriteLiteral(" "); WriteLiteral("\r\n \r\n \r\n"); - #line 688 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 729 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2361,48 +2526,52 @@ WriteLiteral(">\r\n $(function () {\r\n "Job_Show_Job_Actions_AddQueue_Button\');\r\n var buttonDialo" + "g = null;\r\n var buttonLink = button.attr(\'href\');\r\n " + " \r\n var queuePicker = null;\r\n " + -" var details = null;\r\n\r\n function queueSelect" + -"ed(){\r\n var queue = $(this);\r\n\r\n " + -" queuePicker.children().removeClass(\'selected\');\r\n " + -" queue.addClass(\'selected\');\r\n\r\n $(\'#Job_Show_Job_" + -"Actions_AddQueue_Dialog_Id\').val(queue.attr(\'data-queueid\'));\r\n\r\n " + -" var queueSLA = queue.attr(\'data-queuesla\');\r\n " + -" if (!queueSLA)\r\n queueSLA = 0;\r\n\r\n " + -" details.find(\'#Priority\').val(\'Normal\');\r\n " + -" details.find(\'#SLAExpiresMinutes\').val(queueSLA);\r\n\r\n " + -" details.show();\r\n }\r\n \r\n" + -" button.attr(\'href\', \'#\').click(function (e) {\r\n " + -" e.preventDefault();\r\n\r\n if (!butto" + -"nDialog){\r\n buttonDialog = $(\'#Job_Show_Job_Actio" + -"ns_AddQueue_Dialog\');\r\n buttonDialog.dialog({\r\n " + -" width: 600,\r\n " + -" height: 410,\r\n resizable: false,\r\n " + -" modal: true,\r\n au" + -"toOpen: false,\r\n buttons: {\r\n " + -" Cancel: function () {\r\n " + -" $(this).dialog(\"close\");\r\n },\r" + -"\n \"Add to Queue\": function () {\r\n " + -" var $this = $(this);\r\n " + -" $this.dialog(\"disable\");\r\n " + -" $this.dialog(\"option\", \"buttons\", null);\r\n " + -" buttonDialog.find(\'form\').submit();\r\n " + -" }\r\n }\r\n " + -" });\r\n\r\n queuePicker = buttonDialog.find(" + -"\'.queuePicker\');\r\n details = buttonDialog.find(\'." + -"details\');\r\n\r\n var priorityList = buttonDialog.fi" + -"nd(\'#Priority\');\r\n priorityList.change(function (" + -") {\r\n var icon = priorityList.closest(\'div\')." + -"find(\'i\').first();\r\n icon[0].className = \'\';\r" + -"\n icon.addClass(\'fa d-priority-\' + priorityLi" + -"st.val().toLowerCase()).attr(\'title\', priorityList.val() + \' Priority\');\r\n " + -" });\r\n\r\n queuePicker.on(" + -"\'click\', \'div.queue\', queueSelected);\r\n }\r\n\r\n " + -" buttonDialog.dialog(\'open\');\r\n re" + -"turn false;\r\n });\r\n });\r\n " + -" \r\n"); +" var queueId = null;\r\n var details = null;\r\n\r" + +"\n function queueSelected(){\r\n " + +"var queue = $(this);\r\n\r\n queuePicker.children().remov" + +"eClass(\'selected\');\r\n queue.addClass(\'selected\');\r\n\r\n" + +" queueId.val(queue.attr(\'data-queueid\'));\r\n\r\n " + +" var queueSLA = queue.attr(\'data-queuesla\');\r\n " + +" if (!queueSLA)\r\n queueSLA = 0;\r\n\r\n " + +" details.find(\'#Priority\').val(\'Normal\');\r\n " + +" details.find(\'#SLAExpiresMinutes\').val(queueSLA);\r\n\r\n " + +" details.show();\r\n }\r\n " + +" \r\n button.attr(\'href\', \'#\').click(function (e) {\r\n " + +" e.preventDefault();\r\n\r\n if " + +"(!buttonDialog){\r\n buttonDialog = $(\'#Job_Show_Jo" + +"b_Actions_AddQueue_Dialog\');\r\n buttonDialog.dialo" + +"g({\r\n width: 600,\r\n " + +" height: 410,\r\n resizable: false,\r\n " + +" modal: true,\r\n " + +" autoOpen: false,\r\n buttons: {\r\n " + +" Cancel: function () {\r\n " + +" $(this).dialog(\"close\");\r\n " + +" },\r\n \"Add to Queue\": function () {\r\n " + +" if (!!queueId.val()){\r\n " + +" var $this = $(this);\r\n " + +" $this.dialog(\"disable\");\r\n " + +" $this.dialog(\"option\", \"buttons\", null);\r\n " + +" buttonDialog.find(\'form\').submit();\r\n " + +" }else{\r\n " + +" alert(\'Select a Job Queue\');\r\n }" + +"\r\n }\r\n " + +" }\r\n });\r\n\r\n queue" + +"Picker = buttonDialog.find(\'.queuePicker\');\r\n que" + +"ueId = $(\'#Job_Show_Job_Actions_AddQueue_Dialog_Id\');\r\n " + +" details = buttonDialog.find(\'.details\');\r\n\r\n " + +" var priorityList = buttonDialog.find(\'#Priority\');\r\n " + +" priorityList.change(function () {\r\n va" + +"r icon = priorityList.closest(\'div\').find(\'i\').first();\r\n " + +" icon[0].className = \'\';\r\n icon.a" + +"ddClass(\'fa d-priority-\' + priorityList.val().toLowerCase()).attr(\'title\', prior" + +"ityList.val() + \' Priority\');\r\n });\r\n\r\n " + +" queuePicker.on(\'click\', \'div.queue\', queueSelected);\r\n " + +" }\r\n\r\n buttonDialog.dialog(\'op" + +"en\');\r\n return false;\r\n });\r\n " + +" });\r\n \r\n"); - #line 759 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 806 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2411,7 +2580,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" "); - #line 760 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 807 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanLogWarranty()) { @@ -2419,14 +2588,14 @@ WriteLiteral(" "); #line default #line hidden - #line 762 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 809 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Log Warranty", MVC.Job.LogWarranty(Model.Job.Id, null, null), "Job_Show_Job_Actions_LogWarranty_Button")); #line default #line hidden - #line 762 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 809 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2436,7 +2605,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 764 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 811 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanWarrantyCompleted()) { @@ -2444,14 +2613,14 @@ WriteLiteral(" "); #line default #line hidden - #line 766 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 813 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Warranty Complete", MVC.API.Job.UpdateWarrantyExternalCompletedDate(Model.Job.Id, "Now", true), "Job_Show_Job_Actions_WarrantyComplete_Button", "alert")); #line default #line hidden - #line 766 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 813 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2461,7 +2630,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 768 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 815 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanInsuranceClaimFormSent()) { @@ -2469,14 +2638,14 @@ WriteLiteral(" "); #line default #line hidden - #line 770 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 817 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Insurance Claim Sent", MVC.API.Job.UpdateInsuranceClaimFormSentDate(Model.Job.Id, "Now", true), "Job_Show_Job_Actions_InsuranceClaimSent_Button", "alert")); #line default #line hidden - #line 770 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 817 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2486,7 +2655,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 772 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 819 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanLogRepair()) { @@ -2494,14 +2663,14 @@ WriteLiteral(" "); #line default #line hidden - #line 774 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 821 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Repairs Logged", MVC.API.Job.LogRepair(Model.Job.Id, null, null, true), "Job_Show_Job_Actions_LogRepair_Button")); #line default #line hidden - #line 774 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 821 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -2518,13 +2687,13 @@ WriteLiteral(" title=\"Repairs Logged\""); WriteLiteral(">\r\n"); - #line 776 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 823 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 776 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 823 "..\..\Views\Job\JobParts\_Subject.cshtml" using (Html.BeginForm(MVC.API.Job.LogRepair(Model.Job.Id, null, null, true))) { @@ -2556,7 +2725,7 @@ WriteLiteral(" name=\"RepairerReference\""); WriteLiteral(" />\r\n

    \r\n"); - #line 786 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 833 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2594,7 +2763,7 @@ WriteLiteral(">\r\n $(function () {\r\n " });\r\n });\r\n \r\n"); - #line 824 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 871 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2603,7 +2772,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" "); - #line 825 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 872 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanRepairComplete()) { @@ -2611,14 +2780,14 @@ WriteLiteral(" "); #line default #line hidden - #line 827 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 874 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Repairs Complete", MVC.API.Job.UpdateNonWarrantyRepairerCompletedDate(Model.Job.Id, "Now", true), "Job_Show_Job_Actions_RepairComplete_Button", "alert")); #line default #line hidden - #line 827 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 874 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2628,7 +2797,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 829 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 876 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanConvertHWarToHNWar()) { @@ -2636,14 +2805,14 @@ WriteLiteral(" "); #line default #line hidden - #line 831 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 878 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Convert to Non-Warranty", MVC.API.Job.ConvertHWarToHNWar(Model.Job.Id, true), "Job_Show_Job_Actions_ConvertToHNWar_Button")); #line default #line hidden - #line 831 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 878 "..\..\Views\Job\JobParts\_Subject.cshtml" @@ -2691,7 +2860,7 @@ WriteLiteral(">\r\n $(function () {\r\n " \r\n });\r\n \r\n"); - #line 871 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 918 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2700,13 +2869,13 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" \r\n"); - #line 873 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 920 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 873 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 920 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.Device != null) { @@ -2720,13 +2889,13 @@ WriteLiteral(" id=\"Job_Show_Device_Actions\""); WriteLiteral(">\r\n"); - #line 876 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 923 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 876 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 923 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanDeviceHeld()) { @@ -2734,14 +2903,14 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 878 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 925 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Device Held", MVC.API.Job.DeviceHeld(Model.Job.Id, true), "Job_Show_Device_Actions_Held_Button")); #line default #line hidden - #line 878 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 925 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2751,7 +2920,7 @@ WriteLiteral(">\r\n"); WriteLiteral(" "); - #line 880 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 927 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanDeviceReadyForReturn()) { @@ -2759,14 +2928,14 @@ WriteLiteral(" "); #line default #line hidden - #line 882 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 929 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Device Ready For Return", MVC.API.Job.DeviceReadyForReturn(Model.Job.Id, true), "Job_Show_Device_Actions_DeviceReadyForReturn_Button", "alert")); #line default #line hidden - #line 882 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 929 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2776,7 +2945,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 884 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 931 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanDeviceReturned()) { @@ -2784,14 +2953,14 @@ WriteLiteral(" "); #line default #line hidden - #line 886 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 933 "..\..\Views\Job\JobParts\_Subject.cshtml" Write(Html.ActionLinkSmallButton("Device Returned", MVC.API.Job.DeviceReturned(Model.Job.Id, true), "Job_Show_Device_Actions_DeviceReturned_Button", Model.Job.CanDeviceReadyForReturn() ? null : "alert")); #line default #line hidden - #line 886 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 933 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2801,7 +2970,7 @@ WriteLiteral(" "); WriteLiteral(" \r\n"); - #line 889 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 936 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2810,7 +2979,7 @@ WriteLiteral(" \r\n"); WriteLiteral(" "); - #line 890 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 937 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.User != null) { @@ -2824,13 +2993,13 @@ WriteLiteral(" id=\"Job_Show_User_Actions\""); WriteLiteral(">\r\n\r\n\r\n"); - #line 895 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 942 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 895 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 942 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanWaitingForUserAction()) { @@ -2858,13 +3027,13 @@ WriteLiteral(" title=\"Waiting for User Action\""); WriteLiteral(">\r\n"); - #line 899 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 946 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 899 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 946 "..\..\Views\Job\JobParts\_Subject.cshtml" using (Html.BeginForm(MVC.API.Job.WaitingForUserAction(Model.Job.Id, null, true))) { @@ -2882,7 +3051,7 @@ WriteLiteral(" class=\"block\""); WriteLiteral(">\r\n

    \r\n"); - #line 905 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 952 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2917,7 +3086,7 @@ WriteLiteral(">\r\n $(function () {\r\n " });\r\n \r\n"); - #line 938 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 985 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -2926,7 +3095,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral(" "); - #line 939 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 986 "..\..\Views\Job\JobParts\_Subject.cshtml" if (Model.Job.CanNotWaitingForUserAction()) { @@ -2954,13 +3123,13 @@ WriteLiteral(" title=\"Not Waiting for User Action\""); WriteLiteral(">\r\n"); - #line 943 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 990 "..\..\Views\Job\JobParts\_Subject.cshtml" #line default #line hidden - #line 943 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 990 "..\..\Views\Job\JobParts\_Subject.cshtml" using (Html.BeginForm(MVC.API.Job.NotWaitingForUserAction(Model.Job.Id, null, true))) { @@ -2978,7 +3147,7 @@ WriteLiteral(" class=\"block\""); WriteLiteral(">\r\n

    \r\n"); - #line 949 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 996 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -3014,7 +3183,7 @@ WriteLiteral(">\r\n $(function () {\r\n " });\r\n \r\n"); - #line 983 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 1030 "..\..\Views\Job\JobParts\_Subject.cshtml" } @@ -3023,7 +3192,7 @@ WriteLiteral(">\r\n $(function () {\r\n WriteLiteral("\r\n \r\n"); - #line 986 "..\..\Views\Job\JobParts\_Subject.cshtml" + #line 1033 "..\..\Views\Job\JobParts\_Subject.cshtml" } diff --git a/Disco.Web/Views/Job/Show.cshtml b/Disco.Web/Views/Job/Show.cshtml index 61fb7c90..0a92169d 100644 --- a/Disco.Web/Views/Job/Show.cshtml +++ b/Disco.Web/Views/Job/Show.cshtml @@ -20,8 +20,8 @@ @Html.Partial(MVC.Job.Views.JobParts._Subject, Model) diff --git a/Disco.Web/Views/Job/Show.generated.cs b/Disco.Web/Views/Job/Show.generated.cs index a02c9a18..745fdc4d 100644 --- a/Disco.Web/Views/Job/Show.generated.cs +++ b/Disco.Web/Views/Job/Show.generated.cs @@ -201,8 +201,8 @@ WriteLiteral(" \r\n \r\n $(function () {\r\n $(\'#Job_Show_Status\').appendTo(\'#layout_P" + -"ageHeading\')\r\n $(\'#Job_Show_QueueStatus\').appendTo(\'#layout_PageHeadi" + -"ng\')\r\n });\r\n \r\n"); +"ageHeading\');\r\n $(\'#Job_Show_QueueStatus\').appendTo(\'#layout_PageHead" + +"ing\');\r\n });\r\n \r\n"); WriteLiteral(" "); diff --git a/Disco.Web/Views/User/Show.cshtml b/Disco.Web/Views/User/Show.cshtml index 6cfe0477..1f143081 100644 --- a/Disco.Web/Views/User/Show.cshtml +++ b/Disco.Web/Views/User/Show.cshtml @@ -1,10 +1,49 @@ @model Disco.Web.Models.User.ShowModel +@using Disco.Services.Users.UserFlags; @{ Authorization.Require(Claims.User.Show); ViewBag.Title = Html.ToBreadcrumb("Users", MVC.User.Index(), string.Format("User: {0} ({1})", Model.User.DisplayName, Model.User.FriendlyId())); }
    +
    + @foreach (var flag in Model.User.UserFlagAssignments.Where(f => !f.RemovedDate.HasValue).Select(f => Tuple.Create(f, UserFlagService.GetUserFlag(f.UserFlagId)))) + { + @flag.Item2.Name@if (flag.Item1.Comments != null) + {@flag.Item1.Comments.ToHtmlComment()}@CommonHelpers.FriendlyDateAndUser(flag.Item1.AddedDate, flag.Item1.AddedUser) + } +
    + @Html.Partial(MVC.User.Views.UserParts._Subject, Model) +"); + WriteLiteral(" "); - #line 8 "..\..\Views\User\Show.cshtml" + #line 47 "..\..\Views\User\Show.cshtml" Write(Html.Partial(MVC.User.Views.UserParts._Subject, Model)); @@ -103,13 +258,13 @@ WriteLiteral(" id=\"UserDetailTabItems\""); WriteLiteral(">\r\n"); - #line 44 "..\..\Views\User\Show.cshtml" + #line 83 "..\..\Views\User\Show.cshtml" #line default #line hidden - #line 44 "..\..\Views\User\Show.cshtml" + #line 83 "..\..\Views\User\Show.cshtml" if (Authorization.Has(Claims.User.ShowJobs)) { @@ -117,14 +272,14 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 46 "..\..\Views\User\Show.cshtml" + #line 85 "..\..\Views\User\Show.cshtml" Write(Html.Partial(MVC.User.Views.UserParts._Jobs, Model)); #line default #line hidden - #line 46 "..\..\Views\User\Show.cshtml" + #line 85 "..\..\Views\User\Show.cshtml" } @@ -134,7 +289,7 @@ WriteLiteral(">\r\n"); WriteLiteral(" "); - #line 48 "..\..\Views\User\Show.cshtml" + #line 87 "..\..\Views\User\Show.cshtml" if (Authorization.Has(Claims.User.ShowAssignmentHistory)) { @@ -142,14 +297,14 @@ WriteLiteral(" "); #line default #line hidden - #line 50 "..\..\Views\User\Show.cshtml" + #line 89 "..\..\Views\User\Show.cshtml" Write(Html.Partial(MVC.User.Views.UserParts._AssignmentHistory, Model)); #line default #line hidden - #line 50 "..\..\Views\User\Show.cshtml" + #line 89 "..\..\Views\User\Show.cshtml" } @@ -159,7 +314,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 52 "..\..\Views\User\Show.cshtml" + #line 91 "..\..\Views\User\Show.cshtml" if (Authorization.Has(Claims.User.ShowAttachments)) { @@ -167,14 +322,14 @@ WriteLiteral(" "); #line default #line hidden - #line 54 "..\..\Views\User\Show.cshtml" + #line 93 "..\..\Views\User\Show.cshtml" Write(Html.Partial(MVC.User.Views.UserParts._Resources, Model)); #line default #line hidden - #line 54 "..\..\Views\User\Show.cshtml" + #line 93 "..\..\Views\User\Show.cshtml" } @@ -184,7 +339,32 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 56 "..\..\Views\User\Show.cshtml" + #line 95 "..\..\Views\User\Show.cshtml" + if (Authorization.Has(Claims.User.ShowFlagAssignments)) + { + + + #line default + #line hidden + + #line 97 "..\..\Views\User\Show.cshtml" + Write(Html.Partial(MVC.User.Views.UserParts._Flags, Model)); + + + #line default + #line hidden + + #line 97 "..\..\Views\User\Show.cshtml" + + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 99 "..\..\Views\User\Show.cshtml" if (Authorization.Has(Claims.User.ShowAuthorization)) { @@ -192,14 +372,14 @@ WriteLiteral(" "); #line default #line hidden - #line 58 "..\..\Views\User\Show.cshtml" + #line 101 "..\..\Views\User\Show.cshtml" Write(Html.Partial(MVC.User.Views.UserParts._Authorization, Model)); #line default #line hidden - #line 58 "..\..\Views\User\Show.cshtml" + #line 101 "..\..\Views\User\Show.cshtml" } diff --git a/Disco.Web/Views/User/UserParts/_Flags.cshtml b/Disco.Web/Views/User/UserParts/_Flags.cshtml new file mode 100644 index 00000000..a6c02aec --- /dev/null +++ b/Disco.Web/Views/User/UserParts/_Flags.cshtml @@ -0,0 +1,174 @@ +@model Disco.Web.Models.User.ShowModel +@using Disco.Services.Users.UserFlags; +@{ + Authorization.Require(Claims.User.ShowFlagAssignments); + + var hasRemove = Authorization.Has(Claims.User.Actions.RemoveFlags); + var hasEdit = Authorization.Has(Claims.User.Actions.EditFlags); + + var hasUserFlagShow = Authorization.Has(Claims.Config.UserFlag.Show); + var activeAssignmentCount = Model.User.UserFlagAssignments == null ? 0 : Model.User.UserFlagAssignments.Count(a => !a.RemovedDate.HasValue); + + var flagAssignments = Model.User.UserFlagAssignments.Select(a => Tuple.Create(a, UserFlagService.GetUserFlag(a.UserFlagId))).ToList(); +} +
    + @if (flagAssignments.Count > 0) + { + + + + + + + + @foreach (var fa in flagAssignments.OrderByDescending(a => a.Item1.AddedDate)) + { + + + + + + + } +
    NameAddedCommentsRemoved
    + + @if (hasUserFlagShow) + { + @Html.ActionLink(fa.Item2.Name, MVC.Config.UserFlag.Index(fa.Item2.Id)) + } + else + { + @fa.Item2.Name + } + + @CommonHelpers.FriendlyDateAndUser(fa.Item1.AddedDate, fa.Item1.AddedUser) + + @if (hasEdit) + { +
    + } + @if (fa.Item1.Comments == null) + { +
    [no comments]
    + } + else + { +
    @fa.Item1.Comments.ToHtmlComment()
    +
    @fa.Item1.Comments
    + } +
    + @if (fa.Item1.RemovedDate.HasValue) + { + @CommonHelpers.FriendlyDateAndUser(fa.Item1.RemovedDate.Value, fa.Item1.RemovedUser) + } + else if (fa.Item1.CanRemove()) + { + Remove + } +
    +
    + @using (Html.BeginForm(MVC.API.UserFlagAssignment.RemoveUser())) + { + +

    +  Are you sure? +

    + } +
    +
    + @using (Html.BeginForm(MVC.API.UserFlagAssignment.UpdateComments())) + { + + +

    Comments:

    +

    + +

    + } +
    + + } + else + { +
    This user has no associated flags
    + } + +
    diff --git a/Disco.Web/Views/User/UserParts/_Flags.generated.cs b/Disco.Web/Views/User/UserParts/_Flags.generated.cs new file mode 100644 index 00000000..03c4a62d --- /dev/null +++ b/Disco.Web/Views/User/UserParts/_Flags.generated.cs @@ -0,0 +1,629 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.34014 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.User.UserParts +{ + 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.BI.Extensions; + using Disco.Models.Repository; + using Disco.Services; + using Disco.Services.Authorization; + + #line 2 "..\..\Views\User\UserParts\_Flags.cshtml" + using Disco.Services.Users.UserFlags; + + #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("~/Views/User/UserParts/_Flags.cshtml")] + public partial class Flags : Disco.Services.Web.WebViewPage + { + public Flags() + { + } + public override void Execute() + { + + #line 3 "..\..\Views\User\UserParts\_Flags.cshtml" + + Authorization.Require(Claims.User.ShowFlagAssignments); + + var hasRemove = Authorization.Has(Claims.User.Actions.RemoveFlags); + var hasEdit = Authorization.Has(Claims.User.Actions.EditFlags); + + var hasUserFlagShow = Authorization.Has(Claims.Config.UserFlag.Show); + var activeAssignmentCount = Model.User.UserFlagAssignments == null ? 0 : Model.User.UserFlagAssignments.Count(a => !a.RemovedDate.HasValue); + + var flagAssignments = Model.User.UserFlagAssignments.Select(a => Tuple.Create(a, UserFlagService.GetUserFlag(a.UserFlagId))).ToList(); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n"); + + + #line 15 "..\..\Views\User\UserParts\_Flags.cshtml" + + + #line default + #line hidden + + #line 15 "..\..\Views\User\UserParts\_Flags.cshtml" + if (flagAssignments.Count > 0) + { + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n Name\r\n Added\r\n Comments\r\n Removed\r\n \r\n"); + + + #line 24 "..\..\Views\User\UserParts\_Flags.cshtml" + + + #line default + #line hidden + + #line 24 "..\..\Views\User\UserParts\_Flags.cshtml" + foreach (var fa in flagAssignments.OrderByDescending(a => a.Item1.AddedDate)) + { + + + #line default + #line hidden +WriteLiteral("
    \r\n"); + + + #line 45 "..\..\Views\User\UserParts\_Flags.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 46 "..\..\Views\User\UserParts\_Flags.cshtml" + if (fa.Item1.Comments == null) + { + + + #line default + #line hidden +WriteLiteral(" [no comments]\r\n"); + + + #line 49 "..\..\Views\User\UserParts\_Flags.cshtml" + } + else + { + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 52 "..\..\Views\User\UserParts\_Flags.cshtml" + Write(fa.Item1.Comments.ToHtmlComment()); + + + #line default + #line hidden +WriteLiteral("\r\n"); + +WriteLiteral(" "); + + + #line 53 "..\..\Views\User\UserParts\_Flags.cshtml" + Write(fa.Item1.Comments); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 54 "..\..\Views\User\UserParts\_Flags.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n (!fa.Item1.RemovedDate.HasValue ? " na" : null + + #line default + #line hidden +, 2734), false) +); + +WriteLiteral(">\r\n"); + + + #line 57 "..\..\Views\User\UserParts\_Flags.cshtml" + + + #line default + #line hidden + + #line 57 "..\..\Views\User\UserParts\_Flags.cshtml" + if (fa.Item1.RemovedDate.HasValue) + { + + + #line default + #line hidden + + #line 59 "..\..\Views\User\UserParts\_Flags.cshtml" + Write(CommonHelpers.FriendlyDateAndUser(fa.Item1.RemovedDate.Value, fa.Item1.RemovedUser)); + + + #line default + #line hidden + + #line 59 "..\..\Views\User\UserParts\_Flags.cshtml" + + } + else if (fa.Item1.CanRemove()) + { + + + #line default + #line hidden +WriteLiteral(" Remove\r\n"); + + + #line 64 "..\..\Views\User\UserParts\_Flags.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n"); + + + #line 67 "..\..\Views\User\UserParts\_Flags.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n"); + +WriteLiteral(" \r\n"); + + + #line 70 "..\..\Views\User\UserParts\_Flags.cshtml" + + + #line default + #line hidden + + #line 70 "..\..\Views\User\UserParts\_Flags.cshtml" + using (Html.BeginForm(MVC.API.UserFlagAssignment.RemoveUser())) + { + + + #line default + #line hidden +WriteLiteral(" \r\n"); + +WriteLiteral("

    \r\n  Are you sure?\r\n

    \r\n"); + + + #line 76 "..\..\Views\User\UserParts\_Flags.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n"); + +WriteLiteral(" \r\n"); + + + #line 79 "..\..\Views\User\UserParts\_Flags.cshtml" + + + #line default + #line hidden + + #line 79 "..\..\Views\User\UserParts\_Flags.cshtml" + using (Html.BeginForm(MVC.API.UserFlagAssignment.UpdateComments())) + { + + + #line default + #line hidden +WriteLiteral(" \r\n"); + +WriteLiteral(" \r\n"); + +WriteLiteral("

    Comments:

    \r\n"); + +WriteLiteral("

    \r\n \r\n

    \r\n"); + + + #line 87 "..\..\Views\User\UserParts\_Flags.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n"); + +WriteLiteral(" \r\n $(function () {\r\n var userFlags = $(\'#userFlags\');\r" + +"\n\r\n var dialog = null;\r\n var dialogEditComments = " + +"null;\r\n\r\n userFlags.on(\'click\', \'a.remove\', function (e) {\r\n " + +" var $this = $(this);\r\n var UserFlagAssignmentI" + +"d = $this.closest(\'tr\').attr(\'data-userflagassignmentid\');\r\n\r\n " + +" if (!dialog) {\r\n dialog = $(\'#User_Show_Flags_Actions_R" + +"emove_Dialog\');\r\n dialog.dialog({\r\n " + +" resizable: false,\r\n modal: true,\r\n " + +" autoOpen: false,\r\n buttons: {\r\n " + +" \"Remove Flag\": function () {\r\n " + +" var $this = $(this);\r\n $this.dialo" + +"g(\"disable\");\r\n $this.dialog(\"option\", \"butto" + +"ns\", null);\r\n $this.find(\'form\').submit();\r\n " + +" },\r\n Cancel: funct" + +"ion () {\r\n $(this).dialog(\"close\");\r\n " + +" }\r\n }\r\n " + +" });\r\n }\r\n\r\n $(\'#User_Show_Flags_Actions_" + +"Remove_Dialog_Id\').val(UserFlagAssignmentId);\r\n dialog.dialog" + +"(\'open\');\r\n\r\n e.preventDefault();\r\n return" + +" false;\r\n });\r\n\r\n userFlags.on(\'click\', \'td.commen" + +"ts i.fa-edit\', function (e) {\r\n var $this = $(this);\r\n " + +" var UserFlagAssignmentId = $this.closest(\'tr\').attr(\'data-userflaga" + +"ssignmentid\');\r\n\r\n if (!dialogEditComments) {\r\n " + +" dialogEditComments = $(\'#User_Show_Flags_Actions_EditComments_Dialog\')" + +";\r\n dialogEditComments.dialog({\r\n " + +" resizable: false,\r\n modal: true,\r\n " + +" width: 320,\r\n autoOpen: false,\r\n " + +" buttons: {\r\n \"Save Changes\": " + +"function () {\r\n var $this = $(this);\r\n " + +" $this.dialog(\"disable\");\r\n " + +" $this.dialog(\"option\", \"buttons\", null);\r\n " + +" $this.find(\'form\').submit();\r\n },\r\n " + +" Cancel: function () {\r\n " + +" $(this).dialog(\"close\");\r\n }\r\n " + +" }\r\n });\r\n }\r\n\r\n " + +" var $comments = $this.closest(\'td\').find(\'.commentsRaw\');\r\n " + +" if ($comments.hasClass(\'smallMessage\')) {\r\n $(" + +"\'#User_Show_Flags_Actions_EditComments_Dialog_Comments\').val(\'\');\r\n " + +" } else {\r\n $(\'#User_Show_Flags_Actions_EditComment" + +"s_Dialog_Comments\').val($comments.text());\r\n }\r\n\r\n " + +" $(\'#User_Show_Flags_Actions_EditComments_Dialog_Id\').val(UserFlagAssign" + +"mentId);\r\n dialogEditComments.dialog(\'open\');\r\n " + +" e.preventDefault();\r\n return false;\r\n })" + +";\r\n });\r\n \r\n"); + + + #line 166 "..\..\Views\User\UserParts\_Flags.cshtml" + } + else + { + + + #line default + #line hidden +WriteLiteral(" This user has no associated flags\r\n"); + + + #line 170 "..\..\Views\User\UserParts\_Flags.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/User/UserParts/_Subject.cshtml b/Disco.Web/Views/User/UserParts/_Subject.cshtml index 9c139561..65bb6361 100644 --- a/Disco.Web/Views/User/UserParts/_Subject.cshtml +++ b/Disco.Web/Views/User/UserParts/_Subject.cshtml @@ -221,6 +221,96 @@ } } + @if (Model.User.CanAddUserFlags() && Model.AvailableUserFlags != null && Model.AvailableUserFlags.Count > 0) + { + @Html.ActionLinkSmallButton("Add Flag", MVC.API.UserFlagAssignment.AddUser(), "User_Show_Details_Actions_AddFlag_Button") +
    + @using (Html.BeginForm(MVC.API.UserFlagAssignment.AddUser())) + { + + +
    + @foreach (var userFlag in Model.AvailableUserFlags.OrderBy(jq => jq.Name)) + { +
    + @userFlag.Name +
    + } +
    +
    +
    +

    Comments

    + +
    +
    + } +
    + + } diff --git a/Disco.Web/Views/User/UserParts/_Subject.generated.cs b/Disco.Web/Views/User/UserParts/_Subject.generated.cs index cdb60144..a6293032 100644 --- a/Disco.Web/Views/User/UserParts/_Subject.generated.cs +++ b/Disco.Web/Views/User/UserParts/_Subject.generated.cs @@ -668,18 +668,258 @@ WriteLiteral(@" \r\n"); + + + #line 313 "..\..\Views\User\UserParts\_Subject.cshtml" + } + + #line default #line hidden WriteLiteral(" \r\n \r\n \r\n"); - #line 227 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 317 "..\..\Views\User\UserParts\_Subject.cshtml" #line default #line hidden - #line 227 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 317 "..\..\Views\User\UserParts\_Subject.cshtml" if (Authorization.Has(Claims.User.ShowAssignments)) { @@ -697,13 +937,13 @@ WriteLiteral(" id=\"User_Show_AssignedDevices_Active\""); WriteLiteral(">\r\n

    Current Device Assignments

    \r\n"); - #line 233 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 323 "..\..\Views\User\UserParts\_Subject.cshtml" #line default #line hidden - #line 233 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 323 "..\..\Views\User\UserParts\_Subject.cshtml" if (currentDeviceAssignments.Count > 0) { foreach (var assignment in currentDeviceAssignments) @@ -719,7 +959,7 @@ WriteLiteral(" class=\"User_Show_AssignedDevices_CurrentAssignment clearfix\""); WriteLiteral(" data-deviceserialnumber=\""); - #line 237 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 327 "..\..\Views\User\UserParts\_Subject.cshtml" Write(assignment.DeviceSerialNumber); @@ -730,13 +970,13 @@ WriteLiteral("\""); WriteLiteral(">\r\n"); - #line 238 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 328 "..\..\Views\User\UserParts\_Subject.cshtml" #line default #line hidden - #line 238 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 328 "..\..\Views\User\UserParts\_Subject.cshtml" if (Authorization.Has(Claims.Device.Show)) { @@ -745,14 +985,14 @@ WriteLiteral(">\r\n"); #line hidden WriteLiteral(" (Url.Action(MVC.Device.Show(assignment.Device.SerialNumber)) + #line 330 "..\..\Views\User\UserParts\_Subject.cshtml" +, Tuple.Create(Tuple.Create("", 20782), Tuple.Create(Url.Action(MVC.Device.Show(assignment.Device.SerialNumber)) #line default #line hidden -, 15037), false) +, 20782), false) ); WriteLiteral(">\r\n (Url.Action(MVC.API.DeviceModel.Image(assignment.Device.DeviceModel.Id, assignment.Device.DeviceModel.ImageHash())) + #line 331 "..\..\Views\User\UserParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 20976), Tuple.Create(Url.Action(MVC.API.DeviceModel.Image(assignment.Device.DeviceModel.Id, assignment.Device.DeviceModel.ImageHash())) #line default #line hidden -, 15231), false) +, 20976), false) ); WriteLiteral(" />\r\n \r\n"); - #line 243 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 333 "..\..\Views\User\UserParts\_Subject.cshtml" } else { @@ -788,20 +1028,20 @@ WriteLiteral(" class=\"User_Show_AssignedDevices_CurrentAssignment_Image\""); WriteLiteral(" alt=\"Model Image\""); -WriteAttribute("src", Tuple.Create(" src=\"", 15638), Tuple.Create("\"", 15759) +WriteAttribute("src", Tuple.Create(" src=\"", 21383), Tuple.Create("\"", 21504) - #line 246 "..\..\Views\User\UserParts\_Subject.cshtml" - , Tuple.Create(Tuple.Create("", 15644), Tuple.Create(Url.Action(MVC.API.DeviceModel.Image(assignment.Device.DeviceModel.Id, assignment.Device.DeviceModel.ImageHash())) + #line 336 "..\..\Views\User\UserParts\_Subject.cshtml" + , Tuple.Create(Tuple.Create("", 21389), Tuple.Create(Url.Action(MVC.API.DeviceModel.Image(assignment.Device.DeviceModel.Id, assignment.Device.DeviceModel.ImageHash())) #line default #line hidden -, 15644), false) +, 21389), false) ); WriteLiteral(" />\r\n"); - #line 247 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 337 "..\..\Views\User\UserParts\_Subject.cshtml" } @@ -828,13 +1068,13 @@ WriteLiteral(" class=\"User_Show_AssignedDevices_CurrentAssignment_SerialNumber\ WriteLiteral(">\r\n"); - #line 256 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 346 "..\..\Views\User\UserParts\_Subject.cshtml" #line default #line hidden - #line 256 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 346 "..\..\Views\User\UserParts\_Subject.cshtml" if (Authorization.Has(Claims.Device.Show)) { @@ -842,14 +1082,14 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 258 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 348 "..\..\Views\User\UserParts\_Subject.cshtml" Write(Html.ActionLink(assignment.Device.SerialNumber, MVC.Device.Show(assignment.Device.SerialNumber))); #line default #line hidden - #line 258 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 348 "..\..\Views\User\UserParts\_Subject.cshtml" } else @@ -859,14 +1099,14 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 262 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 352 "..\..\Views\User\UserParts\_Subject.cshtml" Write(assignment.Device.SerialNumber); #line default #line hidden - #line 262 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 352 "..\..\Views\User\UserParts\_Subject.cshtml" } @@ -876,13 +1116,13 @@ WriteLiteral(">\r\n"); WriteLiteral(" \r\n"); - #line 265 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 355 "..\..\Views\User\UserParts\_Subject.cshtml" #line default #line hidden - #line 265 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 355 "..\..\Views\User\UserParts\_Subject.cshtml" if (!string.IsNullOrWhiteSpace(assignment.Device.ComputerName)) { @@ -898,7 +1138,7 @@ WriteLiteral(" class=\"User_Show_AssignedDevices_CurrentAssignment_ComputerName\ WriteLiteral(">"); - #line 267 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 357 "..\..\Views\User\UserParts\_Subject.cshtml" Write(assignment.Device.ComputerName); @@ -909,7 +1149,7 @@ WriteLiteral(")"); WriteLiteral("\r\n"); - #line 268 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 358 "..\..\Views\User\UserParts\_Subject.cshtml" } @@ -919,13 +1159,13 @@ WriteLiteral(" \r\n " \r\n"); - #line 271 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 361 "..\..\Views\User\UserParts\_Subject.cshtml" #line default #line hidden - #line 271 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 361 "..\..\Views\User\UserParts\_Subject.cshtml" if (!string.IsNullOrEmpty(assignment.Device.AssetNumber)) { @@ -942,7 +1182,7 @@ WriteLiteral(" class=\"User_Show_AssignedDevices_CurrentAssignment_Asset\""); WriteLiteral(">"); - #line 276 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 366 "..\..\Views\User\UserParts\_Subject.cshtml" Write(assignment.Device.AssetNumber); @@ -952,7 +1192,7 @@ WriteLiteral("\r\n " \r\n"); - #line 279 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 369 "..\..\Views\User\UserParts\_Subject.cshtml" } @@ -961,7 +1201,7 @@ WriteLiteral("\r\n WriteLiteral(" "); - #line 280 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 370 "..\..\Views\User\UserParts\_Subject.cshtml" if (assignment.Device.DeviceModelId.HasValue) { @@ -979,7 +1219,7 @@ WriteLiteral(" class=\"User_Show_AssignedDevices_CurrentAssignment_Model\""); WriteLiteral(">"); - #line 286 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 376 "..\..\Views\User\UserParts\_Subject.cshtml" Write(assignment.Device.DeviceModel.ToString()); @@ -989,7 +1229,7 @@ WriteLiteral("\r\n " \r\n"); - #line 289 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 379 "..\..\Views\User\UserParts\_Subject.cshtml" } @@ -1006,7 +1246,7 @@ WriteLiteral(" class=\"User_Show_AssignedDevices_CurrentAssignment_Profile\""); WriteLiteral(">"); - #line 294 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 384 "..\..\Views\User\UserParts\_Subject.cshtml" Write(assignment.Device.DeviceProfile.ToString()); @@ -1016,13 +1256,13 @@ WriteLiteral("\r\n
    \r\n"); - #line 297 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 387 "..\..\Views\User\UserParts\_Subject.cshtml" #line default #line hidden - #line 297 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 387 "..\..\Views\User\UserParts\_Subject.cshtml" if (assignment.Device.DeviceBatchId.HasValue) { @@ -1040,7 +1280,7 @@ WriteLiteral(" class=\"User_Show_AssignedDevices_CurrentAssignment_Batch\""); WriteLiteral(">"); - #line 303 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 393 "..\..\Views\User\UserParts\_Subject.cshtml" Write(assignment.Device.DeviceBatch.ToString()); @@ -1050,7 +1290,7 @@ WriteLiteral("\r\n " \r\n"); - #line 306 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 396 "..\..\Views\User\UserParts\_Subject.cshtml" } @@ -1066,7 +1306,7 @@ WriteLiteral(" class=\"User_Show_AssignedDevices_CurrentAssignment_Assigned\""); WriteLiteral(">"); - #line 310 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 400 "..\..\Views\User\UserParts\_Subject.cshtml" Write(CommonHelpers.FriendlyDate(assignment.AssignedDate)); @@ -1082,7 +1322,7 @@ WriteLiteral(@" "); - #line 317 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 407 "..\..\Views\User\UserParts\_Subject.cshtml" } } else @@ -1098,7 +1338,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral(">No Current Device Assignments\r\n"); - #line 322 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 412 "..\..\Views\User\UserParts\_Subject.cshtml" } @@ -1108,7 +1348,7 @@ WriteLiteral(" \r\n \r\n "\r\n"); - #line 326 "..\..\Views\User\UserParts\_Subject.cshtml" + #line 416 "..\..\Views\User\UserParts\_Subject.cshtml" } diff --git a/Disco.Web/Views/User/_UserTable.cshtml b/Disco.Web/Views/User/_UserTable.cshtml index 381d6ed6..d0fb7a85 100644 --- a/Disco.Web/Views/User/_UserTable.cshtml +++ b/Disco.Web/Views/User/_UserTable.cshtml @@ -1,4 +1,5 @@ @model IEnumerable +@using Disco.Services.Users.UserFlags;
    @if (Model != null && Model.Count() > 0) { @@ -26,12 +27,20 @@ @if (Authorization.Has(Claims.User.Show)) { - @Html.ActionLink(item.Id, MVC.User.Show(item.Id)) + @Html.ActionLink(item.FriendlyId, MVC.User.Show(item.Id)) } else { - @item.Id + @item.FriendlyId } + @if (item.UserFlagAssignments != null && item.UserFlagAssignments.Count > 0) + {
    + @foreach (var flag in item.UserFlagAssignments.Where(f => !f.RemovedDate.HasValue).Select(f => Tuple.Create(f, UserFlagService.GetUserFlag(f.UserFlagId)))) + { + @flag.Item2.Name@if (flag.Item1.Comments != null) + {@flag.Item1.Comments.ToHtmlComment()}@CommonHelpers.FriendlyDateAndUser(flag.Item1.AddedDate, flag.Item1.AddedUserId) + } +
    } @item.Surname @@ -46,12 +55,54 @@ @item.AssignedDevicesCount - @item.JobCount + @item.JobCountOpen @if (item.JobCount > item.JobCountOpen) + { + (@(item.JobCount - item.JobCountOpen) Closed) + } } + } else { diff --git a/Disco.Web/Views/User/_UserTable.generated.cs b/Disco.Web/Views/User/_UserTable.generated.cs index 8b4436e3..dad5fd47 100644 --- a/Disco.Web/Views/User/_UserTable.generated.cs +++ b/Disco.Web/Views/User/_UserTable.generated.cs @@ -31,6 +31,12 @@ namespace Disco.Web.Views.User using Disco.Models.Repository; using Disco.Services; using Disco.Services.Authorization; + + #line 2 "..\..\Views\User\_UserTable.cshtml" + using Disco.Services.Users.UserFlags; + + #line default + #line hidden using Disco.Services.Web; using Disco.Web; using Disco.Web.Extensions; @@ -51,13 +57,13 @@ WriteLiteral(" class=\"genericData userTable\""); WriteLiteral(">\r\n"); - #line 3 "..\..\Views\User\_UserTable.cshtml" + #line 4 "..\..\Views\User\_UserTable.cshtml" #line default #line hidden - #line 3 "..\..\Views\User\_UserTable.cshtml" + #line 4 "..\..\Views\User\_UserTable.cshtml" if (Model != null && Model.Count() > 0) { @@ -89,13 +95,13 @@ WriteLiteral(@"> "); - #line 23 "..\..\Views\User\_UserTable.cshtml" + #line 24 "..\..\Views\User\_UserTable.cshtml" #line default #line hidden - #line 23 "..\..\Views\User\_UserTable.cshtml" + #line 24 "..\..\Views\User\_UserTable.cshtml" foreach (var item in Model) { @@ -105,13 +111,13 @@ WriteLiteral(@"> WriteLiteral(" \r\n \r\n"); - #line 27 "..\..\Views\User\_UserTable.cshtml" + #line 28 "..\..\Views\User\_UserTable.cshtml" #line default #line hidden - #line 27 "..\..\Views\User\_UserTable.cshtml" + #line 28 "..\..\Views\User\_UserTable.cshtml" if (Authorization.Has(Claims.User.Show)) { @@ -119,15 +125,15 @@ WriteLiteral(" \r\n \r\n"); #line default #line hidden - #line 29 "..\..\Views\User\_UserTable.cshtml" - Write(Html.ActionLink(item.Id, MVC.User.Show(item.Id))); + #line 30 "..\..\Views\User\_UserTable.cshtml" + Write(Html.ActionLink(item.FriendlyId, MVC.User.Show(item.Id))); #line default #line hidden - #line 29 "..\..\Views\User\_UserTable.cshtml" - + #line 30 "..\..\Views\User\_UserTable.cshtml" + } else { @@ -136,18 +142,149 @@ WriteLiteral(" \r\n \r\n"); #line default #line hidden - #line 33 "..\..\Views\User\_UserTable.cshtml" - Write(item.Id); + #line 34 "..\..\Views\User\_UserTable.cshtml" + Write(item.FriendlyId); #line default #line hidden - #line 33 "..\..\Views\User\_UserTable.cshtml" - + #line 34 "..\..\Views\User\_UserTable.cshtml" + } + #line default + #line hidden +WriteLiteral(" "); + + + #line 36 "..\..\Views\User\_UserTable.cshtml" + if (item.UserFlagAssignments != null && item.UserFlagAssignments.Count > 0) + { + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 38 "..\..\Views\User\_UserTable.cshtml" + + + #line default + #line hidden + + #line 38 "..\..\Views\User\_UserTable.cshtml" + foreach (var flag in item.UserFlagAssignments.Where(f => !f.RemovedDate.HasValue).Select(f => Tuple.Create(f, UserFlagService.GetUserFlag(f.UserFlagId)))) + { + + + #line default + #line hidden +WriteLiteral(" (flag.Item2.Icon + + #line default + #line hidden +, 1658), false) +, Tuple.Create(Tuple.Create(" ", 1676), Tuple.Create("fa-fw", 1677), true) +, Tuple.Create(Tuple.Create(" ", 1682), Tuple.Create("d-", 1683), true) + + #line 40 "..\..\Views\User\_UserTable.cshtml" + , Tuple.Create(Tuple.Create("", 1685), Tuple.Create(flag.Item2.IconColour + + #line default + #line hidden +, 1685), false) +); + +WriteLiteral(">"); + + + #line 40 "..\..\Views\User\_UserTable.cshtml" + Write(flag.Item2.Name); + + + #line default + #line hidden +WriteLiteral(""); + + + #line 40 "..\..\Views\User\_UserTable.cshtml" + if (flag.Item1.Comments != null) + { + + #line default + #line hidden +WriteLiteral(""); + + + #line 41 "..\..\Views\User\_UserTable.cshtml" + Write(flag.Item1.Comments.ToHtmlComment()); + + + #line default + #line hidden +WriteLiteral(""); + + + #line 41 "..\..\Views\User\_UserTable.cshtml" + } + + #line default + #line hidden +WriteLiteral(""); + + + #line 41 "..\..\Views\User\_UserTable.cshtml" + Write(CommonHelpers.FriendlyDateAndUser(flag.Item1.AddedDate, flag.Item1.AddedUserId)); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 42 "..\..\Views\User\_UserTable.cshtml" + } + + + #line default + #line hidden +WriteLiteral("
    "); + + + #line 43 "..\..\Views\User\_UserTable.cshtml" + } + + #line default #line hidden WriteLiteral(" \r\n \r\n"); @@ -155,7 +292,7 @@ WriteLiteral(" \r\n \r\n" WriteLiteral(" "); - #line 37 "..\..\Views\User\_UserTable.cshtml" + #line 46 "..\..\Views\User\_UserTable.cshtml" Write(item.Surname); @@ -166,7 +303,7 @@ WriteLiteral("\r\n \r\n \ WriteLiteral(" "); - #line 40 "..\..\Views\User\_UserTable.cshtml" + #line 49 "..\..\Views\User\_UserTable.cshtml" Write(item.GivenName); @@ -177,7 +314,7 @@ WriteLiteral("\r\n \r\n \ WriteLiteral(" "); - #line 43 "..\..\Views\User\_UserTable.cshtml" + #line 52 "..\..\Views\User\_UserTable.cshtml" Write(item.DisplayName); @@ -188,7 +325,7 @@ WriteLiteral("\r\n \r\n \ WriteLiteral(" "); - #line 46 "..\..\Views\User\_UserTable.cshtml" + #line 55 "..\..\Views\User\_UserTable.cshtml" Write(item.AssignedDevicesCount); @@ -199,16 +336,48 @@ WriteLiteral("\r\n \r\n \ WriteLiteral(" "); - #line 49 "..\..\Views\User\_UserTable.cshtml" - Write(item.JobCount); + #line 58 "..\..\Views\User\_UserTable.cshtml" + Write(item.JobCountOpen); #line default #line hidden -WriteLiteral("\r\n \r\n \r\n"); +WriteLiteral(" "); - #line 52 "..\..\Views\User\_UserTable.cshtml" + #line 58 "..\..\Views\User\_UserTable.cshtml" + if (item.JobCount > item.JobCountOpen) + { + + + #line default + #line hidden +WriteLiteral(" ("); + + + #line 60 "..\..\Views\User\_UserTable.cshtml" + Write(item.JobCount - item.JobCountOpen); + + + #line default + #line hidden +WriteLiteral(" Closed)\r\n"); + + + #line 61 "..\..\Views\User\_UserTable.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n"); + + + #line 64 "..\..\Views\User\_UserTable.cshtml" } @@ -216,8 +385,34 @@ WriteLiteral("\r\n \r\n \r\n #line hidden WriteLiteral(" \r\n \r\n"); +WriteLiteral(" \r\n $(function () {\r\n var userTable = $(\'table.userTabl" + +"e\');\r\n\r\n userTable.each(function () {\r\n var $t" + +"his = $(this);\r\n\r\n if (!$this.data(\'userTable_Flags\')) {\r\n " + +" $this.tooltip({\r\n items: \'i.flag" + +"\',\r\n content: function () {\r\n " + +" var $this = $(this);\r\n return $this.child" + +"ren(\'.details\').html();\r\n },\r\n " + +" tooltipClass: \'User_FlagAssignment_Tooltip\',\r\n p" + +"osition: {\r\n my: \"right top\",\r\n " + +" at: \"right bottom\",\r\n collision: \"f" + +"lipfit flip\"\r\n },\r\n hade: " + +"{\r\n effect: \'\'\r\n },\r\n " + +" close: function (e, ui) {\r\n " + +" ui.tooltip.hover(\r\n function () {\r\n " + +" $(this).stop(true).fadeTo(100, 1);\r\n " + +" },\r\n function () " + +"{\r\n $(this).fadeOut(100, function () { $(" + +"this).remove(); });\r\n });\r\n " + +" }\r\n });\r\n\r\n $this.data(\'" + +"userTable_Flags\', true)\r\n }\r\n });\r\n " + +" });\r\n \r\n"); + - #line 55 "..\..\Views\User\_UserTable.cshtml" + #line 106 "..\..\Views\User\_UserTable.cshtml" } else { @@ -232,7 +427,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral(">No Users Found\r\n"); - #line 59 "..\..\Views\User\_UserTable.cshtml" + #line 110 "..\..\Views\User\_UserTable.cshtml" }