From 1e1662d2653abd40553924259b949d6d01a20e62 Mon Sep 17 00:00:00 2001 From: kevmodrome Date: Mon, 12 Oct 2020 18:54:18 +0200 Subject: [PATCH] lint fixes --- .../userInterface/temporaryPanelStructure.js | 11 +- packages/server/src/api/controllers/record.js | 28 +-- packages/standard-components/rollup.config.js | 2 +- .../src/DataGrid/Component.svelte | 1 - .../src/DataGrid/customRenderer.js | 183 +++++++++--------- .../src/DataGrid/valueSetters.js | 8 +- 6 files changed, 123 insertions(+), 110 deletions(-) diff --git a/packages/builder/src/components/userInterface/temporaryPanelStructure.js b/packages/builder/src/components/userInterface/temporaryPanelStructure.js index 8424811b46..e7033f1c8e 100644 --- a/packages/builder/src/components/userInterface/temporaryPanelStructure.js +++ b/packages/builder/src/components/userInterface/temporaryPanelStructure.js @@ -316,7 +316,8 @@ export default { { name: "Grid", _component: "@budibase/standard-components/datagrid", - description: "a datagrid component with functionality to add, remove and edit rows.", + description: + "a datagrid component with functionality to add, remove and edit rows.", icon: "ri-file-list-line", properties: { design: { ...all }, @@ -336,7 +337,13 @@ export default { label: "Theme", key: "theme", control: OptionSelect, - options: ["alpine", "alpine-dark", "balham", "balham-dark", "material"], + options: [ + "alpine", + "alpine-dark", + "balham", + "balham-dark", + "material", + ], placeholder: "alpine", }, ], diff --git a/packages/server/src/api/controllers/record.js b/packages/server/src/api/controllers/record.js index 8ad6339c2c..a08fc0f6f1 100644 --- a/packages/server/src/api/controllers/record.js +++ b/packages/server/src/api/controllers/record.js @@ -68,7 +68,7 @@ exports.patch = async function(ctx) { } exports.save = async function(ctx) { - if (ctx.request.body.type === 'delete') { + if (ctx.request.body.type === "delete") { await bulkDelete(ctx) } else { await saveRecord(ctx) @@ -298,20 +298,26 @@ const TYPE_TRANSFORM_MAP = { } async function bulkDelete(ctx) { + const instanceId = ctx.user.instanceId const { records } = ctx.request.body const db = new CouchDB(ctx.user.instanceId) await db.bulkDocs( - records.map(record => ({ ...record, _deleted: true }), (err, res) => { - if (err) { - ctx.status = 500 - } else { - records.forEach(record => { - emitEvent(`record:delete`, ctx, record) - }) - ctx.status = 200 + records.map( + record => ({ ...record, _deleted: true }), + err => { + if (err) { + ctx.status = 500 + } else { + records.forEach(record => { + ctx.eventEmitter && + ctx.eventEmitter.emitRecord(`record:delete`, instanceId, record) + }) + ctx.status = 200 + } } - })) + ) + ) } async function saveRecord(ctx) { @@ -373,4 +379,4 @@ async function saveRecord(ctx) { ctx.body = record ctx.status = 200 ctx.message = `${model.name} created successfully` -} \ No newline at end of file +} diff --git a/packages/standard-components/rollup.config.js b/packages/standard-components/rollup.config.js index 297b9dbd38..2b5aa7ce3d 100644 --- a/packages/standard-components/rollup.config.js +++ b/packages/standard-components/rollup.config.js @@ -2,7 +2,7 @@ import svelte from "rollup-plugin-svelte" import resolve from "rollup-plugin-node-resolve" import commonjs from "@rollup/plugin-commonjs" import postcss from "rollup-plugin-postcss" -import { terser } from "rollup-plugin-terser"; +import { terser } from "rollup-plugin-terser" const lodash_fp_exports = ["isEmpty"] diff --git a/packages/standard-components/src/DataGrid/Component.svelte b/packages/standard-components/src/DataGrid/Component.svelte index d4cd88cc5f..90de3327fd 100644 --- a/packages/standard-components/src/DataGrid/Component.svelte +++ b/packages/standard-components/src/DataGrid/Component.svelte @@ -39,7 +39,6 @@ const jsonModel = await _bb.api.get(`/api/models/${datasource.modelId}`) model = await jsonModel.json() const { schema } = model - console.log(schema) if (!isEmpty(datasource)) { data = await fetchData(datasource) columnDefs = Object.keys(schema).map((key, i) => { diff --git a/packages/standard-components/src/DataGrid/customRenderer.js b/packages/standard-components/src/DataGrid/customRenderer.js index 7d1a048661..0fe60e0673 100644 --- a/packages/standard-components/src/DataGrid/customRenderer.js +++ b/packages/standard-components/src/DataGrid/customRenderer.js @@ -1,116 +1,117 @@ // Custom renderers to handle special types // https://www.ag-grid.com/javascript-grid-cell-rendering-components/ -import AttachmentCell from './AttachmentCell/Button.svelte' -import Select from './Select/Wrapper.svelte' +import AttachmentCell from "./AttachmentCell/Button.svelte" +import Select from "./Select/Wrapper.svelte" import DatePicker from "./DateTime/Wrapper.svelte" const renderers = new Map([ - ["boolean", booleanRenderer], - ["attachment", attachmentRenderer], - ["options", optionsRenderer], - ["link", linkedRecordRenderer], + ["boolean", booleanRenderer], + ["attachment", attachmentRenderer], + ["options", optionsRenderer], + ["link", linkedRecordRenderer], ]) - export function getRenderer({ type, constraints }, editable) { - if (renderers.get(type)) { - return renderers.get(type)(constraints, editable) - } else { - return false - } + if (renderers.get(type)) { + return renderers.get(type)(constraints, editable) + } else { + return false + } } +/* eslint-disable no-unused-vars */ function booleanRenderer(constraints, editable) { - return params => { - const toggle = (e) => { - params.value = !params.value - params.setValue(e.currentTarget.checked) - } - let input = document.createElement("input") - input.style.display = "grid"; - input.style.placeItems = "center"; - input.style.height = "100%"; - input.type = "checkbox" - input.checked = params.value - if (editable) { - input.addEventListener("click", toggle) - } else { - input.disabled = true - } - - return input + return params => { + const toggle = e => { + params.value = !params.value + params.setValue(e.currentTarget.checked) } -} -function attachmentRenderer(constraints, editable ) { - return params => { - const container = document.createElement("div") - - const attachmentInstance = new AttachmentCell({ - target: container, - props: { - files: params.value || [], - } - }); - - return container + let input = document.createElement("input") + input.style.display = "grid" + input.style.placeItems = "center" + input.style.height = "100%" + input.type = "checkbox" + input.checked = params.value + if (editable) { + input.addEventListener("click", toggle) + } else { + input.disabled = true } + + return input + } } +/* eslint-disable no-unused-vars */ +function attachmentRenderer(constraints, editable) { + return params => { + const container = document.createElement("div") + + const attachmentInstance = new AttachmentCell({ + target: container, + props: { + files: params.value || [], + }, + }) + + return container + } +} +/* eslint-disable no-unused-vars */ function dateRenderer(constraints, editable) { - return function (params) { - const container = document.createElement("div") - const toggle = (e) => { - params.setValue(e.detail[0][0]) - } - - // Options need to be passed in with minTime and maxTime! Needs bbui update. - - const datePickerInstance = new DatePicker({ - target: container, - props: { - value: params.value, - } - }); - - return container + return function(params) { + const container = document.createElement("div") + const toggle = e => { + params.setValue(e.detail[0][0]) } -} + // Options need to be passed in with minTime and maxTime! Needs bbui update. + + const datePickerInstance = new DatePicker({ + target: container, + props: { + value: params.value, + }, + }) + + return container + } +} function optionsRenderer({ inclusion }, editable) { - return params => { - if (!editable) return params.value - const container = document.createElement("div") - container.style.display = "grid"; - container.style.placeItems = "center"; - container.style.height = "100%"; - const change = (e) => { - params.setValue(e.detail) - } - - const selectInstance = new Select({ - target: container, - props: { - value: params.value, - options: inclusion - } - }); - - selectInstance.$on('change', change) - - return container + return params => { + if (!editable) return params.value + const container = document.createElement("div") + container.style.display = "grid" + container.style.placeItems = "center" + container.style.height = "100%" + const change = e => { + params.setValue(e.detail) } + + const selectInstance = new Select({ + target: container, + props: { + value: params.value, + options: inclusion, + }, + }) + + selectInstance.$on("change", change) + + return container + } } +/* eslint-disable no-unused-vars */ function linkedRecordRenderer(constraints, editable) { - return params => { - console.log(params.value) - let container = document.createElement("div") - container.style.display = "grid"; - container.style.placeItems = "center"; - container.style.height = "100%"; + return params => { + let container = document.createElement("div") + container.style.display = "grid" + container.style.placeItems = "center" + container.style.height = "100%" - container.innerText = params.value.length || 0 + container.innerText = params.value.length || 0 - return container - } -} \ No newline at end of file + return container + } +} diff --git a/packages/standard-components/src/DataGrid/valueSetters.js b/packages/standard-components/src/DataGrid/valueSetters.js index 3a64ac920b..2c7d9c9c64 100644 --- a/packages/standard-components/src/DataGrid/valueSetters.js +++ b/packages/standard-components/src/DataGrid/valueSetters.js @@ -1,6 +1,6 @@ // https://www.ag-grid.com/javascript-grid-value-setters/ // These handles values and makes sure they adhere to the data type provided by the model -export const number = (params) => { - params.data[params.colDef.field] = parseFloat(params.newValue); - return true; -} \ No newline at end of file +export const number = params => { + params.data[params.colDef.field] = parseFloat(params.newValue) + return true +}