From 87a0b9ad1b951b628bd1dd794483efdcb7fbd40f Mon Sep 17 00:00:00 2001
From: Peter <42907716+MrShack@users.noreply.github.com>
Date: Fri, 18 Apr 2025 18:45:40 +0200
Subject: [PATCH] Refactor pagination buttons and adjust rate limit interval.
Updated pagination buttons with new styles and class name (`historyPageButton`) for consistency and improved UX. Modified backend rate limit interval from 1 minute to 1 second for faster request handling.
---
.../history/HistoryApiController.java | 2 +-
frontend/src/app/bans/bans.component.html | 20 +++---
frontend/src/app/bans/bans.component.scss | 63 ++++++++++++++++++-
3 files changed, 75 insertions(+), 10 deletions(-)
diff --git a/backend/src/main/java/com/alttd/altitudeweb/controllers/history/HistoryApiController.java b/backend/src/main/java/com/alttd/altitudeweb/controllers/history/HistoryApiController.java
index 8011e57..38397c5 100644
--- a/backend/src/main/java/com/alttd/altitudeweb/controllers/history/HistoryApiController.java
+++ b/backend/src/main/java/com/alttd/altitudeweb/controllers/history/HistoryApiController.java
@@ -18,7 +18,7 @@ import java.util.concurrent.CompletableFuture;
@Slf4j
@RestController
-@RateLimit(limit = 30, timeValue = 1, timeUnit = java.util.concurrent.TimeUnit.MINUTES)
+@RateLimit(limit = 30, timeValue = 1, timeUnit = java.util.concurrent.TimeUnit.SECONDS)
public class HistoryApiController implements HistoryApi {
@Override
diff --git a/frontend/src/app/bans/bans.component.html b/frontend/src/app/bans/bans.component.html
index a25a98d..ae63d34 100644
--- a/frontend/src/app/bans/bans.component.html
+++ b/frontend/src/app/bans/bans.component.html
@@ -52,20 +52,24 @@
-
diff --git a/frontend/src/app/bans/bans.component.scss b/frontend/src/app/bans/bans.component.scss
index fc18d93..597352b 100644
--- a/frontend/src/app/bans/bans.component.scss
+++ b/frontend/src/app/bans/bans.component.scss
@@ -83,6 +83,67 @@ main .container {
padding: 10px 0 30px 0;
}
-.pageButton {
+.historyPageButton {
+ align-items: center;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ border-radius: .25rem;
+ box-shadow: rgba(0, 0, 0, 0.02) 0 1px 3px 0;
+ box-sizing: border-box;
+ color: rgba(0, 0, 0, 0.85);
+ cursor: pointer;
+ display: inline-flex;
+ font-family: 'opensans', sans-serif;
+ font-size: 16px;
+ font-weight: 600;
+ justify-content: center;
+ line-height: 1.25;
margin: 0 5px 0 5px;
+ min-height: 3rem;
+ padding: calc(.875rem - 1px) calc(1.5rem - 1px);
+ position: relative;
+ text-decoration: none;
+ transition: all 250ms;
+ user-select: none;
+ -webkit-user-select: none;
+ touch-action: manipulation;
+ vertical-align: baseline;
+ width: auto;
}
+
+.historyPageButton.active:hover,
+.historyPageButton.active:focus {
+ border-color: rgba(0, 0, 0, 0.15);
+ box-shadow: rgba(0, 0, 0, 0.1) 0 4px 12px;
+ color: rgba(0, 0, 0, 0.65);
+}
+
+.historyPageButton.active:hover {
+ transform: translateY(-1px);
+}
+
+.historyPageButton.active:active {
+ background-color: #F0F0F1;
+ border-color: rgba(0, 0, 0, 0.15);
+ box-shadow: rgba(0, 0, 0, 0.06) 0 2px 4px;
+ color: rgba(0, 0, 0, 0.65);
+ transform: translateY(0);
+}
+
+.historyPageButton.disabled {
+ opacity: 0.5;
+ cursor: not-allowed;
+ background-color: #f0f0f0;
+ color: #999;
+ box-shadow: none;
+ pointer-events: none;
+}
+
+/* Prevent hover effects on disabled buttons */
+.historyPageButton.disabled:hover,
+.historyPageButton.disabled:focus {
+ border-color: rgba(0, 0, 0, 0.1);
+ box-shadow: none;
+ transform: none;
+ color: #999;
+}
+