1
0
Fork 0
mirror of synced 2024-10-02 10:08:09 +13:00

Working on maintenance screen for app users.

This commit is contained in:
Sam Rose 2024-03-11 16:55:02 +00:00
parent 19803f9182
commit a78704bca8
No known key found for this signature in database
2 changed files with 80 additions and 0 deletions

View file

@ -0,0 +1,70 @@
<script>
import { MaintenanceType } from "@budibase/types"
import { Heading, Body, Button, Layout } from "@budibase/bbui"
export let maintenanceList
</script>
<div class="main">
<div class="content">
<div class="inner-content">
{#each maintenanceList as maintenance}
{#if maintenance.type === MaintenanceType.SQS_MISSING}
<Layout>
<Heading>Please upgrade your Budibase installation</Heading>
<Body>
We've detected that the version of Budibase you're using depends
on a more recent version of the CouchDB database than what you
have installed.
</Body>
<Body>
To resolve this, you can either rollback to a previous version of
Budibase, or follow the migration guide to update to a later
version of CouchDB.
</Body>
</Layout>
<Button
on:click={() => (window.location = "https://docs.budibase.com")}
>Migration guide</Button
>
{/if}
{/each}
</div>
</div>
</div>
<style>
.main {
max-width: 700px;
margin: auto;
height: 100vh;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
.content {
display: flex;
flex-direction: row;
align-items: baseline;
justify-content: center;
gap: var(--spacing-m);
}
.inner-content {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: var(--spacing-m);
}
@media only screen and (max-width: 600px) {
.content {
flex-direction: column;
align-items: flex-start;
}
.main {
height: auto;
}
}
</style>

View file

@ -1,5 +1,6 @@
import ClientApp from "./components/ClientApp.svelte"
import UpdatingApp from "./components/UpdatingApp.svelte"
import MaintenanceScreen from "./components/MaintenanceScreen.svelte"
import {
builderStore,
appStore,
@ -65,6 +66,15 @@ const loadBudibase = async () => {
await environmentStore.actions.fetchEnvironment()
}
const maintenanceList = get(environmentStore)?.maintenance
if (maintenanceList?.length > 0) {
new MaintenanceScreen({
target: window.document.body,
props: { maintenanceList },
})
return
}
// Register handler for runtime events from the builder
window.handleBuilderRuntimeEvent = (type, data) => {
if (!window["##BUDIBASE_IN_BUILDER##"]) {