diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java index 705bb7484f8930523e358cafc6030f8ae5a23ef2..be0cf42869dd88c9785ab46db333fe3473cd2751 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java @@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.WebRequest; import javax.servlet.http.HttpServletRequest; +import java.text.MessageFormat; import java.util.List; import java.util.Optional; @@ -51,6 +52,8 @@ public class AccountController extends BaseController public static final String GLOBAL_ACCOUNT_SELECT_MODAL = "globalAccountSelectModal"; } + private static final String ACCOUNT_SELECTED_INDICATOR = "accountSelected=1"; + private final AccountService accountService; private final IconService iconService; @@ -71,7 +74,15 @@ public class AccountController extends BaseController { return ReturnValues.SETTINGS; } - return "redirect:" + referer; + + if(referer.contains(ACCOUNT_SELECTED_INDICATOR)) + { + return MessageFormat.format("redirect:{0}", referer); + } + else + { + return MessageFormat.format("redirect:{0}?{1}", referer, ACCOUNT_SELECTED_INDICATOR); + } } @GetMapping(value = "/{ID}/setAsDefault") diff --git a/BudgetMasterServer/src/main/resources/static/css/style.css b/BudgetMasterServer/src/main/resources/static/css/style.css index 385e676b7a1dab6ce5392c839cd09d219d8262e5..81c769ae621700e718645851448af490990cbb88 100644 --- a/BudgetMasterServer/src/main/resources/static/css/style.css +++ b/BudgetMasterServer/src/main/resources/static/css/style.css @@ -324,10 +324,22 @@ input[type="radio"]:checked + span::after, [type="radio"].with-gap:checked + spa } #globalAccountSelect { - padding: 1rem 32px 1rem 32px; + padding: 0.6rem 18px; display: flex; flex-direction: row; align-items: center; + border: 0.4rem solid transparent; +} + +#globalAccountSelect.active { + animation: blink 1s; + animation-iteration-count: 1; +} + +@keyframes blink { + 50% { + border-color: var(--color-text); + } } #globalAccountSelect:hover { diff --git a/BudgetMasterServer/src/main/resources/static/js/main.js b/BudgetMasterServer/src/main/resources/static/js/main.js index b27d109f15c5263de7188952c61d2bd315c84704..cc2b0c0c3b82336ff0b6ce67798244ad19fe6ffd 100644 --- a/BudgetMasterServer/src/main/resources/static/js/main.js +++ b/BudgetMasterServer/src/main/resources/static/js/main.js @@ -64,6 +64,8 @@ $(document).ready(function() data: {} }); }); + + checkUrlParameters(); }); function fetchAndShowModal(item, containerID, modalID) @@ -140,3 +142,13 @@ function enableAccountSelectHotKeys() } }); } + +function checkUrlParameters() +{ + const urlParameters = new URLSearchParams(window.location.search); + const isAccountSelect = urlParameters.get('accountSelected'); + if(isAccountSelect !== null) + { + document.getElementById('globalAccountSelect').classList.add('active'); + } +}