Merge branch 'feature/draft-apps' into admin/user-management-ui
This commit is contained in:
commit
116ae6eeea
|
@ -15,6 +15,15 @@
|
||||||
const json = await response.json()
|
const json = await response.json()
|
||||||
if (response.status !== 200) throw json.message
|
if (response.status !== 200) throw json.message
|
||||||
|
|
||||||
|
// Reset frontend state after revert
|
||||||
|
const applicationPkg = await api.get(`/api/applications/${appId}/appPackage`)
|
||||||
|
const pkg = await applicationPkg.json()
|
||||||
|
if (applicationPkg.ok) {
|
||||||
|
await store.actions.initialise(pkg)
|
||||||
|
} else {
|
||||||
|
throw new Error(pkg)
|
||||||
|
}
|
||||||
|
|
||||||
notifications.info("Changes reverted.")
|
notifications.info("Changes reverted.")
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
notifications.error(`Error reverting changes: ${err}`)
|
notifications.error(`Error reverting changes: ${err}`)
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
<!-- routify:options index=4 -->
|
|
||||||
<!-- <slot /> -->
|
|
|
@ -1,79 +0,0 @@
|
||||||
<script>
|
|
||||||
import { Button, Modal, notifications, Heading } from "@budibase/bbui"
|
|
||||||
import { store } from "builderStore"
|
|
||||||
import api from "builderStore/api"
|
|
||||||
import DeploymentHistory from "components/deploy/DeploymentHistory.svelte"
|
|
||||||
import analytics from "analytics"
|
|
||||||
import FeedbackIframe from "components/feedback/FeedbackIframe.svelte"
|
|
||||||
import Rocket from "/assets/deploy-rocket.jpg"
|
|
||||||
|
|
||||||
let loading = false
|
|
||||||
let deployments = []
|
|
||||||
let poll
|
|
||||||
let feedbackModal
|
|
||||||
|
|
||||||
$: appId = $store.appId
|
|
||||||
|
|
||||||
async function deployApp() {
|
|
||||||
try {
|
|
||||||
notifications.info(`Deployment started. Please wait.`)
|
|
||||||
const response = await api.post("/api/deploy")
|
|
||||||
const json = await response.json()
|
|
||||||
if (response.status !== 200) {
|
|
||||||
throw new Error()
|
|
||||||
}
|
|
||||||
|
|
||||||
if (analytics.requestFeedbackOnDeploy()) {
|
|
||||||
feedbackModal.show()
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
analytics.captureException(err)
|
|
||||||
notifications.error("Deployment unsuccessful. Please try again later.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<section>
|
|
||||||
<img src={Rocket} alt="Rocket flying through sky" />
|
|
||||||
<div>
|
|
||||||
<Heading size="M">It's time to shine!</Heading>
|
|
||||||
<Button size="XL" cta medium on:click={deployApp}>Publish App</Button>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<Modal bind:this={feedbackModal}>
|
|
||||||
<FeedbackIframe on:finished={() => feedbackModal.hide()} />
|
|
||||||
</Modal>
|
|
||||||
<DeploymentHistory {appId} />
|
|
||||||
|
|
||||||
<style>
|
|
||||||
img {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
object-fit: cover;
|
|
||||||
filter: brightness(80%);
|
|
||||||
}
|
|
||||||
|
|
||||||
section {
|
|
||||||
position: relative;
|
|
||||||
min-height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
div {
|
|
||||||
position: absolute;
|
|
||||||
display: flex;
|
|
||||||
text-align: center;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
top: 20%;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
width: 50%;
|
|
||||||
gap: var(--spacing-xl);
|
|
||||||
}
|
|
||||||
div :global(h1) {
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -18,6 +18,7 @@
|
||||||
import analytics from "analytics"
|
import analytics from "analytics"
|
||||||
import { onMount } from "svelte"
|
import { onMount } from "svelte"
|
||||||
import { apps } from "stores/portal"
|
import { apps } from "stores/portal"
|
||||||
|
import { auth } from "stores/backend"
|
||||||
import download from "downloadjs"
|
import download from "downloadjs"
|
||||||
import { goto } from "@roxi/routify"
|
import { goto } from "@roxi/routify"
|
||||||
import ConfirmDialog from "components/common/ConfirmDialog.svelte"
|
import ConfirmDialog from "components/common/ConfirmDialog.svelte"
|
||||||
|
@ -61,6 +62,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
const openApp = app => {
|
const openApp = app => {
|
||||||
|
if (app.lockedBy && app.lockedBy?.email === $auth.user?.email) {
|
||||||
|
notifications.error(`App locked by ${app.lockedBy.email}. Please allow lock to expire or have them unlock this app.`)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (appStatus === AppStatus.DEV) {
|
if (appStatus === AppStatus.DEV) {
|
||||||
$goto(`../../app/${app.appId}`)
|
$goto(`../../app/${app.appId}`)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -37,7 +37,6 @@ router
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.use(currentApp)
|
.use(currentApp)
|
||||||
// .use(development)
|
|
||||||
|
|
||||||
// error handling middleware
|
// error handling middleware
|
||||||
router.use(async (ctx, next) => {
|
router.use(async (ctx, next) => {
|
||||||
|
|
Loading…
Reference in New Issue