added functions for pinning notes.
This commit is contained in:
@@ -1634,6 +1634,24 @@ namespace CarCareTracker.Controllers
|
||||
var result = _noteDataAccess.DeleteNoteById(noteId);
|
||||
return Json(result);
|
||||
}
|
||||
[HttpPost]
|
||||
public IActionResult PinNotes(List<int> noteIds, bool isToggle = false, bool pinStatus = false)
|
||||
{
|
||||
var result = false;
|
||||
foreach(int noteId in noteIds)
|
||||
{
|
||||
var existingNote = _noteDataAccess.GetNoteById(noteId);
|
||||
if (isToggle)
|
||||
{
|
||||
existingNote.Pinned = !existingNote.Pinned;
|
||||
} else
|
||||
{
|
||||
existingNote.Pinned = pinStatus;
|
||||
}
|
||||
result = _noteDataAccess.SaveNoteToVehicle(existingNote);
|
||||
}
|
||||
return Json(result);
|
||||
}
|
||||
#endregion
|
||||
#region "Supply Records"
|
||||
private List<string> CheckSupplyRecordsAvailability(List<SupplyUsage> supplyUsage)
|
||||
|
||||
@@ -72,6 +72,10 @@
|
||||
<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="pinNotes(selectedRow, true)">@translator.Translate(userLanguage, "Toggle Pin")</a></li>
|
||||
<li><a class="dropdown-item" href="#" onclick="pinNotes(selectedRow, false, true)">@translator.Translate(userLanguage, "Pin")</a></li>
|
||||
<li><a class="dropdown-item" href="#" onclick="pinNotes(selectedRow, false, false)">@translator.Translate(userLanguage, "Unpin")</a></li>
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
<li><a class="dropdown-item" href="#" onclick="duplicateRecords(selectedRow, 'NoteRecord')">@translator.Translate(userLanguage, "Duplicate")</a></li>
|
||||
<li><a class="dropdown-item" href="#" onclick="deleteRecords(selectedRow, 'NoteRecord')">@translator.Translate(userLanguage, "Delete")</a></li>
|
||||
</ul>
|
||||
@@ -100,4 +100,12 @@ function getAndValidateNoteValues() {
|
||||
pinned: noteIsPinned,
|
||||
tags: noteTags
|
||||
}
|
||||
}
|
||||
function pinNotes(ids, toggle, pinStatus) {
|
||||
$.post('/Vehicle/PinNotes', { noteIds: ids, isToggle: toggle, pinStatus: pinStatus }, function (data) {
|
||||
if (data) {
|
||||
successToast(ids.length > 1 ? `${ids.length} Notes Updated` : "Note Updated.");
|
||||
getVehicleNotes(GetVehicleId().vehicleId);
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -811,87 +811,6 @@ function detectRowTouchEndPremature(sender) {
|
||||
rowTouchTimer = null;
|
||||
}
|
||||
}
|
||||
function editMultipleRecords(ids, dataType) {
|
||||
$.post('/Vehicle/GetGenericRecordModal', { recordIds: ids, dataType: dataType }, function (data) {
|
||||
if (data) {
|
||||
$("#genericRecordEditModalContent").html(data);
|
||||
initDatePicker($('#genericRecordDate'));
|
||||
initTagSelector($("#genericRecordTag"));
|
||||
$("#genericRecordEditModal").modal('show');
|
||||
}
|
||||
});
|
||||
}
|
||||
function hideGenericRecordModal() {
|
||||
$("#genericRecordEditModal").modal('hide');
|
||||
}
|
||||
function saveGenericRecord() {
|
||||
//get values
|
||||
var formValues = getAndValidateGenericRecordValues();
|
||||
//validate
|
||||
if (formValues.hasError) {
|
||||
errorToast("Please check the form data");
|
||||
return;
|
||||
}
|
||||
var refreshDataCallBack;
|
||||
switch (formValues.dataType) {
|
||||
case "ServiceRecord":
|
||||
refreshDataCallBack = getVehicleServiceRecords;
|
||||
break;
|
||||
case "RepairRecord":
|
||||
refreshDataCallBack = getVehicleCollisionRecords;
|
||||
break;
|
||||
case "UpgradeRecord":
|
||||
refreshDataCallBack = getVehicleUpgradeRecords;
|
||||
break;
|
||||
}
|
||||
//save to db.
|
||||
$.post('/Vehicle/EditMultipleRecords', { genericRecordEditModel: formValues }, function (data) {
|
||||
if (data) {
|
||||
successToast(formValues.recordIds.length > 1 ? "Records Updated" : "Record Updated.");
|
||||
hideGenericRecordModal();
|
||||
refreshDataCallBack(GetVehicleId().vehicleId);
|
||||
} else {
|
||||
errorToast(genericErrorMessage());
|
||||
}
|
||||
})
|
||||
}
|
||||
function getAndValidateGenericRecordValues() {
|
||||
var genericDate = $("#genericRecordDate").val();
|
||||
var genericMileage = $("#genericRecordMileage").val();
|
||||
var genericMileageToParse = parseInt(globalParseFloat($("#genericRecordMileage").val())).toString();
|
||||
var genericDescription = $("#genericRecordDescription").val();
|
||||
var genericCost = $("#genericRecordCost").val();
|
||||
var genericNotes = $("#genericRecordNotes").val();
|
||||
var genericTags = $("#genericRecordTag").val();
|
||||
//validation
|
||||
var hasError = false;
|
||||
if (genericMileage.trim() != '' && (isNaN(genericMileageToParse) || parseInt(genericMileageToParse) < 0)) {
|
||||
hasError = true;
|
||||
$("#genericRecordMileage").addClass("is-invalid");
|
||||
} else {
|
||||
$("#genericRecordMileage").removeClass("is-invalid");
|
||||
}
|
||||
if (genericCost.trim() != '' && !isValidMoney(genericCost)) {
|
||||
hasError = true;
|
||||
$("#genericRecordCost").addClass("is-invalid");
|
||||
} else {
|
||||
$("#genericRecordCost").removeClass("is-invalid");
|
||||
}
|
||||
return {
|
||||
hasError: hasError,
|
||||
dataType: getGenericRecordEditModelData().dataType,
|
||||
recordIds: recordsToEdit,
|
||||
editRecord: {
|
||||
date: genericDate,
|
||||
mileage: genericMileageToParse,
|
||||
description: genericDescription,
|
||||
cost: genericCost,
|
||||
notes: genericNotes,
|
||||
tags: genericTags
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function replenishSupplies() {
|
||||
Swal.fire({
|
||||
title: 'Replenish Supplies',
|
||||
@@ -922,6 +841,9 @@ function replenishSupplies() {
|
||||
var parsedReplenishedCost = result.value.parsedReplCost;
|
||||
var replenishedQuantity = result.value.replquantity;
|
||||
var currentCost = globalParseFloat($('#supplyRecordCost').val())
|
||||
if (isNaN(currentCost)) {
|
||||
currentCost = 0;
|
||||
}
|
||||
var currentQuantity = globalParseFloat($('#supplyRecordQuantity').val());
|
||||
var newQuantity = currentQuantity + replenishedQuantity;
|
||||
if (replenishedCost.trim() == '') {
|
||||
|
||||
@@ -358,4 +358,84 @@ function showRecurringReminderSelector(descriptionFieldName) {
|
||||
errorToast(genericErrorMessage());
|
||||
}
|
||||
})
|
||||
}
|
||||
function editMultipleRecords(ids, dataType) {
|
||||
$.post('/Vehicle/GetGenericRecordModal', { recordIds: ids, dataType: dataType }, function (data) {
|
||||
if (data) {
|
||||
$("#genericRecordEditModalContent").html(data);
|
||||
initDatePicker($('#genericRecordDate'));
|
||||
initTagSelector($("#genericRecordTag"));
|
||||
$("#genericRecordEditModal").modal('show');
|
||||
}
|
||||
});
|
||||
}
|
||||
function hideGenericRecordModal() {
|
||||
$("#genericRecordEditModal").modal('hide');
|
||||
}
|
||||
function saveGenericRecord() {
|
||||
//get values
|
||||
var formValues = getAndValidateGenericRecordValues();
|
||||
//validate
|
||||
if (formValues.hasError) {
|
||||
errorToast("Please check the form data");
|
||||
return;
|
||||
}
|
||||
var refreshDataCallBack;
|
||||
switch (formValues.dataType) {
|
||||
case "ServiceRecord":
|
||||
refreshDataCallBack = getVehicleServiceRecords;
|
||||
break;
|
||||
case "RepairRecord":
|
||||
refreshDataCallBack = getVehicleCollisionRecords;
|
||||
break;
|
||||
case "UpgradeRecord":
|
||||
refreshDataCallBack = getVehicleUpgradeRecords;
|
||||
break;
|
||||
}
|
||||
//save to db.
|
||||
$.post('/Vehicle/EditMultipleRecords', { genericRecordEditModel: formValues }, function (data) {
|
||||
if (data) {
|
||||
successToast(formValues.recordIds.length > 1 ? "Records Updated" : "Record Updated.");
|
||||
hideGenericRecordModal();
|
||||
refreshDataCallBack(GetVehicleId().vehicleId);
|
||||
} else {
|
||||
errorToast(genericErrorMessage());
|
||||
}
|
||||
})
|
||||
}
|
||||
function getAndValidateGenericRecordValues() {
|
||||
var genericDate = $("#genericRecordDate").val();
|
||||
var genericMileage = $("#genericRecordMileage").val();
|
||||
var genericMileageToParse = parseInt(globalParseFloat($("#genericRecordMileage").val())).toString();
|
||||
var genericDescription = $("#genericRecordDescription").val();
|
||||
var genericCost = $("#genericRecordCost").val();
|
||||
var genericNotes = $("#genericRecordNotes").val();
|
||||
var genericTags = $("#genericRecordTag").val();
|
||||
//validation
|
||||
var hasError = false;
|
||||
if (genericMileage.trim() != '' && (isNaN(genericMileageToParse) || parseInt(genericMileageToParse) < 0)) {
|
||||
hasError = true;
|
||||
$("#genericRecordMileage").addClass("is-invalid");
|
||||
} else {
|
||||
$("#genericRecordMileage").removeClass("is-invalid");
|
||||
}
|
||||
if (genericCost.trim() != '' && !isValidMoney(genericCost)) {
|
||||
hasError = true;
|
||||
$("#genericRecordCost").addClass("is-invalid");
|
||||
} else {
|
||||
$("#genericRecordCost").removeClass("is-invalid");
|
||||
}
|
||||
return {
|
||||
hasError: hasError,
|
||||
dataType: getGenericRecordEditModelData().dataType,
|
||||
recordIds: recordsToEdit,
|
||||
editRecord: {
|
||||
date: genericDate,
|
||||
mileage: genericMileageToParse,
|
||||
description: genericDescription,
|
||||
cost: genericCost,
|
||||
notes: genericNotes,
|
||||
tags: genericTags
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user