mirror of
https://github.com/hcengineering/platform.git
synced 2025-04-22 00:10:37 +00:00
UBER-854: More proper upgrade notification (#3694)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
parent
61cc74d7a0
commit
c7fe158dfd
@ -97,6 +97,15 @@ export async function connect (title: string): Promise<Client | undefined> {
|
|||||||
// It seems upgrade happened
|
// It seems upgrade happened
|
||||||
location.reload()
|
location.reload()
|
||||||
}
|
}
|
||||||
|
const serverVersion: { version: string } = await (await fetch(serverEndpoint + '/api/v1/version', {})).json()
|
||||||
|
|
||||||
|
console.log('Server version', serverVersion.version)
|
||||||
|
if (serverVersion.version !== '' && serverVersion.version !== currentVersionStr) {
|
||||||
|
versionError = `${currentVersionStr} => ${serverVersion.version}`
|
||||||
|
setTimeout(() => {
|
||||||
|
window.location.reload()
|
||||||
|
}, 5000)
|
||||||
|
}
|
||||||
})()
|
})()
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err)
|
console.error(err)
|
||||||
@ -123,6 +132,11 @@ export async function connect (title: string): Promise<Client | undefined> {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let serverEndpoint = endpoint.replace(/^ws/g, 'http')
|
||||||
|
if (serverEndpoint.endsWith('/')) {
|
||||||
|
serverEndpoint = serverEndpoint.substring(0, serverEndpoint.length - 1)
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
version = await _client.findOne<Version>(core.class.Version, {})
|
version = await _client.findOne<Version>(core.class.Version, {})
|
||||||
console.log('Model version', version)
|
console.log('Model version', version)
|
||||||
@ -134,9 +148,36 @@ export async function connect (title: string): Promise<Client | undefined> {
|
|||||||
|
|
||||||
if (version === undefined || requiredVersion !== versionStr) {
|
if (version === undefined || requiredVersion !== versionStr) {
|
||||||
versionError = `${versionStr} => ${requiredVersion}`
|
versionError = `${versionStr} => ${requiredVersion}`
|
||||||
|
setTimeout(() => {
|
||||||
|
window.location.reload()
|
||||||
|
}, 5000)
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const serverVersion: { version: string } = await (await fetch(serverEndpoint + '/api/v1/version', {})).json()
|
||||||
|
|
||||||
|
console.log('Server version', serverVersion.version)
|
||||||
|
if (
|
||||||
|
serverVersion.version !== '' &&
|
||||||
|
(version === undefined || serverVersion.version !== versionToString(version))
|
||||||
|
) {
|
||||||
|
const versionStr = version !== undefined ? versionToString(version) : 'unknown'
|
||||||
|
versionError = `${versionStr} => ${serverVersion.version}`
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
window.location.reload()
|
||||||
|
}, 5000)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} catch (err: any) {
|
||||||
|
versionError = 'server version not available'
|
||||||
|
setTimeout(() => {
|
||||||
|
window.location.reload()
|
||||||
|
}, 5000)
|
||||||
|
return
|
||||||
|
}
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
console.log(err)
|
console.log(err)
|
||||||
const requirdVersion = getMetadata(presentation.metadata.RequiredVersion)
|
const requirdVersion = getMetadata(presentation.metadata.RequiredVersion)
|
||||||
@ -152,10 +193,6 @@ export async function connect (title: string): Promise<Client | undefined> {
|
|||||||
await setClient(_client)
|
await setClient(_client)
|
||||||
|
|
||||||
if (me.role === AccountRole.Owner) {
|
if (me.role === AccountRole.Owner) {
|
||||||
let ep = endpoint.replace(/^ws/g, 'http')
|
|
||||||
if (ep.endsWith('/')) {
|
|
||||||
ep = ep.substring(0, ep.length - 1)
|
|
||||||
}
|
|
||||||
setMetadata(ui.metadata.ShowNetwork, (evt: MouseEvent) => {
|
setMetadata(ui.metadata.ShowNetwork, (evt: MouseEvent) => {
|
||||||
if (getMetadata(presentation.metadata.Token) == null) {
|
if (getMetadata(presentation.metadata.Token) == null) {
|
||||||
return
|
return
|
||||||
@ -164,7 +201,7 @@ export async function connect (title: string): Promise<Client | undefined> {
|
|||||||
showPopup(
|
showPopup(
|
||||||
ServerManager,
|
ServerManager,
|
||||||
{
|
{
|
||||||
endpoint: ep,
|
endpoint: serverEndpoint,
|
||||||
token
|
token
|
||||||
},
|
},
|
||||||
'content'
|
'content'
|
||||||
|
@ -61,6 +61,15 @@ export function startHttpServer (
|
|||||||
|
|
||||||
const getUsers = (): any => Array.from(sessions.sessions.entries()).map(([k, v]) => v.session.getUser())
|
const getUsers = (): any => Array.from(sessions.sessions.entries()).map(([k, v]) => v.session.getUser())
|
||||||
|
|
||||||
|
app.get('/api/v1/version', (req, res) => {
|
||||||
|
res.writeHead(200, { 'Content-Type': 'application/json' })
|
||||||
|
res.end(
|
||||||
|
JSON.stringify({
|
||||||
|
version: process.env.MODEL_VERSION
|
||||||
|
})
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
app.get('/api/v1/statistics', (req, res) => {
|
app.get('/api/v1/statistics', (req, res) => {
|
||||||
try {
|
try {
|
||||||
const token = req.query.token as string
|
const token = req.query.token as string
|
||||||
|
Loading…
Reference in New Issue
Block a user