Browse Source

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.

pull/737/head
mike12345567 6 years ago
parent
commit
c5dc50e8bf
  1. 5
      packages/builder/src/builderStore/store/index.js
  2. 1
      packages/builder/src/components/backend/TableNavigator/popovers/EditTablePopover.svelte
  3. 13
      packages/server/src/db/linkedRows/LinkController.js

5
packages/builder/src/builderStore/store/index.js

@ -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

1
packages/builder/src/components/backend/TableNavigator/popovers/EditTablePopover.svelte

@ -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()
}

13
packages/server/src/db/linkedRows/LinkController.js

@ -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

Loading…
Cancel
Save