mirror of
https://github.com/hargata/lubelog.git
synced 2025-12-10 00:46:08 -06:00
Add app-specific locale override
This commit is contained in:
parent
6fe4d5d84b
commit
a7df12c88b
@ -6,6 +6,7 @@ using CarCareTracker.Helper;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using System.Security.Claims;
|
||||
using CarCareTracker.Logic;
|
||||
using System.Globalization;
|
||||
|
||||
namespace CarCareTracker.Controllers
|
||||
{
|
||||
@ -552,8 +553,13 @@ namespace CarCareTracker.Controllers
|
||||
[Route("/setup")]
|
||||
public IActionResult Setup()
|
||||
{
|
||||
var installedLocales = CultureInfo.GetCultures(CultureTypes.AllCultures).Select(x=>x.Name).ToList();
|
||||
installedLocales.RemoveAll(x => string.IsNullOrWhiteSpace(x));
|
||||
installedLocales.Insert(0, "");
|
||||
var viewModel = new ServerSettingsViewModel
|
||||
{
|
||||
LocaleOverride = _config.GetLocaleOverride(),
|
||||
AvailableLocales = installedLocales,
|
||||
PostgresConnection = _config.GetServerPostgresConnection(),
|
||||
AllowedFileExtensions = _config.GetAllowedFileUploadExtensions(),
|
||||
CustomLogoURL = _config.GetLogoUrl(),
|
||||
|
||||
@ -18,6 +18,7 @@ namespace CarCareTracker.Helper
|
||||
bool AuthenticateRootUserOIDC(string email);
|
||||
string GetWebHookUrl();
|
||||
bool GetCustomWidgetsEnabled();
|
||||
string GetLocaleOverride();
|
||||
string GetMOTD();
|
||||
string GetLogoUrl();
|
||||
string GetSmallLogoUrl();
|
||||
@ -73,6 +74,11 @@ namespace CarCareTracker.Helper
|
||||
var domain = CheckString("LUBELOGGER_DOMAIN");
|
||||
return domain;
|
||||
}
|
||||
public string GetLocaleOverride()
|
||||
{
|
||||
var locale = CheckString("LUBELOGGER_LOCALE_OVERRIDE");
|
||||
return locale;
|
||||
}
|
||||
public bool GetServerOpenRegistration()
|
||||
{
|
||||
return CheckBool(CheckString("LUBELOGGER_OPEN_REGISTRATION"));
|
||||
@ -167,6 +173,10 @@ namespace CarCareTracker.Helper
|
||||
{
|
||||
serverConfig.PostgresConnection = null;
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(serverConfig.LocaleOverride))
|
||||
{
|
||||
serverConfig.LocaleOverride = null;
|
||||
}
|
||||
if (serverConfig.AllowedFileExtensions == StaticHelper.DefaultAllowedFileExtensions || string.IsNullOrWhiteSpace(serverConfig.AllowedFileExtensions))
|
||||
{
|
||||
serverConfig.AllowedFileExtensions = null;
|
||||
|
||||
@ -67,5 +67,9 @@ namespace CarCareTracker.Models
|
||||
[JsonPropertyName("EnableRootUserOIDC")]
|
||||
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
||||
public bool? EnableRootUserOIDC { get; set; }
|
||||
|
||||
[JsonPropertyName("LUBELOGGER_LOCALE_OVERRIDE")]
|
||||
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
||||
public string? LocaleOverride { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
@ -2,7 +2,7 @@ namespace CarCareTracker.Models
|
||||
{
|
||||
public class ServerSettingsViewModel
|
||||
{
|
||||
public string LocaleInfo { get; set; }
|
||||
public string LocaleOverride { get; set; }
|
||||
public string PostgresConnection { get; set; }
|
||||
public string AllowedFileExtensions { get; set; }
|
||||
public string CustomLogoURL { get; set; }
|
||||
@ -20,5 +20,6 @@ namespace CarCareTracker.Models
|
||||
public string DefaultReminderEmail { get; set; } = string.Empty;
|
||||
public bool EnableRootUserOIDC { get; set; }
|
||||
public bool EnableAuth { get; set; }
|
||||
public List<string> AvailableLocales { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Http.Features;
|
||||
using Microsoft.AspNetCore.Server.Kestrel.Core;
|
||||
using Microsoft.Extensions.FileProviders;
|
||||
using System.Globalization;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
@ -15,6 +16,12 @@ var builder = WebApplication.CreateBuilder(args);
|
||||
builder.Configuration.AddJsonFile(StaticHelper.UserConfigPath, optional: true, reloadOnChange: true);
|
||||
builder.Configuration.AddJsonFile(StaticHelper.ServerConfigPath, optional: true, reloadOnChange: true);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(builder.Configuration["LUBELOGGER_LOCALE_OVERRIDE"]))
|
||||
{
|
||||
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo(builder.Configuration["LUBELOGGER_LOCALE_OVERRIDE"]);
|
||||
CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo(builder.Configuration["LUBELOGGER_LOCALE_OVERRIDE"]);
|
||||
}
|
||||
|
||||
//Print Messages
|
||||
StaticHelper.InitMessage(builder.Configuration);
|
||||
//Check Migration
|
||||
|
||||
@ -53,9 +53,18 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<small class="text-body-secondary">@translator.Translate(userLanguage, "Restart Required")</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputLocale">@translator.Translate(userLanguage, "Locale Override")</label>
|
||||
<select class="form-select" id="inputLocale">
|
||||
@foreach(string installedLocale in Model.AvailableLocales)
|
||||
{
|
||||
<!option value="@installedLocale" @(Model.LocaleOverride == installedLocale ? "selected" : "")>@installedLocale</!option>
|
||||
}
|
||||
</select>
|
||||
<small class="text-body-secondary">@translator.Translate(userLanguage, "Leave blank to use system locale. Restart Required")</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputFileExt">@translator.Translate(userLanguage, "Allowed File Extensions")</label>
|
||||
<input type="text" id="inputFileExt" class="form-control" placeholder="@translator.Translate(userLanguage, "Not Configured")" value="@Model.AllowedFileExtensions">
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -41,6 +41,7 @@ function previousSetupPage() {
|
||||
}
|
||||
function saveSetup() {
|
||||
let setupData = {
|
||||
LocaleOverride: $("#inputLocale").val(),
|
||||
PostgresConnection: $("#inputPostgres").val(),
|
||||
AllowedFileExtensions: $("#inputFileExt").val(),
|
||||
CustomLogoURL: $("#inputLogoURL").val(),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user