diff --git a/frontend/package-lock.json b/frontend/package-lock.json index bd7ecde..e9872c6 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -21,6 +21,7 @@ "standard": "^17.1.2", "unplugin-vue-components": "^30.0.0", "vite": "^7.3.1", + "vue": "^3.5.26", "vue-i18n": "^11.2.8", "vue-router": "^4.6.4" }, diff --git a/frontend/package.json b/frontend/package.json index 1d97045..ae7801c 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -34,6 +34,7 @@ "standard": "^17.1.2", "unplugin-vue-components": "^30.0.0", "vite": "^7.3.1", + "vue": "^3.5.26", "vue-i18n": "^11.2.8", "vue-router": "^4.6.4" } diff --git a/frontend/resources/vue/views/LogsCalendarView.vue b/frontend/resources/vue/views/LogsCalendarView.vue index 11a3ba9..78210c6 100644 --- a/frontend/resources/vue/views/LogsCalendarView.vue +++ b/frontend/resources/vue/views/LogsCalendarView.vue @@ -77,14 +77,40 @@ async function fetchLogs() { error.value = null try { - // Fetch a large number of logs to populate the calendar - // We'll fetch more than a single page to get better calendar coverage - const args = { - "startOffset": BigInt(0), - } + // Currently fetches only the default page (startOffset: 0) + // Multi-page fetching: loop through pages until no more logs or limit reached + const allLogs = [] + let startOffset = BigInt(0) + const maxLogs = 10000 // Reasonable limit to prevent excessive API calls + const pageSize = 100 // Typical page size, will be updated from API response + + while (allLogs.length < maxLogs) { + const args = { + "startOffset": startOffset, + } - const response = await window.client.getLogs(args) - logs.value = response.logs || [] + const response = await window.client.getLogs(args) + const pageLogs = response.logs || [] + + // If no logs returned, we've reached the end + if (pageLogs.length === 0) { + break + } + + // Append logs from this page + allLogs.push(...pageLogs) + + // Update offset for next page + const currentPageSize = Number(response.pageSize) || pageLogs.length + startOffset += BigInt(currentPageSize) + + // If we got fewer logs than the page size, we've reached the end + if (pageLogs.length < currentPageSize) { + break + } + } + + logs.value = allLogs } catch (err) { console.error('Failed to fetch logs:', err) error.value = 'Failed to load logs' diff --git a/frontend/resources/vue/views/LogsListView.vue b/frontend/resources/vue/views/LogsListView.vue index b3b9594..f4c772c 100644 --- a/frontend/resources/vue/views/LogsListView.vue +++ b/frontend/resources/vue/views/LogsListView.vue @@ -2,7 +2,7 @@