Feature #26: User Flags

Flags can be associated with Users. Includes minor updates to Job Queues
and improved visibility of user information.
This commit is contained in:
Gary Sharp
2014-06-10 17:16:24 +10:00
parent b64ac3b16f
commit 4c3a68da30
104 changed files with 8112 additions and 1623 deletions
+6 -1
View File
@@ -47,6 +47,8 @@
<ItemGroup>
<Compile Include="BI\Job\LocationModes.cs" />
<Compile Include="Repository\Device\DeviceDecommissionReasons.cs" />
<Compile Include="Repository\User\Flag\UserFlag.cs" />
<Compile Include="Repository\User\Flag\UserFlagAssignment.cs" />
<Compile Include="Services\Authorization\IAuthorizationToken.cs" />
<Compile Include="Services\Authorization\IClaimNavigatorItem.cs" />
<Compile Include="Services\Authorization\IRoleToken.cs" />
@@ -154,6 +156,9 @@
<Compile Include="UI\Config\Logging\ConfigLoggingIndexModel.cs" />
<Compile Include="UI\Config\Shared\ConfigSharedTaskStatusModel.cs" />
<Compile Include="UI\Config\Organisation\ConfigOrganisationIndexModel.cs" />
<Compile Include="UI\Config\UserFlag\ConfigUserFlagCreateModel.cs" />
<Compile Include="UI\Config\UserFlag\ConfigUserFlagIndexModel.cs" />
<Compile Include="UI\Config\UserFlag\ConfigUserFlagShowModel.cs" />
<Compile Include="UI\Device\DeviceAddOfflineModel.cs" />
<Compile Include="UI\Device\DeviceExportModel.cs" />
<Compile Include="UI\Device\DeviceImportHeadersModel.cs" />
@@ -176,7 +181,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
<UserProperties BuildVersion_UpdateFileVersion="True" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.DeltaBaseYear.MonthAndDayStamp.TimeStamp" BuildVersion_StartDate="2011/7/1" BuildVersion_DetectChanges="False" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildAction="Both" />
<UserProperties BuildVersion_BuildAction="Both" BuildVersion_UseGlobalSettings="False" BuildVersion_DetectChanges="False" BuildVersion_StartDate="2011/7/1" BuildVersion_BuildVersioningStyle="None.DeltaBaseYear.MonthAndDayStamp.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_UpdateFileVersion="True" />
</VisualStudio>
</ProjectExtensions>
<PropertyGroup>
@@ -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<UserFlagAssignment> UserFlagAssignments { get; set; }
public override string ToString()
{
return this.Name;
}
}
}
@@ -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; }
}
}
+1
View File
@@ -29,6 +29,7 @@ namespace Disco.Models.Repository
public virtual IList<DeviceUserAssignment> DeviceUserAssignments { get; set; }
[InverseProperty("UserId")]
public virtual IList<Job> Jobs { get; set; }
public virtual IList<UserFlagAssignment> UserFlagAssignments { get; set; }
[NotMapped, Obsolete("Should be using Combined Domain\\User format - UserId")]
public string Id
@@ -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<UserFlagAssignment> UserFlagAssignments { get; set; }
private string[] BuildScoreValues()
{
return new string[] {
@@ -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<KeyValuePair<string, string>> Icons { get; set; }
IEnumerable<KeyValuePair<string, string>> ThemeColours { get; set; }
List<Disco.Models.Repository.JobType> JobTypes { get; set; }
bool CanDelete { get; set; }
@@ -0,0 +1,7 @@
namespace Disco.Models.UI.Config.UserFlag
{
public interface ConfigUserFlagCreateModel : BaseUIModel
{
Repository.UserFlag UserFlag { get; set; }
}
}
@@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace Disco.Models.UI.Config.UserFlag
{
public interface ConfigUserFlagIndexModel : BaseUIModel
{
List<Repository.UserFlag> UserFlags { get; set; }
}
}
@@ -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<KeyValuePair<string, string>> Icons { get; set; }
IEnumerable<KeyValuePair<string, string>> ThemeColours { get; set; }
}
}
+6 -2
View File
@@ -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<Disco.Models.Repository.DocumentTemplate> DocumentTemplates { get; set; }
List<DocumentTemplate> DocumentTemplates { get; set; }
List<UserFlag> AvailableUserFlags { get; set; }
IAuthorizationToken AuthorizationToken { get; set; }
IClaimNavigatorItem ClaimNavigator { get; set; }
}