From 15791423ea3580a0faf0964c303669f095a9660d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Mon, 13 Jul 2026 00:32:27 +0200 Subject: [PATCH] added fileFetchedAt to TickerPageResponse and updated the Ticker UI to use it as the data currency timestamp for proxied files --- .../queries/get_ticker_page/get_ticker_page_response.dart | 7 +++++++ .../get_ticker_page/get_ticker_page_response.g.dart | 2 ++ lib/view/pages/ticker/widgets/ticker_page_body.dart | 4 +++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/api/marianumconnect/queries/get_ticker_page/get_ticker_page_response.dart b/lib/api/marianumconnect/queries/get_ticker_page/get_ticker_page_response.dart index 202a858..c7f9b89 100644 --- a/lib/api/marianumconnect/queries/get_ticker_page/get_ticker_page_response.dart +++ b/lib/api/marianumconnect/queries/get_ticker_page/get_ticker_page_response.dart @@ -44,6 +44,12 @@ class TickerPageResponse { /// when the page has never been published. final String? publishedAt; + /// PROXIED_FILE only: ISO timestamp of the last successful re-fetch of the + /// file by the server proxy (`ticker_pages.proxy_last_success_at`) — the + /// document's data currency, shown as "Aktualisiert am …" instead of + /// [publishedAt]. Null for other kinds / files never fetched yet. + final String? fileFetchedAt; + TickerPageResponse({ required this.schemaVersion, this.slug, @@ -58,6 +64,7 @@ class TickerPageResponse { this.hash, this.webUrl, this.publishedAt, + this.fileFetchedAt, }); factory TickerPageResponse.fromJson(Map json) => diff --git a/lib/api/marianumconnect/queries/get_ticker_page/get_ticker_page_response.g.dart b/lib/api/marianumconnect/queries/get_ticker_page/get_ticker_page_response.g.dart index 858da0a..52e4c40 100644 --- a/lib/api/marianumconnect/queries/get_ticker_page/get_ticker_page_response.g.dart +++ b/lib/api/marianumconnect/queries/get_ticker_page/get_ticker_page_response.g.dart @@ -21,6 +21,7 @@ TickerPageResponse _$TickerPageResponseFromJson(Map json) => hash: json['hash'] as String?, webUrl: json['webUrl'] as String?, publishedAt: json['publishedAt'] as String?, + fileFetchedAt: json['fileFetchedAt'] as String?, ); Map _$TickerPageResponseToJson(TickerPageResponse instance) => @@ -38,4 +39,5 @@ Map _$TickerPageResponseToJson(TickerPageResponse instance) => 'hash': instance.hash, 'webUrl': instance.webUrl, 'publishedAt': instance.publishedAt, + 'fileFetchedAt': instance.fileFetchedAt, }; diff --git a/lib/view/pages/ticker/widgets/ticker_page_body.dart b/lib/view/pages/ticker/widgets/ticker_page_body.dart index 967827d..0babaf6 100644 --- a/lib/view/pages/ticker/widgets/ticker_page_body.dart +++ b/lib/view/pages/ticker/widgets/ticker_page_body.dart @@ -94,7 +94,9 @@ class _TickerPageContentState extends State<_TickerPageContent> { case TickerPageKind.proxiedFile: return Column( children: [ - TickerUpdatedBar(publishedAt: page.publishedAt), + // For proxied files the data currency is the last successful + // proxy fetch, not the page's publish date. + TickerUpdatedBar(publishedAt: page.fileFetchedAt ?? page.publishedAt), Expanded( child: _ProxiedFileView( repo: context.read().repo,