1
0
Fork 0
mirror of synced 2024-10-03 19:43:32 +13:00

Fixing some issues found with deleting tables and relationships not getting cleaned up fully + builder not updating - also making sure builder store initial state of screens is accurate.

This commit is contained in:
mike12345567 2020-10-16 13:48:59 +01:00
parent ddc979dc59
commit ebffeeb998
3 changed files with 14 additions and 5 deletions

View file

@ -129,7 +129,10 @@ const setPackage = (store, initial) => async pkg => {
initial.appId = pkg.application._id
initial.pages = pkg.pages
initial.hasAppPackage = true
initial.screens = values(pkg.screens)
initial.screens = [
...Object.values(main_screens),
...Object.values(unauth_screens),
]
initial.builtins = [getBuiltin("##builtin/screenslot")]
initial.appInstances = pkg.application.instances
initial.appId = pkg.application._id

View file

@ -42,6 +42,7 @@
async function deleteTable() {
await backendUiStore.actions.tables.delete(table)
store.deleteScreens(templateScreens)
await backendUiStore.actions.tables.fetch()
notifier.success("Table deleted")
hideEditor()
}

View file

@ -1,6 +1,7 @@
const CouchDB = require("../index")
const { IncludeDocs, getLinkDocuments } = require("./linkUtils")
const { generateLinkID } = require("../utils")
const Sentry = require("@sentry/node")
/**
* Creates a new link document structure which can be put to the database. It is important to
@ -289,10 +290,14 @@ class LinkController {
const schema = table.schema
for (let fieldName of Object.keys(schema)) {
const field = schema[fieldName]
if (field.type === "link") {
const linkedTable = await this._db.get(field.tableId)
delete linkedTable.schema[table.name]
await this._db.put(linkedTable)
try {
if (field.type === "link") {
const linkedTable = await this._db.get(field.tableId)
delete linkedTable.schema[field.fieldName]
await this._db.put(linkedTable)
}
} catch (err) {
Sentry.captureException(err)
}
}
// need to get the full link docs to delete them