diff --git a/web/app/src/components/EndpointCard.vue b/web/app/src/components/EndpointCard.vue
index 7069d6eb..e757cdab 100644
--- a/web/app/src/components/EndpointCard.vue
+++ b/web/app/src/components/EndpointCard.vue
@@ -154,7 +154,8 @@ const formattedResponseTime = computed(() => {
const oldestResultTime = computed(() => {
if (!props.endpoint.results || props.endpoint.results.length === 0) return ''
- return generatePrettyTimeAgo(props.endpoint.results[0].timestamp)
+ const oldestResultIndex = Math.max(0, props.endpoint.results.length - props.maxResults)
+ return generatePrettyTimeAgo(props.endpoint.results[oldestResultIndex].timestamp)
})
const newestResultTime = computed(() => {
diff --git a/web/app/src/views/EndpointDetails.vue b/web/app/src/views/EndpointDetails.vue
index 8b9de9b0..2895e659 100644
--- a/web/app/src/views/EndpointDetails.vue
+++ b/web/app/src/views/EndpointDetails.vue
@@ -89,13 +89,13 @@
@@ -224,6 +224,7 @@ const endpointStatus = ref(null) // For paginated historical data
const currentStatus = ref(null) // For current/latest status (always page 1)
const events = ref([])
const currentPage = ref(1)
+const resultPageSize = 50
const showResponseTimeChartAndBadges = ref(false)
const showAverageResponseTime = ref(false)
const selectedChartDuration = ref('24h')
@@ -304,7 +305,7 @@ const lastCheckTime = computed(() => {
const fetchData = async () => {
isRefreshing.value = true
try {
- const response = await fetch(`${serverUrl}/api/v1/endpoints/${route.params.key}/statuses?page=${currentPage.value}&pageSize=50`, {
+ const response = await fetch(`${serverUrl}/api/v1/endpoints/${route.params.key}/statuses?page=${currentPage.value}&pageSize=${resultPageSize}`, {
credentials: 'include'
})
diff --git a/web/app/src/views/Home.vue b/web/app/src/views/Home.vue
index 7091b2bc..32001277 100644
--- a/web/app/src/views/Home.vue
+++ b/web/app/src/views/Home.vue
@@ -82,7 +82,7 @@
v-for="suite in items.suites"
:key="suite.key"
:suite="suite"
- :maxResults="50"
+ :maxResults="resultPageSize"
@showTooltip="showTooltip"
/>
@@ -96,7 +96,7 @@
v-for="endpoint in items.endpoints"
:key="endpoint.key"
:endpoint="endpoint"
- :maxResults="50"
+ :maxResults="resultPageSize"
:showAverageResponseTime="showAverageResponseTime"
@showTooltip="showTooltip"
/>
@@ -116,7 +116,7 @@
v-for="suite in paginatedSuites"
:key="suite.key"
:suite="suite"
- :maxResults="50"
+ :maxResults="resultPageSize"
@showTooltip="showTooltip"
/>
@@ -130,7 +130,7 @@
v-for="endpoint in paginatedEndpoints"
:key="endpoint.key"
:endpoint="endpoint"
- :maxResults="50"
+ :maxResults="resultPageSize"
:showAverageResponseTime="showAverageResponseTime"
@showTooltip="showTooltip"
/>
@@ -225,6 +225,7 @@ const showAverageResponseTime = ref(true)
const groupByGroup = ref(false)
const sortBy = ref(localStorage.getItem('gatus:sort-by') || 'name')
const uncollapsedGroups = ref(new Set())
+const resultPageSize = 50
const filteredEndpoints = computed(() => {
let filtered = [...endpointStatuses.value]
@@ -433,7 +434,7 @@ const fetchData = async () => {
}
try {
// Fetch endpoints
- const endpointResponse = await fetch(`${SERVER_URL}/api/v1/endpoints/statuses?page=1&pageSize=100`, {
+ const endpointResponse = await fetch(`${SERVER_URL}/api/v1/endpoints/statuses?page=1&pageSize=${resultPageSize}`, {
credentials: 'include'
})
if (endpointResponse.status === 200) {
@@ -444,7 +445,7 @@ const fetchData = async () => {
}
// Fetch suites
- const suiteResponse = await fetch(`${SERVER_URL}/api/v1/suites/statuses?page=1&pageSize=100`, {
+ const suiteResponse = await fetch(`${SERVER_URL}/api/v1/suites/statuses?page=1&pageSize=${resultPageSize}`, {
credentials: 'include'
})
if (suiteResponse.status === 200) {