diff --git a/src/client/components/TheHomePage.vue b/src/client/components/TheHomePage.vue index e575d38c33580549caaffa245e49d65dd46208df..d81ccf518dc22630ddbb8faae7d0443b4e35e3a0 100644 --- a/src/client/components/TheHomePage.vue +++ b/src/client/components/TheHomePage.vue @@ -124,6 +124,13 @@ </p> </section> + <div class="version-date"> + Last update: + <time :datetime="versionDate"> + {{ versionDate }} + </time> + </div> + <SearchBar /> <AntibodiesTable v-if="!noResults" /> @@ -140,6 +147,7 @@ import SearchBar from './SearchBar.vue' const store = useStore() const noResults = computed(() => { return store.noResults }) +const versionDate = computed(() => { return store.antibodiesVersionDate }) /** * Fetch the first antibodies on page load in order to @@ -166,4 +174,12 @@ p { max-width: 900px; text-align: justify; } + +.version-date { + margin: auto; +} + +.version-date time { + font-weight: bold; +} </style> diff --git a/src/client/store.ts b/src/client/store.ts index 5d6111d9be0e625db8c7470906e790f82ddeeff4..50f2bf0da1304bb601f541692126c79775b31fb8 100644 --- a/src/client/store.ts +++ b/src/client/store.ts @@ -69,6 +69,15 @@ export const useStore = defineStore('store', { return Object .keys(state.statistics?.antibodiesPerLightSegment || {}) .sort(alphanumSort) + }, + + /** + * Get the current version date of the database. + * @param state - The state of the store + * @returns The version date as an ISO string + */ + antibodiesVersionDate: (state): Statistics['versionDate'] => { + return state.statistics?.versionDate.replace(/T.*/, "") || "" } }, actions: { diff --git a/src/client/types.ts b/src/client/types.ts index b04bbfd1beb492f8ef899512e66dc3e3f3f73006..5591ab1e2e292fd7b919b7f904ba27378ae7c76a 100644 --- a/src/client/types.ts +++ b/src/client/types.ts @@ -62,6 +62,7 @@ export type SourceMeta = Record<FastaHeader['source'], { * the application. */ export interface Statistics { + versionDate: string antibodies: number species: Array<Antibody['species']> sources: Array<FastaHeader['source']> diff --git a/src/server/models/Statistics.js b/src/server/models/Statistics.js index d38b5122266020350fe70af4b80ce3b7699c3376..b28b72d4bf8fbfa53625791fab9a2736f734fff8 100644 --- a/src/server/models/Statistics.js +++ b/src/server/models/Statistics.js @@ -18,6 +18,7 @@ * Statistics about the antibodies. */ export class Statistics { + versionDate = "" antibodies = 0 species = new Set() sources = new Set()