diff --git a/packages/bbui/src/Typography/Body.svelte b/packages/bbui/src/Typography/Body.svelte
index 9a1fe266fc..d3cde55483 100644
--- a/packages/bbui/src/Typography/Body.svelte
+++ b/packages/bbui/src/Typography/Body.svelte
@@ -12,6 +12,7 @@
${weight ? `font-weight:${weight};` : ""}
${textAlign ? `text-align:${textAlign};` : ""}
`}
+ class:noPadding
class="spectrum-Body spectrum-Body--size{size}"
class:spectrum-Body--serif={serif}
>
diff --git a/packages/builder/src/components/backend/TableNavigator/TableDataImport.svelte b/packages/builder/src/components/backend/TableNavigator/TableDataImport.svelte
index ba904061a3..42ab2b0406 100644
--- a/packages/builder/src/components/backend/TableNavigator/TableDataImport.svelte
+++ b/packages/builder/src/components/backend/TableNavigator/TableDataImport.svelte
@@ -1,5 +1,5 @@
diff --git a/packages/builder/src/components/backend/TableNavigator/modals/CreateTableModal.svelte b/packages/builder/src/components/backend/TableNavigator/modals/CreateTableModal.svelte
index e870bc98bb..03d37ca6b5 100644
--- a/packages/builder/src/components/backend/TableNavigator/modals/CreateTableModal.svelte
+++ b/packages/builder/src/components/backend/TableNavigator/modals/CreateTableModal.svelte
@@ -3,7 +3,14 @@
import { store } from "builderStore"
import { tables } from "stores/backend"
import { notifications } from "@budibase/bbui"
- import { Input, Label, ModalContent, Toggle, Divider } from "@budibase/bbui"
+ import {
+ Input,
+ Label,
+ ModalContent,
+ Toggle,
+ Divider,
+ Layout,
+ } from "@budibase/bbui"
import TableDataImport from "../TableDataImport.svelte"
import analytics from "analytics"
import screenTemplates from "builderStore/store/screenTemplates"
@@ -123,8 +130,10 @@
bind:value={createAutoscreens}
/>
-
-
+
+
+
+
diff --git a/packages/server/src/api/controllers/application.js b/packages/server/src/api/controllers/application.js
index 51670fb58f..2956e45b11 100644
--- a/packages/server/src/api/controllers/application.js
+++ b/packages/server/src/api/controllers/application.js
@@ -214,7 +214,7 @@ exports.create = async function (ctx) {
exports.update = async function (ctx) {
const url = await getAppUrlIfNotInUse(ctx)
const db = new CouchDB(ctx.params.appId)
- const application = await db.get(ctx.params.appId)
+ const application = await db.get(DocumentTypes.APP_METADATA)
const data = ctx.request.body
const newData = { ...application, ...data, url }
@@ -235,7 +235,7 @@ exports.update = async function (ctx) {
exports.delete = async function (ctx) {
const db = new CouchDB(ctx.params.appId)
- const app = await db.get(ctx.params.appId)
+ const app = await db.get(DocumentTypes.APP_METADATA)
const result = await db.destroy()
/* istanbul ignore next */
if (!env.isTest()) {
diff --git a/packages/server/src/api/controllers/table/utils.js b/packages/server/src/api/controllers/table/utils.js
index 3cf64e8e31..990840af06 100644
--- a/packages/server/src/api/controllers/table/utils.js
+++ b/packages/server/src/api/controllers/table/utils.js
@@ -6,7 +6,7 @@ const {
InternalTables,
} = require("../../../db/utils")
const { isEqual } = require("lodash/fp")
-const { AutoFieldSubTypes } = require("../../../constants")
+const { AutoFieldSubTypes, FieldTypes } = require("../../../constants")
const { inputProcessing } = require("../../../utilities/rowProcessor")
const { USERS_TABLE_SCHEMA } = require("../../../constants")
@@ -72,18 +72,21 @@ exports.handleDataImport = async (appId, user, table, dataImport) => {
row._id = generateRowID(table._id)
row.tableId = table._id
const processed = inputProcessing(user, table, row)
+ table = processed.table
row = processed.row
- // these auto-fields will never actually link anywhere (always builder)
for (let [fieldName, schema] of Object.entries(table.schema)) {
+ // check whether the options need to be updated for inclusion as part of the data import
if (
- schema.autocolumn &&
- (schema.subtype === AutoFieldSubTypes.CREATED_BY ||
- schema.subtype === AutoFieldSubTypes.UPDATED_BY)
+ schema.type === FieldTypes.OPTIONS &&
+ (!schema.constraints.inclusion ||
+ schema.constraints.inclusion.indexOf(row[fieldName]) === -1)
) {
- delete row[fieldName]
+ schema.constraints.inclusion = [
+ ...schema.constraints.inclusion,
+ row[fieldName],
+ ]
}
}
- table = processed.table
data[i] = row
}
diff --git a/packages/server/src/api/routes/tests/row.spec.js b/packages/server/src/api/routes/tests/row.spec.js
index fb8ff96efa..f67d6254db 100644
--- a/packages/server/src/api/routes/tests/row.spec.js
+++ b/packages/server/src/api/routes/tests/row.spec.js
@@ -304,24 +304,6 @@ describe("/rows", () => {
})
})
- describe("search", () => {
- it("should run a search on the table", async () => {
- const res = await request
- .post(`/api/${table._id}/rows/search`)
- .send({
- query: {
- name: "Test",
- },
- pagination: { pageSize: 25 }
- })
- .set(config.defaultHeaders())
- .expect('Content-Type', /json/)
- .expect(200)
- expect(res.body.rows.length).toEqual(1)
- expect(res.body.bookmark).toBeDefined()
- })
- })
-
describe("fetchView", () => {
it("should be able to fetch tables contents via 'view'", async () => {
const row = await config.createRow()
diff --git a/packages/server/src/utilities/csvParser.js b/packages/server/src/utilities/csvParser.js
index 3ae020eb65..0d8b12cc0a 100644
--- a/packages/server/src/utilities/csvParser.js
+++ b/packages/server/src/utilities/csvParser.js
@@ -1,14 +1,16 @@
const csv = require("csvtojson")
+const { FieldTypes } = require("../constants")
const VALIDATORS = {
- string: () => true,
- number: attribute => !isNaN(Number(attribute)),
- datetime: attribute => !isNaN(new Date(attribute).getTime()),
+ [FieldTypes.STRING]: () => true,
+ [FieldTypes.OPTIONS]: () => true,
+ [FieldTypes.NUMBER]: attribute => !isNaN(Number(attribute)),
+ [FieldTypes.DATETIME]: attribute => !isNaN(new Date(attribute).getTime()),
}
const PARSERS = {
- number: attribute => Number(attribute),
- datetime: attribute => new Date(attribute).toISOString(),
+ [FieldTypes.NUMBER]: attribute => Number(attribute),
+ [FieldTypes.DATETIME]: attribute => new Date(attribute).toISOString(),
}
function parse(csvString, parsers) {