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:
@@ -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()));
|
||||
}
|
||||
<div id="User_Show">
|
||||
<div id="User_Show_Flags">
|
||||
@foreach (var flag in Model.User.UserFlagAssignments.Where(f => !f.RemovedDate.HasValue).Select(f => Tuple.Create(f, UserFlagService.GetUserFlag(f.UserFlagId))))
|
||||
{
|
||||
<i class="flag fa fa-@(flag.Item2.Icon) fa-fw fa-lg d-@(flag.Item2.IconColour)"><span class="details"><span class="name">@flag.Item2.Name</span>@if (flag.Item1.Comments != null)
|
||||
{<span class="comments">@flag.Item1.Comments.ToHtmlComment()</span>}<span class="added">@CommonHelpers.FriendlyDateAndUser(flag.Item1.AddedDate, flag.Item1.AddedUser)</span></span></i>
|
||||
}
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
$('#User_Show_Flags')
|
||||
.appendTo('#layout_PageHeading')
|
||||
.tooltip({
|
||||
items: 'i.flag',
|
||||
content: function () {
|
||||
var $this = $(this);
|
||||
return $this.children('.details').html();
|
||||
},
|
||||
tooltipClass: 'User_FlagAssignment_Tooltip',
|
||||
position: {
|
||||
my: "right top",
|
||||
at: "right bottom",
|
||||
collision: "flipfit flip"
|
||||
},
|
||||
hade: {
|
||||
effect: ''
|
||||
},
|
||||
close: function (e, ui) {
|
||||
ui.tooltip.hover(
|
||||
function () {
|
||||
$(this).stop(true).fadeTo(100, 1);
|
||||
},
|
||||
function () {
|
||||
$(this).fadeOut(100, function () { $(this).remove(); });
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@Html.Partial(MVC.User.Views.UserParts._Subject, Model)
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
@@ -53,6 +92,10 @@
|
||||
{
|
||||
@Html.Partial(MVC.User.Views.UserParts._Resources, Model)
|
||||
}
|
||||
@if (Authorization.Has(Claims.User.ShowFlagAssignments))
|
||||
{
|
||||
@Html.Partial(MVC.User.Views.UserParts._Flags, Model)
|
||||
}
|
||||
@if (Authorization.Has(Claims.User.ShowAuthorization))
|
||||
{
|
||||
@Html.Partial(MVC.User.Views.UserParts._Authorization, Model)
|
||||
|
||||
@@ -31,6 +31,12 @@ namespace Disco.Web.Views.User
|
||||
using Disco.Models.Repository;
|
||||
using Disco.Services;
|
||||
using Disco.Services.Authorization;
|
||||
|
||||
#line 2 "..\..\Views\User\Show.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.User
|
||||
public override void Execute()
|
||||
{
|
||||
|
||||
#line 2 "..\..\Views\User\Show.cshtml"
|
||||
#line 3 "..\..\Views\User\Show.cshtml"
|
||||
|
||||
Authorization.Require(Claims.User.Show);
|
||||
|
||||
@@ -58,12 +64,161 @@ WriteLiteral("\r\n<div");
|
||||
|
||||
WriteLiteral(" id=\"User_Show\"");
|
||||
|
||||
WriteLiteral(">\r\n <div");
|
||||
|
||||
WriteLiteral(" id=\"User_Show_Flags\"");
|
||||
|
||||
WriteLiteral(">\r\n");
|
||||
|
||||
|
||||
#line 10 "..\..\Views\User\Show.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 10 "..\..\Views\User\Show.cshtml"
|
||||
foreach (var flag in Model.User.UserFlagAssignments.Where(f => !f.RemovedDate.HasValue).Select(f => Tuple.Create(f, UserFlagService.GetUserFlag(f.UserFlagId))))
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <i");
|
||||
|
||||
WriteAttribute("class", Tuple.Create(" class=\"", 535), Tuple.Create("\"", 611)
|
||||
, Tuple.Create(Tuple.Create("", 543), Tuple.Create("flag", 543), true)
|
||||
, Tuple.Create(Tuple.Create(" ", 547), Tuple.Create("fa", 548), true)
|
||||
, Tuple.Create(Tuple.Create(" ", 550), Tuple.Create("fa-", 551), true)
|
||||
|
||||
#line 12 "..\..\Views\User\Show.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 554), Tuple.Create<System.Object, System.Int32>(flag.Item2.Icon
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 554), false)
|
||||
, Tuple.Create(Tuple.Create(" ", 572), Tuple.Create("fa-fw", 573), true)
|
||||
, Tuple.Create(Tuple.Create(" ", 578), Tuple.Create("fa-lg", 579), true)
|
||||
, Tuple.Create(Tuple.Create(" ", 584), Tuple.Create("d-", 585), true)
|
||||
|
||||
#line 12 "..\..\Views\User\Show.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 587), Tuple.Create<System.Object, System.Int32>(flag.Item2.IconColour
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 587), false)
|
||||
);
|
||||
|
||||
WriteLiteral("><span");
|
||||
|
||||
WriteLiteral(" class=\"details\"");
|
||||
|
||||
WriteLiteral("><span");
|
||||
|
||||
WriteLiteral(" class=\"name\"");
|
||||
|
||||
WriteLiteral(">");
|
||||
|
||||
|
||||
#line 12 "..\..\Views\User\Show.cshtml"
|
||||
Write(flag.Item2.Name);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</span>");
|
||||
|
||||
|
||||
#line 12 "..\..\Views\User\Show.cshtml"
|
||||
if (flag.Item1.Comments != null)
|
||||
{
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("<span");
|
||||
|
||||
WriteLiteral(" class=\"comments\"");
|
||||
|
||||
WriteLiteral(">");
|
||||
|
||||
|
||||
#line 13 "..\..\Views\User\Show.cshtml"
|
||||
Write(flag.Item1.Comments.ToHtmlComment());
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</span>");
|
||||
|
||||
|
||||
#line 13 "..\..\Views\User\Show.cshtml"
|
||||
}
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("<span");
|
||||
|
||||
WriteLiteral(" class=\"added\"");
|
||||
|
||||
WriteLiteral(">");
|
||||
|
||||
|
||||
#line 13 "..\..\Views\User\Show.cshtml"
|
||||
Write(CommonHelpers.FriendlyDateAndUser(flag.Item1.AddedDate, flag.Item1.AddedUser));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</span></span></i>\r\n");
|
||||
|
||||
|
||||
#line 14 "..\..\Views\User\Show.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </div>\r\n <script");
|
||||
|
||||
WriteLiteral(" type=\"text/javascript\"");
|
||||
|
||||
WriteLiteral(@">
|
||||
$(function () {
|
||||
$('#User_Show_Flags')
|
||||
.appendTo('#layout_PageHeading')
|
||||
.tooltip({
|
||||
items: 'i.flag',
|
||||
content: function () {
|
||||
var $this = $(this);
|
||||
return $this.children('.details').html();
|
||||
},
|
||||
tooltipClass: 'User_FlagAssignment_Tooltip',
|
||||
position: {
|
||||
my: ""right top"",
|
||||
at: ""right bottom"",
|
||||
collision: ""flipfit flip""
|
||||
},
|
||||
hade: {
|
||||
effect: ''
|
||||
},
|
||||
close: function (e, ui) {
|
||||
ui.tooltip.hover(
|
||||
function () {
|
||||
$(this).stop(true).fadeTo(100, 1);
|
||||
},
|
||||
function () {
|
||||
$(this).fadeOut(100, function () { $(this).remove(); });
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
");
|
||||
|
||||
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("></ul>\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("></ul>\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("></ul>\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"
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
<div id="UserDetailTab-Flags" class="UserPart">
|
||||
@if (flagAssignments.Count > 0)
|
||||
{
|
||||
<table id="userFlags">
|
||||
<tr>
|
||||
<th class="name">Name</th>
|
||||
<th class="added">Added</th>
|
||||
<th class="sla">Comments</th>
|
||||
<th class="removed">Removed</th>
|
||||
</tr>
|
||||
@foreach (var fa in flagAssignments.OrderByDescending(a => a.Item1.AddedDate))
|
||||
{
|
||||
<tr data-userflagassignmentid="@fa.Item1.Id" data-flagassignmentaddeddate="@(fa.Item1.AddedDate.ToString("s"))" class="@(!fa.Item1.RemovedDate.HasValue ? "added" : "removed")">
|
||||
<td class="name">
|
||||
<i class="fa fa-@(fa.Item2.Icon) fa-fw fa-lg d-@(fa.Item2.IconColour)"></i>
|
||||
@if (hasUserFlagShow)
|
||||
{
|
||||
@Html.ActionLink(fa.Item2.Name, MVC.Config.UserFlag.Index(fa.Item2.Id))
|
||||
}
|
||||
else
|
||||
{
|
||||
@fa.Item2.Name
|
||||
}
|
||||
</td>
|
||||
<td class="added">
|
||||
@CommonHelpers.FriendlyDateAndUser(fa.Item1.AddedDate, fa.Item1.AddedUser)
|
||||
</td>
|
||||
<td class="comments">
|
||||
@if (hasEdit)
|
||||
{
|
||||
<div class="editable"><i class="fa fa-fw fa-edit" title="Edit Comments"></i></div>
|
||||
}
|
||||
@if (fa.Item1.Comments == null)
|
||||
{
|
||||
<div class="comments smallMessage">[no comments]</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="comments">@fa.Item1.Comments.ToHtmlComment()</div>
|
||||
<div class="commentsRaw">@fa.Item1.Comments</div>
|
||||
}
|
||||
</td>
|
||||
<td class="removed@(!fa.Item1.RemovedDate.HasValue ? " na" : null)">
|
||||
@if (fa.Item1.RemovedDate.HasValue)
|
||||
{
|
||||
@CommonHelpers.FriendlyDateAndUser(fa.Item1.RemovedDate.Value, fa.Item1.RemovedUser)
|
||||
}
|
||||
else if (fa.Item1.CanRemove())
|
||||
{
|
||||
<a href="#" class="button small remove">Remove</a>
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
<div id="User_Show_Flags_Actions_Remove_Dialog" class="dialog" title="Remove this flag from the user?">
|
||||
@using (Html.BeginForm(MVC.API.UserFlagAssignment.RemoveUser()))
|
||||
{
|
||||
<input id="User_Show_Flags_Actions_Remove_Dialog_Id" type="hidden" name="id" value="" />
|
||||
<p>
|
||||
<i class="fa fa-exclamation-triangle fa-lg"></i> Are you sure?
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
<div id="User_Show_Flags_Actions_EditComments_Dialog" class="dialog" title="Edit the Comments">
|
||||
@using (Html.BeginForm(MVC.API.UserFlagAssignment.UpdateComments()))
|
||||
{
|
||||
<input id="User_Show_Flags_Actions_EditComments_Dialog_Id" type="hidden" name="id" value="" />
|
||||
<input type="hidden" name="redirect" value="true" />
|
||||
<h4>Comments:</h4>
|
||||
<p>
|
||||
<textarea id="User_Show_Flags_Actions_EditComments_Dialog_Comments" name="Comments" class="block"></textarea>
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
var userFlags = $('#userFlags');
|
||||
|
||||
var dialog = null;
|
||||
var dialogEditComments = null;
|
||||
|
||||
userFlags.on('click', 'a.remove', function (e) {
|
||||
var $this = $(this);
|
||||
var UserFlagAssignmentId = $this.closest('tr').attr('data-userflagassignmentid');
|
||||
|
||||
if (!dialog) {
|
||||
dialog = $('#User_Show_Flags_Actions_Remove_Dialog');
|
||||
dialog.dialog({
|
||||
resizable: false,
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
buttons: {
|
||||
"Remove Flag": function () {
|
||||
var $this = $(this);
|
||||
$this.dialog("disable");
|
||||
$this.dialog("option", "buttons", null);
|
||||
$this.find('form').submit();
|
||||
},
|
||||
Cancel: function () {
|
||||
$(this).dialog("close");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$('#User_Show_Flags_Actions_Remove_Dialog_Id').val(UserFlagAssignmentId);
|
||||
dialog.dialog('open');
|
||||
|
||||
e.preventDefault();
|
||||
return false;
|
||||
});
|
||||
|
||||
userFlags.on('click', 'td.comments i.fa-edit', function (e) {
|
||||
var $this = $(this);
|
||||
var UserFlagAssignmentId = $this.closest('tr').attr('data-userflagassignmentid');
|
||||
|
||||
if (!dialogEditComments) {
|
||||
dialogEditComments = $('#User_Show_Flags_Actions_EditComments_Dialog');
|
||||
dialogEditComments.dialog({
|
||||
resizable: false,
|
||||
modal: true,
|
||||
width: 320,
|
||||
autoOpen: false,
|
||||
buttons: {
|
||||
"Save Changes": function () {
|
||||
var $this = $(this);
|
||||
$this.dialog("disable");
|
||||
$this.dialog("option", "buttons", null);
|
||||
$this.find('form').submit();
|
||||
},
|
||||
Cancel: function () {
|
||||
$(this).dialog("close");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var $comments = $this.closest('td').find('.commentsRaw');
|
||||
if ($comments.hasClass('smallMessage')) {
|
||||
$('#User_Show_Flags_Actions_EditComments_Dialog_Comments').val('');
|
||||
} else {
|
||||
$('#User_Show_Flags_Actions_EditComments_Dialog_Comments').val($comments.text());
|
||||
}
|
||||
|
||||
$('#User_Show_Flags_Actions_EditComments_Dialog_Id').val(UserFlagAssignmentId);
|
||||
dialogEditComments.dialog('open');
|
||||
e.preventDefault();
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="none">This user has no associated flags</div>
|
||||
}
|
||||
<script>
|
||||
$('#UserDetailTabItems').append('<li><a href="#UserDetailTab-Flags">Flags [@activeAssignmentCount]</a></li>');
|
||||
</script>
|
||||
</div>
|
||||
@@ -0,0 +1,629 @@
|
||||
#pragma warning disable 1591
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 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.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
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<Disco.Web.Models.User.ShowModel>
|
||||
{
|
||||
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<div");
|
||||
|
||||
WriteLiteral(" id=\"UserDetailTab-Flags\"");
|
||||
|
||||
WriteLiteral(" class=\"UserPart\"");
|
||||
|
||||
WriteLiteral(">\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(" <table");
|
||||
|
||||
WriteLiteral(" id=\"userFlags\"");
|
||||
|
||||
WriteLiteral(">\r\n <tr>\r\n <th");
|
||||
|
||||
WriteLiteral(" class=\"name\"");
|
||||
|
||||
WriteLiteral(">Name</th>\r\n <th");
|
||||
|
||||
WriteLiteral(" class=\"added\"");
|
||||
|
||||
WriteLiteral(">Added</th>\r\n <th");
|
||||
|
||||
WriteLiteral(" class=\"sla\"");
|
||||
|
||||
WriteLiteral(">Comments</th>\r\n <th");
|
||||
|
||||
WriteLiteral(" class=\"removed\"");
|
||||
|
||||
WriteLiteral(">Removed</th>\r\n </tr>\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(" <tr");
|
||||
|
||||
WriteLiteral(" data-userflagassignmentid=\"");
|
||||
|
||||
|
||||
#line 26 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
Write(fa.Item1.Id);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\"");
|
||||
|
||||
WriteLiteral(" data-flagassignmentaddeddate=\"");
|
||||
|
||||
|
||||
#line 26 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
Write(fa.Item1.AddedDate.ToString("s"));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\"");
|
||||
|
||||
WriteAttribute("class", Tuple.Create(" class=\"", 1240), Tuple.Create("\"", 1303)
|
||||
|
||||
#line 26 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 1248), Tuple.Create<System.Object, System.Int32>(!fa.Item1.RemovedDate.HasValue ? "added" : "removed"
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 1248), false)
|
||||
);
|
||||
|
||||
WriteLiteral(">\r\n <td");
|
||||
|
||||
WriteLiteral(" class=\"name\"");
|
||||
|
||||
WriteLiteral(">\r\n <i");
|
||||
|
||||
WriteAttribute("class", Tuple.Create(" class=\"", 1372), Tuple.Create("\"", 1439)
|
||||
, Tuple.Create(Tuple.Create("", 1380), Tuple.Create("fa", 1380), true)
|
||||
, Tuple.Create(Tuple.Create(" ", 1382), Tuple.Create("fa-", 1383), true)
|
||||
|
||||
#line 28 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 1386), Tuple.Create<System.Object, System.Int32>(fa.Item2.Icon
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 1386), false)
|
||||
, Tuple.Create(Tuple.Create(" ", 1402), Tuple.Create("fa-fw", 1403), true)
|
||||
, Tuple.Create(Tuple.Create(" ", 1408), Tuple.Create("fa-lg", 1409), true)
|
||||
, Tuple.Create(Tuple.Create(" ", 1414), Tuple.Create("d-", 1415), true)
|
||||
|
||||
#line 28 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 1417), Tuple.Create<System.Object, System.Int32>(fa.Item2.IconColour
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 1417), false)
|
||||
);
|
||||
|
||||
WriteLiteral("></i>\r\n");
|
||||
|
||||
|
||||
#line 29 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 29 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
if (hasUserFlagShow)
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 31 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
Write(Html.ActionLink(fa.Item2.Name, MVC.Config.UserFlag.Index(fa.Item2.Id)));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 31 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 35 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
Write(fa.Item2.Name);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 35 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </td>\r\n <td");
|
||||
|
||||
WriteLiteral(" class=\"added\"");
|
||||
|
||||
WriteLiteral(">\r\n");
|
||||
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 39 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
Write(CommonHelpers.FriendlyDateAndUser(fa.Item1.AddedDate, fa.Item1.AddedUser));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\r\n </td>\r\n <td");
|
||||
|
||||
WriteLiteral(" class=\"comments\"");
|
||||
|
||||
WriteLiteral(">\r\n");
|
||||
|
||||
|
||||
#line 42 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 42 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
if (hasEdit)
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" class=\"editable\"");
|
||||
|
||||
WriteLiteral("><i");
|
||||
|
||||
WriteLiteral(" class=\"fa fa-fw fa-edit\"");
|
||||
|
||||
WriteLiteral(" title=\"Edit Comments\"");
|
||||
|
||||
WriteLiteral("></i></div>\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(" <div");
|
||||
|
||||
WriteLiteral(" class=\"comments smallMessage\"");
|
||||
|
||||
WriteLiteral(">[no comments]</div>\r\n");
|
||||
|
||||
|
||||
#line 49 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" class=\"comments\"");
|
||||
|
||||
WriteLiteral(">");
|
||||
|
||||
|
||||
#line 52 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
Write(fa.Item1.Comments.ToHtmlComment());
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</div>\r\n");
|
||||
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" class=\"commentsRaw\"");
|
||||
|
||||
WriteLiteral(">");
|
||||
|
||||
|
||||
#line 53 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
Write(fa.Item1.Comments);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</div>\r\n");
|
||||
|
||||
|
||||
#line 54 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </td>\r\n <td");
|
||||
|
||||
WriteAttribute("class", Tuple.Create(" class=\"", 2719), Tuple.Create("\"", 2782)
|
||||
, Tuple.Create(Tuple.Create("", 2727), Tuple.Create("removed", 2727), true)
|
||||
|
||||
#line 56 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 2734), Tuple.Create<System.Object, System.Int32>(!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(" <a");
|
||||
|
||||
WriteLiteral(" href=\"#\"");
|
||||
|
||||
WriteLiteral(" class=\"button small remove\"");
|
||||
|
||||
WriteLiteral(">Remove</a>\r\n");
|
||||
|
||||
|
||||
#line 64 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </td>\r\n </tr>\r\n");
|
||||
|
||||
|
||||
#line 67 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </table>\r\n");
|
||||
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" id=\"User_Show_Flags_Actions_Remove_Dialog\"");
|
||||
|
||||
WriteLiteral(" class=\"dialog\"");
|
||||
|
||||
WriteLiteral(" title=\"Remove this flag from the user?\"");
|
||||
|
||||
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(" <input");
|
||||
|
||||
WriteLiteral(" id=\"User_Show_Flags_Actions_Remove_Dialog_Id\"");
|
||||
|
||||
WriteLiteral(" type=\"hidden\"");
|
||||
|
||||
WriteLiteral(" name=\"id\"");
|
||||
|
||||
WriteLiteral(" value=\"\"");
|
||||
|
||||
WriteLiteral(" />\r\n");
|
||||
|
||||
WriteLiteral(" <p>\r\n <i");
|
||||
|
||||
WriteLiteral(" class=\"fa fa-exclamation-triangle fa-lg\"");
|
||||
|
||||
WriteLiteral("></i> Are you sure?\r\n </p>\r\n");
|
||||
|
||||
|
||||
#line 76 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </div>\r\n");
|
||||
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" id=\"User_Show_Flags_Actions_EditComments_Dialog\"");
|
||||
|
||||
WriteLiteral(" class=\"dialog\"");
|
||||
|
||||
WriteLiteral(" title=\"Edit the Comments\"");
|
||||
|
||||
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(" <input");
|
||||
|
||||
WriteLiteral(" id=\"User_Show_Flags_Actions_EditComments_Dialog_Id\"");
|
||||
|
||||
WriteLiteral(" type=\"hidden\"");
|
||||
|
||||
WriteLiteral(" name=\"id\"");
|
||||
|
||||
WriteLiteral(" value=\"\"");
|
||||
|
||||
WriteLiteral(" />\r\n");
|
||||
|
||||
WriteLiteral(" <input");
|
||||
|
||||
WriteLiteral(" type=\"hidden\"");
|
||||
|
||||
WriteLiteral(" name=\"redirect\"");
|
||||
|
||||
WriteLiteral(" value=\"true\"");
|
||||
|
||||
WriteLiteral(" />\r\n");
|
||||
|
||||
WriteLiteral(" <h4>Comments:</h4>\r\n");
|
||||
|
||||
WriteLiteral(" <p>\r\n <textarea");
|
||||
|
||||
WriteLiteral(" id=\"User_Show_Flags_Actions_EditComments_Dialog_Comments\"");
|
||||
|
||||
WriteLiteral(" name=\"Comments\"");
|
||||
|
||||
WriteLiteral(" class=\"block\"");
|
||||
|
||||
WriteLiteral("></textarea>\r\n </p>\r\n");
|
||||
|
||||
|
||||
#line 87 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </div>\r\n");
|
||||
|
||||
WriteLiteral(" <script");
|
||||
|
||||
WriteLiteral(" type=\"text/javascript\"");
|
||||
|
||||
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 </script>\r\n");
|
||||
|
||||
|
||||
#line 166 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" class=\"none\"");
|
||||
|
||||
WriteLiteral(">This user has no associated flags</div>\r\n");
|
||||
|
||||
|
||||
#line 170 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <script>\r\n $(\'#UserDetailTabItems\').append(\'<li><a href=\"#UserDetailTa" +
|
||||
"b-Flags\">Flags [");
|
||||
|
||||
|
||||
#line 172 "..\..\Views\User\UserParts\_Flags.cshtml"
|
||||
Write(activeAssignmentCount);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("]</a></li>\');\r\n </script>\r\n</div>\r\n");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma warning restore 1591
|
||||
@@ -221,6 +221,96 @@
|
||||
</script>
|
||||
}
|
||||
}
|
||||
@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")
|
||||
<div id="User_Show_Details_Actions_AddFlag_Dialog" class="dialog" title="Add User Flag">
|
||||
@using (Html.BeginForm(MVC.API.UserFlagAssignment.AddUser()))
|
||||
{
|
||||
<input id="User_Show_Details_Actions_AddFlag_Dialog_Id" type="hidden" name="id" />
|
||||
<input id="User_Show_Details_Actions_AddFlag_Dialog_UserId" type="hidden" name="UserId" value="@Model.User.UserId" />
|
||||
<div class="flagPicker">
|
||||
@foreach (var userFlag in Model.AvailableUserFlags.OrderBy(jq => jq.Name))
|
||||
{
|
||||
<div class="flag" data-userflagid="@(userFlag.Id)">
|
||||
<i class="fa fa-@(userFlag.Icon) fa-fw fa-lg d-@(userFlag.IconColour)"></i>@userFlag.Name
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<div class="details">
|
||||
<div>
|
||||
<h4>Comments</h4>
|
||||
<textarea name="Comments" id="User_Show_Details_Actions_AddFlag_Dialog_Comments"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
var button = $('#User_Show_Details_Actions_AddFlag_Button');
|
||||
var buttonDialog = null;
|
||||
var buttonLink = button.attr('href');
|
||||
|
||||
var flagPicker = null;
|
||||
var flagAddId = null;
|
||||
var flagAddComments = null;
|
||||
var details = null;
|
||||
|
||||
function flagSelected() {
|
||||
var flag = $(this);
|
||||
|
||||
flagPicker.children().removeClass('selected');
|
||||
flag.addClass('selected');
|
||||
|
||||
flagAddId.val(flag.attr('data-userflagid'));
|
||||
|
||||
details.show();
|
||||
|
||||
flagAddComments.focus().select();
|
||||
}
|
||||
|
||||
button.attr('href', '#').click(function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
if (!buttonDialog) {
|
||||
buttonDialog = $('#User_Show_Details_Actions_AddFlag_Dialog');
|
||||
buttonDialog.dialog({
|
||||
width: 600,
|
||||
height: 410,
|
||||
resizable: false,
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
buttons: {
|
||||
Cancel: function () {
|
||||
$(this).dialog("close");
|
||||
},
|
||||
"Add Flag": function () {
|
||||
if (!!flagAddId.val()) {
|
||||
var $this = $(this);
|
||||
$this.dialog("disable");
|
||||
$this.dialog("option", "buttons", null);
|
||||
buttonDialog.find('form').submit();
|
||||
} else {
|
||||
alert('Select a User Flag');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
flagAddId = $('#User_Show_Details_Actions_AddFlag_Dialog_Id');
|
||||
flagAddComments = buttonDialog.find('#User_Show_Details_Actions_AddFlag_Dialog_Comments');
|
||||
flagPicker = buttonDialog.find('.flagPicker');
|
||||
details = buttonDialog.find('.details');
|
||||
|
||||
flagPicker.on('click', 'div.flag', flagSelected);
|
||||
}
|
||||
|
||||
buttonDialog.dialog('open');
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@@ -668,18 +668,258 @@ WriteLiteral(@" <script>
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 224 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
if (Model.User.CanAddUserFlags() && Model.AvailableUserFlags != null && Model.AvailableUserFlags.Count > 0)
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 226 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
Write(Html.ActionLinkSmallButton("Add Flag", MVC.API.UserFlagAssignment.AddUser(), "User_Show_Details_Actions_AddFlag_Button"));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 226 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" id=\"User_Show_Details_Actions_AddFlag_Dialog\"");
|
||||
|
||||
WriteLiteral(" class=\"dialog\"");
|
||||
|
||||
WriteLiteral(" title=\"Add User Flag\"");
|
||||
|
||||
WriteLiteral(">\r\n");
|
||||
|
||||
|
||||
#line 228 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 228 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
using (Html.BeginForm(MVC.API.UserFlagAssignment.AddUser()))
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <input");
|
||||
|
||||
WriteLiteral(" id=\"User_Show_Details_Actions_AddFlag_Dialog_Id\"");
|
||||
|
||||
WriteLiteral(" type=\"hidden\"");
|
||||
|
||||
WriteLiteral(" name=\"id\"");
|
||||
|
||||
WriteLiteral(" />\r\n");
|
||||
|
||||
WriteLiteral(" <input");
|
||||
|
||||
WriteLiteral(" id=\"User_Show_Details_Actions_AddFlag_Dialog_UserId\"");
|
||||
|
||||
WriteLiteral(" type=\"hidden\"");
|
||||
|
||||
WriteLiteral(" name=\"UserId\"");
|
||||
|
||||
WriteAttribute("value", Tuple.Create(" value=\"", 14926), Tuple.Create("\"", 14952)
|
||||
|
||||
#line 231 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 14934), Tuple.Create<System.Object, System.Int32>(Model.User.UserId
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 14934), false)
|
||||
);
|
||||
|
||||
WriteLiteral(" />\r\n");
|
||||
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" class=\"flagPicker\"");
|
||||
|
||||
WriteLiteral(">\r\n");
|
||||
|
||||
|
||||
#line 233 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 233 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
foreach (var userFlag in Model.AvailableUserFlags.OrderBy(jq => jq.Name))
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" class=\"flag\"");
|
||||
|
||||
WriteLiteral(" data-userflagid=\"");
|
||||
|
||||
|
||||
#line 235 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
Write(userFlag.Id);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\"");
|
||||
|
||||
WriteLiteral(">\r\n <i");
|
||||
|
||||
WriteAttribute("class", Tuple.Create(" class=\"", 15326), Tuple.Create("\"", 15393)
|
||||
, Tuple.Create(Tuple.Create("", 15334), Tuple.Create("fa", 15334), true)
|
||||
, Tuple.Create(Tuple.Create(" ", 15336), Tuple.Create("fa-", 15337), true)
|
||||
|
||||
#line 236 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 15340), Tuple.Create<System.Object, System.Int32>(userFlag.Icon
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 15340), false)
|
||||
, Tuple.Create(Tuple.Create(" ", 15356), Tuple.Create("fa-fw", 15357), true)
|
||||
, Tuple.Create(Tuple.Create(" ", 15362), Tuple.Create("fa-lg", 15363), true)
|
||||
, Tuple.Create(Tuple.Create(" ", 15368), Tuple.Create("d-", 15369), true)
|
||||
|
||||
#line 236 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 15371), Tuple.Create<System.Object, System.Int32>(userFlag.IconColour
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 15371), false)
|
||||
);
|
||||
|
||||
WriteLiteral("></i>");
|
||||
|
||||
|
||||
#line 236 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
Write(userFlag.Name);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\r\n </div>\r\n");
|
||||
|
||||
|
||||
#line 238 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </div>\r\n");
|
||||
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" class=\"details\"");
|
||||
|
||||
WriteLiteral(">\r\n <div>\r\n " +
|
||||
" <h4>Comments</h4>\r\n <tex" +
|
||||
"tarea");
|
||||
|
||||
WriteLiteral(" name=\"Comments\"");
|
||||
|
||||
WriteLiteral(" id=\"User_Show_Details_Actions_AddFlag_Dialog_Comments\"");
|
||||
|
||||
WriteLiteral("></textarea>\r\n </div>\r\n " +
|
||||
" </div>\r\n");
|
||||
|
||||
|
||||
#line 246 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </div>\r\n");
|
||||
|
||||
WriteLiteral(" <script");
|
||||
|
||||
WriteLiteral(" type=\"text/javascript\"");
|
||||
|
||||
WriteLiteral(">\r\n $(function () {\r\n " +
|
||||
" var button = $(\'#User_Show_Details_Actions_AddFlag_Button\');\r\n " +
|
||||
" var buttonDialog = null;\r\n " +
|
||||
" var buttonLink = button.attr(\'href\');\r\n\r\n " +
|
||||
" var flagPicker = null;\r\n var flagAddId = " +
|
||||
"null;\r\n var flagAddComments = null;\r\n " +
|
||||
" var details = null;\r\n\r\n " +
|
||||
" function flagSelected() {\r\n var fl" +
|
||||
"ag = $(this);\r\n\r\n flagPicker.children().r" +
|
||||
"emoveClass(\'selected\');\r\n flag.addClass(\'" +
|
||||
"selected\');\r\n\r\n flagAddId.val(flag.attr(\'" +
|
||||
"data-userflagid\'));\r\n\r\n details.show();\r\n" +
|
||||
"\r\n flagAddComments.focus().select();\r\n " +
|
||||
" }\r\n\r\n button" +
|
||||
".attr(\'href\', \'#\').click(function (e) {\r\n " +
|
||||
" e.preventDefault();\r\n\r\n if (!buttonDialo" +
|
||||
"g) {\r\n buttonDialog = $(\'#User_Show_D" +
|
||||
"etails_Actions_AddFlag_Dialog\');\r\n bu" +
|
||||
"ttonDialog.dialog({\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 Flag\": function () {\r\n " +
|
||||
" if (!!flagAddId.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 } el" +
|
||||
"se {\r\n alert(\'Select " +
|
||||
"a User Flag\');\r\n }\r\n " +
|
||||
" }\r\n " +
|
||||
" }\r\n });\r\n\r\n " +
|
||||
" flagAddId = $(\'#User_Show_Details_Actions_Ad" +
|
||||
"dFlag_Dialog_Id\');\r\n flagAddComments " +
|
||||
"= buttonDialog.find(\'#User_Show_Details_Actions_AddFlag_Dialog_Comments\');\r\n " +
|
||||
" flagPicker = buttonDialog.find(\'.flagPic" +
|
||||
"ker\');\r\n details = buttonDialog.find(" +
|
||||
"\'.details\');\r\n\r\n flagPicker.on(\'click" +
|
||||
"\', \'div.flag\', flagSelected);\r\n }\r\n\r\n " +
|
||||
" buttonDialog.dialog(\'open\');\r\n " +
|
||||
" return false;\r\n });" +
|
||||
"\r\n });\r\n </script>\r\n");
|
||||
|
||||
|
||||
#line 313 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </div>\r\n </div>\r\n </td>\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 <h3>Current Device Assignments</h3>\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(" <a");
|
||||
|
||||
WriteAttribute("href", Tuple.Create(" href=\"", 15030), Tuple.Create("\"", 15097)
|
||||
WriteAttribute("href", Tuple.Create(" href=\"", 20775), Tuple.Create("\"", 20842)
|
||||
|
||||
#line 240 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 15037), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Device.Show(assignment.Device.SerialNumber))
|
||||
#line 330 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 20782), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Device.Show(assignment.Device.SerialNumber))
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 15037), false)
|
||||
, 20782), false)
|
||||
);
|
||||
|
||||
WriteLiteral(">\r\n <img");
|
||||
@@ -761,20 +1001,20 @@ WriteLiteral(" class=\"User_Show_AssignedDevices_CurrentAssignment_Image\"");
|
||||
|
||||
WriteLiteral(" alt=\"Model Image\"");
|
||||
|
||||
WriteAttribute("src", Tuple.Create(" src=\"", 15225), Tuple.Create("\"", 15346)
|
||||
WriteAttribute("src", Tuple.Create(" src=\"", 20970), Tuple.Create("\"", 21091)
|
||||
|
||||
#line 241 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 15231), Tuple.Create<System.Object, System.Int32>(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<System.Object, System.Int32>(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 </a>\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<System.Object, System.Int32>(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<System.Object, System.Int32>(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(" </span>\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("</span>)");
|
||||
WriteLiteral("\r\n");
|
||||
|
||||
|
||||
#line 268 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
#line 358 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
}
|
||||
|
||||
|
||||
@@ -919,13 +1159,13 @@ WriteLiteral(" </td>\r\n
|
||||
" </tr>\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("</span>\r\n
|
||||
" </tr>\r\n");
|
||||
|
||||
|
||||
#line 279 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
#line 369 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
}
|
||||
|
||||
|
||||
@@ -961,7 +1201,7 @@ WriteLiteral("</span>\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("</span>\r\n
|
||||
" </tr>\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("</span>\r\n </t
|
||||
" </tr>\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("</span>\r\n
|
||||
" </tr>\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(@"</span>
|
||||
");
|
||||
|
||||
|
||||
#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</span>\r\n");
|
||||
|
||||
|
||||
#line 322 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
#line 412 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
}
|
||||
|
||||
|
||||
@@ -1108,7 +1348,7 @@ WriteLiteral(" </div>\r\n </div>\r\n
|
||||
"\r\n");
|
||||
|
||||
|
||||
#line 326 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
#line 416 "..\..\Views\User\UserParts\_Subject.cshtml"
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
@model IEnumerable<Disco.Models.Services.Searching.UserSearchResultItem>
|
||||
@using Disco.Services.Users.UserFlags;
|
||||
<div class="genericData userTable">
|
||||
@if (Model != null && Model.Count() > 0)
|
||||
{
|
||||
@@ -26,12 +27,20 @@
|
||||
<td>
|
||||
@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)
|
||||
{<div class="flags">
|
||||
@foreach (var flag in item.UserFlagAssignments.Where(f => !f.RemovedDate.HasValue).Select(f => Tuple.Create(f, UserFlagService.GetUserFlag(f.UserFlagId))))
|
||||
{
|
||||
<i class="flag fa fa-@(flag.Item2.Icon) fa-fw d-@(flag.Item2.IconColour)"><span class="details"><span class="name">@flag.Item2.Name</span>@if (flag.Item1.Comments != null)
|
||||
{<span class="comments">@flag.Item1.Comments.ToHtmlComment()</span>}<span class="added">@CommonHelpers.FriendlyDateAndUser(flag.Item1.AddedDate, flag.Item1.AddedUserId)</span></span></i>
|
||||
}
|
||||
</div>}
|
||||
</td>
|
||||
<td>
|
||||
@item.Surname
|
||||
@@ -46,12 +55,54 @@
|
||||
@item.AssignedDevicesCount
|
||||
</td>
|
||||
<td>
|
||||
@item.JobCount
|
||||
@item.JobCountOpen @if (item.JobCount > item.JobCountOpen)
|
||||
{
|
||||
<span class="smallMessage">(@(item.JobCount - item.JobCountOpen) Closed)</span>
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
var userTable = $('table.userTable');
|
||||
|
||||
userTable.each(function () {
|
||||
var $this = $(this);
|
||||
|
||||
if (!$this.data('userTable_Flags')) {
|
||||
$this.tooltip({
|
||||
items: 'i.flag',
|
||||
content: function () {
|
||||
var $this = $(this);
|
||||
return $this.children('.details').html();
|
||||
},
|
||||
tooltipClass: 'User_FlagAssignment_Tooltip',
|
||||
position: {
|
||||
my: "right top",
|
||||
at: "right bottom",
|
||||
collision: "flipfit flip"
|
||||
},
|
||||
hade: {
|
||||
effect: ''
|
||||
},
|
||||
close: function (e, ui) {
|
||||
ui.tooltip.hover(
|
||||
function () {
|
||||
$(this).stop(true).fadeTo(100, 1);
|
||||
},
|
||||
function () {
|
||||
$(this).fadeOut(100, function () { $(this).remove(); });
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$this.data('userTable_Flags', true)
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -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(" <tr>\r\n <td>\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(" <tr>\r\n <td>\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(" <tr>\r\n <td>\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("<div");
|
||||
|
||||
WriteLiteral(" class=\"flags\"");
|
||||
|
||||
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(" <i");
|
||||
|
||||
WriteAttribute("class", Tuple.Create(" class=\"", 1639), Tuple.Create("\"", 1709)
|
||||
, Tuple.Create(Tuple.Create("", 1647), Tuple.Create("flag", 1647), true)
|
||||
, Tuple.Create(Tuple.Create(" ", 1651), Tuple.Create("fa", 1652), true)
|
||||
, Tuple.Create(Tuple.Create(" ", 1654), Tuple.Create("fa-", 1655), true)
|
||||
|
||||
#line 40 "..\..\Views\User\_UserTable.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 1658), Tuple.Create<System.Object, System.Int32>(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<System.Object, System.Int32>(flag.Item2.IconColour
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 1685), false)
|
||||
);
|
||||
|
||||
WriteLiteral("><span");
|
||||
|
||||
WriteLiteral(" class=\"details\"");
|
||||
|
||||
WriteLiteral("><span");
|
||||
|
||||
WriteLiteral(" class=\"name\"");
|
||||
|
||||
WriteLiteral(">");
|
||||
|
||||
|
||||
#line 40 "..\..\Views\User\_UserTable.cshtml"
|
||||
Write(flag.Item2.Name);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</span>");
|
||||
|
||||
|
||||
#line 40 "..\..\Views\User\_UserTable.cshtml"
|
||||
if (flag.Item1.Comments != null)
|
||||
{
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("<span");
|
||||
|
||||
WriteLiteral(" class=\"comments\"");
|
||||
|
||||
WriteLiteral(">");
|
||||
|
||||
|
||||
#line 41 "..\..\Views\User\_UserTable.cshtml"
|
||||
Write(flag.Item1.Comments.ToHtmlComment());
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</span>");
|
||||
|
||||
|
||||
#line 41 "..\..\Views\User\_UserTable.cshtml"
|
||||
}
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("<span");
|
||||
|
||||
WriteLiteral(" class=\"added\"");
|
||||
|
||||
WriteLiteral(">");
|
||||
|
||||
|
||||
#line 41 "..\..\Views\User\_UserTable.cshtml"
|
||||
Write(CommonHelpers.FriendlyDateAndUser(flag.Item1.AddedDate, flag.Item1.AddedUserId));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</span></span></i>\r\n");
|
||||
|
||||
|
||||
#line 42 "..\..\Views\User\_UserTable.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </div>");
|
||||
|
||||
|
||||
#line 43 "..\..\Views\User\_UserTable.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </td>\r\n <td>\r\n");
|
||||
@@ -155,7 +292,7 @@ WriteLiteral(" </td>\r\n <td>\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 </td>\r\n <td>\
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 40 "..\..\Views\User\_UserTable.cshtml"
|
||||
#line 49 "..\..\Views\User\_UserTable.cshtml"
|
||||
Write(item.GivenName);
|
||||
|
||||
|
||||
@@ -177,7 +314,7 @@ WriteLiteral("\r\n </td>\r\n <td>\
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 43 "..\..\Views\User\_UserTable.cshtml"
|
||||
#line 52 "..\..\Views\User\_UserTable.cshtml"
|
||||
Write(item.DisplayName);
|
||||
|
||||
|
||||
@@ -188,7 +325,7 @@ WriteLiteral("\r\n </td>\r\n <td>\
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 46 "..\..\Views\User\_UserTable.cshtml"
|
||||
#line 55 "..\..\Views\User\_UserTable.cshtml"
|
||||
Write(item.AssignedDevicesCount);
|
||||
|
||||
|
||||
@@ -199,16 +336,48 @@ WriteLiteral("\r\n </td>\r\n <td>\
|
||||
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 </td>\r\n </tr>\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(" <span");
|
||||
|
||||
WriteLiteral(" class=\"smallMessage\"");
|
||||
|
||||
WriteLiteral(">(");
|
||||
|
||||
|
||||
#line 60 "..\..\Views\User\_UserTable.cshtml"
|
||||
Write(item.JobCount - item.JobCountOpen);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" Closed)</span>\r\n");
|
||||
|
||||
|
||||
#line 61 "..\..\Views\User\_UserTable.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </td>\r\n </tr>\r\n");
|
||||
|
||||
|
||||
#line 64 "..\..\Views\User\_UserTable.cshtml"
|
||||
}
|
||||
|
||||
|
||||
@@ -216,8 +385,34 @@ WriteLiteral("\r\n </td>\r\n </tr>\r\n
|
||||
#line hidden
|
||||
WriteLiteral(" </tbody>\r\n </table>\r\n");
|
||||
|
||||
WriteLiteral(" <script");
|
||||
|
||||
WriteLiteral(" type=\"text/javascript\"");
|
||||
|
||||
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 </script>\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</span>\r\n");
|
||||
|
||||
|
||||
#line 59 "..\..\Views\User\_UserTable.cshtml"
|
||||
#line 110 "..\..\Views\User\_UserTable.cshtml"
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user