mirror of
https://github.com/hargata/lubelog.git
synced 2025-12-10 00:46:08 -06:00
backend for saving tab order
This commit is contained in:
parent
88ff2432f6
commit
0df6cea88c
@ -197,6 +197,7 @@ namespace CarCareTracker.Helper
|
||||
EnableShopSupplies = bool.Parse(_config[nameof(UserConfig.EnableShopSupplies)]),
|
||||
EnableExtraFieldColumns = bool.Parse(_config[nameof(UserConfig.EnableExtraFieldColumns)]),
|
||||
VisibleTabs = _config.GetSection(nameof(UserConfig.VisibleTabs)).Get<List<ImportMode>>(),
|
||||
TabOrder = _config.GetSection(nameof(UserConfig.TabOrder)).Get<List<ImportMode>>(),
|
||||
UserColumnPreferences = _config.GetSection(nameof(UserConfig.UserColumnPreferences)).Get<List<UserColumnPreference>>() ?? new List<UserColumnPreference>(),
|
||||
ReminderUrgencyConfig = _config.GetSection(nameof(UserConfig.ReminderUrgencyConfig)).Get<ReminderUrgencyConfig>() ?? new ReminderUrgencyConfig(),
|
||||
DefaultTab = (ImportMode)int.Parse(_config[nameof(UserConfig.DefaultTab)]),
|
||||
|
||||
@ -91,7 +91,14 @@
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="row" id="visibleTabs">
|
||||
<div class="col-12">
|
||||
<span class="lead">@translator.Translate(userLanguage, "Visible Tabs")</span>
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
<span class="lead">@translator.Translate(userLanguage, "Visible Tabs")</span>
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<button onclick="showTabReorderModal()" class="btn text-secondary btn-sm"><i class="bi bi-arrow-down-up"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<ul class="list-group">
|
||||
@ -196,11 +203,11 @@
|
||||
<span class="lead">@translator.Translate(userLanguage, "Backups")</span>
|
||||
<div class="row">
|
||||
<div class="col-6 d-grid">
|
||||
<button onclick="makeBackup()" class="btn btn-primary btn-md">@translator.Translate(userLanguage, "Create")</button>
|
||||
<button onclick="makeBackup()" class="btn btn-primary btn-md text-truncate">@translator.Translate(userLanguage, "Create")</button>
|
||||
</div>
|
||||
<div class="col-6 d-grid">
|
||||
<input onChange="restoreBackup(this)" type="file" accept=".zip" class="d-none" id="inputBackup">
|
||||
<button onclick="openRestoreBackup()" class="btn btn-secondary btn-md">@translator.Translate(userLanguage, "Restore")</button>
|
||||
<button onclick="openRestoreBackup()" class="btn btn-secondary btn-md text-truncate">@translator.Translate(userLanguage, "Restore")</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -210,7 +217,7 @@
|
||||
<div class="col-6 d-grid">
|
||||
<input onChange="uploadLanguage(this)" type="file" accept=".json" class="d-none" id="inputLanguage">
|
||||
<div class="btn-group">
|
||||
<button onclick="openUploadLanguage()" class="btn btn-primary btn-md">@translator.Translate(userLanguage, "Upload")</button>
|
||||
<button onclick="openUploadLanguage()" class="btn btn-primary btn-md text-truncate"><i class="bi bi-upload"></i><span class="ms-2 d-sm-inline d-md-none d-xl-inline">@translator.Translate(userLanguage, "Upload")</span></button>
|
||||
<button type="button" class="btn btn-md btn-primary btn-md dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<span class="visually-hidden">Toggle Dropdown</span>
|
||||
</button>
|
||||
@ -221,25 +228,25 @@
|
||||
|
||||
</div>
|
||||
<div class="col-6 d-grid">
|
||||
<button onclick="deleteLanguage()" @(Model.UserConfig.UserLanguage == "en_US" ? "disabled" : "") class="btn btn-danger btn-md">@translator.Translate(userLanguage, "Delete")</button>
|
||||
<button onclick="deleteLanguage()" @(Model.UserConfig.UserLanguage == "en_US" ? "disabled" : "") class="btn btn-danger btn-md text-truncate"><i class="bi bi-trash"></i><span class="ms-2 d-sm-inline d-md-none d-xl-inline">@translator.Translate(userLanguage, "Delete")</span></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<span class="lead">@translator.Translate(userLanguage, "Server-wide Settings")</span>
|
||||
<span class="lead text-wrap">@translator.Translate(userLanguage, "Server-wide Settings")</span>
|
||||
<div class="row">
|
||||
<div class="col-6 d-grid">
|
||||
<button onclick="showExtraFieldModal()" class="btn btn-primary btn-md">@translator.Translate(userLanguage, "Extra Fields")</button>
|
||||
<button onclick="showExtraFieldModal()" class="btn btn-primary btn-md text-truncate">@translator.Translate(userLanguage, "Extra Fields")</button>
|
||||
</div>
|
||||
<div class="col-6 d-grid">
|
||||
<button onclick="showReminderUrgencyThresholdModal()" class="btn btn-primary btn-md">@translator.Translate(userLanguage, "Reminders")</button>
|
||||
<button onclick="showReminderUrgencyThresholdModal()" class="btn btn-primary btn-md text-truncate">@translator.Translate(userLanguage, "Reminders")</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<span class="lead">@translator.Translate(userLanguage, "Default Reminder Email")</span>
|
||||
<span class="lead text-wrap">@translator.Translate(userLanguage, "Default Reminder Email")</span>
|
||||
<div class="row">
|
||||
<div class="col-12 d-grid">
|
||||
<div class="input-group">
|
||||
@ -349,6 +356,11 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-danger me-auto" onclick="resetTabOrder()">@translator.Translate(userLanguage, "Reset Tab Order")</button>
|
||||
<button type="button" class="btn btn-secondary" onclick="hideTabReorderModal()">@translator.Translate(userLanguage, "Cancel")</button>
|
||||
<button type="button" class="btn btn-primary" onclick="updateSettings()">@translator.Translate(userLanguage, "Save Tab Order")</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -28,8 +28,9 @@
|
||||
"PreferredGasUnit": "",
|
||||
"UserLanguage": "en_US",
|
||||
"VisibleTabs": [ 0, 1, 4, 2, 3, 6, 5, 8 ],
|
||||
"TabOrder": [ 8, 9, 10, 0, 1, 4, 2, 7, 3, 6, 5 ],
|
||||
"DefaultTab": 8,
|
||||
"UserNameHash": "",
|
||||
"UserPasswordHash": "",
|
||||
"DefaultReminderEmail": ""
|
||||
"DefaultReminderEmail": ""
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -41,6 +41,7 @@ function updateSettings() {
|
||||
if (!visibleTabs.includes(defaultTab)) {
|
||||
defaultTab = "Dashboard"; //default to dashboard.
|
||||
}
|
||||
var tabOrder = getTabOrder();
|
||||
//Root User Only Settings that aren't rendered:
|
||||
var defaultReminderEmail = $("#inputDefaultEmail").length > 0 ? $("#inputDefaultEmail").val() : "";
|
||||
var disableRegistration = $("#disableRegistration").length > 0 ? $("#disableRegistration").is(":checked") : false;
|
||||
@ -66,6 +67,7 @@ function updateSettings() {
|
||||
userLanguage: $("#defaultLanguage").val(),
|
||||
visibleTabs: visibleTabs,
|
||||
defaultTab: defaultTab,
|
||||
tabOrder: tabOrder,
|
||||
disableRegistration: disableRegistration,
|
||||
defaultReminderEmail: defaultReminderEmail,
|
||||
enableRootUserOIDC: enableRootUserOIDC
|
||||
@ -324,11 +326,28 @@ function bindTabReorderEvents() {
|
||||
})
|
||||
});
|
||||
}
|
||||
function getTabsOrder() {
|
||||
function getTabOrder() {
|
||||
var tabOrderArray = [];
|
||||
$(".lubelog-tab-groups > li").map((index, elem) => {
|
||||
//check if any tabs have -1 order
|
||||
var resetTabs = $(".lubelog-tab-groups > li").filter((index, elem) => $(elem).css('order') == -1).length > 0;
|
||||
if (resetTabs) {
|
||||
return tabOrderArray; //return empty array.
|
||||
}
|
||||
var sortedOrderedTabs = $(".lubelog-tab-groups > li").toArray().sort((a, b) => {
|
||||
var currentVal = $(a).css("order");
|
||||
var nextVal = $(b).css("order");
|
||||
return currentVal - nextVal;
|
||||
});
|
||||
sortedOrderedTabs.map(elem => {
|
||||
var elemName = $(elem).attr("data-tab");
|
||||
tabOrderArray.push(elemName);
|
||||
});
|
||||
return tabOrderArray;
|
||||
}
|
||||
function resetTabOrder() {
|
||||
//set all orders to -1
|
||||
$(".lubelog-tab-groups > li").map((index, elem) => {
|
||||
$(elem).css('order', -1);
|
||||
})
|
||||
updateSettings();
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user