diff --git a/packages/api/src/controllers/config.js b/packages/api/src/controllers/config.js index f26eaae23..161af17d4 100644 --- a/packages/api/src/controllers/config.js +++ b/packages/api/src/controllers/config.js @@ -64,6 +64,7 @@ module.exports = { isDocker: platformInfo.isDocker, isElectron: platformInfo.isElectron, isLicenseValid, + isLicenseExpired: checkedLicense?.isExpired, checkedLicense, configurationError, logoutUrl: await authProvider.getLogoutUrl(), diff --git a/packages/tools/src/stringTools.ts b/packages/tools/src/stringTools.ts index b77570735..1c254c1a2 100644 --- a/packages/tools/src/stringTools.ts +++ b/packages/tools/src/stringTools.ts @@ -500,3 +500,12 @@ export function extractErrorLogData(err, additionalFields = {}) { ...additionalFields, }; } + +export function safeFormatDate(date) { + try { + const v = new Date(date); + return v.toISOString().substring(0, 10); + } catch (e) { + return date?.toString(); + } +} diff --git a/packages/web/src/EnterLicensePage.svelte b/packages/web/src/EnterLicensePage.svelte index 85ee885be..8469304db 100644 --- a/packages/web/src/EnterLicensePage.svelte +++ b/packages/web/src/EnterLicensePage.svelte @@ -12,11 +12,20 @@ import { apiCall } from './utility/api'; import FormStyledButton from './buttons/FormStyledButton.svelte'; import getElectron from './utility/getElectron'; + import { openWebLink } from './utility/exportFileTools'; const config = useConfig(); const values = writable({ amoid: null, databaseServer: null }); + $: isExpired = $config?.isLicenseExpired; + let errorMessage = ''; + let expiredMessageSet = false; + + $: if (isExpired && !expiredMessageSet) { + errorMessage = 'Your license is expired'; + expiredMessageSet = true; + } onMount(() => { const removed = document.getElementById('starting_dbgate_zero'); @@ -50,17 +59,28 @@ /> + {#if !isExpired} +