\ No newline at end of file
diff --git a/Views/Home/_GarageDisplay.cshtml b/Views/Home/_GarageDisplay.cshtml
index fff08b4..5eeb8f5 100644
--- a/Views/Home/_GarageDisplay.cshtml
+++ b/Views/Home/_GarageDisplay.cshtml
@@ -10,6 +10,7 @@
var searchExist = userConfig.ShowSearch && Model.Count() > 1;
var renderTopRow = tagsExist || searchExist;
}
+
@if (renderTopRow)
{
@@ -101,4 +102,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/Views/Vehicle/Index.cshtml b/Views/Vehicle/Index.cshtml
index 541d26a..9988f90 100644
--- a/Views/Vehicle/Index.cshtml
+++ b/Views/Vehicle/Index.cshtml
@@ -136,17 +136,17 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wwwroot/js/garage.js b/wwwroot/js/garage.js
index 85484cd..a1968f9 100644
--- a/wwwroot/js/garage.js
+++ b/wwwroot/js/garage.js
@@ -16,9 +16,7 @@ function hideAddVehicleModal() {
//refreshable function to reload Garage PartialView
function loadGarage() {
$.get('/Home/Garage', function (data) {
- $("#garageContainer").html(data);
- loadSettings();
- bindTabEvent();
+ $("#garage-tab-pane").html(data);
});
}
function loadSettings() {
@@ -40,6 +38,12 @@ function GetVehicleId() {
function bindTabEvent() {
$('button[data-bs-toggle="tab"]').on('show.bs.tab', function (e) {
switch (e.target.id) {
+ case "garage-tab":
+ loadGarage();
+ break;
+ case "settings-tab":
+ loadSettings();
+ break;
case "supply-tab":
getVehicleSupplyRecords();
break;
@@ -47,18 +51,27 @@ function bindTabEvent() {
getVehicleCalendarEvents();
break;
}
- switch (e.relatedTarget.id) { //clear out previous tabs with grids in them to help with performance
- case "supply-tab":
- $("#supply-tab-pane").html("");
- break;
- case "calendar-tab":
- $("#calendar-tab-pane").html("");
- break;
- }
$(`.lubelogger-tab #${e.target.id}`).addClass('active');
$(`.lubelogger-mobile-nav #${e.target.id}`).addClass('active');
- $(`.lubelogger-tab #${e.relatedTarget.id}`).removeClass('active');
- $(`.lubelogger-mobile-nav #${e.relatedTarget.id}`).removeClass('active');
+ if (e.relatedTarget != null) {
+ switch (e.relatedTarget.id) { //clear out previous tabs with grids in them to help with performance
+ case "garage-tab":
+ $("#garage-tab-pane").html("");
+ break;
+ case "settings-tab":
+ $("#settings-tab-pane").html("");
+ break;
+ case "supply-tab":
+ $("#supply-tab-pane").html("");
+ break;
+ case "calendar-tab":
+ $("#calendar-tab-pane").html("");
+ break;
+ }
+ $(`.lubelogger-tab #${e.relatedTarget.id}`).removeClass('active');
+ $(`.lubelogger-mobile-nav #${e.relatedTarget.id}`).removeClass('active');
+ }
+ setBrowserHistory('tab', getTabNameForURL(e.target.id));
});
}
function getVehicleCalendarEvents() {
@@ -482,4 +495,8 @@ function generateTokenForUser() {
errorToast(genericErrorMessage())
}
});
+}
+function loadTabFromURL() {
+ let tabFromURL = getTabNameFromURL('garage');
+ waitForElement(`#${tabFromURL}`, () => { $(`#${tabFromURL}`).tab('show'); }, '');
}
\ No newline at end of file
diff --git a/wwwroot/js/shared.js b/wwwroot/js/shared.js
index 887663d..2f8e98b 100644
--- a/wwwroot/js/shared.js
+++ b/wwwroot/js/shared.js
@@ -1738,4 +1738,22 @@ function openAttachmentPreview(fileName, fileLocation) {
}
function closeAttachmentPreview() {
$('#attachmentPreviewModal').modal('hide');
+}
+function setBrowserHistory(param, val) {
+ let currentParams = new URLSearchParams(window.location.search);
+ currentParams.set(param, val);
+ let updatedURL = `${window.location.origin}${window.location.pathname}?${currentParams.toString()}`;
+ window.history.pushState({}, '', updatedURL);
+}
+function getTabNameForURL(tabName) {
+ return tabName.toLowerCase().split('-')[0];
+}
+function getTabNameFromURL(defaultValue) {
+ let currentParams = new URLSearchParams(window.location.search);
+ let currentTab = currentParams.get('tab');
+ if (currentTab == null || currentTab == undefined || currentTab == '') {
+ return `${defaultValue.toLowerCase()}-tab`;
+ } else {
+ return `${currentTab}-tab`;
+ }
}
\ No newline at end of file
diff --git a/wwwroot/js/vehicle.js b/wwwroot/js/vehicle.js
index f6de35c..cbcee22 100644
--- a/wwwroot/js/vehicle.js
+++ b/wwwroot/js/vehicle.js
@@ -37,82 +37,50 @@
getVehicleOdometerRecords(vehicleId);
break;
}
- switch (e.relatedTarget.id) { //clear out previous tabs with grids in them to help with performance
- case "servicerecord-tab":
- $("#servicerecord-tab-pane").html("");
- break;
- case "gas-tab":
- $("#gas-tab-pane").html("");
- break;
- case "accident-tab":
- $("#accident-tab-pane").html("");
- break;
- case "tax-tab":
- $("#tax-tab-pane").html("");
- break;
- case "report-tab":
- $("#report-tab-pane").html("");
- break;
- case "reminder-tab":
- $("#reminder-tab-pane").html("");
- break;
- case "upgrade-tab":
- $("#upgrade-tab-pane").html("");
- break;
- case "notes-tab":
- $("#notes-tab-pane").html("");
- break;
- case "supply-tab":
- $("#supply-tab-pane").html("");
- break;
- case "plan-tab":
- $("#plan-tab-pane").html("");
- break;
- case "odometer-tab":
- $("#odometer-tab-pane").html("");
- break;
- }
$(`.lubelogger-tab #${e.target.id}`).addClass('active');
$(`.lubelogger-mobile-nav #${e.target.id}`).addClass('active');
- $(`.lubelogger-tab #${e.relatedTarget.id}`).removeClass('active');
- $(`.lubelogger-mobile-nav #${e.relatedTarget.id}`).removeClass('active');
+ if (e.relatedTarget != null) {
+ switch (e.relatedTarget.id) { //clear out previous tabs with grids in them to help with performance
+ case "servicerecord-tab":
+ $("#servicerecord-tab-pane").html("");
+ break;
+ case "gas-tab":
+ $("#gas-tab-pane").html("");
+ break;
+ case "accident-tab":
+ $("#accident-tab-pane").html("");
+ break;
+ case "tax-tab":
+ $("#tax-tab-pane").html("");
+ break;
+ case "report-tab":
+ $("#report-tab-pane").html("");
+ break;
+ case "reminder-tab":
+ $("#reminder-tab-pane").html("");
+ break;
+ case "upgrade-tab":
+ $("#upgrade-tab-pane").html("");
+ break;
+ case "notes-tab":
+ $("#notes-tab-pane").html("");
+ break;
+ case "supply-tab":
+ $("#supply-tab-pane").html("");
+ break;
+ case "plan-tab":
+ $("#plan-tab-pane").html("");
+ break;
+ case "odometer-tab":
+ $("#odometer-tab-pane").html("");
+ break;
+ }
+ $(`.lubelogger-tab #${e.relatedTarget.id}`).removeClass('active');
+ $(`.lubelogger-mobile-nav #${e.relatedTarget.id}`).removeClass('active');
+ }
+ setBrowserHistory('tab', getTabNameForURL(e.target.id));
});
- var defaultTab = GetDefaultTab().tab;
- switch (defaultTab) {
- case "ServiceRecord":
- getVehicleServiceRecords(vehicleId);
- break;
- case "NoteRecord":
- getVehicleNotes(vehicleId);
- break;
- case "GasRecord":
- getVehicleGasRecords(vehicleId);
- break;
- case "RepairRecord":
- getVehicleCollisionRecords(vehicleId);
- break;
- case "TaxRecord":
- getVehicleTaxRecords(vehicleId);
- break;
- case "Dashboard":
- getVehicleReport(vehicleId);
- break;
- case "ReminderRecord":
- getVehicleReminders(vehicleId);
- break;
- case "UpgradeRecord":
- getVehicleUpgradeRecords(vehicleId);
- break;
- case "SupplyRecord":
- getVehicleSupplyRecords(vehicleId);
- break;
- case "PlanRecord":
- getVehiclePlanRecords(vehicleId);
- break;
- case "OdometerRecord":
- getVehicleOdometerRecords(vehicleId);
- break;
- }
+ loadDefaultTab();
});
function getVehicleNotes(vehicleId) {
@@ -745,4 +713,48 @@ function loadGlobalSearchResult(recordId, recordType) {
waitForElement('#planRecordModalContent', showEditPlanRecordModal, recordId);
break;
}
+}
+function loadDefaultTab() {
+ //check if tab param exists
+ let userDefaultTab = getDefaultTabName();
+ let tabFromURL = getTabNameFromURL(userDefaultTab);
+ waitForElement(`#${tabFromURL}`, () => { $(`#${tabFromURL}`).tab('show'); }, '');
+}
+function getDefaultTabName() {
+ var defaultTab = GetDefaultTab().tab;
+ switch (defaultTab) {
+ case "ServiceRecord":
+ return 'servicerecord';
+ break;
+ case "NoteRecord":
+ return 'notes';
+ break;
+ case "GasRecord":
+ return 'gas';
+ break;
+ case "RepairRecord":
+ return 'accident';
+ break;
+ case "TaxRecord":
+ return 'tax';
+ break;
+ case "Dashboard":
+ return 'report';
+ break;
+ case "ReminderRecord":
+ return 'reminder';
+ break;
+ case "UpgradeRecord":
+ return 'upgrade';
+ break;
+ case "SupplyRecord":
+ return 'supply';
+ break;
+ case "PlanRecord":
+ return 'plan';
+ break;
+ case "OdometerRecord":
+ return 'odometer';
+ break;
+ }
}
\ No newline at end of file