diff --git a/frontend/src/components/Pagination.vue b/frontend/src/components/Pagination.vue
new file mode 100644
index 0000000..46d9213
--- /dev/null
+++ b/frontend/src/components/Pagination.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
diff --git a/frontend/src/stores/audit.js b/frontend/src/stores/audit.js
index 771df90..7f80762 100644
--- a/frontend/src/stores/audit.js
+++ b/frontend/src/stores/audit.js
@@ -11,7 +11,6 @@ export const auditStore = defineStore('audit', {
filter: "",
pageSize: 10,
pageOffset: 0,
- pages: [],
fetching: false,
}),
getters: {
@@ -41,33 +40,22 @@ export const auditStore = defineStore('audit', {
afterPageSizeChange() {
// reset pageOffset to avoid problems with new page sizes
this.pageOffset = 0
- this.calculatePages()
- },
- calculatePages() {
- let pageCounter = 1;
- this.pages = []
- for (let i = 0; i < this.FilteredCount; i+=this.pageSize) {
- this.pages.push(pageCounter++)
- }
},
gotoPage(page) {
this.pageOffset = (page-1) * this.pageSize
-
- this.calculatePages()
},
nextPage() {
- this.pageOffset += this.pageSize
-
- this.calculatePages()
+ if (this.hasNextPage) {
+ this.pageOffset += this.pageSize
+ }
},
previousPage() {
- this.pageOffset -= this.pageSize
-
- this.calculatePages()
+ if (this.hasPrevPage) {
+ this.pageOffset -= this.pageSize
+ }
},
setEntries(entries) {
this.entries = entries
- this.calculatePages()
this.fetching = false
},
async LoadEntries() {
diff --git a/frontend/src/stores/peers.js b/frontend/src/stores/peers.js
index 8e80b2c..f464cdd 100644
--- a/frontend/src/stores/peers.js
+++ b/frontend/src/stores/peers.js
@@ -19,7 +19,6 @@ export const peerStore = defineStore('peers', {
filter: "",
pageSize: 10,
pageOffset: 0,
- pages: [],
fetching: false,
sortKey: 'IsConnected', // Default sort key
sortOrder: -1, // 1 for ascending, -1 for descending
@@ -87,33 +86,22 @@ export const peerStore = defineStore('peers', {
afterPageSizeChange() {
// reset pageOffset to avoid problems with new page sizes
this.pageOffset = 0
- this.calculatePages()
- },
- calculatePages() {
- let pageCounter = 1;
- this.pages = []
- for (let i = 0; i < this.FilteredCount; i+=this.pageSize) {
- this.pages.push(pageCounter++)
- }
},
gotoPage(page) {
this.pageOffset = (page-1) * this.pageSize
-
- this.calculatePages()
},
nextPage() {
- this.pageOffset += this.pageSize
-
- this.calculatePages()
+ if (this.hasNextPage) {
+ this.pageOffset += this.pageSize
+ }
},
previousPage() {
- this.pageOffset -= this.pageSize
-
- this.calculatePages()
+ if (this.hasPrevPage) {
+ this.pageOffset -= this.pageSize
+ }
},
setPeers(peers) {
this.peers = peers
- this.calculatePages()
this.fetching = false
this.trafficStats = {}
},
diff --git a/frontend/src/stores/profile.js b/frontend/src/stores/profile.js
index 632e931..268e4db 100644
--- a/frontend/src/stores/profile.js
+++ b/frontend/src/stores/profile.js
@@ -20,7 +20,6 @@ export const profileStore = defineStore('profile', {
filter: "",
pageSize: 10,
pageOffset: 0,
- pages: [],
fetching: false,
sortKey: 'IsConnected', // Default sort key
sortOrder: -1, // 1 for ascending, -1 for descending
@@ -80,29 +79,19 @@ export const profileStore = defineStore('profile', {
afterPageSizeChange() {
// reset pageOffset to avoid problems with new page sizes
this.pageOffset = 0
- this.calculatePages()
- },
- calculatePages() {
- let pageCounter = 1;
- this.pages = []
- for (let i = 0; i < this.FilteredPeerCount; i+=this.pageSize) {
- this.pages.push(pageCounter++)
- }
},
gotoPage(page) {
this.pageOffset = (page-1) * this.pageSize
-
- this.calculatePages()
},
nextPage() {
- this.pageOffset += this.pageSize
-
- this.calculatePages()
+ if (this.hasNextPage) {
+ this.pageOffset += this.pageSize
+ }
},
previousPage() {
- this.pageOffset -= this.pageSize
-
- this.calculatePages()
+ if (this.hasPrevPage) {
+ this.pageOffset -= this.pageSize
+ }
},
setPeers(peers) {
this.peers = peers
diff --git a/frontend/src/stores/users.js b/frontend/src/stores/users.js
index 8eb194a..19816ca 100644
--- a/frontend/src/stores/users.js
+++ b/frontend/src/stores/users.js
@@ -12,7 +12,6 @@ export const userStore = defineStore('users', {
filter: "",
pageSize: 10,
pageOffset: 0,
- pages: [],
fetching: false,
}),
getters: {
@@ -43,33 +42,22 @@ export const userStore = defineStore('users', {
afterPageSizeChange() {
// reset pageOffset to avoid problems with new page sizes
this.pageOffset = 0
- this.calculatePages()
- },
- calculatePages() {
- let pageCounter = 1;
- this.pages = []
- for (let i = 0; i < this.FilteredCount; i+=this.pageSize) {
- this.pages.push(pageCounter++)
- }
},
gotoPage(page) {
this.pageOffset = (page-1) * this.pageSize
-
- this.calculatePages()
},
nextPage() {
- this.pageOffset += this.pageSize
-
- this.calculatePages()
+ if (this.hasNextPage) {
+ this.pageOffset += this.pageSize
+ }
},
previousPage() {
- this.pageOffset -= this.pageSize
-
- this.calculatePages()
+ if (this.hasPrevPage) {
+ this.pageOffset -= this.pageSize
+ }
},
setUsers(users) {
this.users = users
- this.calculatePages()
this.fetching = false
},
setUserPeers(peers) {
diff --git a/frontend/src/views/AuditView.vue b/frontend/src/views/AuditView.vue
index ccd78f7..7a47d26 100644
--- a/frontend/src/views/AuditView.vue
+++ b/frontend/src/views/AuditView.vue
@@ -1,6 +1,7 @@
@@ -185,36 +185,33 @@ onMounted(async () => {