110 lines
7.0 KiB
Plaintext
110 lines
7.0 KiB
Plaintext
@using CarCareTracker.Helper
|
|
@inject IConfigHelper config
|
|
@inject ITranslationHelper translator
|
|
@model List<ReminderRecordViewModel>
|
|
@{
|
|
var userConfig = config.GetUserConfig(User);
|
|
var userLanguage = userConfig.UserLanguage;
|
|
var hasRefresh = Model.Where(x => (x.Urgency == ReminderUrgency.VeryUrgent || x.Urgency == ReminderUrgency.PastDue) && x.IsRecurring).Any();
|
|
}
|
|
<div class="row">
|
|
<div class="d-flex justify-content-between">
|
|
<div class="d-flex align-items-center flex-wrap">
|
|
<span class="ms-2 badge bg-success">@($"{translator.Translate(userLanguage, "# of Reminders")}: {Model.Count()}")</span>
|
|
<span class="ms-2 badge bg-secondary">@($"{translator.Translate(userLanguage, "Past Due")}: {Model.Where(x => x.Urgency == ReminderUrgency.PastDue).Count()}")</span>
|
|
<span class="ms-2 badge bg-danger">@($"{translator.Translate(userLanguage, "Very Urgent")}: {Model.Where(x=>x.Urgency == ReminderUrgency.VeryUrgent).Count()}")</span>
|
|
<span class="ms-2 badge bg-warning">@($"{translator.Translate(userLanguage, "Urgent")}: {Model.Where(x => x.Urgency == ReminderUrgency.Urgent).Count()}")</span>
|
|
<span class="ms-2 badge bg-success">@($"{translator.Translate(userLanguage, "Not Urgent")}: {Model.Where(x => x.Urgency == ReminderUrgency.NotUrgent).Count()}")</span>
|
|
</div>
|
|
<div>
|
|
<button onclick="showAddReminderModal()" class="btn btn-primary btn-md mt-1 mb-1"><i class="bi bi-pencil-square me-2"></i>@translator.Translate(userLanguage, "Add Reminder")</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row vehicleDetailTabContainer">
|
|
<div class="col-12">
|
|
<div class="row mt-2 showOnPrint">
|
|
<div class="d-flex">
|
|
<img src="/defaults/lubelogger_logo.png" />
|
|
</div>
|
|
</div>
|
|
<table class="table table-hover">
|
|
<thead class="sticky-top">
|
|
<tr class="d-flex">
|
|
<th scope="col" class="col-1">@translator.Translate(userLanguage, "Urgency")</th>
|
|
<th scope="col" class="col-2">@translator.Translate(userLanguage, "Metric")</th>
|
|
<th scope="col" class="@(hasRefresh ? "col-4" : "col-5")">@translator.Translate(userLanguage, "Description")</th>
|
|
<th scope="col" class="col-3">@translator.Translate(userLanguage, "Notes")</th>
|
|
@if (hasRefresh)
|
|
{
|
|
<th scope="col" class="col-1">@translator.Translate(userLanguage, "Done")</th>
|
|
}
|
|
<th scope="col" class="col-1">@translator.Translate(userLanguage, "Delete")</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach (ReminderRecordViewModel reminderRecord in Model)
|
|
{
|
|
<tr class="d-flex user-select-none" style="cursor:pointer;" ontouchstart="detectRowLongTouch(this)" ontouchend="detectRowTouchEndPremature(this)" data-rowId="@reminderRecord.Id" oncontextmenu="showTableContextMenu(this)" onmousemove="rangeMouseMove(this)" onclick="handleTableRowClick(this, showEditReminderRecordModal,@reminderRecord.Id)">
|
|
@if (reminderRecord.Urgency == ReminderUrgency.VeryUrgent)
|
|
{
|
|
<td class="col-1"><span class="badge text-bg-danger">@translator.Translate(userLanguage, "Very Urgent")</span></td>
|
|
}
|
|
else if (reminderRecord.Urgency == ReminderUrgency.Urgent)
|
|
{
|
|
<td class="col-1"><span class="badge text-bg-warning">@translator.Translate(userLanguage, "Urgent")</span></td>
|
|
}
|
|
else if (reminderRecord.Urgency == ReminderUrgency.PastDue)
|
|
{
|
|
<td class="col-1"><span class="badge text-bg-secondary">@translator.Translate(userLanguage, "Past Due")</span></td>
|
|
}
|
|
else
|
|
{
|
|
<td class="col-1"><span class="badge text-bg-success">@translator.Translate(userLanguage, "Not Urgent")</span></td>
|
|
}
|
|
@if (reminderRecord.Metric == ReminderMetric.Date)
|
|
{
|
|
<td class="col-2">@reminderRecord.Date.ToShortDateString()</td>
|
|
}
|
|
else if (reminderRecord.Metric == ReminderMetric.Odometer)
|
|
{
|
|
<td class="col-2">@reminderRecord.Mileage</td>
|
|
}
|
|
else
|
|
{
|
|
<td class="col-2">@reminderRecord.Metric</td>
|
|
}
|
|
<td class="@(hasRefresh ? "col-4" : "col-5")">@reminderRecord.Description</td>
|
|
<td class="col-3 text-truncate">@CarCareTracker.Helper.StaticHelper.TruncateStrings(reminderRecord.Notes)</td>
|
|
@if (hasRefresh)
|
|
{
|
|
<td class="col-1 text-truncate">
|
|
@if((reminderRecord.Urgency == ReminderUrgency.VeryUrgent || reminderRecord.Urgency == ReminderUrgency.PastDue) && reminderRecord.IsRecurring)
|
|
{
|
|
<button type="button" class="btn btn-secondary" onclick="markDoneReminderRecord(@reminderRecord.Id, this)"><i class="bi bi-check-lg"></i></button>
|
|
}
|
|
</td>
|
|
}
|
|
<td class="col-1 text-truncate">
|
|
<button type="button" class="btn btn-danger" onclick="deleteReminderRecord(@reminderRecord.Id, this)"><i class="bi bi-trash"></i></button>
|
|
</td>
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="modal fade" data-bs-focus="false" id="planRecordModal" tabindex="-1" role="dialog" aria-hidden="true" data-bs-backdrop="static" data-bs-keyboard="false">
|
|
<div class="modal-dialog modal-lg" role="document">
|
|
<div class="modal-content" id="planRecordModalContent">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<ul class="table-context-menu dropdown-menu" style="display:none;">
|
|
<li><a class="context-menu-multiple context-menu-select-all dropdown-item" href="#" onclick="selectAllRows()">@translator.Translate(userLanguage, "Select All")</a></li>
|
|
<li><a class="context-menu-multiple context-menu-deselect-all dropdown-item" href="#" onclick="clearSelectedRows()">@translator.Translate(userLanguage, "Deselect All")</a></li>
|
|
<li><hr class="context-menu-multiple dropdown-divider"></li>
|
|
<li><a class="dropdown-item" href="#" onclick="duplicateRecords(selectedRow, 'ReminderRecord')">@translator.Translate(userLanguage, "Duplicate")</a></li>
|
|
<li><a class="dropdown-item" href="#" onclick="deleteRecords(selectedRow, 'ReminderRecord')">@translator.Translate(userLanguage, "Delete")</a></li>
|
|
</ul> |