Files
MileageTraker/Web/Views/Log/Index.cshtml
T
2015-10-22 09:05:42 -04:00

97 lines
4.1 KiB
Plaintext

@using MileageTraker.Web.Utility
@model MileageTraker.Web.ViewModels.Log.LogResultsViewModel
@{
ViewBag.Title = "Logs";
var grid = new WebGrid(Model.Logs, rowsPerPage: 45);
var queryParams = new {Model.Year, Model.Month, Model.LogType, Model.MonthRange, Model.VehicleId, Model.EmployeeName};
}
@section Styles {
<link href="@Url.Content("~/Content/VehicleColors.css")" rel="stylesheet" type="text/css" />
}
@section Scripts {
<script type="text/javascript">
var availableLogYearMonths = @Html.Raw(Json.Encode(Model.AvailableYearMonths));
@if (Model.Year != null)
{
<text>var selectedYear = "@Model.Year";</text>
<text>var selectedMonth = "@Model.Month";</text>
}
</script>
}
@Html.Partial("_StatusMessage")
<div class="btn-toolbar pull-right">
@using (Html.BeginForm("Index", "Log", FormMethod.Get, new { id = "filter", @class = "form" }))
{
<div class="">
@Html.EditorForModel()
</div>
}
</div>
<h2 id="log-title"><i class="fa fa-road"></i> @ViewBag.Title</h2>
<div class="btn-toolbar clearfix">
@Html.ActionLink("Add New Log", "Create", null, new { @class = "btn" })
@Html.ActionLink("Import", "ImportUpload", null, new { @class = "btn"})
@Html.ActionLink("Export", "Export", queryParams, new { @class = "btn" })
<div class="btn-group">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">Report <i class="fa fa-caret-down"></i></a>
<ul class="dropdown-menu">
<li>
@Html.ActionLink("Vehicle Mileage", "MonthlyVehicleMileage", queryParams)
</li>
<li>
@Html.ActionLink("Driver Mileage", "MonthlyDriverMileage", queryParams)
</li>
</ul>
</div>
</div>
<div>
@grid.GetHtml(columns:
grid.Columns(
grid.Column("VehicleId", "Vehicle ID", item => Html.ActionLink((string)item.VehicleId, "DetailsPartial", "Vehicle", new { id = item.VehicleId }, new { @class = "qtip-modal" })),
grid.Column("EndOdometer", "End ODO"),
grid.Column("Miles", canSort: false, format: item =>
{
if (item.PreviousLogId != null)
{
string miles = (item.Miles).ToString();
return Html.ActionLink(miles, "DetailsPrevious", new { id = item.PreviousLogId }, new { @class = "qtip-modal" });
}
return Html.Raw("<span class='miles-unknown'>?</span>");
}),
grid.Column("LogType", "Type", item => ((Enum)item.LogType).GetDisplayShortName()),
grid.Column("GasPurchased", "Gas", item => item.GasPurchased > 0 ? String.Format("{0:0.000}", item.GasPurchased) : string.Empty),
grid.Column("Date", format: item => item.Date.ToString("d")),
grid.Column("CityName", "City Name"),
grid.Column("PurposePurpose", "Purpose", item =>
{
if (item.Notes != null)
{
return Html.Raw("<span title='" + Html.Encode(item.Notes) + "'>" + Html.Encode(item.PurposePurpose) + "</span>");
}
return item.PurposePurpose;
}),
grid.Column("Driver Name", format: item => item.UserFullName),
grid.Column("Total Results: " + Model.Logs.Count(), canSort:false, format:
@<div class='btn-group'>
@Html.ActionLink("Edit", "Edit", new { id = item.LogId }, new { @class = "btn btn-mini" })
@Html.ActionLink("Details", "Details", new { id = item.LogId }, new { @class = "btn btn-mini" })
@Html.ActionLink("Delete", "Delete", new { id = item.LogId }, new { @class = "btn btn-mini" })
</div>)
),
htmlAttributes: new { @class = "table table-striped table-bordered table-hover table-condensed"},
numericLinksCount: 20
)
</div>
@if (!Model.Logs.Any())
{
<div>
No results.
</div>
}