added tagging functionality to upgrades and repairs.

This commit is contained in:
DESKTOP-GENO133\IvanPlex
2024-01-30 22:44:25 -07:00
parent 6eafa5e036
commit 2eadd05289
9 changed files with 44 additions and 22 deletions

View File

@@ -737,7 +737,8 @@ namespace CarCareTracker.Controllers
Mileage = result.Mileage,
Notes = result.Notes,
VehicleId = result.VehicleId,
Files = result.Files
Files = result.Files,
Tags = result.Tags
};
return PartialView("_CollisionRecordModal", convertedResult);
}
@@ -1380,7 +1381,8 @@ namespace CarCareTracker.Controllers
Mileage = result.Mileage,
Notes = result.Notes,
VehicleId = result.VehicleId,
Files = result.Files
Files = result.Files,
Tags = result.Tags
};
return PartialView("_UpgradeRecordModal", convertedResult);
}

View File

@@ -27,6 +27,13 @@
{
@await Html.PartialAsync("_SupplyStore", "RepairRecord")
}
<label for="collisionRecordTag">Tags(optional)</label>
<select multiple class="form-select" id="collisionRecordTag">
@foreach (string tag in Model.Tags)
{
<!option value="@tag">@tag</!option>
}
</select>
</div>
<div class="col-md-6 col-12">
<label for="collisionRecordNotes">Notes(optional)<a class="link-underline link-underline-opacity-0" onclick="showLinks(this)"><i class="bi bi-markdown ms-2"></i></a></label>

View File

