diff --git a/BudgetMasterServer/src/main/resources/languages/base_de.properties b/BudgetMasterServer/src/main/resources/languages/base_de.properties index 37ebada83dac9f271c82f891989033159ab5bd60..b5073104b033a0418ec63a39091e6fc225e8aa57 100644 --- a/BudgetMasterServer/src/main/resources/languages/base_de.properties +++ b/BudgetMasterServer/src/main/resources/languages/base_de.properties @@ -322,6 +322,7 @@ settings.personalization=Personalisierung settings.personalization.reload.page=Zum Anwenden visueller Änderungen <a href="">Seite neu laden</a> settings.transactions=Buchungen settings.misc=Sonstiges +settings.warning.unsaved=ungespeichert settings.database.import=Importieren settings.database.export=Exportieren diff --git a/BudgetMasterServer/src/main/resources/languages/base_en.properties b/BudgetMasterServer/src/main/resources/languages/base_en.properties index 7f2077ed942674a327d9ae9df6be2618b7aa3f5d..77a27e38cd616e3410b4226180e5ddf8f94ee58f 100644 --- a/BudgetMasterServer/src/main/resources/languages/base_en.properties +++ b/BudgetMasterServer/src/main/resources/languages/base_en.properties @@ -323,6 +323,7 @@ settings.personalization=Personalization settings.personalization.reload.page=<a href="">Reload</a> page to apply visual changes settings.transactions=Transactions settings.misc=Misc +settings.warning.unsaved=unsaved settings.database.import=Import settings.database.export=Export diff --git a/BudgetMasterServer/src/main/resources/static/css/settings.css b/BudgetMasterServer/src/main/resources/static/css/settings.css index f51ab4bd82713f613b6ccc58ca272e79272f0441..7c87821771399ac7070497aa1e8752b5392b77ca 100644 --- a/BudgetMasterServer/src/main/resources/static/css/settings.css +++ b/BudgetMasterServer/src/main/resources/static/css/settings.css @@ -30,4 +30,24 @@ #verificationCode:hover { cursor: pointer; +} + +.collapsible-header-button { + position: absolute; + right: 1rem; + top: 1.05rem; + display: flex; + align-items: center; + color: var(--color-yellow); + font-weight: bold; + font-size: 0.9rem; +} + +.collapsible-header-button i { + margin-right: 0.3rem; + font-size: 1.3rem; +} + +.collapsible-header-button.hidden { + display: none; } \ No newline at end of file diff --git a/BudgetMasterServer/src/main/resources/static/js/settings.js b/BudgetMasterServer/src/main/resources/static/js/settings.js index 19e933ca7f0ad525e54c42077550ebb003651896..4e35537c0c8497908d493d0158335df180b37a8e 100644 --- a/BudgetMasterServer/src/main/resources/static/js/settings.js +++ b/BudgetMasterServer/src/main/resources/static/js/settings.js @@ -117,4 +117,9 @@ function onAutoBackupStrategyChange(newSelectedIndex) $('#settings-auto-backup-local').toggle(newSelectedIndex === 0); // local backup with file system copies // index 1 --> git local doesn't have any settings $('#settings-auto-backup-git-remote').toggle(newSelectedIndex === 2); // git remote +} + +function toggleSettingsContainerHeader(id, hide) +{ + document.querySelector('#' + id + ' .collapsible-header-button').classList.toggle('hidden', hide); } \ No newline at end of file diff --git a/BudgetMasterServer/src/main/resources/static/js/settingsContainers.js b/BudgetMasterServer/src/main/resources/static/js/settingsContainers.js index 127a469e70338ee7492837d0776cb81a42922a45..71f6cac90f28fe4eef0398a79c5ffff57f5b8b4a 100644 --- a/BudgetMasterServer/src/main/resources/static/js/settingsContainers.js +++ b/BudgetMasterServer/src/main/resources/static/js/settingsContainers.js @@ -20,6 +20,8 @@ function initSettingsContainer(formName, containerId) $('.tooltipped').tooltip(); $('select').formSelect(); + toggleSettingsContainerHeader(containerId + 'Header', true); + let toastContent = document.querySelector('#' + containerId + ' .securityContainerToastContent').innerHTML.trim(); if(toastContent) { diff --git a/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsPersonalization.ftl b/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsPersonalization.ftl index 4f475e207dc1800d980188d46612106e0e99f8b0..5bae17b9814988aeb07a6b8263b93dd9f7a41348 100644 --- a/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsPersonalization.ftl +++ b/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsPersonalization.ftl @@ -72,6 +72,38 @@ </div> </div> </#if> + + <script> + $('#settings-language').change(function() + { + toggleSettingsContainerHeader('personalizationSettingsContainerHeader', false); + }); + + $('#settings-currency').on('change keydown paste input', function() + { + toggleSettingsContainerHeader('personalizationSettingsContainerHeader', false); + }); + + $('input[name="useDarkTheme"]').change(function() + { + toggleSettingsContainerHeader('personalizationSettingsContainerHeader', false); + }); + + $('input[name="showCategoriesAsCircles"]').change(function() + { + toggleSettingsContainerHeader('personalizationSettingsContainerHeader', false); + }); + + $('#settings-password-confirmation').on('change keydown paste input', function() + { + toggleSettingsContainerHeader('personalizationSettingsContainerHeader', false); + }); + + $('#settings-search-items-per-page').change(function() + { + toggleSettingsContainerHeader('personalizationSettingsContainerHeader', false); + }); + </script> </@settingsContainerMacros.settingsContainer> </#macro> diff --git a/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsSecurity.ftl b/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsSecurity.ftl index e4205e87621deea35a65cf5528319984bd5e4975..16e50ce68d05c878c21bc8917570403cb352b259 100644 --- a/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsSecurity.ftl +++ b/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsSecurity.ftl @@ -30,6 +30,17 @@ <@header.buttonSubmit name='action' icon='save' localizationKey='save' color='background-green' formaction='/settings/save/security'/> </div> </div> + + <script> + $('#settings-password').on('change keydown paste input', function() + { + toggleSettingsContainerHeader('securitySettingsContainerHeader', false); + }); + $('#settings-password-confirmation').on('change keydown paste input', function() + { + toggleSettingsContainerHeader('securitySettingsContainerHeader', false); + }); + </script> </@settingsContainerMacros.settingsContainer> </#macro> diff --git a/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsTransactions.ftl b/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsTransactions.ftl index b9d790f32ca8253b4f9ad35b0190e715fab3a28d..6e26a5c5f1067884702950f0ba111a6e2546a21d 100644 --- a/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsTransactions.ftl +++ b/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsTransactions.ftl @@ -33,6 +33,13 @@ <@header.buttonSubmit name='action' icon='save' localizationKey='save' color='background-green' formaction='/settings/save/transactions'/> </div> </div> + + <script> + $('input[name="restActivated"]').change(function() + { + toggleSettingsContainerHeader('transactionsSettingsContainerHeader', false); + }); + </script> </@settingsContainerMacros.settingsContainer> </#macro> diff --git a/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsUpdate.ftl b/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsUpdate.ftl index a353dc77f728fed844f25aede4d68df0b559b2ad..eaad0d1bb5984973872088509132cf4ea2aa77d8 100644 --- a/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsUpdate.ftl +++ b/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsUpdate.ftl @@ -105,6 +105,11 @@ } }); }); + + $('input[name="autoUpdateCheckEnabled"]').change(function() + { + toggleSettingsContainerHeader('updateSettingsContainerHeader', false); + }); </script> </@settingsContainerMacros.settingsContainer> </#macro> diff --git a/BudgetMasterServer/src/main/resources/templates/settings/settingsMacros.ftl b/BudgetMasterServer/src/main/resources/templates/settings/settingsMacros.ftl index 5e3c2d9f7d10c580223c0ea451e709e1812678d8..79f231c539ed906047abdca848cdc05477d85668 100644 --- a/BudgetMasterServer/src/main/resources/templates/settings/settingsMacros.ftl +++ b/BudgetMasterServer/src/main/resources/templates/settings/settingsMacros.ftl @@ -301,7 +301,10 @@ <#macro settingsCollapsibleItem id icon title isFontAwesomeIcon=false> <li class="z-depth-2"> - <div class="collapsible-header bold"><#if isFontAwesomeIcon><i class="${icon}"></i><#else><i class="material-icons">${icon}</i></#if>${title}</div> + <div class="collapsible-header bold" id="${id}Header"> + <#if isFontAwesomeIcon><i class="${icon}"></i><#else><i class="material-icons">${icon}</i></#if>${title} + <div class="collapsible-header-button hidden"><i class="material-icons text-yellow">warning</i>${locale.getString('settings.warning.unsaved')}</div> + </div> <div class="collapsible-body"> <div class="row no-margin-bottom" id="${id}"> <#nested>