Feature: Job Queues

Also UI style, theme and element changes
This commit is contained in:
Gary Sharp
2014-02-03 14:50:08 +11:00
parent bdb3e1e6b4
commit 3f63281dc4
212 changed files with 17334 additions and 5441 deletions
@@ -7,6 +7,6 @@
@Html.Partial(MVC.Shared.Views._JobTable, Model.Jobs)
</div>
<script>
$('#DeviceDetailTabItems').append('<li><a href="#DeviceDetailTab-Jobs">Jobs [@(Model.Jobs.Items.Count)]</a></li>');
$('#DeviceDetailTabItems').append('<li><a href="#DeviceDetailTab-Jobs">Jobs [@(Model.Jobs.Items.Count())]</a></li>');
</script>
</div>
@@ -29,6 +29,7 @@ namespace Disco.Web.Views.Device.DeviceParts
using Disco;
using Disco.BI.Extensions;
using Disco.Models.Repository;
using Disco.Services;
using Disco.Services.Authorization;
using Disco.Services.Web;
using Disco.Web;
@@ -77,7 +78,7 @@ WriteLiteral("\r\n </div>\r\n <script>\r\n $(\'#DeviceDetailTabItem
#line 10 "..\..\Views\Device\DeviceParts\_Jobs.cshtml"
Write(Model.Jobs.Items.Count);
Write(Model.Jobs.Items.Count());
#line default
+1
View File
@@ -1,3 +1,4 @@
@{
Html.BundleDeferred("~/Style/Device");
ViewContext.ViewData["MenuArea"] = MVC.Device.Name;
}
@@ -47,6 +47,7 @@ namespace Disco.Web.Views.Device
#line 1 "..\..\Views\Device\_ViewStart.cshtml"
Html.BundleDeferred("~/Style/Device");
ViewContext.ViewData["MenuArea"] = MVC.Device.Name;
#line default
+3 -4
View File
@@ -27,7 +27,7 @@
{
<div id="createJob_SubType_@(jt.Id)" class="createJob_SubType">
<div class="createJob_SubTypes">
@CommonHelpers.CheckBoxList("SubTypes", Model.JobSubTypes.Where(jst => jst.JobTypeId == jt.Id).ToList().ToSelectListItems(Model.SubTypes), 3)
@CommonHelpers.CheckBoxList("SubTypes", jt.JobSubTypes.ToSelectListItems(Model.SubTypes, true), 3, true, null, false)
</div>
</div>
}
@@ -64,12 +64,10 @@
</div>
<div id="createJob_QuickLogContainer" class="createJob_Component">
<div id="createJob_QuickLogAutoCloseContainer">
<h3>Quick Log</h3>
<input id="createJob_QuickLog" name="QuickLog" type="checkbox" value="true" /><label for="createJob_QuickLog">Automatically close this job</label>
</div>
<div id="createJob_QuickLogTaskTimeContainer">
<h3>Task Time</h3>
@Html.ValidationMessageFor(m => m.QuickLogTaskTimeMinutes)
<h4>Task Time:</h4>
<input type="radio" id="createJob_TaskTime10" name="QuickLogTaskTimeMinutes" value="10" /><label for="createJob_TaskTime10"> 10 Minutes</label>
<input type="radio" id="createJob_TaskTime30" name="QuickLogTaskTimeMinutes" value="30" /><label for="createJob_TaskTime30"> 30 Minutes</label>
<input type="radio" id="createJob_TaskTime60" name="QuickLogTaskTimeMinutes" value="60" /><label for="createJob_TaskTime60"> 1 Hour</label>
@@ -79,6 +77,7 @@
<input type="number" id="createJob_TaskTimeOtherMinutes" name="QuickLogTaskTimeMinutesOther" value="" disabled="disabled" />
Minutes
</span>
@Html.ValidationMessageFor(m => m.QuickLogTaskTimeMinutes)
</div>
</div>
}
+17 -17
View File
@@ -29,6 +29,7 @@ namespace Disco.Web.Views.Job
using Disco;
using Disco.BI.Extensions;
using Disco.Models.Repository;
using Disco.Services;
using Disco.Services.Authorization;
using Disco.Services.Web;
using Disco.Web;
@@ -232,7 +233,7 @@ WriteLiteral(" ");
#line 30 "..\..\Views\Job\Create.cshtml"
Write(CommonHelpers.CheckBoxList("SubTypes", Model.JobSubTypes.Where(jst => jst.JobTypeId == jt.Id).ToList().ToSelectListItems(Model.SubTypes), 3));
Write(CommonHelpers.CheckBoxList("SubTypes", jt.JobSubTypes.ToSelectListItems(Model.SubTypes, true), 3, true, null, false));
#line default
@@ -342,7 +343,7 @@ WriteLiteral(">\r\n <div");
WriteLiteral(" id=\"createJob_QuickLogAutoCloseContainer\"");
WriteLiteral(">\r\n <h3>Quick Log</h3>\r\n <input");
WriteLiteral(">\r\n <input");
WriteLiteral(" id=\"createJob_QuickLog\"");
@@ -360,18 +361,7 @@ WriteLiteral(">Automatically close this job</label>\r\n </div>\r\n
WriteLiteral(" id=\"createJob_QuickLogTaskTimeContainer\"");
WriteLiteral(">\r\n <h3>Task Time</h3>\r\n");
WriteLiteral(" ");
#line 72 "..\..\Views\Job\Create.cshtml"
Write(Html.ValidationMessageFor(m => m.QuickLogTaskTimeMinutes));
#line default
#line hidden
WriteLiteral("\r\n <input");
WriteLiteral(">\r\n <h4>Task Time:</h4>\r\n <input");
WriteLiteral(" type=\"radio\"");
@@ -457,11 +447,21 @@ WriteLiteral(" value=\"\"");
WriteLiteral(" disabled=\"disabled\"");
WriteLiteral(" />\r\n Minutes\r\n </span>\r\n </div>\r\n " +
" </div>\r\n");
WriteLiteral(" />\r\n Minutes\r\n </span>\r\n");
WriteLiteral(" ");
#line 84 "..\..\Views\Job\Create.cshtml"
#line 80 "..\..\Views\Job\Create.cshtml"
Write(Html.ValidationMessageFor(m => m.QuickLogTaskTimeMinutes));
#line default
#line hidden
WriteLiteral("\r\n </div>\r\n </div>\r\n");
#line 83 "..\..\Views\Job\Create.cshtml"
}
+4 -4
View File
@@ -124,13 +124,13 @@
</div>
}
</div>
@if (Authorization.Has(Claims.Job.Lists.AwaitingTechnicianAction))
@if (Authorization.Has(Claims.Job.Lists.MyJobs))
{
<h2>Open Jobs Awaiting Technician Action (@Model.OpenJobs.Items.Count)</h2>
@Html.Partial(MVC.Shared.Views._JobTable, Model.OpenJobs, new ViewDataDictionary())
<h2>My Jobs (@Model.MyJobs.Items.Count())</h2>
@Html.Partial(MVC.Shared.Views._JobTable, Model.MyJobs, new ViewDataDictionary())
}
@if (Authorization.Has(Claims.Job.Lists.LongRunningJobs))
{
<h2>Long Running Jobs (@Model.LongRunningJobs.Items.Count)</h2>
<h2>Long Running Jobs (@Model.LongRunningJobs.Items.Count())</h2>
@Html.Partial(MVC.Shared.Views._JobTable, Model.LongRunningJobs, new ViewDataDictionary())
}
+7 -6
View File
@@ -29,6 +29,7 @@ namespace Disco.Web.Views.Job
using Disco;
using Disco.BI.Extensions;
using Disco.Models.Repository;
using Disco.Services;
using Disco.Services.Authorization;
using Disco.Services.Web;
using Disco.Web;
@@ -219,17 +220,17 @@ WriteLiteral("</div>\r\n");
#line 127 "..\..\Views\Job\Index.cshtml"
if (Authorization.Has(Claims.Job.Lists.AwaitingTechnicianAction))
if (Authorization.Has(Claims.Job.Lists.MyJobs))
{
#line default
#line hidden
WriteLiteral(" <h2>Open Jobs Awaiting Technician Action (");
WriteLiteral(" <h2>My Jobs (");
#line 129 "..\..\Views\Job\Index.cshtml"
Write(Model.OpenJobs.Items.Count);
Write(Model.MyJobs.Items.Count());
#line default
@@ -244,14 +245,14 @@ WriteLiteral(")</h2>\r\n");
#line hidden
#line 130 "..\..\Views\Job\Index.cshtml"
Write(Html.Partial(MVC.Shared.Views._JobTable, Model.OpenJobs, new ViewDataDictionary()));
Write(Html.Partial(MVC.Shared.Views._JobTable, Model.MyJobs, new ViewDataDictionary()));
#line default
#line hidden
#line 130 "..\..\Views\Job\Index.cshtml"
}
@@ -269,7 +270,7 @@ WriteLiteral(" <h2>Long Running Jobs (");
#line 134 "..\..\Views\Job\Index.cshtml"
Write(Model.LongRunningJobs.Items.Count);
Write(Model.LongRunningJobs.Items.Count());
#line default
+394
View File
@@ -0,0 +1,394 @@
@model Disco.Web.Models.Job.ShowModel
@using Disco.Services.Jobs.JobQueues;
@{
Authorization.Require(Claims.Job.ShowJobsQueues);
var hasAddOwn = Authorization.Has(Claims.Job.Actions.AddOwnQueues);
var hasAddAny = Authorization.Has(Claims.Job.Actions.AddAnyQueues);
var hasRemoveOwn = Authorization.Has(Claims.Job.Actions.RemoveOwnQueues);
var hasRemoveAny = Authorization.Has(Claims.Job.Actions.RemoveAnyQueues);
var hasJobQueueShow = Authorization.Has(Claims.Config.JobQueue.Show);
var queues = JobQueueService.GetQueues();
var queueHistory = Model.Job.JobQueues.Select(jq => new Tuple<JobQueueJob, JobQueueToken>(jq, queues.First(q => q.JobQueue.Id == jq.JobQueueId))).OrderBy(jq => jq.Item1.AddedDate).ToList();
}
@if (queueHistory.Count > 0)
{
<table id="jobQueues">
<tr>
<th class="name">Name</th>
<th class="added">Added</th>
<th class="removed">Removed</th>
<th class="sla">SLA</th>
</tr>
@foreach (var jq in queueHistory.OrderByDescending(jqj => jqj.Item1.AddedDate))
{
bool overdue = (jq.Item1.SLAExpiresDate.HasValue && jq.Item1.SLAExpiresDate.Value < (jq.Item1.RemovedDate.HasValue ? jq.Item1.RemovedDate : DateTime.Now));
<tr data-jobqueuejobid="@jq.Item1.Id" data-jobqueuejobaddeddate="@(jq.Item1.AddedDate.ToString("s"))" class="@(!jq.Item1.RemovedDate.HasValue ? "added" : "removed")">
<td class="name">
<i class="fa fa-@(jq.Item2.JobQueue.Icon) fa-fw fa-lg d-@(jq.Item2.JobQueue.IconColour)"></i>
@if (hasJobQueueShow)
{
@Html.ActionLink(jq.Item2.JobQueue.Name, MVC.Config.JobQueue.Index(jq.Item2.JobQueue.Id))
}
else
{
@jq.Item2.JobQueue.Name
}
@if (jq.Item2.JobQueue.Priority != JobQueuePriority.Normal)
{
<i class="fa d-priority-@(jq.Item2.JobQueue.Priority.ToString().ToLower())" title="@(jq.Item2.JobQueue.Priority.ToString()) Queue Priority"></i>
}
</td>
<td class="added">
@if (jq.Item1.CanEditAddedComment())
{
<i class="fa fa-fw fa-edit" title="Edit Comment"></i>
}
@if (jq.Item1.AddedComment == null)
{
<div class="comments smallMessage">[no comment]</div>
}
else
{
<div class="comments">@jq.Item1.AddedComment</div>
}
<div class="when">@CommonHelpers.FriendlyDateAndUser(jq.Item1.AddedDate, jq.Item1.AddedUser)</div>
</td>
<td class="removed@(!jq.Item1.RemovedDate.HasValue ? " na" : null)">
@if (jq.Item1.RemovedDate.HasValue)
{
if (jq.Item1.CanEditRemovedComment())
{
<i class="fa fa-fw fa-edit" title="Edit Comment"></i>
}
if (jq.Item1.RemovedComment == null)
{
<div class="comments smallMessage">[no comment]</div>
}
else
{
<div class="comments">@jq.Item1.RemovedComment</div>
}
<div class="when">@CommonHelpers.FriendlyDateAndUser(jq.Item1.RemovedDate.Value, jq.Item1.RemovedUser)</div>
}
else if (jq.Item1.CanRemove())
{
@Html.ActionLinkSmallButton("Remove", MVC.API.JobQueueJob.RemoveJob(jq.Item1.Id, null), null, (jq.Item1.CanCloseJobNormallyAfterRemoved() ? "remove canCloseNormally" : "remove"))
}
else
{
<span class="smallMessage">In Progress</span>
}
</td>
<td class="sla @(overdue ? "overdue" : null) @(jq.Item1.CanEditSla() ? "canEditSLA" : null) @(jq.Item1.CanEditPriority() ? "canEditPriority" : null)" data-priority="@(jq.Item1.Priority.ToString())" data-sla="@(jq.Item1.SLAExpiresDate.HasValue ? jq.Item1.SLAExpiresDate.Value.ToString("s") : null)">
@if (jq.Item1.CanEditSla() || jq.Item1.CanEditPriority())
{
<i class="fa fa-fw fa-edit" title="Edit SLA"></i>
}
<i class="fa d-priority-@(jq.Item1.Priority.ToString().ToLower())" title="@(jq.Item1.Priority.ToString()) Job Priority"></i>
@if (jq.Item1.SLAExpiresDate.HasValue)
{
if (jq.Item1.RemovedDate.HasValue)
{
@CommonHelpers.FriendlyDate(jq.Item1.SLAExpiresDate.Value, WithoutSuffix: true)
if (jq.Item1.RemovedDate.Value <= jq.Item1.SLAExpiresDate.Value)
{
<span>early</span>
}
else
{
<span>late</span>
}
}
else
{
<span>due </span>@CommonHelpers.FriendlyDate(jq.Item1.SLAExpiresDate.Value)
}
}
</td>
</tr>
}
</table>
<div id="Job_Show_Queues_Actions_Remove_Dialog" class="dialog" title="Remove this Job from the queue?">
@using (Html.BeginForm(MVC.API.JobQueueJob.RemoveJob()))
{
<input id="Job_Show_Queues_Actions_Remove_Dialog_Id" type="hidden" name="id" value="" />
<p>
<i class="fa fa-exclamation-triangle fa-lg"></i>&nbsp;Are you sure?
</p>
<h3>Comment:</h3>
<p>
<textarea name="Comment" class="block"></textarea>
</p>
<div id="Job_Show_Queues_Actions_Remove_Dialog_CloseJob_Container">
<input id="Job_Show_Queues_Actions_Remove_Dialog_CloseJob" type="checkbox" name="CloseJob" value="true" />
<label for="Job_Show_Queues_Actions_Remove_Dialog_CloseJob">Close the Job</label>
</div>
}
</div>
<div id="Job_Show_Queues_Actions_EditAddedComment_Dialog" class="dialog" title="Edit the Added Comment">
@using (Html.BeginForm(MVC.API.JobQueueJob.UpdateAddedComment()))
{
<input id="Job_Show_Queues_Actions_EditAddedComment_Dialog_Id" type="hidden" name="id" value="" />
<input type="hidden" name="redirect" value="true" />
<h4>Comment:</h4>
<p>
<textarea id="Job_Show_Queues_Actions_EditAddedComment_Dialog_Comment" name="AddedComment" class="block"></textarea>
</p>
}
</div>
<div id="Job_Show_Queues_Actions_EditRemovedComment_Dialog" class="dialog" title="Edit the Removed Comment">
@using (Html.BeginForm(MVC.API.JobQueueJob.UpdateRemovedComment()))
{
<input id="Job_Show_Queues_Actions_EditRemovedComment_Dialog_Id" type="hidden" name="id" value="" />
<input type="hidden" name="redirect" value="true" />
<h4>Comment:</h4>
<p>
<textarea id="Job_Show_Queues_Actions_EditRemovedComment_Dialog_Comment" name="RemovedComment" class="block"></textarea>
</p>
}
</div>
<div id="Job_Show_Queues_Actions_EditSla_Dialog" class="dialog" title="Edit the SLA">
@using (Html.BeginForm(MVC.API.JobQueueJob.UpdateSlaAndPriority()))
{
<input id="Job_Show_Queues_Actions_EditSla_Dialog_Id" type="hidden" name="id" value="" />
<input type="hidden" name="redirect" value="true" />
<div class="priority">
<h4>Job Priority:</h4>
<p>
<i class="fa"></i>
<select id="Job_Show_Queues_Actions_EditSla_Dialog_Priority" name="Priority" autofocus="autofocus">
@foreach (var priorityItem in Enum.GetNames(typeof(JobQueuePriority)))
{
<option value="@(priorityItem)">@(priorityItem)</option>
}
</select>
</p>
</div>
<div class="sla">
<h4>SLA Target:</h4>
<p>
<input id="Job_Show_Queues_Actions_EditSla_Dialog_Sla" name="Sla" type="text" placeholder="None" />
</p>
</div>
}
</div>
<script type="text/javascript">
$(function () {
var jobQueues = $('#jobQueues');
var dialog = null;
var dialogEditAddedComment = null;
var dialogEditRemovedComment = null;
var dialogEditSla = null;
var dialogEditSla_BothUrl = '@(Url.Action(MVC.API.JobQueueJob.UpdateSlaAndPriority()))';
var dialogEditSla_SlaUrl = '@(Url.Action(MVC.API.JobQueueJob.UpdateSla()))';
var dialogEditSla_PriorityUrl = '@(Url.Action(MVC.API.JobQueueJob.UpdatePriority()))';
jobQueues.on('click', 'a.remove', function (e) {
var $this = $(this);
var jobQueueJobId = $this.closest('tr').attr('data-jobqueuejobid');
if (!dialog) {
dialog = $('#Job_Show_Queues_Actions_Remove_Dialog');
dialog.dialog({
resizable: false,
modal: true,
autoOpen: false,
buttons: {
"Remove Job": function () {
var $this = $(this);
$this.dialog("disable");
$this.dialog("option", "buttons", null);
$this.find('form').submit();
},
Cancel: function () {
$(this).dialog("close");
}
}
});
}
if ($this.hasClass('canCloseNormally')) {
$('#Job_Show_Queues_Actions_Remove_Dialog_CloseJob_Container').show();
} else {
$('#Job_Show_Queues_Actions_Remove_Dialog_CloseJob_Container').hide();
}
$('#Job_Show_Queues_Actions_Remove_Dialog_CloseJob').prop('checked', false);
$('#Job_Show_Queues_Actions_Remove_Dialog_Id').val(jobQueueJobId);
dialog.dialog('open');
e.preventDefault();
return false;
});
jobQueues.on('click', 'td.added i.fa-edit', function (e) {
var $this = $(this);
var jobQueueJobId = $this.closest('tr').attr('data-jobqueuejobid');
if (!dialogEditAddedComment) {
dialogEditAddedComment = $('#Job_Show_Queues_Actions_EditAddedComment_Dialog');
dialogEditAddedComment.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('.comments');
if ($comments.hasClass('smallMessage')) {
$('#Job_Show_Queues_Actions_EditAddedComment_Dialog_Comment').val('');
} else {
$('#Job_Show_Queues_Actions_EditAddedComment_Dialog_Comment').val($comments.text());
}
$('#Job_Show_Queues_Actions_EditAddedComment_Dialog_Id').val(jobQueueJobId);
dialogEditAddedComment.dialog('open');
e.preventDefault();
return false;
});
jobQueues.on('click', 'td.removed i.fa-edit', function (e) {
var $this = $(this);
var jobQueueJobId = $this.closest('tr').attr('data-jobqueuejobid');
if (!dialogEditRemovedComment) {
dialogEditRemovedComment = $('#Job_Show_Queues_Actions_EditRemovedComment_Dialog');
dialogEditRemovedComment.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('.comments');
if ($comments.hasClass('smallMessage')) {
$('#Job_Show_Queues_Actions_EditRemovedComment_Dialog_Comment').val('');
} else {
$('#Job_Show_Queues_Actions_EditRemovedComment_Dialog_Comment').val($comments.text());
}
$('#Job_Show_Queues_Actions_EditRemovedComment_Dialog_Id').val(jobQueueJobId);
dialogEditRemovedComment.dialog('open');
e.preventDefault();
return false;
});
jobQueues.on('click', 'td.sla i.fa-edit', function (e) {
var $this = $(this);
var jobQueueJobId = $this.closest('tr').attr('data-jobqueuejobid');
var priorityChange = function () {
var $element = $('#Job_Show_Queues_Actions_EditSla_Dialog_Priority');
var icon = dialogEditSla.find('.priority i');
icon[0].className = '';
icon.addClass('fa d-priority-' + $element.val().toLowerCase()).attr('title', $element.val() + ' Priority');
};
if (!dialogEditSla) {
dialogEditSla = $('#Job_Show_Queues_Actions_EditSla_Dialog');
dialogEditSla.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");
}
}
});
$('#Job_Show_Queues_Actions_EditSla_Dialog_Priority').change(priorityChange);
}
var $td = $this.closest('td');
var priority = $td.attr('data-priority');
var sla = $td.attr('data-sla');
var slaStart = $this.closest('tr').attr('data-jobqueuejobaddeddate');
var canEditSla = $td.hasClass('canEditSLA');
var canEditPriority = $td.hasClass('canEditPriority');
if (canEditPriority) {
$('#Job_Show_Queues_Actions_EditSla_Dialog_Priority').val(priority);
priorityChange();
dialogEditSla.find('div.priority').show();
} else {
dialogEditSla.find('div.priority').hide();
}
if (canEditSla) {
var $sla = $('#Job_Show_Queues_Actions_EditSla_Dialog_Sla');
$sla.datetimepicker('destroy').datetimepicker({
defaultDate: new Date(),
ampm: true,
changeYear: true,
changeMonth: true,
minDate: moment(slaStart).add('m', 1).toDate(),
dateFormat: 'yy/mm/dd'
});
if (sla) {
$sla.datetimepicker('setDate', moment(sla).toDate());
} else {
$sla.val('');
}
dialogEditSla.find('div.sla').show();
} else {
dialogEditSla.find('div.sla').hide();
}
if (canEditPriority && canEditSla)
dialogEditSla.find('form').attr('action', dialogEditSla_BothUrl);
else if (canEditPriority)
dialogEditSla.find('form').attr('action', dialogEditSla_PriorityUrl);
else if (canEditSla)
dialogEditSla.find('form').attr('action', dialogEditSla_SlaUrl);
$('#Job_Show_Queues_Actions_EditSla_Dialog_Id').val(jobQueueJobId);
dialogEditSla.dialog('open');
e.preventDefault();
return false;
});
});
</script>
}
else
{
<div class="none">This job has no associated queue history</div>
}
File diff suppressed because it is too large Load Diff
@@ -268,7 +268,9 @@
if (!quick) {
e.animate({ backgroundColor: '#ffff99' }, 500, function () {
e.animate({ backgroundColor: '#f4f4f4' }, 500);
e.animate({ backgroundColor: '#fafafa' }, 500, function () {
e.css('background-color', '');
});
});
$CommentOutput.animate({ scrollTop: $CommentOutput[0].scrollHeight }, 250)
}
@@ -29,6 +29,7 @@ namespace Disco.Web.Views.Job.JobParts
using Disco;
using Disco.BI.Extensions;
using Disco.Models.Repository;
using Disco.Services;
using Disco.Services.Authorization;
using Disco.Services.Web;
using Disco.Web;
@@ -952,7 +953,9 @@ WriteLiteral(@"?id=$1"">#$1</a>');
if (!quick) {
e.animate({ backgroundColor: '#ffff99' }, 500, function () {
e.animate({ backgroundColor: '#f4f4f4' }, 500);
e.animate({ backgroundColor: '#fafafa' }, 500, function () {
e.css('background-color', '');
});
});
$CommentOutput.animate({ scrollTop: $CommentOutput[0].scrollHeight }, 250)
}
@@ -967,14 +970,14 @@ WriteLiteral(@"?id=$1"">#$1</a>');
");
#line 283 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 285 "..\..\Views\Job\JobParts\Resources.cshtml"
}
#line default
#line hidden
#line 284 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 286 "..\..\Views\Job\JobParts\Resources.cshtml"
if (canShowAttachments)
{
@@ -995,7 +998,7 @@ WriteLiteral(@" <script>
var jobId = parseInt('");
#line 297 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 299 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(Model.Job.Id);
@@ -1006,13 +1009,13 @@ WriteLiteral("\');\r\n\r\n //#region Attachments\r\n var $
"tput\');\r\n\r\n");
#line 303 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 305 "..\..\Views\Job\JobParts\Resources.cshtml"
#line default
#line hidden
#line 303 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 305 "..\..\Views\Job\JobParts\Resources.cshtml"
if (canAddAttachments)
{
@@ -1043,7 +1046,7 @@ WriteLiteral(@"
'");
#line 326 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 328 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(Links.ClientBin.Disco_Silverlight_AttachmentUpload_xap);
@@ -1064,7 +1067,7 @@ WriteLiteral(@"',
'UploadUrl=");
#line 338 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 340 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(Url.Action(MVC.API.Job.AttachmentUpload(Model.Job.Id, null)));
@@ -1099,7 +1102,7 @@ WriteLiteral(@"');
");
#line 364 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 366 "..\..\Views\Job\JobParts\Resources.cshtml"
}
@@ -1108,13 +1111,13 @@ WriteLiteral(@"');
WriteLiteral("\r\n");
#line 366 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 368 "..\..\Views\Job\JobParts\Resources.cshtml"
#line default
#line hidden
#line 366 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 368 "..\..\Views\Job\JobParts\Resources.cshtml"
if (canRemoveAnyAttachments || canRemoveOwnAttachments)
{
@@ -1149,7 +1152,7 @@ WriteLiteral(@"
url: '");
#line 393 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 395 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(Url.Action(MVC.API.Job.AttachmentRemove()));
@@ -1177,7 +1180,7 @@ WriteLiteral("\',\r\n dataType: \'json\',\r\n
" }\r\n\r\n //#endregion\r\n\r\n ");
#line 426 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 428 "..\..\Views\Job\JobParts\Resources.cshtml"
}
@@ -1188,7 +1191,7 @@ WriteLiteral("\r\n function addAttachment(key, quick) {\r\n\r\n
" $.ajax({\r\n url: \'");
#line 434 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 436 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(Url.Action(MVC.API.Job.Attachment()));
@@ -1200,13 +1203,13 @@ WriteLiteral("\',\r\n dataType: \'json\',\r\n
"");
#line 440 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 442 "..\..\Views\Job\JobParts\Resources.cshtml"
#line default
#line hidden
#line 440 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 442 "..\..\Views\Job\JobParts\Resources.cshtml"
if (canRemoveAnyAttachments)
{
@@ -1220,7 +1223,7 @@ WriteLiteral("buildAttachment(a, true, quick);");
WriteLiteral("\r\n");
#line 443 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 445 "..\..\Views\Job\JobParts\Resources.cshtml"
}
else if (canRemoveOwnAttachments)
{
@@ -1233,7 +1236,7 @@ WriteLiteral(" ");
WriteLiteral("buildAttachment(a, (a.AuthorId === \'");
#line 446 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 448 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(CurrentUser.Id);
@@ -1244,7 +1247,7 @@ WriteLiteral("\'), quick);");
WriteLiteral("\r\n");
#line 447 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 449 "..\..\Views\Job\JobParts\Resources.cshtml"
}
else
{
@@ -1259,7 +1262,7 @@ WriteLiteral("buildAttachment(a, false, quick);");
WriteLiteral("\r\n");
#line 451 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 453 "..\..\Views\Job\JobParts\Resources.cshtml"
}
@@ -1287,7 +1290,7 @@ WriteLiteral(@" } else {
e.attr('data-attachmentid', a.Id).attr('data-mimetype', a.MimeType).attr('href', '");
#line 471 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 473 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(Url.Action(MVC.API.Job.AttachmentDownload()));
@@ -1296,7 +1299,7 @@ WriteLiteral(@" } else {
WriteLiteral("/\' + a.Id);\r\n e.find(\'.icon img\').attr(\'src\', \'");
#line 472 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 474 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(Url.Action(MVC.API.Job.AttachmentThumbnail()));
@@ -1329,14 +1332,14 @@ WriteLiteral("/\' + a.Id);\r\n e.find(\'.comments\').text(a.C
" </script>\r\n");
#line 518 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 520 "..\..\Views\Job\JobParts\Resources.cshtml"
}
#line default
#line hidden
#line 519 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 521 "..\..\Views\Job\JobParts\Resources.cshtml"
if (canShowLogs && canShowAttachments)
{
@@ -1346,7 +1349,7 @@ WriteLiteral("/\' + a.Id);\r\n e.find(\'.comments\').text(a.C
WriteLiteral(" <script>\r\n $(function () {\r\n var jobId = parseInt(\'");
#line 523 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 525 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(Model.Job.Id);
@@ -1375,7 +1378,7 @@ WriteLiteral("\');\r\n\r\n //#region LiveEvents\r\n functi
" var liveMessagesConnection = $.connection(\'");
#line 556 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 558 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(Url.Content("~/API/Repository/Notifications"));
@@ -1394,7 +1397,7 @@ WriteLiteral(@"', { addToGroups: 'JobLog,JobAttachment' })
");
#line 566 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 568 "..\..\Views\Job\JobParts\Resources.cshtml"
}
else if (canShowLogs)
{
@@ -1405,7 +1408,7 @@ else if (canShowLogs)
WriteLiteral(" <script>\r\n $(function () {\r\n var jobId = parseInt(\'");
#line 571 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 573 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(Model.Job.Id);
@@ -1433,7 +1436,7 @@ WriteLiteral(@"');
var liveMessagesConnection = $.connection('");
#line 590 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 592 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(Url.Content("~/API/Repository/Notifications"));
@@ -1452,7 +1455,7 @@ WriteLiteral(@"', { addToGroups: 'JobLog' })
");
#line 600 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 602 "..\..\Views\Job\JobParts\Resources.cshtml"
}
else if (canShowAttachments)
{
@@ -1463,7 +1466,7 @@ else if (canShowAttachments)
WriteLiteral(" <script>\r\n $(function () {\r\n var jobId = parseInt(\'");
#line 605 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 607 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(Model.Job.Id);
@@ -1489,7 +1492,7 @@ WriteLiteral(@"');
var liveMessagesConnection = $.connection('");
#line 622 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 624 "..\..\Views\Job\JobParts\Resources.cshtml"
Write(Url.Content("~/API/Repository/Notifications"));
@@ -1508,7 +1511,7 @@ WriteLiteral(@"', { addToGroups: 'JobAttachment' })
");
#line 632 "..\..\Views\Job\JobParts\Resources.cshtml"
#line 634 "..\..\Views\Job\JobParts\Resources.cshtml"
}
+116 -10
View File
@@ -376,9 +376,9 @@
</tr>
<tr id="Job_Show_Subjects_Actions">
<td id="Job_Show_Job_Actions">
@if (Model.Job.CanForceClose())
@if (Model.Job.CanCloseForced())
{
@Html.ActionLinkSmallButton("Forcibly Close Job", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_ForceClose_Button")
@Html.ActionLinkSmallButton("Forcibly Close", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_ForceClose_Button")
<div id="Job_Show_Job_Actions_ForceClose_Dialog" class="dialog" title="Forcibly Close this Job?">
@using (Html.BeginForm(MVC.API.Job.ForceClose(Model.Job.Id, null, true)))
{
@@ -424,9 +424,9 @@
</script>
}
@if (Model.Job.CanClose())
@if (Model.Job.CanCloseNormally())
{
@Html.ActionLinkSmallButton("Close Job", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_Close_Button")
@Html.ActionLinkSmallButton("Close", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_Close_Button")
<div id="Job_Show_Job_Actions_Close_Dialog" class="dialog" title="Close this Job?">
<p>
<i class="fa fa-exclamation-triangle fa-lg"></i>&nbsp;Are you sure?
@@ -507,7 +507,7 @@
}
@if (Model.Job.CanDelete())
{
@Html.ActionLinkSmallButton("Delete Job", MVC.API.Job.Delete(Model.Job.Id, true), "Job_Show_Job_Actions_Delete_Button")
@Html.ActionLinkSmallButton("Delete", MVC.API.Job.Delete(Model.Job.Id, true), "Job_Show_Job_Actions_Delete_Button")
<div id="Job_Show_Job_Actions_Delete_Dialog" class="dialog" title="Delete this Job?">
<p>
<i class="fa fa-exclamation-triangle fa-lg"></i>&nbsp;This item will be permanently deleted and cannot be recovered. Are you sure?
@@ -546,6 +546,112 @@
});
</script>
}
@if (Model.Job.CanAddQueues() && Model.AvailableQueues != null && Model.AvailableQueues.Count > 0)
{
var priorityValue = JobQueuePriority.Normal.ToString();
var priorityItems = Enum.GetNames(typeof(JobQueuePriority)).Select(i => new SelectListItem() { Text = i, Value = i, Selected = (i == priorityValue) }).ToList();
var slaOptions = Disco.Services.Jobs.JobQueues.JobQueueService.SlaOptions.Select(o => new SelectListItem() { Text = o.Value, Value = o.Key.ToString() }).ToList();
@Html.ActionLinkSmallButton("Add to Queue", MVC.API.JobQueueJob.AddJob(), "Job_Show_Job_Actions_AddQueue_Button")
<div id="Job_Show_Job_Actions_AddQueue_Dialog" class="dialog" title="Add Job to Queue">
@using (Html.BeginForm(MVC.API.JobQueueJob.AddJob())){
<input id="Job_Show_Job_Actions_AddQueue_Dialog_Id" type="hidden" name="id" />
<input id="Job_Show_Job_Actions_AddQueue_Dialog_JobId" type="hidden" name="JobId" value="@Model.Job.Id" />
<div class="queuePicker">
@foreach (var jobQueue in Model.AvailableQueues.OrderBy(jq => jq.Name))
{
<div class="queue" data-queueid="@(jobQueue.Id)" data-queuesla="@(jobQueue.DefaultSLAExpiry.HasValue ? jobQueue.DefaultSLAExpiry.Value.ToString() : null)" data-queuepriority="@(jobQueue.Priority.ToString())">
<i class="fa fa-@(jobQueue.Icon) fa-fw fa-lg d-@(jobQueue.IconColour)"></i>@jobQueue.Name
</div>
}
</div>
<div class="details">
<div>
<h4>Job Priority</h4>
@Html.DropDownList("Priority", priorityItems) <i class="fa d-priority-@(priorityValue.ToLower())" title="@(priorityValue) Priority"></i>
</div>
<div>
<h4>SLA Target</h4>
@Html.DropDownList("SLAExpiresMinutes", slaOptions)
</div>
<div>
<h4>Comment</h4>
@Html.TextArea("Comment")
</div>
</div>
}
</div>
<script type="text/javascript">
$(function () {
var button = $('#Job_Show_Job_Actions_AddQueue_Button');
var buttonDialog = null;
var buttonLink = button.attr('href');
var queuePicker = null;
var details = null;
function queueSelected(){
var queue = $(this);
queuePicker.children().removeClass('selected');
queue.addClass('selected');
$('#Job_Show_Job_Actions_AddQueue_Dialog_Id').val(queue.attr('data-queueid'));
var queueSLA = queue.attr('data-queuesla');
details.find('#Priority').val('Normal');
details.find('#SLAExpiresMinutes').val(queueSLA);
details.find('#Comment').val('');
details.show();
}
button.attr('href', '#').click(function (e) {
e.preventDefault();
if (!buttonDialog){
buttonDialog = $('#Job_Show_Job_Actions_AddQueue_Dialog');
buttonDialog.dialog({
width: 600,
height: 410,
resizable: false,
modal: true,
autoOpen: false,
buttons: {
Cancel: function () {
$(this).dialog("close");
},
"Add to Queue": function () {
var $this = $(this);
$this.dialog("disable");
$this.dialog("option", "buttons", null);
buttonDialog.find('form').submit();
}
}
});
queuePicker = buttonDialog.find('.queuePicker');
details = buttonDialog.find('.details');
var priorityList = buttonDialog.find('#Priority');
priorityList.change(function () {
var icon = priorityList.closest('div').find('i').first();
icon[0].className = '';
icon.addClass('fa d-priority-' + priorityList.val().toLowerCase()).attr('title', priorityList.val() + ' Priority');
});
queuePicker.on('click', 'div.queue', queueSelected);
}
buttonDialog.dialog('open');
return false;
});
});
</script>
}
@if (Model.Job.CanLogWarranty())
{
@Html.ActionLinkSmallButton("Log Warranty", MVC.Job.LogWarranty(Model.Job.Id, null, null), "Job_Show_Job_Actions_LogWarranty_Button")
@@ -664,15 +770,15 @@
<td id="Job_Show_Device_Actions">
@if (Model.Job.CanDeviceHeld())
{
@Html.ActionLinkSmallButton("Held", MVC.API.Job.DeviceHeld(Model.Job.Id, true), "Job_Show_Device_Actions_Held_Button")
@Html.ActionLinkSmallButton("Device Held", MVC.API.Job.DeviceHeld(Model.Job.Id, true), "Job_Show_Device_Actions_Held_Button")
}
@if (Model.Job.CanDeviceReadyForReturn())
{
@Html.ActionLinkSmallButton("Ready For Return", MVC.API.Job.DeviceReadyForReturn(Model.Job.Id, true), "Job_Show_Device_Actions_DeviceReadyForReturn_Button", "alert")
@Html.ActionLinkSmallButton("Device Ready For Return", MVC.API.Job.DeviceReadyForReturn(Model.Job.Id, true), "Job_Show_Device_Actions_DeviceReadyForReturn_Button", "alert")
}
@if (Model.Job.CanDeviceReturned())
{
@Html.ActionLinkSmallButton("Returned", MVC.API.Job.DeviceReturned(Model.Job.Id, true), "Job_Show_Device_Actions_DeviceReturned_Button", Model.Job.CanDeviceReadyForReturn() ? null : "alert")
@Html.ActionLinkSmallButton("Device Returned", MVC.API.Job.DeviceReturned(Model.Job.Id, true), "Job_Show_Device_Actions_DeviceReturned_Button", Model.Job.CanDeviceReadyForReturn() ? null : "alert")
}
</td>
}
@@ -683,7 +789,7 @@
@if (Model.Job.CanWaitingForUserAction())
{
<a id="Job_Show_User_Actions_WaitingForUserAction_Button" href="#" class="button small">Awaiting Action</a>
<a id="Job_Show_User_Actions_WaitingForUserAction_Button" href="#" class="button small">Awaiting User Action</a>
<div id="Job_Show_User_Actions_WaitingForUserAction_Dialog" class="dialog" title="Waiting for User Action">
@using (Html.BeginForm(MVC.API.Job.WaitingForUserAction(Model.Job.Id, null, true)))
{
@@ -727,7 +833,7 @@
}
@if (Model.Job.CanNotWaitingForUserAction())
{
<a id="Job_Show_User_Actions_NotWaitingForUserAction_Button" href="#" class="button alert small">Action Resolved</a>
<a id="Job_Show_User_Actions_NotWaitingForUserAction_Button" href="#" class="button alert small">User Action Resolved</a>
<div id="Job_Show_User_Actions_NotWaitingForUserAction_Dialog" class="dialog" title="Not Waiting for User Action">
@using (Html.BeginForm(MVC.API.Job.NotWaitingForUserAction(Model.Job.Id, null, true)))
{
@@ -29,6 +29,7 @@ namespace Disco.Web.Views.Job.JobParts
using Disco;
using Disco.BI.Extensions;
using Disco.Models.Repository;
using Disco.Services;
using Disco.Services.Authorization;
using Disco.Services.Web;
using Disco.Web;
@@ -1591,7 +1592,7 @@ WriteLiteral(">\r\n");
#line hidden
#line 379 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanForceClose())
if (Model.Job.CanCloseForced())
{
@@ -1599,14 +1600,14 @@ WriteLiteral(">\r\n");
#line hidden
#line 381 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Forcibly Close Job", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_ForceClose_Button"));
Write(Html.ActionLinkSmallButton("Forcibly Close", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_ForceClose_Button"));
#line default
#line hidden
#line 381 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
@@ -1701,7 +1702,7 @@ WriteLiteral("\r\n");
#line hidden
#line 427 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanClose())
if (Model.Job.CanCloseNormally())
{
@@ -1709,14 +1710,14 @@ WriteLiteral("\r\n");
#line hidden
#line 429 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Close Job", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_Close_Button"));
Write(Html.ActionLinkSmallButton("Close", MVC.API.Job.Close(Model.Job.Id, true), "Job_Show_Job_Actions_Close_Button"));
#line default
#line hidden
#line 429 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
@@ -1850,14 +1851,14 @@ WriteLiteral(" ");
#line hidden
#line 510 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Delete Job", MVC.API.Job.Delete(Model.Job.Id, true), "Job_Show_Job_Actions_Delete_Button"));
Write(Html.ActionLinkSmallButton("Delete", MVC.API.Job.Delete(Model.Job.Id, true), "Job_Show_Job_Actions_Delete_Button"));
#line default
#line hidden
#line 510 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
@@ -1914,6 +1915,320 @@ WriteLiteral(" ");
#line 549 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanAddQueues() && Model.AvailableQueues != null && Model.AvailableQueues.Count > 0)
{
var priorityValue = JobQueuePriority.Normal.ToString();
var priorityItems = Enum.GetNames(typeof(JobQueuePriority)).Select(i => new SelectListItem() { Text = i, Value = i, Selected = (i == priorityValue) }).ToList();
var slaOptions = Disco.Services.Jobs.JobQueues.JobQueueService.SlaOptions.Select(o => new SelectListItem() { Text = o.Value, Value = o.Key.ToString() }).ToList();
#line default
#line hidden
#line 557 "..\..\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 557 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
WriteLiteral(" <div");
WriteLiteral(" id=\"Job_Show_Job_Actions_AddQueue_Dialog\"");
WriteLiteral(" class=\"dialog\"");
WriteLiteral(" title=\"Add Job to Queue\"");
WriteLiteral(">\r\n");
#line 559 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
#line 559 "..\..\Views\Job\JobParts\_Subject.cshtml"
using (Html.BeginForm(MVC.API.JobQueueJob.AddJob())){
#line default
#line hidden
WriteLiteral(" <input");
WriteLiteral(" id=\"Job_Show_Job_Actions_AddQueue_Dialog_Id\"");
WriteLiteral(" type=\"hidden\"");
WriteLiteral(" name=\"id\"");
WriteLiteral(" />\r\n");
WriteLiteral(" <input");
WriteLiteral(" id=\"Job_Show_Job_Actions_AddQueue_Dialog_JobId\"");
WriteLiteral(" type=\"hidden\"");
WriteLiteral(" name=\"JobId\"");
WriteAttribute("value", Tuple.Create(" value=\"", 35204), Tuple.Create("\"", 35225)
#line 561 "..\..\Views\Job\JobParts\_Subject.cshtml"
, Tuple.Create(Tuple.Create("", 35212), Tuple.Create<System.Object, System.Int32>(Model.Job.Id
#line default
#line hidden
, 35212), false)
);
WriteLiteral(" />\r\n");
WriteLiteral(" <div");
WriteLiteral(" class=\"queuePicker\"");
WriteLiteral(">\r\n");
#line 563 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
#line 563 "..\..\Views\Job\JobParts\_Subject.cshtml"
foreach (var jobQueue in Model.AvailableQueues.OrderBy(jq => jq.Name))
{
#line default
#line hidden
WriteLiteral(" <div");
WriteLiteral(" class=\"queue\"");
WriteLiteral(" data-queueid=\"");
#line 565 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(jobQueue.Id);
#line default
#line hidden
WriteLiteral("\"");
WriteLiteral(" data-queuesla=\"");
#line 565 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(jobQueue.DefaultSLAExpiry.HasValue ? jobQueue.DefaultSLAExpiry.Value.ToString() : null);
#line default
#line hidden
WriteLiteral("\"");
WriteLiteral(" data-queuepriority=\"");
#line 565 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(jobQueue.Priority.ToString());
#line default
#line hidden
WriteLiteral("\"");
WriteLiteral(">\r\n <i");
WriteAttribute("class", Tuple.Create(" class=\"", 35674), Tuple.Create("\"", 35741)
, Tuple.Create(Tuple.Create("", 35682), Tuple.Create("fa", 35682), true)
, Tuple.Create(Tuple.Create(" ", 35684), Tuple.Create("fa-", 35685), true)
#line 566 "..\..\Views\Job\JobParts\_Subject.cshtml"
, Tuple.Create(Tuple.Create("", 35688), Tuple.Create<System.Object, System.Int32>(jobQueue.Icon
#line default
#line hidden
, 35688), false)
, Tuple.Create(Tuple.Create(" ", 35704), Tuple.Create("fa-fw", 35705), true)
, Tuple.Create(Tuple.Create(" ", 35710), Tuple.Create("fa-lg", 35711), true)
, Tuple.Create(Tuple.Create(" ", 35716), Tuple.Create("d-", 35717), true)
#line 566 "..\..\Views\Job\JobParts\_Subject.cshtml"
, Tuple.Create(Tuple.Create("", 35719), Tuple.Create<System.Object, System.Int32>(jobQueue.IconColour
#line default
#line hidden
, 35719), false)
);
WriteLiteral("></i>");
#line 566 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(jobQueue.Name);
#line default
#line hidden
WriteLiteral("\r\n </div>\r\n");
#line 568 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
#line default
#line hidden
WriteLiteral(" </div>\r\n");
WriteLiteral(" <div");
WriteLiteral(" class=\"details\"");
WriteLiteral(">\r\n <div>\r\n <h4>Job Priority</h" +
"4>\r\n");
WriteLiteral(" ");
#line 573 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.DropDownList("Priority", priorityItems));
#line default
#line hidden
WriteLiteral(" <i");
WriteAttribute("class", Tuple.Create(" class=\"", 36055), Tuple.Create("\"", 36103)
, Tuple.Create(Tuple.Create("", 36063), Tuple.Create("fa", 36063), true)
, Tuple.Create(Tuple.Create(" ", 36065), Tuple.Create("d-priority-", 36066), true)
#line 573 "..\..\Views\Job\JobParts\_Subject.cshtml"
, Tuple.Create(Tuple.Create("", 36077), Tuple.Create<System.Object, System.Int32>(priorityValue.ToLower()
#line default
#line hidden
, 36077), false)
);
WriteAttribute("title", Tuple.Create(" title=\"", 36104), Tuple.Create("\"", 36137)
#line 573 "..\..\Views\Job\JobParts\_Subject.cshtml"
, Tuple.Create(Tuple.Create("", 36112), Tuple.Create<System.Object, System.Int32>(priorityValue
#line default
#line hidden
, 36112), false)
, Tuple.Create(Tuple.Create(" ", 36128), Tuple.Create("Priority", 36129), true)
);
WriteLiteral("></i>\r\n </div>\r\n <div>\r\n " +
" <h4>SLA Target</h4>\r\n");
WriteLiteral(" ");
#line 577 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.DropDownList("SLAExpiresMinutes", slaOptions));
#line default
#line hidden
WriteLiteral("\r\n </div>\r\n <div>\r\n " +
" <h4>Comment</h4>\r\n");
WriteLiteral(" ");
#line 581 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.TextArea("Comment"));
#line default
#line hidden
WriteLiteral("\r\n </div>\r\n </div>\r\n");
#line 584 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
#line default
#line hidden
WriteLiteral(" </div>\r\n");
WriteLiteral(" <script");
WriteLiteral(" type=\"text/javascript\"");
WriteLiteral(">\r\n $(function () {\r\n var button = $(\'#" +
"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\r\n " +
" details.find(\'#Priority\').val(\'Normal\');\r\n de" +
"tails.find(\'#SLAExpiresMinutes\').val(queueSLA);\r\n det" +
"ails.find(\'#Comment\').val(\'\');\r\n\r\n details.show();\r\n " +
" }\r\n \r\n butt" +
"on.attr(\'href\', \'#\').click(function (e) {\r\n e.prevent" +
"Default();\r\n\r\n if (!buttonDialog){\r\n " +
" buttonDialog = $(\'#Job_Show_Job_Actions_AddQueue_Dialog\');\r\n " +
" buttonDialog.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 Canc" +
"el: function () {\r\n $(this).dialog(\"c" +
"lose\");\r\n },\r\n " +
" \"Add to Queue\": function () {\r\n " +
" var $this = $(this);\r\n $this." +
"dialog(\"disable\");\r\n $this.dialog(\"op" +
"tion\", \"buttons\", null);\r\n buttonDial" +
"og.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.find(\'#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-\' + priorityList.val().toLowerCase()).attr" +
"(\'title\', priorityList.val() + \' Priority\');\r\n })" +
";\r\n\r\n queuePicker.on(\'click\', \'div.queue\', queueS" +
"elected);\r\n }\r\n\r\n buttonDi" +
"alog.dialog(\'open\');\r\n return false;\r\n " +
" });\r\n });\r\n </script>\r\n");
#line 654 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
#line default
#line hidden
WriteLiteral(" ");
#line 655 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanLogWarranty())
{
@@ -1921,14 +2236,14 @@ WriteLiteral(" ");
#line default
#line hidden
#line 551 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 657 "..\..\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 551 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 657 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -1938,7 +2253,7 @@ WriteLiteral(" ");
WriteLiteral(" ");
#line 553 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 659 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanWarrantyCompleted())
{
@@ -1946,14 +2261,14 @@ WriteLiteral(" ");
#line default
#line hidden
#line 555 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 661 "..\..\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 555 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 661 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -1963,7 +2278,7 @@ WriteLiteral(" ");
WriteLiteral(" ");
#line 557 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 663 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanInsuranceClaimFormSent())
{
@@ -1971,14 +2286,14 @@ WriteLiteral(" ");
#line default
#line hidden
#line 559 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 665 "..\..\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 559 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 665 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -1988,7 +2303,7 @@ WriteLiteral(" ");
WriteLiteral(" ");
#line 561 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 667 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanLogRepair())
{
@@ -1996,14 +2311,14 @@ WriteLiteral(" ");
#line default
#line hidden
#line 563 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 669 "..\..\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 563 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 669 "..\..\Views\Job\JobParts\_Subject.cshtml"
@@ -2020,13 +2335,13 @@ WriteLiteral(" title=\"Repairs Logged\"");
WriteLiteral(">\r\n");
#line 565 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 671 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
#line 565 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 671 "..\..\Views\Job\JobParts\_Subject.cshtml"
using (Html.BeginForm(MVC.API.Job.LogRepair(Model.Job.Id, null, null, true)))
{
@@ -2058,7 +2373,7 @@ WriteLiteral(" name=\"RepairerReference\"");
WriteLiteral(" />\r\n </p>\r\n");
#line 575 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 681 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2096,7 +2411,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" });\r\n });\r\n </script>\r\n");
#line 613 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 719 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2105,7 +2420,7 @@ WriteLiteral(">\r\n $(function () {\r\n
WriteLiteral(" ");
#line 614 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 720 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanRepairComplete())
{
@@ -2113,14 +2428,14 @@ WriteLiteral(" ");
#line default
#line hidden
#line 616 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 722 "..\..\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 616 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 722 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2130,7 +2445,7 @@ WriteLiteral(" ");
WriteLiteral(" ");
#line 618 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 724 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanConvertHWarToHNWar())
{
@@ -2138,14 +2453,14 @@ WriteLiteral(" ");
#line default
#line hidden
#line 620 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 726 "..\..\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 620 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 726 "..\..\Views\Job\JobParts\_Subject.cshtml"
@@ -2193,7 +2508,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" \r\n });\r\n </script>\r\n");
#line 660 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 766 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2202,13 +2517,13 @@ WriteLiteral(">\r\n $(function () {\r\n
WriteLiteral(" </td>\r\n");
#line 662 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 768 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
#line 662 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 768 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.Device != null)
{
@@ -2222,13 +2537,13 @@ WriteLiteral(" id=\"Job_Show_Device_Actions\"");
WriteLiteral(">\r\n");
#line 665 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 771 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
#line 665 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 771 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanDeviceHeld())
{
@@ -2236,15 +2551,15 @@ WriteLiteral(">\r\n");
#line default
#line hidden
#line 667 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Held", MVC.API.Job.DeviceHeld(Model.Job.Id, true), "Job_Show_Device_Actions_Held_Button"));
#line 773 "..\..\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 667 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 773 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2253,7 +2568,7 @@ WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 669 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 775 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanDeviceReadyForReturn())
{
@@ -2261,15 +2576,15 @@ WriteLiteral(" ");
#line default
#line hidden
#line 671 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Ready For Return", MVC.API.Job.DeviceReadyForReturn(Model.Job.Id, true), "Job_Show_Device_Actions_DeviceReadyForReturn_Button", "alert"));
#line 777 "..\..\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 671 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 777 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2278,7 +2593,7 @@ WriteLiteral(" ");
WriteLiteral(" ");
#line 673 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 779 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanDeviceReturned())
{
@@ -2286,15 +2601,15 @@ WriteLiteral(" ");
#line default
#line hidden
#line 675 "..\..\Views\Job\JobParts\_Subject.cshtml"
Write(Html.ActionLinkSmallButton("Returned", MVC.API.Job.DeviceReturned(Model.Job.Id, true), "Job_Show_Device_Actions_DeviceReturned_Button", Model.Job.CanDeviceReadyForReturn() ? null : "alert"));
#line 781 "..\..\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 675 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 781 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2303,7 +2618,7 @@ WriteLiteral(" ");
WriteLiteral(" </td>\r\n");
#line 678 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 784 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2312,7 +2627,7 @@ WriteLiteral(" </td>\r\n");
WriteLiteral(" ");
#line 679 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 785 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.User != null)
{
@@ -2326,13 +2641,13 @@ WriteLiteral(" id=\"Job_Show_User_Actions\"");
WriteLiteral(">\r\n\r\n\r\n");
#line 684 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 790 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
#line 684 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 790 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanWaitingForUserAction())
{
@@ -2347,7 +2662,7 @@ WriteLiteral(" href=\"#\"");
WriteLiteral(" class=\"button small\"");
WriteLiteral(">Awaiting Action</a>\r\n");
WriteLiteral(">Awaiting User Action</a>\r\n");
WriteLiteral(" <div");
@@ -2360,13 +2675,13 @@ WriteLiteral(" title=\"Waiting for User Action\"");
WriteLiteral(">\r\n");
#line 688 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 794 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
#line 688 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 794 "..\..\Views\Job\JobParts\_Subject.cshtml"
using (Html.BeginForm(MVC.API.Job.WaitingForUserAction(Model.Job.Id, null, true)))
{
@@ -2384,7 +2699,7 @@ WriteLiteral(" class=\"block\"");
WriteLiteral("></textarea>\r\n </p>\r\n");
#line 694 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 800 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2419,7 +2734,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" });\r\n </script>\r\n");
#line 727 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 833 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2428,7 +2743,7 @@ WriteLiteral(">\r\n $(function () {\r\n
WriteLiteral(" ");
#line 728 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 834 "..\..\Views\Job\JobParts\_Subject.cshtml"
if (Model.Job.CanNotWaitingForUserAction())
{
@@ -2443,7 +2758,7 @@ WriteLiteral(" href=\"#\"");
WriteLiteral(" class=\"button alert small\"");
WriteLiteral(">Action Resolved</a>\r\n");
WriteLiteral(">User Action Resolved</a>\r\n");
WriteLiteral(" <div");
@@ -2456,13 +2771,13 @@ WriteLiteral(" title=\"Not Waiting for User Action\"");
WriteLiteral(">\r\n");
#line 732 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 838 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line default
#line hidden
#line 732 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 838 "..\..\Views\Job\JobParts\_Subject.cshtml"
using (Html.BeginForm(MVC.API.Job.NotWaitingForUserAction(Model.Job.Id, null, true)))
{
@@ -2480,7 +2795,7 @@ WriteLiteral(" class=\"block\"");
WriteLiteral("></textarea>\r\n </p>\r\n");
#line 738 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 844 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2516,7 +2831,7 @@ WriteLiteral(">\r\n $(function () {\r\n
" });\r\n </script>\r\n");
#line 772 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 878 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
@@ -2525,7 +2840,7 @@ WriteLiteral(">\r\n $(function () {\r\n
WriteLiteral("\r\n </td>\r\n");
#line 775 "..\..\Views\Job\JobParts\_Subject.cshtml"
#line 881 "..\..\Views\Job\JobParts\_Subject.cshtml"
}
+23 -6
View File
@@ -15,13 +15,20 @@
<div id="Job_Show_Status">
@{ var jobStatusInfo = Model.Job.Status();}
<i class="fa fa-square jobStatus @(jobStatusInfo.Item1)"></i>&nbsp;@jobStatusInfo.Item2 @if (Model.LongRunning.HasValue)
{<span class="smallMessage">(Long Running: @Model.LongRunning.Value.Humanize(false))</span>}
<script type="text/javascript">
$(function () {
$('#Job_Show_Status').appendTo('#layout_PageHeading')
});
</script>
{<span class="smallMessage">(Long Running: @Model.LongRunning.Value.Humanize(false))</span>}
</div>
<div id="Job_Show_QueueStatus">
@foreach (var jq in Model.Job.JobQueues.Where(q => !q.RemovedDate.HasValue).Select(q => Disco.Services.Jobs.JobQueues.JobQueueService.GetQueue(q.JobQueueId)))
{
<i class="fa fa-@(jq.JobQueue.Icon) fa-fw fa-lg d-@(jq.JobQueue.IconColour)" title="@(jq.JobQueue.Name)"></i>
}
</div>
<script type="text/javascript">
$(function () {
$('#Job_Show_Status').appendTo('#layout_PageHeading')
$('#Job_Show_QueueStatus').appendTo('#layout_PageHeading')
});
</script>
@Html.Partial(MVC.Job.Views.JobParts._Subject, Model)
<script type="text/javascript">
$(function () {
@@ -70,6 +77,10 @@
{
<li><a href="#jobDetailTab-Resources">Attachments</a></li>
}
@if (Authorization.Has(Claims.Job.ShowJobsQueues))
{
<li><a href="#jobDetailTab-Queues">Queues</a></li>
}
</ul>
@if (Authorization.HasAny(Claims.Job.ShowLogs, Claims.Job.ShowAttachments))
{
@@ -77,6 +88,12 @@
@Html.Partial(MVC.Job.Views.JobParts.Resources, Model)
</div>
}
@if (Authorization.Has(Claims.Job.ShowJobsQueues))
{
<div id="jobDetailTab-Queues" class="jobPart">
@Html.Partial(MVC.Job.Views.JobParts.Queues, Model)
</div>
}
@Html.Partial(MVC.Job.Views.JobParts.JobMetaAdditions, Model)
</div>
</div>
+141 -17
View File
@@ -29,6 +29,7 @@ namespace Disco.Web.Views.Job
using Disco;
using Disco.BI.Extensions;
using Disco.Models.Repository;
using Disco.Services;
using Disco.Services.Authorization;
using Disco.Services.Web;
using Disco.Web;
@@ -111,7 +112,7 @@ WriteLiteral(" ");
#line 17 "..\..\Views\Job\Show.cshtml"
if (Model.LongRunning.HasValue)
{
{
#line default
#line hidden
@@ -123,7 +124,7 @@ WriteLiteral(">(Long Running: ");
#line 18 "..\..\Views\Job\Show.cshtml"
Write(Model.LongRunning.Value.Humanize(false));
Write(Model.LongRunning.Value.Humanize(false));
#line default
@@ -132,22 +133,86 @@ WriteLiteral(")</span>");
#line 18 "..\..\Views\Job\Show.cshtml"
}
}
#line default
#line hidden
WriteLiteral(" <script");
WriteLiteral(" </div>\r\n <div");
WriteLiteral(" id=\"Job_Show_QueueStatus\"");
WriteLiteral(">\r\n");
#line 21 "..\..\Views\Job\Show.cshtml"
#line default
#line hidden
#line 21 "..\..\Views\Job\Show.cshtml"
foreach (var jq in Model.Job.JobQueues.Where(q => !q.RemovedDate.HasValue).Select(q => Disco.Services.Jobs.JobQueues.JobQueueService.GetQueue(q.JobQueueId)))
{
#line default
#line hidden
WriteLiteral(" <i");
WriteAttribute("class", Tuple.Create(" class=\"", 1101), Tuple.Create("\"", 1174)
, Tuple.Create(Tuple.Create("", 1109), Tuple.Create("fa", 1109), true)
, Tuple.Create(Tuple.Create(" ", 1111), Tuple.Create("fa-", 1112), true)
#line 23 "..\..\Views\Job\Show.cshtml"
, Tuple.Create(Tuple.Create("", 1115), Tuple.Create<System.Object, System.Int32>(jq.JobQueue.Icon
#line default
#line hidden
, 1115), false)
, Tuple.Create(Tuple.Create(" ", 1134), Tuple.Create("fa-fw", 1135), true)
, Tuple.Create(Tuple.Create(" ", 1140), Tuple.Create("fa-lg", 1141), true)
, Tuple.Create(Tuple.Create(" ", 1146), Tuple.Create("d-", 1147), true)
#line 23 "..\..\Views\Job\Show.cshtml"
, Tuple.Create(Tuple.Create("", 1149), Tuple.Create<System.Object, System.Int32>(jq.JobQueue.IconColour
#line default
#line hidden
, 1149), false)
);
WriteAttribute("title", Tuple.Create(" title=\"", 1175), Tuple.Create("\"", 1202)
#line 23 "..\..\Views\Job\Show.cshtml"
, Tuple.Create(Tuple.Create("", 1183), Tuple.Create<System.Object, System.Int32>(jq.JobQueue.Name
#line default
#line hidden
, 1183), false)
);
WriteLiteral("></i>\r\n");
#line 24 "..\..\Views\Job\Show.cshtml"
}
#line default
#line hidden
WriteLiteral(" </div>\r\n <script");
WriteLiteral(" type=\"text/javascript\"");
WriteLiteral(">\r\n $(function () {\r\n $(\'#Job_Show_Status\').appendTo(\'#" +
"layout_PageHeading\')\r\n });\r\n </script>\r\n </div>\r\n");
WriteLiteral(">\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 </script>\r\n");
WriteLiteral(" ");
#line 25 "..\..\Views\Job\Show.cshtml"
#line 32 "..\..\Views\Job\Show.cshtml"
Write(Html.Partial(MVC.Job.Views.JobParts._Subject, Model));
@@ -187,13 +252,13 @@ WriteLiteral(" id=\"jobDetailTabItems\"");
WriteLiteral(">\r\n");
#line 61 "..\..\Views\Job\Show.cshtml"
#line 68 "..\..\Views\Job\Show.cshtml"
#line default
#line hidden
#line 61 "..\..\Views\Job\Show.cshtml"
#line 68 "..\..\Views\Job\Show.cshtml"
if (Authorization.HasAll(Claims.Job.ShowLogs, Claims.Job.ShowAttachments))
{
@@ -207,7 +272,7 @@ WriteLiteral(" href=\"#jobDetailTab-Resources\"");
WriteLiteral(">Log and Attachments</a></li>\r\n");
#line 64 "..\..\Views\Job\Show.cshtml"
#line 71 "..\..\Views\Job\Show.cshtml"
}
else if (Authorization.Has(Claims.Job.ShowLogs))
{
@@ -222,7 +287,7 @@ WriteLiteral(" href=\"#jobDetailTab-Resources\"");
WriteLiteral(">Log</a></li>\r\n");
#line 68 "..\..\Views\Job\Show.cshtml"
#line 75 "..\..\Views\Job\Show.cshtml"
}
else if (Authorization.Has(Claims.Job.ShowLogs))
{
@@ -237,7 +302,30 @@ WriteLiteral(" href=\"#jobDetailTab-Resources\"");
WriteLiteral(">Attachments</a></li>\r\n");
#line 72 "..\..\Views\Job\Show.cshtml"
#line 79 "..\..\Views\Job\Show.cshtml"
}
#line default
#line hidden
WriteLiteral(" ");
#line 80 "..\..\Views\Job\Show.cshtml"
if (Authorization.Has(Claims.Job.ShowJobsQueues))
{
#line default
#line hidden
WriteLiteral(" <li><a");
WriteLiteral(" href=\"#jobDetailTab-Queues\"");
WriteLiteral(">Queues</a></li>\r\n");
#line 83 "..\..\Views\Job\Show.cshtml"
}
@@ -246,13 +334,13 @@ WriteLiteral(">Attachments</a></li>\r\n");
WriteLiteral(" </ul>\r\n");
#line 74 "..\..\Views\Job\Show.cshtml"
#line 85 "..\..\Views\Job\Show.cshtml"
#line default
#line hidden
#line 74 "..\..\Views\Job\Show.cshtml"
#line 85 "..\..\Views\Job\Show.cshtml"
if (Authorization.HasAny(Claims.Job.ShowLogs, Claims.Job.ShowAttachments))
{
@@ -270,7 +358,7 @@ WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 77 "..\..\Views\Job\Show.cshtml"
#line 88 "..\..\Views\Job\Show.cshtml"
Write(Html.Partial(MVC.Job.Views.JobParts.Resources, Model));
@@ -279,7 +367,7 @@ WriteLiteral(" ");
WriteLiteral("\r\n </div>\r\n");
#line 79 "..\..\Views\Job\Show.cshtml"
#line 90 "..\..\Views\Job\Show.cshtml"
}
@@ -288,7 +376,43 @@ WriteLiteral("\r\n </div>\r\n");
WriteLiteral(" ");
#line 80 "..\..\Views\Job\Show.cshtml"
#line 91 "..\..\Views\Job\Show.cshtml"
if (Authorization.Has(Claims.Job.ShowJobsQueues))
{
#line default
#line hidden
WriteLiteral(" <div");
WriteLiteral(" id=\"jobDetailTab-Queues\"");
WriteLiteral(" class=\"jobPart\"");
WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 94 "..\..\Views\Job\Show.cshtml"
Write(Html.Partial(MVC.Job.Views.JobParts.Queues, Model));
#line default
#line hidden
WriteLiteral("\r\n </div>\r\n");
#line 96 "..\..\Views\Job\Show.cshtml"
}
#line default
#line hidden
WriteLiteral(" ");
#line 97 "..\..\Views\Job\Show.cshtml"
Write(Html.Partial(MVC.Job.Views.JobParts.JobMetaAdditions, Model));
+1
View File
@@ -1,3 +1,4 @@
@{
Html.BundleDeferred("~/Style/Job");
ViewContext.ViewData["MenuArea"] = MVC.Job.Name;
}
@@ -47,6 +47,7 @@ namespace Disco.Web.Views.Job
#line 1 "..\..\Views\Job\_ViewStart.cshtml"
Html.BundleDeferred("~/Style/Job");
ViewContext.ViewData["MenuArea"] = MVC.Job.Name;
#line default
+3 -3
View File
@@ -1,13 +1,13 @@
@model Disco.Models.BI.Job.JobTableModel
@model Disco.Models.Services.Jobs.JobLists.JobTableModel
@if (DiscoApplication.MultiSiteMode)
{
if (Model == null || Model.Items == null || Model.Items.Count == 0)
if (Model == null || Model.Items == null || Model.Items.Count() == 0)
{
<span class="smallMessage">No Jobs Found</span>
}
else
{
var multiSiteModels = Model.MultiCampusModels;
var multiSiteModels = Model.MultiCampusModels();
foreach (var multiSiteModel in multiSiteModels)
{
@@ -29,6 +29,7 @@ namespace Disco.Web.Views.Shared
using Disco;
using Disco.BI.Extensions;
using Disco.Models.Repository;
using Disco.Services;
using Disco.Services.Authorization;
using Disco.Services.Web;
using Disco.Web;
@@ -36,7 +37,7 @@ namespace Disco.Web.Views.Shared
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
[System.Web.WebPages.PageVirtualPathAttribute("~/Views/Shared/_JobTable.cshtml")]
public partial class JobTable : Disco.Services.Web.WebViewPage<Disco.Models.BI.Job.JobTableModel>
public partial class JobTable : Disco.Services.Web.WebViewPage<Disco.Models.Services.Jobs.JobLists.JobTableModel>
{
public JobTable()
{
@@ -47,7 +48,7 @@ namespace Disco.Web.Views.Shared
#line 2 "..\..\Views\Shared\_JobTable.cshtml"
if (DiscoApplication.MultiSiteMode)
{
if (Model == null || Model.Items == null || Model.Items.Count == 0)
if (Model == null || Model.Items == null || Model.Items.Count() == 0)
{
@@ -64,7 +65,7 @@ WriteLiteral(">No Jobs Found</span>\r\n");
}
else
{
var multiSiteModels = Model.MultiCampusModels;
var multiSiteModels = Model.MultiCampusModels();
foreach (var multiSiteModel in multiSiteModels)
{
+34 -5
View File
@@ -1,4 +1,5 @@
@model Disco.Models.BI.Job.JobTableModel
@model Disco.Models.Services.Jobs.JobLists.JobTableModel
@using Disco.Models.Services.Jobs.JobLists;
@{
Html.BundleDeferred("~/ClientScripts/Modules/Disco-DataTableHelpers");
}
@@ -36,7 +37,25 @@
</thead>
<tbody>
@foreach (var item in Model.Items)
{<tr data-id="@(item.Id)" data-status="@(Model.ShowStatus ? item.StatusId : null)">
{
string statusSlaClass = null;
if (Model.ShowStatus)
{
var statusItem = (JobTableStatusItemModel)item;
if (statusItem.ActiveJobQueues != null)
{
var slaRemaining = statusItem.ActiveJobQueues.UsersQueueItems(Authorization).SlaPrecentageRemaining();
if (slaRemaining.HasValue && (slaRemaining <= 0))
{
statusSlaClass = "statusSlaExpired";
}
else if (slaRemaining.HasValue && (slaRemaining < .3))
{
statusSlaClass = "statusSlaWarning";
}
}
}
<tr data-id="@(item.Id)" data-status="@(Model.ShowStatus ? item.StatusId : null)" class="@(statusSlaClass)">
@if (Model.ShowId)
{<td class="id">
@if (Authorization.Has(Claims.Job.Show))
@@ -44,11 +63,21 @@
else
{@item.Id.ToString()}</td>}
@if (Model.ShowStatus)
{<td class="status"><i class="fa fa-square jobStatus @(item.StatusId)"></i>&nbsp;@item.StatusDescription</td>}
{
var statusItem = (JobTableStatusItemModel)item;
<td class="status"><i class="fa fa-square jobStatus @(item.StatusId)"></i>&nbsp;@item.StatusDescription
@if (statusItem.ActiveJobQueues != null)
{<div class="queues">
@foreach (var jqToken in ((JobTableStatusItemModel)item).ActiveJobQueues.Select(jqj => new Tuple<JobTableStatusQueueItemModel, Disco.Services.Jobs.JobQueues.JobQueueToken>(jqj, Disco.Services.Jobs.JobQueues.JobQueueService.GetQueue(jqj.QueueId))))
{
<i class="fa fa-@(jqToken.Item2.JobQueue.Icon) fa-fw d-@(jqToken.Item2.JobQueue.IconColour)" title="@(jqToken.Item2.JobQueue.Name) [@(jqToken.Item1.Priority)]"></i>
}
</div>}
</td>}
@if (Model.ShowDates)
{<td class="dates">@if (item.ClosedDate.HasValue) {@CommonHelpers.FriendlyDate(item.ClosedDate.Value)}else{@CommonHelpers.FriendlyDate(item.OpenedDate)}</td>}
@if (Model.ShowType)
{<td class="type"><span title="@item.TypeDescription">@item.TypeId</span></td>}
{<td class="type"><span title="@item.JobTypeDescription">@item.JobTypeId</span></td>}
@if (Model.ShowDevice)
{<td class="device">
@if (item.DeviceSerialNumber != null)
@@ -74,7 +103,7 @@
@if (Model.ShowTechnician)
{<td class="technician"><span title="@item.OpenedTechUserDisplayName">@item.OpenedTechUserId</span></td>}
@if (Model.ShowLocation)
{<td class="technician"><span>@(item.Location ?? "Unknown")</span></td>}
{<td class="technician"><span>@(item.DeviceHeldLocation ?? "Unknown")</span></td>}
</tr>}
</tbody>
</table>
@@ -29,6 +29,13 @@ namespace Disco.Web.Views.Shared
using Disco;
using Disco.BI.Extensions;
using Disco.Models.Repository;
#line 2 "..\..\Views\Shared\_JobTableRender.cshtml"
using Disco.Models.Services.Jobs.JobLists;
#line default
#line hidden
using Disco.Services;
using Disco.Services.Authorization;
using Disco.Services.Web;
using Disco.Web;
@@ -36,7 +43,7 @@ namespace Disco.Web.Views.Shared
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
[System.Web.WebPages.PageVirtualPathAttribute("~/Views/Shared/_JobTableRender.cshtml")]
public partial class JobTableRender : Disco.Services.Web.WebViewPage<Disco.Models.BI.Job.JobTableModel>
public partial class JobTableRender : Disco.Services.Web.WebViewPage<Disco.Models.Services.Jobs.JobLists.JobTableModel>
{
public JobTableRender()
{
@@ -44,7 +51,7 @@ namespace Disco.Web.Views.Shared
public override void Execute()
{
#line 2 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 3 "..\..\Views\Shared\_JobTableRender.cshtml"
Html.BundleDeferred("~/ClientScripts/Modules/Disco-DataTableHelpers");
@@ -58,13 +65,13 @@ WriteLiteral(" class=\"jobTable\"");
WriteLiteral(">\r\n");
#line 6 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 7 "..\..\Views\Shared\_JobTableRender.cshtml"
#line default
#line hidden
#line 6 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 7 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model != null && Model.Items.Count() > 0)
{
@@ -73,48 +80,48 @@ WriteLiteral(">\r\n");
#line hidden
WriteLiteral(" <table");
WriteAttribute("class", Tuple.Create(" class=\"", 223), Tuple.Create("\"", 459)
, Tuple.Create(Tuple.Create("", 231), Tuple.Create("jobTable", 231), true)
WriteAttribute("class", Tuple.Create(" class=\"", 284), Tuple.Create("\"", 520)
, Tuple.Create(Tuple.Create("", 292), Tuple.Create("jobTable", 292), true)
#line 8 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 239), Tuple.Create<System.Object, System.Int32>(Model.IsSmallTable ? " smallTable" : string.Empty
#line 9 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 300), Tuple.Create<System.Object, System.Int32>(Model.IsSmallTable ? " smallTable" : string.Empty
#line default
#line hidden
, 239), false)
, 300), false)
#line 8 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 291), Tuple.Create<System.Object, System.Int32>(Model.HideClosedJobs ? " hideStatusClosed" : string.Empty
#line 9 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 352), Tuple.Create<System.Object, System.Int32>(Model.HideClosedJobs ? " hideStatusClosed" : string.Empty
#line default
#line hidden
, 291), false)
, 352), false)
#line 8 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 351), Tuple.Create<System.Object, System.Int32>(Model.EnablePaging ? " enablePaging" : string.Empty
#line 9 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 412), Tuple.Create<System.Object, System.Int32>(Model.EnablePaging ? " enablePaging" : string.Empty
#line default
#line hidden
, 351), false)
, 412), false)
#line 8 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 405), Tuple.Create<System.Object, System.Int32>(Model.EnableFilter ? " enableFilter" : string.Empty
#line 9 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 466), Tuple.Create<System.Object, System.Int32>(Model.EnableFilter ? " enableFilter" : string.Empty
#line default
#line hidden
, 405), false)
, 466), false)
);
WriteLiteral(">\r\n <thead>\r\n <tr>\r\n");
#line 11 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 12 "..\..\Views\Shared\_JobTableRender.cshtml"
#line default
#line hidden
#line 11 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 12 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowId)
{
@@ -127,7 +134,7 @@ WriteLiteral(" class=\"id\"");
WriteLiteral(">Ref\r\n </th> ");
#line 13 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 14 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -136,7 +143,7 @@ WriteLiteral(">Ref\r\n </th> ");
WriteLiteral(" ");
#line 14 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 15 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowStatus)
{
@@ -149,7 +156,7 @@ WriteLiteral(" class=\"status\"");
WriteLiteral(">Status\r\n </th> ");
#line 16 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 17 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -158,7 +165,7 @@ WriteLiteral(">Status\r\n </th> ");
WriteLiteral(" ");
#line 17 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 18 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowDates)
{
@@ -171,7 +178,7 @@ WriteLiteral(" class=\"dates\"");
WriteLiteral(">When\r\n </th> ");
#line 19 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 20 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -180,7 +187,7 @@ WriteLiteral(">When\r\n </th> ");
WriteLiteral(" ");
#line 20 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 21 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowType)
{
@@ -193,7 +200,7 @@ WriteLiteral(" class=\"type\"");
WriteLiteral(">Type\r\n </th> ");
#line 22 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 23 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -202,7 +209,7 @@ WriteLiteral(">Type\r\n </th> ");
WriteLiteral(" ");
#line 23 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 24 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowDevice)
{
@@ -215,7 +222,7 @@ WriteLiteral(" class=\"device\"");
WriteLiteral(">Device\r\n </th> ");
#line 25 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 26 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -224,7 +231,7 @@ WriteLiteral(">Device\r\n </th> ");
WriteLiteral(" ");
#line 26 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 27 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowUser)
{
@@ -237,7 +244,7 @@ WriteLiteral(" class=\"user\"");
WriteLiteral(">User\r\n </th> ");
#line 28 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 29 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -246,7 +253,7 @@ WriteLiteral(">User\r\n </th> ");
WriteLiteral(" ");
#line 29 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 30 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowTechnician)
{
@@ -259,7 +266,7 @@ WriteLiteral(" class=\"technician\"");
WriteLiteral(">Technician\r\n </th> ");
#line 31 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 32 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -268,7 +275,7 @@ WriteLiteral(">Technician\r\n </th> ");
WriteLiteral(" ");
#line 32 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 33 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowLocation)
{
@@ -281,7 +288,7 @@ WriteLiteral(" class=\"location\"");
WriteLiteral(">Location\r\n </th> ");
#line 34 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 35 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -290,25 +297,43 @@ WriteLiteral(">Location\r\n </th> ");
WriteLiteral(" </tr>\r\n </thead>\r\n <tbody>\r\n");
#line 38 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 39 "..\..\Views\Shared\_JobTableRender.cshtml"
#line default
#line hidden
#line 38 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 39 "..\..\Views\Shared\_JobTableRender.cshtml"
foreach (var item in Model.Items)
{
string statusSlaClass = null;
if (Model.ShowStatus)
{
var statusItem = (JobTableStatusItemModel)item;
if (statusItem.ActiveJobQueues != null)
{
var slaRemaining = statusItem.ActiveJobQueues.UsersQueueItems(Authorization).SlaPrecentageRemaining();
if (slaRemaining.HasValue && (slaRemaining <= 0))
{
statusSlaClass = "statusSlaExpired";
}
else if (slaRemaining.HasValue && (slaRemaining < .3))
{
statusSlaClass = "statusSlaWarning";
}
}
}
#line default
#line hidden
WriteLiteral("<tr");
WriteLiteral(" <tr");
WriteLiteral(" data-id=\"");
#line 39 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(item.Id);
#line 58 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(item.Id);
#line default
@@ -318,24 +343,34 @@ WriteLiteral("\"");
WriteLiteral(" data-status=\"");
#line 39 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(Model.ShowStatus ? item.StatusId : null);
#line 58 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(Model.ShowStatus ? item.StatusId : null);
#line default
#line hidden
WriteLiteral("\"");
WriteAttribute("class", Tuple.Create(" class=\"", 2662), Tuple.Create("\"", 2687)
#line 58 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 2670), Tuple.Create<System.Object, System.Int32>(statusSlaClass
#line default
#line hidden
, 2670), false)
);
WriteLiteral(">\r\n");
#line 40 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 59 "..\..\Views\Shared\_JobTableRender.cshtml"
#line default
#line hidden
#line 40 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 59 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowId)
{
@@ -348,27 +383,27 @@ WriteLiteral(" class=\"id\"");
WriteLiteral(">\r\n");
#line 42 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 61 "..\..\Views\Shared\_JobTableRender.cshtml"
#line default
#line hidden
#line 42 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 61 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Authorization.Has(Claims.Job.Show))
{
#line default
#line hidden
#line 43 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 62 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(Html.ActionLink(item.Id.ToString(), MVC.Job.Show(item.Id)));
#line default
#line hidden
#line 43 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 62 "..\..\Views\Shared\_JobTableRender.cshtml"
}
else
{
@@ -376,14 +411,14 @@ WriteLiteral(">\r\n");
#line default
#line hidden
#line 45 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 64 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(item.Id.ToString());
#line default
#line hidden
#line 45 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 64 "..\..\Views\Shared\_JobTableRender.cshtml"
}
#line default
@@ -391,7 +426,7 @@ WriteLiteral(">\r\n");
WriteLiteral("</td>");
#line 45 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 64 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -400,45 +435,142 @@ WriteLiteral("</td>");
WriteLiteral(" ");
#line 46 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 65 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowStatus)
{
var statusItem = (JobTableStatusItemModel)item;
#line default
#line hidden
WriteLiteral("<td");
WriteLiteral(" <td");
WriteLiteral(" class=\"status\"");
WriteLiteral("><i");
WriteAttribute("class", Tuple.Create(" class=\"", 2091), Tuple.Create("\"", 2138)
, Tuple.Create(Tuple.Create("", 2099), Tuple.Create("fa", 2099), true)
, Tuple.Create(Tuple.Create(" ", 2101), Tuple.Create("fa-square", 2102), true)
, Tuple.Create(Tuple.Create(" ", 2111), Tuple.Create("jobStatus", 2112), true)
WriteAttribute("class", Tuple.Create(" class=\"", 3190), Tuple.Create("\"", 3237)
, Tuple.Create(Tuple.Create("", 3198), Tuple.Create("fa", 3198), true)
, Tuple.Create(Tuple.Create(" ", 3200), Tuple.Create("fa-square", 3201), true)
, Tuple.Create(Tuple.Create(" ", 3210), Tuple.Create("jobStatus", 3211), true)
#line 47 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create(" ", 2121), Tuple.Create<System.Object, System.Int32>(item.StatusId
#line 68 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create(" ", 3220), Tuple.Create<System.Object, System.Int32>(item.StatusId
#line default
#line hidden
, 2122), false)
, 3221), false)
);
WriteLiteral("></i>&nbsp;");
#line 47 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(item.StatusDescription);
#line 68 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(item.StatusDescription);
#line default
#line hidden
WriteLiteral("</td>");
WriteLiteral("\r\n");
#line 47 "..\..\Views\Shared\_JobTableRender.cshtml"
}
#line 69 "..\..\Views\Shared\_JobTableRender.cshtml"
#line default
#line hidden
#line 69 "..\..\Views\Shared\_JobTableRender.cshtml"
if (statusItem.ActiveJobQueues != null)
{
#line default
#line hidden
WriteLiteral("<div");
WriteLiteral(" class=\"queues\"");
WriteLiteral(">\r\n");
#line 71 "..\..\Views\Shared\_JobTableRender.cshtml"
#line default
#line hidden
#line 71 "..\..\Views\Shared\_JobTableRender.cshtml"
foreach (var jqToken in ((JobTableStatusItemModel)item).ActiveJobQueues.Select(jqj => new Tuple<JobTableStatusQueueItemModel, Disco.Services.Jobs.JobQueues.JobQueueToken>(jqj, Disco.Services.Jobs.JobQueues.JobQueueService.GetQueue(jqj.QueueId))))
{
#line default
#line hidden
WriteLiteral(" <i");
WriteAttribute("class", Tuple.Create(" class=\"", 3729), Tuple.Create("\"", 3818)
, Tuple.Create(Tuple.Create("", 3737), Tuple.Create("fa", 3737), true)
, Tuple.Create(Tuple.Create(" ", 3739), Tuple.Create("fa-", 3740), true)
#line 73 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 3743), Tuple.Create<System.Object, System.Int32>(jqToken.Item2.JobQueue.Icon
#line default
#line hidden
, 3743), false)
, Tuple.Create(Tuple.Create(" ", 3773), Tuple.Create("fa-fw", 3774), true)
, Tuple.Create(Tuple.Create(" ", 3779), Tuple.Create("d-", 3780), true)
#line 73 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 3782), Tuple.Create<System.Object, System.Int32>(jqToken.Item2.JobQueue.IconColour
#line default
#line hidden
, 3782), false)
);
WriteAttribute("title", Tuple.Create(" title=\"", 3819), Tuple.Create("\"", 3885)
#line 73 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 3827), Tuple.Create<System.Object, System.Int32>(jqToken.Item2.JobQueue.Name
#line default
#line hidden
, 3827), false)
, Tuple.Create(Tuple.Create(" ", 3857), Tuple.Create("[", 3858), true)
#line 73 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 3859), Tuple.Create<System.Object, System.Int32>(jqToken.Item1.Priority
#line default
#line hidden
, 3859), false)
, Tuple.Create(Tuple.Create("", 3884), Tuple.Create("]", 3884), true)
);
WriteLiteral("></i>\r\n");
#line 74 "..\..\Views\Shared\_JobTableRender.cshtml"
}
#line default
#line hidden
WriteLiteral(" </div>");
#line 75 "..\..\Views\Shared\_JobTableRender.cshtml"
}
#line default
#line hidden
WriteLiteral(" </td>");
#line 76 "..\..\Views\Shared\_JobTableRender.cshtml"
}
#line default
@@ -446,7 +578,7 @@ WriteLiteral("</td>");
WriteLiteral(" ");
#line 48 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 77 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowDates)
{
@@ -459,33 +591,33 @@ WriteLiteral(" class=\"dates\"");
WriteLiteral(">");
#line 49 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 78 "..\..\Views\Shared\_JobTableRender.cshtml"
if (item.ClosedDate.HasValue) {
#line default
#line hidden
#line 49 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 78 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(CommonHelpers.FriendlyDate(item.ClosedDate.Value));
#line default
#line hidden
#line 49 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 78 "..\..\Views\Shared\_JobTableRender.cshtml"
}else{
#line default
#line hidden
#line 49 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 78 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(CommonHelpers.FriendlyDate(item.OpenedDate));
#line default
#line hidden
#line 49 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 78 "..\..\Views\Shared\_JobTableRender.cshtml"
}
#line default
@@ -493,7 +625,7 @@ WriteLiteral(">");
WriteLiteral("</td>");
#line 49 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 78 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -502,7 +634,7 @@ WriteLiteral("</td>");
WriteLiteral(" ");
#line 50 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 79 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowType)
{
@@ -514,21 +646,21 @@ WriteLiteral(" class=\"type\"");
WriteLiteral("><span");
WriteAttribute("title", Tuple.Create(" title=\"", 2489), Tuple.Create("\"", 2518)
WriteAttribute("title", Tuple.Create(" title=\"", 4294), Tuple.Create("\"", 4326)
#line 51 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 2497), Tuple.Create<System.Object, System.Int32>(item.TypeDescription
#line 80 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 4302), Tuple.Create<System.Object, System.Int32>(item.JobTypeDescription
#line default
#line hidden
, 2497), false)
, 4302), false)
);
WriteLiteral(">");
#line 51 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(item.TypeId);
#line 80 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(item.JobTypeId);
#line default
@@ -536,8 +668,8 @@ WriteLiteral(">");
WriteLiteral("</span></td>");
#line 51 "..\..\Views\Shared\_JobTableRender.cshtml"
}
#line 80 "..\..\Views\Shared\_JobTableRender.cshtml"
}
#line default
@@ -545,7 +677,7 @@ WriteLiteral("</span></td>");
WriteLiteral(" ");
#line 52 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 81 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowDevice)
{
@@ -558,13 +690,13 @@ WriteLiteral(" class=\"device\"");
WriteLiteral(">\r\n");
#line 54 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 83 "..\..\Views\Shared\_JobTableRender.cshtml"
#line default
#line hidden
#line 54 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 83 "..\..\Views\Shared\_JobTableRender.cshtml"
if (item.DeviceSerialNumber != null)
{
if (Authorization.Has(Claims.Device.Show))
@@ -573,14 +705,14 @@ WriteLiteral(">\r\n");
#line default
#line hidden
#line 57 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 86 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(Html.ActionLink(item.DeviceSerialNumber, MVC.Device.Show(item.DeviceSerialNumber), new { Title = item.DeviceModelDescription }));
#line default
#line hidden
#line 57 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 86 "..\..\Views\Shared\_JobTableRender.cshtml"
}
else
{
@@ -589,20 +721,20 @@ WriteLiteral(">\r\n");
#line hidden
WriteLiteral("<span");
WriteAttribute("title", Tuple.Create(" title=\"", 3023), Tuple.Create("\"", 3059)
WriteAttribute("title", Tuple.Create(" title=\"", 4834), Tuple.Create("\"", 4870)
#line 59 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 3031), Tuple.Create<System.Object, System.Int32>(item.DeviceModelDescription
#line 88 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 4842), Tuple.Create<System.Object, System.Int32>(item.DeviceModelDescription
#line default
#line hidden
, 3031), false)
, 4842), false)
);
WriteLiteral(">");
#line 59 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 88 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(item.DeviceSerialNumber);
@@ -611,7 +743,7 @@ WriteLiteral(">");
WriteLiteral("</span>");
#line 59 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 88 "..\..\Views\Shared\_JobTableRender.cshtml"
}
}
else
@@ -626,7 +758,7 @@ WriteLiteral(" class=\"smallMessage\"");
WriteLiteral(">N/A</span>");
#line 62 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 91 "..\..\Views\Shared\_JobTableRender.cshtml"
}
#line default
@@ -634,7 +766,7 @@ WriteLiteral(">N/A</span>");
WriteLiteral("</td>");
#line 62 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 91 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -643,7 +775,7 @@ WriteLiteral("</td>");
WriteLiteral(" ");
#line 63 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 92 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowUser)
{
@@ -656,13 +788,13 @@ WriteLiteral(" class=\"user\"");
WriteLiteral(">\r\n");
#line 65 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 94 "..\..\Views\Shared\_JobTableRender.cshtml"
#line default
#line hidden
#line 65 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 94 "..\..\Views\Shared\_JobTableRender.cshtml"
if (item.UserId != null)
{
if (Authorization.Has(Claims.User.Show))
@@ -671,14 +803,14 @@ WriteLiteral(">\r\n");
#line default
#line hidden
#line 68 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 97 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(Html.ActionLink(string.Format("{0} ({1})", item.UserDisplayName, item.UserId), MVC.User.Show(item.UserId)));
#line default
#line hidden
#line 68 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 97 "..\..\Views\Shared\_JobTableRender.cshtml"
}
else
{
@@ -686,14 +818,14 @@ WriteLiteral(">\r\n");
#line default
#line hidden
#line 70 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 99 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(string.Format("{0} ({1})", item.UserDisplayName, item.UserId));
#line default
#line hidden
#line 70 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 99 "..\..\Views\Shared\_JobTableRender.cshtml"
}
}
else
@@ -708,7 +840,7 @@ WriteLiteral(" class=\"smallMessage\"");
WriteLiteral(">N/A</span>");
#line 73 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 102 "..\..\Views\Shared\_JobTableRender.cshtml"
}
#line default
@@ -716,7 +848,7 @@ WriteLiteral(">N/A</span>");
WriteLiteral("</td>");
#line 73 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 102 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -725,7 +857,7 @@ WriteLiteral("</td>");
WriteLiteral(" ");
#line 74 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 103 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowTechnician)
{
@@ -737,20 +869,20 @@ WriteLiteral(" class=\"technician\"");
WriteLiteral("><span");
WriteAttribute("title", Tuple.Create(" title=\"", 3947), Tuple.Create("\"", 3986)
WriteAttribute("title", Tuple.Create(" title=\"", 5758), Tuple.Create("\"", 5797)
#line 75 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 3955), Tuple.Create<System.Object, System.Int32>(item.OpenedTechUserDisplayName
#line 104 "..\..\Views\Shared\_JobTableRender.cshtml"
, Tuple.Create(Tuple.Create("", 5766), Tuple.Create<System.Object, System.Int32>(item.OpenedTechUserDisplayName
#line default
#line hidden
, 3955), false)
, 5766), false)
);
WriteLiteral(">");
#line 75 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 104 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(item.OpenedTechUserId);
@@ -759,7 +891,7 @@ WriteLiteral(">");
WriteLiteral("</span></td>");
#line 75 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 104 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -768,7 +900,7 @@ WriteLiteral("</span></td>");
WriteLiteral(" ");
#line 76 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 105 "..\..\Views\Shared\_JobTableRender.cshtml"
if (Model.ShowLocation)
{
@@ -781,8 +913,8 @@ WriteLiteral(" class=\"technician\"");
WriteLiteral("><span>");
#line 77 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(item.Location ?? "Unknown");
#line 106 "..\..\Views\Shared\_JobTableRender.cshtml"
Write(item.DeviceHeldLocation ?? "Unknown");
#line default
@@ -790,8 +922,8 @@ WriteLiteral("><span>");
WriteLiteral("</span></td>");
#line 77 "..\..\Views\Shared\_JobTableRender.cshtml"
}
#line 106 "..\..\Views\Shared\_JobTableRender.cshtml"
}
#line default
@@ -799,7 +931,7 @@ WriteLiteral("</span></td>");
WriteLiteral(" </tr>");
#line 78 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 107 "..\..\Views\Shared\_JobTableRender.cshtml"
}
@@ -808,7 +940,7 @@ WriteLiteral(" </tr>");
WriteLiteral(" </tbody>\r\n </table>\r\n");
#line 81 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 110 "..\..\Views\Shared\_JobTableRender.cshtml"
}
else
{
@@ -823,7 +955,7 @@ WriteLiteral(" class=\"smallMessage\"");
WriteLiteral(">No Jobs Found</span>\r\n");
#line 85 "..\..\Views\Shared\_JobTableRender.cshtml"
#line 114 "..\..\Views\Shared\_JobTableRender.cshtml"
}
+28 -9
View File
@@ -21,8 +21,27 @@
</div>
<nav>
<ul id="menu">
<li class="hasSubMenu">@Html.ActionLink("Jobs", MVC.Job.Index(), accesskey: "1")
<ul class="subMenu">
<li class="d-sm@((string)ViewContext.ViewData["MenuArea"] == MVC.Job.Name ? " active" : null)">@Html.ActionLink("Jobs", MVC.Job.Index(), accesskey: "1")
<ul>
@if (Authorization.Has(Claims.Job.Lists.JobQueueLists))
{
var queues = Disco.Services.Jobs.JobQueues.JobQueueService.GetQueues();
if (queues.Count > 0)
{
<li class="d-sm"><i class="fa fa-caret-right"></i><a>Queues</a>
<ul>
@foreach (var queueToken in queues)
{
<li><a href="@Url.Action(MVC.Job.Queue(queueToken.JobQueue.Id))"><i class="fa fa-@(queueToken.JobQueue.Icon) fa-fw d-@(queueToken.JobQueue.IconColour)"></i> @(queueToken.JobQueue.Name)</a></li>
}
</ul>
</li>
}
}
@if (Authorization.Has(Claims.Job.Lists.AwaitingTechnicianAction))
{
<li>@Html.ActionLink("Awaiting Technician Action", MVC.Job.AwaitingTechnicianAction())</li>
}
@if (Authorization.Has(Claims.Job.Lists.DevicesReadyForReturn))
{
<li>@Html.ActionLink("Devices Ready for Return", MVC.Job.DevicesReadyForReturn())</li>
@@ -39,8 +58,8 @@
{
if (Authorization.HasAny(Claims.Job.Lists.AwaitingFinanceCharge, Claims.Job.Lists.AwaitingFinancePayment, Claims.Job.Lists.AwaitingFinanceAgreementBreach, Claims.Job.Lists.AwaitingFinanceInsuranceProcessing))
{
<li class="hasSubMenu"><i class="fa fa-caret-right"></i>@Html.ActionLink("Awaiting Finance", MVC.Job.AwaitingFinance())
<ul class="subMenu">
<li class="d-sm"><i class="fa fa-caret-right"></i>@Html.ActionLink("Awaiting Finance", MVC.Job.AwaitingFinance())
<ul>
@if (Authorization.Has(Claims.Job.Lists.AwaitingFinanceCharge))
{
<li>@Html.ActionLink("Accounting Charge", MVC.Job.AwaitingFinanceCharge())</li>
@@ -79,12 +98,12 @@
}
</ul>
</li>
<li>@Html.ActionLink("Devices", MVC.Device.Index(), accesskey: "2")</li>
<li>@Html.ActionLink("Users", MVC.User.Index(), accesskey: "3")</li>
<li class="moveRight">@Html.ActionLink("Reports", MVC.Public.Public.Index())</li>
<li class="@((string)ViewContext.ViewData["MenuArea"] == MVC.Device.Name ? "active" : null)">@Html.ActionLink("Devices", MVC.Device.Index(), accesskey: "2")</li>
<li class="@((string)ViewContext.ViewData["MenuArea"] == MVC.User.Name ? "active" : null)">@Html.ActionLink("Users", MVC.User.Index(), accesskey: "3")</li>
<li class="moveRight@((string)ViewContext.ViewData["MenuArea"] == MVC.Public.Name ? " active" : null)">@Html.ActionLink("Reports", MVC.Public.Public.Index())</li>
@if (Authorization.Has(Claims.Config.Show))
{
<li>@Html.ActionLink("Configuration", MVC.Config.Config.Index(), accesskey: "0")</li>
<li class="@((string)ViewContext.ViewData["MenuArea"] == MVC.Config.Name ? "active" : null)">@Html.ActionLink("Configuration", MVC.Config.Config.Index(), accesskey: "0")</li>
}
</ul>
</nav>
@@ -94,7 +113,7 @@
else
{@CurrentUser.ToString()}</span>
@using (Html.BeginForm(MVC.Search.Query(), FormMethod.Get))
{ @Html.TextBox("term", null, new { id="SearchQuery", accesskey = "s" }) }
{ @Html.TextBox("term", null, new { id="SearchQuery", accesskey = "s", placeholder="Search" }) }
</div>
</header>
<div id="layout_PageHeading">@CommonHelpers.Breadcrumbs(ViewBag.Title ?? string.Empty)</div>
+260 -84
View File
@@ -29,6 +29,7 @@ namespace Disco.Web.Views.Shared
using Disco;
using Disco.BI.Extensions;
using Disco.Models.Repository;
using Disco.Services;
using Disco.Services.Authorization;
using Disco.Services.Web;
using Disco.Web;
@@ -143,22 +144,27 @@ WriteLiteral(" id=\"menu\"");
WriteLiteral(">\r\n <li");
WriteLiteral(" class=\"hasSubMenu\"");
WriteAttribute("class", Tuple.Create(" class=\"", 851), Tuple.Create("\"", 941)
, Tuple.Create(Tuple.Create("", 859), Tuple.Create("d-sm", 859), true)
#line 24 "..\..\Views\Shared\_Layout.cshtml"
, Tuple.Create(Tuple.Create("", 863), Tuple.Create<System.Object, System.Int32>((string)ViewContext.ViewData["MenuArea"] == MVC.Job.Name ? " active" : null
#line default
#line hidden
, 863), false)
);
WriteLiteral(">");
#line 24 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Jobs", MVC.Job.Index(), accesskey: "1"));
Write(Html.ActionLink("Jobs", MVC.Job.Index(), accesskey: "1"));
#line default
#line hidden
WriteLiteral("\r\n <ul");
WriteLiteral(" class=\"subMenu\"");
WriteLiteral(">\r\n");
WriteLiteral("\r\n <ul>\r\n");
#line 26 "..\..\Views\Shared\_Layout.cshtml"
@@ -168,6 +174,135 @@ WriteLiteral(">\r\n");
#line hidden
#line 26 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Job.Lists.JobQueueLists))
{
var queues = Disco.Services.Jobs.JobQueues.JobQueueService.GetQueues();
if (queues.Count > 0)
{
#line default
#line hidden
WriteLiteral(" <li");
WriteLiteral(" class=\"d-sm\"");
WriteLiteral("><i");
WriteLiteral(" class=\"fa fa-caret-right\"");
WriteLiteral("></i><a>Queues</a>\r\n <ul>\r\n");
#line 33 "..\..\Views\Shared\_Layout.cshtml"
#line default
#line hidden
#line 33 "..\..\Views\Shared\_Layout.cshtml"
foreach (var queueToken in queues)
{
#line default
#line hidden
WriteLiteral(" <li><a");
WriteAttribute("href", Tuple.Create(" href=\"", 1672), Tuple.Create("\"", 1729)
#line 35 "..\..\Views\Shared\_Layout.cshtml"
, Tuple.Create(Tuple.Create("", 1679), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Job.Queue(queueToken.JobQueue.Id))
#line default
#line hidden
, 1679), false)
);
WriteLiteral("><i");
WriteAttribute("class", Tuple.Create(" class=\"", 1733), Tuple.Create("\"", 1816)
, Tuple.Create(Tuple.Create("", 1741), Tuple.Create("fa", 1741), true)
, Tuple.Create(Tuple.Create(" ", 1743), Tuple.Create("fa-", 1744), true)
#line 35 "..\..\Views\Shared\_Layout.cshtml"
, Tuple.Create(Tuple.Create("", 1747), Tuple.Create<System.Object, System.Int32>(queueToken.JobQueue.Icon
#line default
#line hidden
, 1747), false)
, Tuple.Create(Tuple.Create(" ", 1774), Tuple.Create("fa-fw", 1775), true)
, Tuple.Create(Tuple.Create(" ", 1780), Tuple.Create("d-", 1781), true)
#line 35 "..\..\Views\Shared\_Layout.cshtml"
, Tuple.Create(Tuple.Create("", 1783), Tuple.Create<System.Object, System.Int32>(queueToken.JobQueue.IconColour
#line default
#line hidden
, 1783), false)
);
WriteLiteral("></i> ");
#line 35 "..\..\Views\Shared\_Layout.cshtml"
Write(queueToken.JobQueue.Name);
#line default
#line hidden
WriteLiteral("</a></li>\r\n");
#line 36 "..\..\Views\Shared\_Layout.cshtml"
}
#line default
#line hidden
WriteLiteral(" </ul>\r\n " +
" </li>\r\n");
#line 39 "..\..\Views\Shared\_Layout.cshtml"
}
}
#line default
#line hidden
WriteLiteral(" ");
#line 41 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Job.Lists.AwaitingTechnicianAction))
{
#line default
#line hidden
WriteLiteral(" <li>");
#line 43 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Awaiting Technician Action", MVC.Job.AwaitingTechnicianAction()));
#line default
#line hidden
WriteLiteral("</li>\r\n");
#line 44 "..\..\Views\Shared\_Layout.cshtml"
}
#line default
#line hidden
WriteLiteral(" ");
#line 45 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Job.Lists.DevicesReadyForReturn))
{
@@ -177,7 +312,7 @@ WriteLiteral(">\r\n");
WriteLiteral(" <li>");
#line 28 "..\..\Views\Shared\_Layout.cshtml"
#line 47 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Devices Ready for Return", MVC.Job.DevicesReadyForReturn()));
@@ -186,7 +321,7 @@ WriteLiteral(" <li>");
WriteLiteral("</li>\r\n");
#line 29 "..\..\Views\Shared\_Layout.cshtml"
#line 48 "..\..\Views\Shared\_Layout.cshtml"
}
@@ -195,7 +330,7 @@ WriteLiteral("</li>\r\n");
WriteLiteral(" ");
#line 30 "..\..\Views\Shared\_Layout.cshtml"
#line 49 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Job.Lists.Locations))
{
@@ -205,7 +340,7 @@ WriteLiteral(" ");
WriteLiteral(" <li>");
#line 32 "..\..\Views\Shared\_Layout.cshtml"
#line 51 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Device Held Locations", MVC.Job.Locations()));
@@ -214,7 +349,7 @@ WriteLiteral(" <li>");
WriteLiteral("</li>\r\n");
#line 33 "..\..\Views\Shared\_Layout.cshtml"
#line 52 "..\..\Views\Shared\_Layout.cshtml"
}
@@ -223,7 +358,7 @@ WriteLiteral("</li>\r\n");
WriteLiteral(" ");
#line 34 "..\..\Views\Shared\_Layout.cshtml"
#line 53 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Job.Lists.AwaitingUserAction))
{
@@ -233,7 +368,7 @@ WriteLiteral(" ");
WriteLiteral(" <li>");
#line 36 "..\..\Views\Shared\_Layout.cshtml"
#line 55 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Awaiting User Action", MVC.Job.AwaitingUserAction()));
@@ -242,7 +377,7 @@ WriteLiteral(" <li>");
WriteLiteral("</li>\r\n");
#line 37 "..\..\Views\Shared\_Layout.cshtml"
#line 56 "..\..\Views\Shared\_Layout.cshtml"
}
@@ -251,7 +386,7 @@ WriteLiteral("</li>\r\n");
WriteLiteral(" ");
#line 38 "..\..\Views\Shared\_Layout.cshtml"
#line 57 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Job.Lists.AwaitingFinance))
{
if (Authorization.HasAny(Claims.Job.Lists.AwaitingFinanceCharge, Claims.Job.Lists.AwaitingFinancePayment, Claims.Job.Lists.AwaitingFinanceAgreementBreach, Claims.Job.Lists.AwaitingFinanceInsuranceProcessing))
@@ -262,7 +397,7 @@ WriteLiteral(" ");
#line hidden
WriteLiteral(" <li");
WriteLiteral(" class=\"hasSubMenu\"");
WriteLiteral(" class=\"d-sm\"");
WriteLiteral("><i");
@@ -271,26 +406,22 @@ WriteLiteral(" class=\"fa fa-caret-right\"");
WriteLiteral("></i>");
#line 42 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Awaiting Finance", MVC.Job.AwaitingFinance()));
#line 61 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Awaiting Finance", MVC.Job.AwaitingFinance()));
#line default
#line hidden
WriteLiteral("\r\n <ul");
WriteLiteral(" class=\"subMenu\"");
WriteLiteral(">\r\n");
WriteLiteral("\r\n <ul>\r\n");
#line 44 "..\..\Views\Shared\_Layout.cshtml"
#line 63 "..\..\Views\Shared\_Layout.cshtml"
#line default
#line hidden
#line 44 "..\..\Views\Shared\_Layout.cshtml"
#line 63 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Job.Lists.AwaitingFinanceCharge))
{
@@ -300,7 +431,7 @@ WriteLiteral(">\r\n");
WriteLiteral(" <li>");
#line 46 "..\..\Views\Shared\_Layout.cshtml"
#line 65 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Accounting Charge", MVC.Job.AwaitingFinanceCharge()));
@@ -309,7 +440,7 @@ WriteLiteral(" <li>");
WriteLiteral("</li>\r\n");
#line 47 "..\..\Views\Shared\_Layout.cshtml"
#line 66 "..\..\Views\Shared\_Layout.cshtml"
}
@@ -318,7 +449,7 @@ WriteLiteral("</li>\r\n");
WriteLiteral(" ");
#line 48 "..\..\Views\Shared\_Layout.cshtml"
#line 67 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Job.Lists.AwaitingFinancePayment))
{
@@ -328,7 +459,7 @@ WriteLiteral(" ");
WriteLiteral(" <li>");
#line 50 "..\..\Views\Shared\_Layout.cshtml"
#line 69 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Accounting Payment", MVC.Job.AwaitingFinancePayment()));
@@ -337,7 +468,7 @@ WriteLiteral(" <li>");
WriteLiteral("</li>\r\n");
#line 51 "..\..\Views\Shared\_Layout.cshtml"
#line 70 "..\..\Views\Shared\_Layout.cshtml"
}
@@ -346,7 +477,7 @@ WriteLiteral("</li>\r\n");
WriteLiteral(" ");
#line 52 "..\..\Views\Shared\_Layout.cshtml"
#line 71 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Job.Lists.AwaitingFinanceAgreementBreach))
{
@@ -356,7 +487,7 @@ WriteLiteral(" ");
WriteLiteral(" <li>");
#line 54 "..\..\Views\Shared\_Layout.cshtml"
#line 73 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Agreement Breach", MVC.Job.AwaitingFinanceAgreementBreach()));
@@ -365,7 +496,7 @@ WriteLiteral(" <li>");
WriteLiteral("</li>\r\n");
#line 55 "..\..\Views\Shared\_Layout.cshtml"
#line 74 "..\..\Views\Shared\_Layout.cshtml"
}
@@ -374,7 +505,7 @@ WriteLiteral("</li>\r\n");
WriteLiteral(" ");
#line 56 "..\..\Views\Shared\_Layout.cshtml"
#line 75 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Job.Lists.AwaitingFinanceInsuranceProcessing))
{
@@ -384,7 +515,7 @@ WriteLiteral(" ");
WriteLiteral(" <li>");
#line 58 "..\..\Views\Shared\_Layout.cshtml"
#line 77 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Insurance Processing", MVC.Job.AwaitingFinanceInsuranceProcessing()));
@@ -393,7 +524,7 @@ WriteLiteral(" <li>");
WriteLiteral("</li>\r\n");
#line 59 "..\..\Views\Shared\_Layout.cshtml"
#line 78 "..\..\Views\Shared\_Layout.cshtml"
}
@@ -403,7 +534,7 @@ WriteLiteral(" </ul>\r\n
"\n");
#line 62 "..\..\Views\Shared\_Layout.cshtml"
#line 81 "..\..\Views\Shared\_Layout.cshtml"
}
else
{
@@ -414,7 +545,7 @@ WriteLiteral(" </ul>\r\n
WriteLiteral(" <li>");
#line 65 "..\..\Views\Shared\_Layout.cshtml"
#line 84 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Awaiting Finance", MVC.Job.AwaitingFinance()));
@@ -423,7 +554,7 @@ WriteLiteral(" <li>");
WriteLiteral("</li>\r\n");
#line 66 "..\..\Views\Shared\_Layout.cshtml"
#line 85 "..\..\Views\Shared\_Layout.cshtml"
}
}
@@ -433,7 +564,7 @@ WriteLiteral("</li>\r\n");
WriteLiteral(" ");
#line 68 "..\..\Views\Shared\_Layout.cshtml"
#line 87 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Job.Lists.DevicesAwaitingRepair))
{
@@ -443,7 +574,7 @@ WriteLiteral(" ");
WriteLiteral(" <li>");
#line 70 "..\..\Views\Shared\_Layout.cshtml"
#line 89 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Awaiting Device Repair", MVC.Job.DevicesAwaitingRepair()));
@@ -452,7 +583,7 @@ WriteLiteral(" <li>");
WriteLiteral("</li>\r\n");
#line 71 "..\..\Views\Shared\_Layout.cshtml"
#line 90 "..\..\Views\Shared\_Layout.cshtml"
}
@@ -461,7 +592,7 @@ WriteLiteral("</li>\r\n");
WriteLiteral(" ");
#line 72 "..\..\Views\Shared\_Layout.cshtml"
#line 91 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Job.Lists.AllOpen))
{
@@ -471,7 +602,7 @@ WriteLiteral(" ");
WriteLiteral(" <li>");
#line 74 "..\..\Views\Shared\_Layout.cshtml"
#line 93 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("All Open", MVC.Job.AllOpen()));
@@ -480,7 +611,7 @@ WriteLiteral(" <li>");
WriteLiteral("</li>\r\n");
#line 75 "..\..\Views\Shared\_Layout.cshtml"
#line 94 "..\..\Views\Shared\_Layout.cshtml"
}
@@ -489,7 +620,7 @@ WriteLiteral("</li>\r\n");
WriteLiteral(" ");
#line 76 "..\..\Views\Shared\_Layout.cshtml"
#line 95 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Job.Lists.RecentlyClosed))
{
@@ -499,7 +630,7 @@ WriteLiteral(" ");
WriteLiteral(" <li>");
#line 78 "..\..\Views\Shared\_Layout.cshtml"
#line 97 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Recently Closed", MVC.Job.RecentlyClosed()));
@@ -508,40 +639,73 @@ WriteLiteral(" <li>");
WriteLiteral("</li>\r\n");
#line 79 "..\..\Views\Shared\_Layout.cshtml"
#line 98 "..\..\Views\Shared\_Layout.cshtml"
}
#line default
#line hidden
WriteLiteral(" </ul>\r\n </li>\r\n <li" +
">");
"");
WriteAttribute("class", Tuple.Create(" class=\"", 6231), Tuple.Create("\"", 6319)
#line 82 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Devices", MVC.Device.Index(), accesskey: "2"));
#line 101 "..\..\Views\Shared\_Layout.cshtml"
, Tuple.Create(Tuple.Create("", 6239), Tuple.Create<System.Object, System.Int32>((string)ViewContext.ViewData["MenuArea"] == MVC.Device.Name ? "active" : null
#line default
#line hidden
WriteLiteral("</li>\r\n <li>");
, 6239), false)
);
WriteLiteral(">");
#line 83 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Users", MVC.User.Index(), accesskey: "3"));
#line 101 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Devices", MVC.Device.Index(), accesskey: "2"));
#line default
#line hidden
WriteLiteral("</li>\r\n <li");
WriteLiteral(" class=\"moveRight\"");
WriteAttribute("class", Tuple.Create(" class=\"", 6414), Tuple.Create("\"", 6500)
#line 102 "..\..\Views\Shared\_Layout.cshtml"
, Tuple.Create(Tuple.Create("", 6422), Tuple.Create<System.Object, System.Int32>((string)ViewContext.ViewData["MenuArea"] == MVC.User.Name ? "active" : null
#line default
#line hidden
, 6422), false)
);
WriteLiteral(">");
#line 84 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Reports", MVC.Public.Public.Index()));
#line 102 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Users", MVC.User.Index(), accesskey: "3"));
#line default
#line hidden
WriteLiteral("</li>\r\n <li");
WriteAttribute("class", Tuple.Create(" class=\"", 6591), Tuple.Create("\"", 6689)
, Tuple.Create(Tuple.Create("", 6599), Tuple.Create("moveRight", 6599), true)
#line 103 "..\..\Views\Shared\_Layout.cshtml"
, Tuple.Create(Tuple.Create("", 6608), Tuple.Create<System.Object, System.Int32>((string)ViewContext.ViewData["MenuArea"] == MVC.Public.Name ? " active" : null
#line default
#line hidden
, 6608), false)
);
WriteLiteral(">");
#line 103 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Reports", MVC.Public.Public.Index()));
#line default
@@ -549,24 +713,36 @@ WriteLiteral(">");
WriteLiteral("</li>\r\n");
#line 85 "..\..\Views\Shared\_Layout.cshtml"
#line 104 "..\..\Views\Shared\_Layout.cshtml"
#line default
#line hidden
#line 85 "..\..\Views\Shared\_Layout.cshtml"
#line 104 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.Config.Show))
{
#line default
#line hidden
WriteLiteral(" <li>");
WriteLiteral(" <li");
WriteAttribute("class", Tuple.Create(" class=\"", 6867), Tuple.Create("\"", 6955)
#line 106 "..\..\Views\Shared\_Layout.cshtml"
, Tuple.Create(Tuple.Create("", 6875), Tuple.Create<System.Object, System.Int32>((string)ViewContext.ViewData["MenuArea"] == MVC.Config.Name ? "active" : null
#line default
#line hidden
, 6875), false)
);
WriteLiteral(">");
#line 87 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Configuration", MVC.Config.Config.Index(), accesskey: "0"));
#line 106 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Configuration", MVC.Config.Config.Index(), accesskey: "0"));
#line default
@@ -574,7 +750,7 @@ WriteLiteral(" <li>");
WriteLiteral("</li>\r\n");
#line 88 "..\..\Views\Shared\_Layout.cshtml"
#line 107 "..\..\Views\Shared\_Layout.cshtml"
}
@@ -587,21 +763,21 @@ WriteLiteral(" id=\"headerMenu\"");
WriteLiteral(">\r\n <span>");
#line 92 "..\..\Views\Shared\_Layout.cshtml"
#line 111 "..\..\Views\Shared\_Layout.cshtml"
if (Authorization.Has(Claims.User.Show))
{
#line default
#line hidden
#line 93 "..\..\Views\Shared\_Layout.cshtml"
#line 112 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink(CurrentUser.ToString(), MVC.User.Show(CurrentUser.Id)));
#line default
#line hidden
#line 93 "..\..\Views\Shared\_Layout.cshtml"
#line 112 "..\..\Views\Shared\_Layout.cshtml"
}
else
{
@@ -609,14 +785,14 @@ WriteLiteral(">\r\n <span>");
#line default
#line hidden
#line 95 "..\..\Views\Shared\_Layout.cshtml"
#line 114 "..\..\Views\Shared\_Layout.cshtml"
Write(CurrentUser.ToString());
#line default
#line hidden
#line 95 "..\..\Views\Shared\_Layout.cshtml"
#line 114 "..\..\Views\Shared\_Layout.cshtml"
}
#line default
@@ -624,28 +800,28 @@ WriteLiteral(">\r\n <span>");
WriteLiteral("</span>\r\n");
#line 96 "..\..\Views\Shared\_Layout.cshtml"
#line 115 "..\..\Views\Shared\_Layout.cshtml"
#line default
#line hidden
#line 96 "..\..\Views\Shared\_Layout.cshtml"
#line 115 "..\..\Views\Shared\_Layout.cshtml"
using (Html.BeginForm(MVC.Search.Query(), FormMethod.Get))
{
#line default
#line hidden
#line 97 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.TextBox("term", null, new { id="SearchQuery", accesskey = "s" }));
#line 116 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.TextBox("term", null, new { id="SearchQuery", accesskey = "s", placeholder="Search" }));
#line default
#line hidden
#line 97 "..\..\Views\Shared\_Layout.cshtml"
}
#line 116 "..\..\Views\Shared\_Layout.cshtml"
}
#line default
@@ -657,7 +833,7 @@ WriteLiteral(" id=\"layout_PageHeading\"");
WriteLiteral(">");
#line 100 "..\..\Views\Shared\_Layout.cshtml"
#line 119 "..\..\Views\Shared\_Layout.cshtml"
Write(CommonHelpers.Breadcrumbs(ViewBag.Title ?? string.Empty));
@@ -672,7 +848,7 @@ WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 102 "..\..\Views\Shared\_Layout.cshtml"
#line 121 "..\..\Views\Shared\_Layout.cshtml"
Write(RenderBody());
@@ -681,7 +857,7 @@ WriteLiteral(" ");
WriteLiteral("\r\n </section>\r\n <footer>\r\n Disco v");
#line 105 "..\..\Views\Shared\_Layout.cshtml"
#line 124 "..\..\Views\Shared\_Layout.cshtml"
Write(Disco.Web.DiscoApplication.Version);
@@ -692,7 +868,7 @@ WriteLiteral(" ");
WriteLiteral("@ ");
#line 105 "..\..\Views\Shared\_Layout.cshtml"
#line 124 "..\..\Views\Shared\_Layout.cshtml"
Write(Disco.Web.DiscoApplication.OrganisationName);
@@ -702,7 +878,7 @@ WriteLiteral(" | <a\r\n href=\"https://discoict.com.au/\" target=
"om.au</a> | ");
#line 106 "..\..\Views\Shared\_Layout.cshtml"
#line 125 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Credits", MVC.Public.Public.Credits()));
@@ -711,7 +887,7 @@ WriteLiteral(" | <a\r\n href=\"https://discoict.com.au/\" target=
WriteLiteral(" | ");
#line 106 "..\..\Views\Shared\_Layout.cshtml"
#line 125 "..\..\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Licence", MVC.Public.Public.Licence()));
@@ -720,13 +896,13 @@ WriteLiteral(" | ");
WriteLiteral("\r\n </footer>\r\n </div>\r\n");
#line 109 "..\..\Views\Shared\_Layout.cshtml"
#line 128 "..\..\Views\Shared\_Layout.cshtml"
#line default
#line hidden
#line 109 "..\..\Views\Shared\_Layout.cshtml"
#line 128 "..\..\Views\Shared\_Layout.cshtml"
Disco.Services.Plugins.Features.UIExtension.UIExtensions.ExecuteExtensionResult(this);
#line default
+1 -1
View File
@@ -19,7 +19,7 @@
</div>
<nav>
<ul id="menu">
<li>@Html.ActionLink("Reports", MVC.Public.Public.Index())</li>
<li class="active">@Html.ActionLink("Reports", MVC.Public.Public.Index())</li>
<li>@Html.ActionLink("Administration", MVC.Job.Index(), accesskey: "1")</li>
</ul>
</nav>
@@ -125,11 +125,15 @@ WriteLiteral("></i></a>\r\n </div>\r\n <nav>\r\n
WriteLiteral(" id=\"menu\"");
WriteLiteral(">\r\n <li>");
WriteLiteral(">\r\n <li");
WriteLiteral(" class=\"active\"");
WriteLiteral(">");
#line 22 "..\..\Views\Shared\_PublicLayout.cshtml"
Write(Html.ActionLink("Reports", MVC.Public.Public.Index()));
Write(Html.ActionLink("Reports", MVC.Public.Public.Index()));
#line default
+1
View File
@@ -1,3 +1,4 @@
@{
Html.BundleDeferred("~/Style/User");
ViewContext.ViewData["MenuArea"] = MVC.User.Name;
}
@@ -47,6 +47,7 @@ namespace Disco.Web.Views.User
#line 1 "..\..\Views\User\_ViewStart.cshtml"
Html.BundleDeferred("~/Style/User");
ViewContext.ViewData["MenuArea"] = MVC.User.Name;
#line default
+1
View File
@@ -15,6 +15,7 @@
<add namespace="Disco" />
<add namespace="Disco.BI.Extensions" />
<add namespace="Disco.Models.Repository" />
<add namespace="Disco.Services" />
<add namespace="Disco.Services.Authorization" />
<add namespace="Disco.Services.Web" />
<add namespace="Disco.Web" />