use data in <base> componenet to mark ontime cloud status (#1872)

This commit is contained in:
Alex Christoffer Rasmussen
2025-11-12 19:28:29 +08:00
committed by GitHub
parent 70846aefbe
commit 6f55d8a6c9
5 changed files with 13 additions and 5 deletions
@@ -14,4 +14,11 @@ describe('linkToOTherHost', () => {
const destination = linkToOtherHost('cloud.getontime.no', 'path', serverUrl, baseUri);
expect(destination).toBe('https://cloud.getontime.no/user-hash/path');
});
it('should handle ontime app links', () => {
const serverUrl = 'https://app.getontime.no/user-hash';
const baseUri = 'user-hash';
const destination = linkToOtherHost('app.getontime.no', 'path', serverUrl, baseUri);
expect(destination).toBe('https://app.getontime.no/user-hash/path');
});
});
+1 -1
View File
@@ -22,7 +22,7 @@ export const isProduction = import.meta.env.PROD;
export const isDev = import.meta.env.DEV;
export const currentHostName = window.location.hostname;
export const isLocalhost = currentHostName === 'localhost' || currentHostName === '127.0.0.1';
export const isOntimeCloud = currentHostName.includes('cloud.getontime.no');
export const isOntimeCloud = document.querySelector('base')?.hasAttribute('data-is-cloud')
// resolve entrypoint URLs
+2 -1
View File
@@ -5,6 +5,7 @@
import { readFileSync, writeFileSync } from 'node:fs';
import { srcFiles } from './setup/index.js';
import { isOntimeCloud } from './setup/environment.js';
// =================================================
export const password = process.env.SESSION_PASSWORD;
@@ -23,7 +24,7 @@ export function updateRouterPrefix(prefix: string | undefined = routerPrefix): s
try {
const data = readFileSync(srcFiles.clientIndexHtml, { encoding: 'utf-8', flag: 'r' }).replace(
'<base href="/" />',
`<base href="/${prefix}/" />`,
`<base href="/${prefix}/" ${isOntimeCloud ? 'data-is-cloud' : ''}/>`,
);
writeFileSync(srcFiles.clientIndexHtml, data, { encoding: 'utf-8', flag: 'w' });
} catch (_error) {