diff --git a/build/screenshots/dark/hotkeys.png b/build/screenshots/dark/hotkeys.png index 36ec0debb736aff9d2406eb2d29b918933b52cf5..33fcb95245df7392078cabef35d101e91dece8f4 100644 Binary files a/build/screenshots/dark/hotkeys.png and b/build/screenshots/dark/hotkeys.png differ diff --git a/build/screenshots/light/hotkeys.png b/build/screenshots/light/hotkeys.png index 03c559865e281c187dd2ce96715ed59c78ee293e..dbb43ff292f2be7d8b368d7c3591b7dac598be91 100644 Binary files a/build/screenshots/light/hotkeys.png and b/build/screenshots/light/hotkeys.png differ diff --git a/src/main/java/de/deadlocker8/budgetmaster/hotkeys/GeneralHotKey.java b/src/main/java/de/deadlocker8/budgetmaster/hotkeys/GeneralHotKey.java index 4c0a1bf08d736b661c8d4e3af3f7958b8f399c3e..163b6d689acff64a26f14e13b59c3efe7d8da613 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/hotkeys/GeneralHotKey.java +++ b/src/main/java/de/deadlocker8/budgetmaster/hotkeys/GeneralHotKey.java @@ -6,6 +6,7 @@ import java.text.MessageFormat; public enum GeneralHotKey implements HotKey { + TRANSACTION_OVERVIEW("hotkeys.transactions.overview", false), CREATE_TRANSACTION("hotkeys.transactions.new.normal", false), CREATE_TRANSFER_TRANSACTION("hotkeys.transactions.new.transfer", false), CREATE_TRANSACTION_FROM_TEMPLATE("hotkeys.transactions.new.template", false), diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties index d12aa066d7d26dceb50ddbd82a991938d824a017..e0063406b2b32211d411f180c27be9c512804598 100644 --- a/src/main/resources/languages/base_de.properties +++ b/src/main/resources/languages/base_de.properties @@ -472,6 +472,8 @@ home.first.use.home=Los geht's! # hotkeys hotkeys.general=Allgemein +hotkeys.transactions.overview=Buchungsübersicht +hotkeys.transactions.overview.key=o hotkeys.transactions.new.normal=Neue Buchung anlegen hotkeys.transactions.new.normal.key=n hotkeys.transactions.new.transfer=Neue Umbuchung anlegen diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties index ae04163426a6069adff6de7721fd8d0bebf1c242..f6240de858e012118ee36a5461d71f8c2357c008 100644 --- a/src/main/resources/languages/base_en.properties +++ b/src/main/resources/languages/base_en.properties @@ -473,6 +473,8 @@ home.first.use.home=Let''s go! # hotkeys hotkeys.general=General +hotkeys.transactions.overview=Transaction overview +hotkeys.transactions.overview.key=o hotkeys.transactions.new.normal=Create a transaction hotkeys.transactions.new.normal.key=n hotkeys.transactions.new.transfer=Create a transfer diff --git a/src/main/resources/static/js/hotkeys.js b/src/main/resources/static/js/hotkeys.js index 4c873f11401f0e8e1b97b507ff51855aa6ee055d..6f6f7534cf4d7e5cc67e0e6dc85bb657bdaae50e 100644 --- a/src/main/resources/static/js/hotkeys.js +++ b/src/main/resources/static/js/hotkeys.js @@ -47,6 +47,14 @@ Mousetrap.bind('esc', function() } }); +Mousetrap.bind('o', function() +{ + if(areHotKeysEnabled()) + { + window.location.href = rootURL + '/transactions'; + } +}); + let saveTransactionOrTemplateButton = document.getElementById('button-save-transaction'); if(saveTransactionOrTemplateButton !== null) { diff --git a/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/HotkeyTest.java b/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/HotkeyTest.java index a42244274196c1c9031c64e97d99e46b298138df..a3ae28a9591293b76918a0db4870bda5cc9dd602 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/HotkeyTest.java +++ b/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/HotkeyTest.java @@ -137,4 +137,16 @@ class HotkeyTest extends SeleniumTestBase List<WebElement> transactionsRows = driver.findElements(By.cssSelector(".transaction-container .hide-on-med-and-down.transaction-row-top")); assertThat(transactionsRows).hasSize(2); } + + @Test + void hotkey_openTransactionOverview() + { + driver.findElement(By.tagName("body")).sendKeys("o"); + + WebDriverWait wait = new WebDriverWait(driver, 5); + wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".headline-date"))); + + // assert + assertThat(driver.getCurrentUrl()).endsWith("/transactions"); + } } \ No newline at end of file