Browse Source

Merge branch 'master' of github.com:Budibase/budibase

master
Martin McKeaveney 5 years ago
parent
commit
c2e80b0b63
  1. 18
      packages/builder/src/components/backend/DataTable/modals/CalculateModal.svelte
  2. 6
      packages/builder/src/components/backend/DataTable/modals/GroupByModal.svelte
  3. 8
      packages/server/src/utilities/rowProcessor.js

18
packages/builder/src/components/backend/DataTable/modals/CalculateModal.svelte

@ -2,6 +2,7 @@
import { Select, Label, notifications, ModalContent } from "@budibase/bbui" import { Select, Label, notifications, ModalContent } from "@budibase/bbui"
import { tables, views } from "stores/backend" import { tables, views } from "stores/backend"
import analytics from "analytics" import analytics from "analytics"
import { FIELDS } from "constants/backend"
const CALCULATIONS = [ const CALCULATIONS = [
{ {
@ -25,13 +26,16 @@
) )
$: fields = $: fields =
viewTable && viewTable &&
Object.keys(viewTable.schema).filter( Object.keys(viewTable.schema).filter(fieldName => {
field => const field = viewTable.schema[fieldName]
view.calculation === "count" || return (
// don't want to perform calculations based on auto ID field.type !== FIELDS.FORMULA.type &&
(viewTable.schema[field].type === "number" && field.type !== FIELDS.LINK.type &&
!viewTable.schema[field].autocolumn) (view.calculation === "count" ||
) // don't want to perform calculations based on auto ID
(field.type === "number" && !field.autocolumn))
)
})
function saveView() { function saveView() {
views.save(view) views.save(view)

6
packages/builder/src/components/backend/DataTable/modals/GroupByModal.svelte

@ -11,7 +11,11 @@
$: fields = $: fields =
viewTable && viewTable &&
Object.entries(viewTable.schema) Object.entries(viewTable.schema)
.filter(entry => entry[1].type !== FIELDS.LINK.type) .filter(
entry =>
entry[1].type !== FIELDS.LINK.type &&
entry[1].type !== FIELDS.FORMULA.type
)
.map(([key]) => key) .map(([key]) => key)
function saveView() { function saveView() {

8
packages/server/src/utilities/rowProcessor.js

@ -184,7 +184,13 @@ exports.inputProcessing = (user = {}, table, row) => {
} }
continue continue
} }
clonedRow[key] = exports.coerce(value, field.type) // specific case to delete formula values if they get saved
// type coercion cannot completely remove the field, so have to do it here
if (field.type === FieldTypes.FORMULA) {
delete clonedRow[key]
} else {
clonedRow[key] = exports.coerce(value, field.type)
}
} }
// handle auto columns - this returns an object like {table, row} // handle auto columns - this returns an object like {table, row}
return processAutoColumn(user, copiedTable, clonedRow) return processAutoColumn(user, copiedTable, clonedRow)

Loading…
Cancel
Save