@@ -3,6 +3,7 @@
@{
var enableCsvImports = config.GetUserConfig(User).EnableCsvImports;
var hideZero = config.GetUserConfig(User).HideZero;
var recordTags = Model.SelectMany(x => x.Tags).Distinct();
}
@model List<CollisionRecord>
<div class="row">
@@ -10,6 +11,10 @@
<div class="d-flex align-items-center flex-wrap">
<span class="ms-2 badge bg-success">@($"# of Repair Records: {Model.Count()}")</span>
<span class="ms-2 badge bg-primary">@($"Total: {Model.Sum(x => x.Cost).ToString("C")}")</span>
@foreach (string recordTag in recordTags)
{
<span onclick="filterTable('accident-tab-pane', this)" class="user-select-none ms-2 rounded-pill badge bg-secondary tagfilter" style="cursor:pointer;">@recordTag</span>
}
</div>
<div>
@if (enableCsvImports)
@@ -54,7 +59,7 @@
<tbody>
@foreach (CollisionRecord collisionRecord in Model)
{
<tr class="d-flex" style="cursor:pointer;" onclick="showEditCollisionRecordModal(@collisionRecord.Id)">
<tr class="d-flex" style="cursor:pointer;" onclick="showEditCollisionRecordModal(@collisionRecord.Id)" data-tags='@string.Join(" ", collisionRecord.Tags)'>
<td class="col-2 col-xl-1">@collisionRecord.Date.ToShortDateString()</td>
<td class="col-2">@collisionRecord.Mileage</td>
<td class="col-3 col-xl-4">@collisionRecord.Description</td>

View File

@@ -13,7 +13,7 @@
<span class="ms-2 badge bg-primary">@($"Total: {Model.Sum(x => x.Cost).ToString("C")}")</span>
@foreach(string recordTag in recordTags)
{
<span onclick="filterTable('servicerecord-tab-pane', this)" class="ms-2 rounded-pill badge bg-secondary tagfilter" style="cursor:pointer;">@recordTag</span>
<span onclick="filterTable('servicerecord-tab-pane', this)" class="user-select-none ms-2 rounded-pill badge bg-secondary tagfilter" style="cursor:pointer;">@recordTag</span>
}
</div>
<div>
@@ -59,7 +59,7 @@
<tbody>
@foreach (ServiceRecord serviceRecord in Model)
{
<tr class="d-flex" style="cursor:pointer;" onclick="showEditServiceRecordModal(@serviceRecord.Id)" data-tags='@string.Join(",",serviceRecord.Tags)'>
<tr class="d-flex" style="cursor:pointer;" onclick="showEditServiceRecordModal(@serviceRecord.Id)" data-tags='@string.Join(" ",serviceRecord.Tags)'>
<td class="col-2 col-xl-1">@serviceRecord.Date.ToShortDateString()</td>
<td class="col-2">@serviceRecord.Mileage</td>
<td class="col-3 col-xl-4">@serviceRecord.Description</td>

View File

@@ -27,6 +27,13 @@
{
@await Html.PartialAsync("_SupplyStore", "UpgradeRecord")
}
<label for="upgradeRecordTag">Tags(optional)</label>
<select multiple class="form-select" id="upgradeRecordTag">
@foreach (string tag in Model.Tags)
{
<!option value="@tag">@tag</!option>
}
</select>
</div>
<div class="col-md-6 col-12">
<label for="upgradeRecordNotes">Notes(optional)<a class="link-underline link-underline-opacity-0" onclick="showLinks(this)"><i class="bi bi-markdown ms-2"></i></a></label>

View File

@@ -3,6 +3,7 @@
@{
var enableCsvImports = config.GetUserConfig(User).EnableCsvImports;
var hideZero = config.GetUserConfig(User).HideZero;
var recordTags = Model.SelectMany(x => x.Tags).Distinct();
}
@model List<UpgradeRecord>
<div class="row">
@@ -10,6 +11,10 @@
<div class="d-flex align-items-center flex-wrap">
<span class="ms-2 badge bg-success">@($"# of Upgrade Records: {Model.Count()}")</span>
<span class="ms-2 badge bg-primary">@($"Total: {Model.Sum(x => x.Cost).ToString("C")}")</span>
@foreach (string recordTag in recordTags)
{
<span onclick="filterTable('upgrade-tab-pane', this)" class="user-select-none ms-2 rounded-pill badge bg-secondary tagfilter" style="cursor:pointer;">@recordTag</span>
}
</div>
<div>
@if (enableCsvImports)
@@ -54,7 +59,7 @@
<tbody>
@foreach (UpgradeRecord upgradeRecord in Model)
{
<tr class="d-flex" style="cursor:pointer;" onclick="showEditUpgradeRecordModal(@upgradeRecord.Id)">
<tr class="d-flex" style="cursor:pointer;" onclick="showEditUpgradeRecordModal(@upgradeRecord.Id)" data-tags='@string.Join(" ", upgradeRecord.Tags)'>
<td class="col-2 col-xl-1">@upgradeRecord.Date.ToShortDateString()</td>
<td class="col-2">@upgradeRecord.Mileage</td>
<td class="col-3 col-xl-4">@upgradeRecord.Description</td>

View File

@@ -4,6 +4,7 @@
$("#collisionRecordModalContent").html(data);
//initiate datepicker
initDatePicker($('#collisionRecordDate'));
initTagSelector($("#collisionRecordTag"));
$('#collisionRecordModal').modal('show');
}
});
@@ -14,6 +15,7 @@ function showEditCollisionRecordModal(collisionRecordId) {
$("#collisionRecordModalContent").html(data);
//initiate datepicker
initDatePicker($('#collisionRecordDate'));
initTagSelector($("#collisionRecordTag"));
$('#collisionRecordModal').modal('show');
$('#collisionRecordModal').off('shown.bs.modal').on('shown.bs.modal', function () {
if (getGlobalConfig().useMarkDown) {
@@ -80,6 +82,7 @@ function getAndValidateCollisionRecordValues() {
var collisionDescription = $("#collisionRecordDescription").val();
var collisionCost = $("#collisionRecordCost").val();
var collisionNotes = $("#collisionRecordNotes").val();
var collisionTags = $("#collisionRecordTag").val();
var vehicleId = GetVehicleId().vehicleId;
var collisionRecordId = getCollisionRecordModelData().id;
var addReminderRecord = $("#addReminderCheck").is(":checked");
@@ -120,6 +123,7 @@ function getAndValidateCollisionRecordValues() {
notes: collisionNotes,
files: uploadedFiles,
supplies: selectedSupplies,
tags: collisionTags,
addReminderRecord: addReminderRecord
}
}

View File

@@ -237,25 +237,13 @@ function filterTable(tabName, sender, isSort) {
$(sender).removeClass('bg-primary');
$(sender).addClass('bg-secondary');
} else {
rowData.map((index, elem) => {
var dataTags = $(elem).attr('data-tags');
if (dataTags == undefined || !dataTags.split(",").includes(tagName)) {
$(elem).addClass('override-hide');
} else {
$(elem).removeClass('override-hide');
}
});
rowData.addClass('override-hide');
$(`[data-tags~='${tagName}']`).removeClass('override-hide');
}
} else {
//hide table rows.
rowData.map((index, elem) => {
var dataTags = $(elem).attr('data-tags');
if (dataTags == undefined || !dataTags.split(",").includes(tagName)) {
$(elem).addClass('override-hide');
} else {
$(elem).removeClass('override-hide');
}
});
rowData.addClass('override-hide');
$(`[data-tags~='${tagName}']`).removeClass('override-hide');
if ($(".tagfilter.bg-primary").length > 0) {
//disabling other filters
$(".tagfilter.bg-primary").addClass('bg-secondary');

View File

@@ -4,6 +4,7 @@
$("#upgradeRecordModalContent").html(data);
//initiate datepicker
initDatePicker($('#upgradeRecordDate'));
initTagSelector($("#upgradeRecordTag"));
$('#upgradeRecordModal').modal('show');
}
});
@@ -14,6 +15,7 @@ function showEditUpgradeRecordModal(upgradeRecordId) {
$("#upgradeRecordModalContent").html(data);
//initiate datepicker
initDatePicker($('#upgradeRecordDate'));
initTagSelector($("#upgradeRecordTag"));
$('#upgradeRecordModal').modal('show');
$('#upgradeRecordModal').off('shown.bs.modal').on('shown.bs.modal', function () {
if (getGlobalConfig().useMarkDown) {
@@ -80,6 +82,7 @@ function getAndValidateUpgradeRecordValues() {
var upgradeDescription = $("#upgradeRecordDescription").val();
var upgradeCost = $("#upgradeRecordCost").val();
var upgradeNotes = $("#upgradeRecordNotes").val();
var upgradeTags = $("#upgradeRecordTag").val();
var vehicleId = GetVehicleId().vehicleId;
var upgradeRecordId = getUpgradeRecordModelData().id;
var addReminderRecord = $("#addReminderCheck").is(":checked");
@@ -120,6 +123,7 @@ function getAndValidateUpgradeRecordValues() {
notes: upgradeNotes,
files: uploadedFiles,
supplies: selectedSupplies,
tags: upgradeTags,
addReminderRecord: addReminderRecord
}
}