Add priority

This commit is contained in:
2017-02-01 09:41:08 -05:00
parent 0711ae0ac8
commit e3779a323c
19 changed files with 365 additions and 83 deletions
+23 -19
View File
@@ -1,4 +1,5 @@
@model QueueViewModel
@using LeafWeb.Core.Entities
@model QueueViewModel
@{
var grid = new WebGrid(Model.Items, rowsPerPage: 45);
@@ -15,7 +16,7 @@
grid.Column("SiteId", "Site Id"),
grid.Column("Name", "Submitted By"),
//grid.Column("FileCount", "Input files"),
grid.Column("TotalInProgressTime", "In-Progress Time", item => ((TimeSpan)item.TotalInProgressTime).ToRoundedReadableString()),
grid.Column("TimeInProgress", "Time In Progress", item => TimeInProgress(item.TimeInProgress)),
grid.Column("CurrentStatus", "Status", item => Html.Partial("DisplayTemplates/_LeafInputStatus", (string)item.CurrentStatus.ToString())),
grid.Column("Total Results: " + Model.Items.Count(), format: item => Btns(item))),
htmlAttributes: new { @class = "table table-striped table-bordered table-hover table-condensed" }
@@ -33,15 +34,19 @@
<ul class="dropdown-menu">
<li>@DetailsLink(item)</li>
<li @DisableItem(!item.HasLeafChart)>@ChartLink(item)</li>
@if (item.IsPending)
{
<li role="separator" class="divider"></li>
<li class="dropdown-header">Priority</li>
<li @DisableItem(item.PendingPriority == Priority.High)>@PriorityForm(item, Priority.High)</li>
<li @DisableItem(item.PendingPriority == Priority.Normal)>@PriorityForm(item, Priority.Normal)</li>
<li @DisableItem(item.PendingPriority == Priority.Low)>@PriorityForm(item, Priority.Low)</li>
}
@if (item.IsCancellable)
{
<li role="separator" class="divider"></li>
<li>@CancelLink(item)</li>
}
@*<li role="separator" class="divider"></li>
<li class="dropdown-header">Priority</li>
<li>@SetPriorityHigh(item, "Set High")</li>
<li>@SetPriorityLow(item, "Set Low")</li>*@
<li role="separator" class="divider"></li>
<li class="dropdown-header">Download</li>
<li>@DownloadInput(item)</li>
@@ -63,19 +68,6 @@
@Html.Partial("DisplayTemplates/_ChartLink", (int)item.Id)
}
@helper SetPriorityHigh(dynamic item, string label)
{
<a href="@Url.Action("SetPriorityHigh", "Queue", new {id = item.Id})">
<span class="glyphicon glyphicon-arrow-up"></span> @label
</a>
}
@helper SetPriorityLow(dynamic item, string label)
{
<a href="@Url.Action("SetPriorityLow", "Queue", new {id = item.Id})">
<span class="glyphicon glyphicon-arrow-down"></span> @label
</a>
}
@helper DownloadInput(dynamic item)
{
<a href="@Url.Action("DownloadInput", "Queue", new {id = item.Id})">
@@ -88,6 +80,13 @@
<span class="glyphicon glyphicon-download"></span> ToUser
</a>
}
@helper TimeInProgress(TimeSpan timeSpan)
{
if (timeSpan > TimeSpan.Zero)
{
@timeSpan.ToRoundedReadableString()
}
}
@helper DeleteLink(dynamic item)
{
@Html.Partial("DisplayTemplates/_DeleteForm", (Tuple<int, string, bool>)Tuple.Create(item.Id, item.Identifier, item.IsDeletable))
@@ -98,6 +97,11 @@
@Html.Partial("DisplayTemplates/_CancelForm", (Tuple<int, string>)Tuple.Create(item.Id, item.Identifier))
}
@helper PriorityForm(dynamic item, Priority priority)
{
@Html.Partial("DisplayTemplates/_PriorityForm", (Tuple<int, Priority, Priority>)Tuple.Create(item.Id, item.PendingPriority, priority))
}
@helper DisableItem(bool disabled)
{
if (disabled) {<text>class="disabled"</text>}
+1 -1
View File
@@ -1,4 +1,4 @@
@model IOrderedQueryable<LeafWeb.Core.Entities.LeafInput>
@model IQueryable<LeafWeb.Core.Entities.LeafInput>
@{
var grid = new WebGrid(Model, rowsPerPage: 45);
@@ -0,0 +1,12 @@
@using LeafWeb.Core.Entities
@model Priority
@{
switch (Model)
{
case Priority.Normal:<span class="glyphicon glyphicon-unchecked"></span>break;
case Priority.Low:<span class="glyphicon glyphicon-collapse-down"></span>break;
case Priority.High:<span class="glyphicon glyphicon-collapse-up"></span>break;
default:
throw new ArgumentOutOfRangeException();
}
}
@@ -0,0 +1,13 @@
@model TimeSpan?
@{
Layout = "~/Views/Shared/DisplayTemplates/_FieldLayout.cshtml";
var val =
Model.HasValue
?
ViewData.ModelMetadata.DisplayFormatString != null
? string.Format(ViewData.ModelMetadata.DisplayFormatString, Model)
: Model.Value.ToReadableString()
: string.Empty;
}
@(Model == null ? Html.Encode(ViewData.ModelMetadata.NullDisplayText) : Html.Encode(val))
@@ -0,0 +1,24 @@
@using LeafWeb.WebCms.Controllers
@model Tuple<int, LeafWeb.Core.Entities.Priority, LeafWeb.Core.Entities.Priority>
@{
var leafInputId = Model.Item1;
var currentPriority = Model.Item2;
var formPriority = Model.Item3;
}
@if (currentPriority != formPriority)
{
using (Html.BeginUmbracoForm<QueueController>("Priority", null, new {@class = "clearfix"}))
{
<input type="hidden" name="id" value="@leafInputId"/>
<input type="hidden" name="priority" value="@formPriority"/>
<button type="submit" class="btn btn-link">
@Html.Partial("DisplayTemplates/PriorityIcon", formPriority) Set @formPriority
</button>
}
}
else
{
<a href="#" class="alert-warning">
@Html.Partial("DisplayTemplates/PriorityIcon", formPriority) @formPriority
</a>
}