load sponsors in ajax to account for users with slower internet connection.

This commit is contained in:
DESKTOP-T0O5CDB\DESK-555BD
2024-10-14 09:42:26 -06:00
parent 29a90fe814
commit de32fe4d85
7 changed files with 39 additions and 26 deletions

View File

@@ -143,17 +143,21 @@ namespace CarCareTracker.Controllers
UserConfig = userConfig,
UILanguages = languages
};
return PartialView("_Settings", viewModel);
}
public async Task<IActionResult> Sponsors()
{
try
{
var httpClient = new HttpClient();
var sponsorsData = await httpClient.GetFromJsonAsync<Sponsors>(StaticHelper.SponsorsPath) ?? new Sponsors();
viewModel.Sponsors = sponsorsData;
return PartialView("_Sponsors", sponsorsData);
}
catch (Exception ex)
{
_logger.LogError($"Unable to retrieve sponsors: {ex.Message}");
return PartialView("_Sponsors", new Sponsors());
}
return PartialView("_Settings", viewModel);
}
[HttpPost]
public IActionResult WriteToSettings(UserConfig userConfig)

View File

@@ -4,6 +4,5 @@ namespace CarCareTracker.Models
{
public UserConfig UserConfig { get; set; }
public List<string> UILanguages { get; set; }
public Sponsors Sponsors { get; set; } = new Sponsors();
}
}

View File

@@ -26,7 +26,7 @@
<h6>Parameters</h6>
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>
@@ -40,7 +40,7 @@
No Params
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>
@@ -54,7 +54,7 @@
VehicleId - Id of Vehicle(optional)
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>
@@ -70,7 +70,7 @@
odometer - Unadjusted odometer
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>
@@ -84,7 +84,7 @@
vehicleId - Id of Vehicle
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>
@@ -98,7 +98,7 @@
vehicleId - Id of Vehicle
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
POST
</div>
@@ -120,7 +120,7 @@
}
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>
@@ -134,7 +134,7 @@
vehicleId - Id of Vehicle
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
POST
</div>
@@ -157,7 +157,7 @@
}
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>
@@ -171,7 +171,7 @@
vehicleId - Id of Vehicle
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
POST
</div>
@@ -194,7 +194,7 @@
}
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>
@@ -208,7 +208,7 @@
vehicleId - Id of Vehicle
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
POST
</div>
@@ -231,7 +231,7 @@
}
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>
@@ -245,7 +245,7 @@
vehicleId - Id of Vehicle
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
POST
</div>
@@ -267,7 +267,7 @@
}
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>
@@ -285,7 +285,7 @@
useUKMPG(bool) - Use UK Imperial Calculation
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
POST
</div>
@@ -310,7 +310,7 @@
}
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>
@@ -326,7 +326,7 @@
</div>
@if (User.IsInRole(nameof(UserData.IsRootUser)))
{
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>
@@ -341,7 +341,7 @@
urgencies[]=[NotUrgent,Urgent,VeryUrgent,PastDue]
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>
@@ -355,7 +355,7 @@
No Params(must be root user)
</div>
</div>
<div class="row">
<div class="row api-method">
<div class="col-1">
GET
</div>

View File

@@ -279,7 +279,7 @@
</ul>
</div>
</div>
@await Html.PartialAsync("_Sponsors", Model.Sponsors)
<div class="row" id="sponsorsContainer"></div>
<div class="modal fade" data-bs-focus="false" id="extraFieldModal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content" id="extraFieldModalContent">
@@ -375,4 +375,5 @@
});
}
}
loadSponsors();
</script>

View File

@@ -7,7 +7,6 @@
var enableAuth = userConfig.EnableAuth;
var userLanguage = userConfig.UserLanguage;
}
<div class="row">
<div class="d-flex justify-content-center">
<h6 class="display-6 mt-2">@translator.Translate(userLanguage, "Sponsors")</h6>
</div>
@@ -69,5 +68,4 @@
</div>
</div>
}
</div>

View File

@@ -413,4 +413,9 @@ html[data-bs-theme="light"] .btn-adaptive {
--bs-btn-disabled-color: #000;
--bs-btn-disabled-bg: #f8f9fa;
--bs-btn-disabled-border-color: #f8f9fa;
}
.api-method:hover {
border-bottom: 1px solid;
border-top: 1px solid;
}

View File

@@ -157,4 +157,10 @@ function handleDefaultReminderInputKeyDown() {
if (event.which == 13) {
updateSettings();
}
}
function loadSponsors() {
$.get('/Home/Sponsors', function (data) {
$("#sponsorsContainer").html(data);
})
}