allow users to define what field sthey want to see in vehicle maintenance report.
This commit is contained in:
26
Views/Vehicle/_ReportParameters.cshtml
Normal file
26
Views/Vehicle/_ReportParameters.cshtml
Normal file
@@ -0,0 +1,26 @@
|
||||
@using CarCareTracker.Helper
|
||||
@inject IConfigHelper config
|
||||
@inject ITranslationHelper translator
|
||||
@{
|
||||
var userConfig = config.GetUserConfig(User);
|
||||
var userLanguage = userConfig.UserLanguage;
|
||||
}
|
||||
@model ReportParameter
|
||||
<div id="columnSelector">
|
||||
<ul class="list-group">
|
||||
@foreach(string column in Model.VisibleColumns)
|
||||
{
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input column-default" type="checkbox" value="@column" id="visibleColumn_@column" checked>
|
||||
<label class="form-check-label stretched-link" for="visibleColumn_@column">@(translator.Translate(userLanguage, column == nameof(GenericReportModel.DataType) ? "Type" : column))</label>
|
||||
</li>
|
||||
}
|
||||
@foreach(string extraField in Model.ExtraFields)
|
||||
{
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input column-extrafield" type="checkbox" value="@extraField" id="extraField_@extraField">
|
||||
<label class="form-check-label stretched-link" for="extraField_@extraField">@extraField</label>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -1,12 +1,13 @@
|
||||
@using CarCareTracker.Helper
|
||||
@inject IConfigHelper config
|
||||
@inject ITranslationHelper translator
|
||||
@model VehicleHistoryViewModel
|
||||
@{
|
||||
var userConfig = config.GetUserConfig(User);
|
||||
var hideZero = userConfig.HideZero;
|
||||
var userLanguage = userConfig.UserLanguage;
|
||||
var extraFields = Model.ReportParameters.ExtraFields;
|
||||
}
|
||||
@model VehicleHistoryViewModel
|
||||
<div class="vehicleDetailTabContainer">
|
||||
<div class="row mt-2">
|
||||
<div class="d-flex">
|
||||
@@ -107,19 +108,23 @@
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr class="d-flex">
|
||||
<th scope="col" class="col-2 text-truncate flex-grow-1 flex-shrink-1">@translator.Translate(userLanguage, "Type")</th>
|
||||
<th scope="col" class="col-2 text-truncate flex-grow-1 flex-shrink-1">@translator.Translate(userLanguage, "Date")</th>
|
||||
<th scope="col" class="col-2 text-truncate flex-grow-1 flex-shrink-1">@translator.Translate(userLanguage, "Odometer")</th>
|
||||
<th scope="col" class="col-3 text-truncate flex-grow-1 flex-shrink-1">@translator.Translate(userLanguage, "Description")</th>
|
||||
<th scope="col" class="col-2 text-truncate flex-grow-1 flex-shrink-1">@translator.Translate(userLanguage, "Cost")</th>
|
||||
<th scope="col" class="col-4 text-truncate flex-grow-1 flex-shrink-1">@translator.Translate(userLanguage, "Notes")</th>
|
||||
<th scope="col" class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.DataType)) ? "" : "d-none")">@translator.Translate(userLanguage, "Type")</th>
|
||||
<th scope="col" class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Date)) ? "" : "d-none")">@translator.Translate(userLanguage, "Date")</th>
|
||||
<th scope="col" class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Odometer)) ? "" : "d-none")">@translator.Translate(userLanguage, "Odometer")</th>
|
||||
<th scope="col" class="col-3 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Description)) ? "" : "d-none")">@translator.Translate(userLanguage, "Description")</th>
|
||||
<th scope="col" class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Cost)) ? "" : "d-none")">@translator.Translate(userLanguage, "Cost")</th>
|
||||
<th scope="col" class="col-4 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Notes)) ? "" : "d-none")">@translator.Translate(userLanguage, "Notes")</th>
|
||||
@foreach(string extraField in extraFields)
|
||||
{
|
||||
<th scope="col" class="col-2 text-truncate flex-grow-1 flex-shrink-1">@extraField</th>
|
||||
}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (GenericReportModel reportData in Model.VehicleHistory)
|
||||
{
|
||||
<tr class="d-flex">
|
||||
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1">
|
||||
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.DataType)) ? "" : "d-none")">
|
||||
@if (reportData.DataType == ImportMode.ServiceRecord)
|
||||
{
|
||||
<span><i class="bi bi-card-checklist me-2"></i>@translator.Translate(userLanguage, "Service")</span>
|
||||
@@ -137,11 +142,15 @@
|
||||
<span><i class="bi bi-currency-dollar me-2"></i>@translator.Translate(userLanguage, "Tax")</span>
|
||||
}
|
||||
</td>
|
||||
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1">@reportData.Date.ToShortDateString()</td>
|
||||
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1">@(reportData.Odometer == default ? "---" : reportData.Odometer.ToString("N0"))</td>
|
||||
<td class="col-3 text-truncate flex-grow-1 flex-shrink-1">@reportData.Description</td>
|
||||
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1">@((hideZero && reportData.Cost == default) ? "---" : reportData.Cost.ToString("C"))</td>
|
||||
<td class="col-4 flex-grow-1 flex-shrink-1 text-wrap">@StaticHelper.TruncateStrings(reportData.Notes, 100)</td>
|
||||
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Date)) ? "" : "d-none")">@reportData.Date.ToShortDateString()</td>
|
||||
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Odometer)) ? "" : "d-none")">@(reportData.Odometer == default ? "---" : reportData.Odometer.ToString("N0"))</td>
|
||||
<td class="col-3 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Description)) ? "" : "d-none")">@reportData.Description</td>
|
||||
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Cost)) ? "" : "d-none")">@((hideZero && reportData.Cost == default) ? "---" : reportData.Cost.ToString("C"))</td>
|
||||
<td class="col-4 flex-grow-1 flex-shrink-1 text-wrap text-break @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Notes)) ? "" : "d-none")">@StaticHelper.TruncateStrings(reportData.Notes, 100)</td>
|
||||
@foreach(string extraField in extraFields)
|
||||
{
|
||||
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1">@(reportData.ExtraFields.Where(x => x.Name == extraField)?.FirstOrDefault()?.Value ?? "")</td>
|
||||
}
|
||||
</tr>
|
||||
}
|
||||
<tr class="d-flex">
|
||||
|
||||
Reference in New Issue
Block a user