Files
Disco/Disco.Web/App_Code/CommonHelpers.cshtml
T
Gary Sharp 3f63281dc4 Feature: Job Queues
Also UI style, theme and element changes
2014-02-03 14:50:08 +11:00

132 lines
5.8 KiB
Plaintext

@* Generator: WebPagesHelper *@
@using Disco;
@using Disco.BI.Extensions;
@using Disco.Models.Repository;
@using Disco.Web;
@using System.Web.Mvc
@using System.Web.Mvc.Html;
@using Disco.Services.Web;
@helper FriendlyDate(DateTime d, string ElementId = null, bool WithoutSuffix = false)
{<span @(ElementId == null ? null : new HtmlString(string.Format("id=\"{0}\" ", ElementId)))title="@d.ToFullDateTime()" data-discodatetime="@d.ToSortable()" data-datetimeformatted="@d.ToJavaScript()" class="date nowrap">@d.FromNow(WithoutSuffix)</span>}
@helper FriendlyDate(DateTime? d, string NullValue = "n/a", string ElementId = null, bool WithoutSuffix = false)
{<span @(ElementId == null ? null : new HtmlString(string.Format("id=\"{0}\" ", ElementId)))title="@d.ToFullDateTime(NullValue)" data-discodatetime="@d.ToSortable()" data-datetimeformatted="@d.ToJavaScript()" class="date nowrap">@d.FromNow(WithoutSuffix, NullValue)</span>}
@helper RadioButtonList(string id, List<System.Web.Mvc.SelectListItem> items, int columns = 1)
{
@ItemList("radio", id, items, columns)
}
@helper CheckBoxList(string id, List<System.Web.Mvc.SelectListItem> items, int columns = 1, bool alignEven = true, int? forceUniqueIds = null, bool htmlEncodeText = true)
{
@ItemList("checkbox", id, items, columns, alignEven, forceUniqueIds, htmlEncodeText)
}
@helper ItemList(string inputType, string id, List<System.Web.Mvc.SelectListItem> items, int columns = 1, bool alignEven = true, int? forceUniqueIds = null, bool htmlEncodeText = true)
{
int itemsPerColumn = items.Count / columns;
int columnWidth = (100 / columns);
var itemNextId = 0;
<table class="none">
<tr>
@for (int i = 0; i < columns; i++)
{
<td@(alignEven ? new HtmlString(string.Format(" style=\"width: {0}%\"", columnWidth)) : new HtmlString(string.Empty))>
<ul class="none">
@{
int itemsForThisColumn = itemsPerColumn + (items.Count % columns > i ? 1 : 0);
for (int i2 = 0; i2 < itemsForThisColumn && itemNextId < items.Count; i2++)
{
var item = items[itemNextId];
itemNextId++;
var itemId = forceUniqueIds.HasValue ? string.Format("{0}_{1}_{2}", id, item.Value, forceUniqueIds++) : string.Format("{0}_{1}", id, item.Value);
<li>
<input id="@itemId" name="@id" value="@item.Value" type="@inputType" @(item.Selected ? new HtmlString("checked=\"checked\" ") : null)/><label for="@itemId">@if (htmlEncodeText)
{ @item.Text }
else
{ @(new HtmlString(item.Text)) }</label></li>
}
}
</ul>
</td>
}
</tr>
</table>
}
@helper FriendlyDateAndUser(DateTime? d, User u, string DateNullValue = "n/a", bool WithoutSuffix = false)
{
@FriendlyDate(d, DateNullValue, WithoutSuffix: WithoutSuffix);
@FriendlyUser(u, null, " by");
}
@helper FriendlyDateAndUser(DateTime d, User u, bool WithoutSuffix = false)
{
@FriendlyDate(d, WithoutSuffix: WithoutSuffix);
@FriendlyUser(u, null, " by");
}
@helper FriendlyDateAndTitleUser(DateTime? d, User u, string DateNullValue = "n/a", bool WithoutSuffix = false)
{
<span title="@d.ToFullDateTime(DateNullValue) by @u" data-discodatetime="@d.ToSortable()" class="date nowrap">@d.FromNow(WithoutSuffix, DateNullValue)</span>
}
@helper FriendlyDateAndTitleUser(DateTime d, User u, bool WithoutSuffix = false)
{
<span title="@d.ToFullDateTime() by @u" data-discodatetime="@d.ToSortable()" class="date nowrap">@d.FromNow(WithoutSuffix)</span>
}
@helper FriendlyUser(User u, string nullValue = null, string prepend = null)
{
if (u != null)
{
@prepend <span title="@u">@u.Id</span>
}
else
{
<span>@nullValue</span>
}
}
@helper Breadcrumbs(List<Tuple<string, ActionResult>> BreadCrumbs)
{
for (int index = 0; index < BreadCrumbs.Count; index++)
{
var breadCrumb = BreadCrumbs[index];
if (index != 0)
{
<span>&gt;</span>
}
if (breadCrumb.Item2 == null)
{
@breadCrumb.Item1
}
else
{
@Html.GetPageHelper().ActionLink(breadCrumb.Item1, breadCrumb.Item2)
}
}
}
@helper Breadcrumbs(string Title)
{
@Title
}
@helper BreadcrumbsTitle(List<Tuple<string, ActionResult>> BreadCrumbs)
{
for (int index = 0; index < BreadCrumbs.Count; index++)
{
var breadCrumb = BreadCrumbs[index];
if (index != 0)
{
@(new HtmlString(" > "))
}
@breadCrumb.Item1
}
}
@helper BreadcrumbsTitle(string Title)
{
@Title
}
@helper CheckboxBulkSelect(string BulkSelectContainerId, string ParentJQuerySelector = null)
{Html.GetPageHelper().BundleDeferred("~/ClientScripts/Modules/Disco-jQueryExtensions");
<span id="@BulkSelectContainerId" class="checkboxBulkSelectContainer">
@if (string.IsNullOrWhiteSpace(ParentJQuerySelector))
{
<script type="text/javascript">$(function () { $('#@(BulkSelectContainerId)').checkboxBulkSelect(); });</script>
}
else
{
<script type="text/javascript">$(function () { $('#@(BulkSelectContainerId)').checkboxBulkSelect({ parentSelector: '@(ParentJQuerySelector)' }); });</script>
}
</span>
}