Files
LeafWeb/WebCms/Views/Shared/_LeafInputActions.cshtml
T

130 lines
4.3 KiB
Plaintext

@using LeafWeb.Core.Entities
@using LeafWeb.WebCms.Utility
@model LeafInput
@{
var admin = ViewData.ContainsKey("admin");
var username = HttpContext.Current.User.Identity.Name;
}
<div class="btn-group text-nowrap" role="group">
<div class="btn-group" role="group">
<button id="actions(@Model.Id)" type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="Actions">
<span class="d-none d-sm-inline">Actions</span>
</button>
<div class="dropdown-menu" aria-labelledby="actions(@Model.Id)">
@if (admin)
{
@Details_AdminLink(Model)
@ChartLink(Model)
if (Model.IsPending)
{
<div class="dropdown-divider"></div>
<h6 class="dropdown-header">Priority</h6>
<button class="dropdown-item @DisableItem(Model.PendingPriority == Priority.High)">@PriorityForm(Model, Priority.High)</button>
<button class="dropdown-item @DisableItem(Model.PendingPriority == Priority.Normal)">@PriorityForm(Model, Priority.Normal)</button>
<button class="dropdown-item @DisableItem(Model.PendingPriority == Priority.Low)">@PriorityForm(Model, Priority.Low)</button>
}
if (Model.IsCancellable)
{
<div class="dropdown-divider"></div>
@CancelLink(Model)
}
<div class="dropdown-divider"></div>
<h6 class="dropdown-header">Download</h6>
@DownloadInput(Model)
@DownloadOutputToUser(Model)
<div class="dropdown-divider"></div>
@DeleteLink(Model)
}
else
{
@Details_ResultsLink(Model)
@ChartLink(Model)
if (string.Equals(Model.Email, username, StringComparison.OrdinalIgnoreCase))
{
<div class="dropdown-divider"></div>
<h6 class="dropdown-header">Download</h6>
@DownloadInput(Model)
@DownloadOutputToUser(Model)
}
}
</div>
</div>
</div>
@helper Details_AdminLink(LeafInput item)
{
var cssClass = CssClassUtil.CreateCssClassDataDictionary("dropdown-item");
@Html.Partial("DisplayTemplates/_Details_AdminLink", (int)item.Id, cssClass)
}
@helper Details_ResultsLink(LeafInput item)
{
var cssClass = CssClassUtil.CreateCssClassDataDictionary("dropdown-item");
@Html.Partial("DisplayTemplates/_Details_ResultsLink", (int)item.Id, cssClass)
}
@helper ChartLink(LeafInput item)
{
var cssClass = CssClassUtil.CreateCssClassDataDictionary("dropdown-item");
if (!item.HasLeafChart)
{
cssClass.SetCssDisabled();
}
@Html.Partial("DisplayTemplates/_ChartLink", (int)item.Id, cssClass)
}
@helper DownloadInput(LeafInput item)
{
<a href="@Url.Action("Input", "Download", new {id = item.Id})" class="dropdown-item">
<span class="fa fa-download"></span> Input
</a>
}
@helper DownloadOutputToUser(LeafInput item)
{
<a href="@Url.Action("OutputToUser", "Download", new {id = item.Id})" class="dropdown-item @DisableItem(!item.HasOutputFiles)">
<span class="fa fa-download"></span> Output
</a>
}
@helper DeleteLink(LeafInput item)
{
var cssClass
= CssClassUtil.CreateCssClassDataDictionary("dropdown-item");
if (!item.IsDeletable)
{
cssClass.SetCssDisabled();
}
@Html.Partial("DisplayTemplates/_DeleteForm", Tuple.Create(item.Id, item.Identifier), cssClass)
}
@helper CancelLink(LeafInput item)
{
var cssClass
= CssClassUtil.CreateCssClassDataDictionary("dropdown-item");
if (!item.IsCancellable)
{
cssClass.SetCssDisabled();
}
@Html.Partial("DisplayTemplates/_CancelForm", Tuple.Create(item.Id, item.Identifier), cssClass)
}
@helper PriorityForm(LeafInput item, Priority priority)
{
var cssClass
= CssClassUtil.CreateCssClassDataDictionary("dropdown-item");
@Html.Partial("DisplayTemplates/_PriorityForm", Tuple.Create(item.Id, item.PendingPriority, priority), cssClass)
}
@helper DisableItem(bool disabled)
{
if (disabled)
{<text>disabled</text>}
}