lint fix
This commit is contained in:
parent
3e58ad9031
commit
d37778d809
|
@ -1,7 +1,10 @@
|
||||||
import { cloneDeep } from "lodash/fp"
|
import { cloneDeep } from "lodash/fp"
|
||||||
import { get } from "svelte/store"
|
import { get } from "svelte/store"
|
||||||
import { store } from "builderStore"
|
import { store } from "builderStore"
|
||||||
import { tables as tablesStore, queries as queriesStores } from 'builderStore/store/backend/'
|
import {
|
||||||
|
tables as tablesStore,
|
||||||
|
queries as queriesStores,
|
||||||
|
} from "builderStore/store/backend/"
|
||||||
import { findComponentPath } from "./storeUtils"
|
import { findComponentPath } from "./storeUtils"
|
||||||
import { makePropSafe } from "@budibase/string-templates"
|
import { makePropSafe } from "@budibase/string-templates"
|
||||||
import { TableNames } from "../constants"
|
import { TableNames } from "../constants"
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { writable } from "svelte/store"
|
import { writable } from "svelte/store"
|
||||||
|
|
||||||
const INITIAL_BACKEND_UI_STATE = {
|
const INITIAL_BACKEND_UI_STATE = {}
|
||||||
}
|
|
||||||
|
|
||||||
export const getBackendUiStore = () => {
|
export const getBackendUiStore = () => {
|
||||||
const store = writable({ ...INITIAL_BACKEND_UI_STATE })
|
const store = writable({ ...INITIAL_BACKEND_UI_STATE })
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
import { writable } from "svelte/store"
|
import { writable } from "svelte/store"
|
||||||
|
|
||||||
export const database = writable({})
|
export const database = writable({})
|
||||||
|
|
|
@ -20,7 +20,7 @@ function createDatasourcesStore() {
|
||||||
},
|
},
|
||||||
select: async datasourceId => {
|
select: async datasourceId => {
|
||||||
update(state => ({ ...state, selected: datasourceId }))
|
update(state => ({ ...state, selected: datasourceId }))
|
||||||
queries.update(state => ({...state, selected: null}))
|
queries.update(state => ({ ...state, selected: null }))
|
||||||
},
|
},
|
||||||
save: async datasource => {
|
save: async datasource => {
|
||||||
const response = await api.post("/api/datasources", datasource)
|
const response = await api.post("/api/datasources", datasource)
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import { writable } from "svelte/store"
|
import { writable, get } from "svelte/store"
|
||||||
import { datasources, integrations } from "./"
|
import { datasources, integrations } from "./"
|
||||||
import api from "../../api"
|
import api from "../../api"
|
||||||
|
|
||||||
function createQueriesStore() {
|
function createQueriesStore() {
|
||||||
const { subscribe, set, update } = writable({list: [], selected: null})
|
const { subscribe, set, update } = writable({ list: [], selected: null })
|
||||||
|
|
||||||
return {
|
return {
|
||||||
subscribe,
|
subscribe,
|
||||||
|
@ -12,7 +12,7 @@ function createQueriesStore() {
|
||||||
fetch: async () => {
|
fetch: async () => {
|
||||||
const response = await api.get(`/api/queries`)
|
const response = await api.get(`/api/queries`)
|
||||||
const json = await response.json()
|
const json = await response.json()
|
||||||
update(state => ({...state, list: json}))
|
update(state => ({ ...state, list: json }))
|
||||||
return json
|
return json
|
||||||
},
|
},
|
||||||
save: async (datasourceId, query) => {
|
save: async (datasourceId, query) => {
|
||||||
|
@ -44,7 +44,7 @@ function createQueriesStore() {
|
||||||
} else {
|
} else {
|
||||||
queries.push(json)
|
queries.push(json)
|
||||||
}
|
}
|
||||||
return { list: queries, selected: json._id}
|
return { list: queries, selected: json._id }
|
||||||
})
|
})
|
||||||
return json
|
return json
|
||||||
},
|
},
|
||||||
|
@ -55,9 +55,7 @@ function createQueriesStore() {
|
||||||
delete: async query => {
|
delete: async query => {
|
||||||
await api.delete(`/api/queries/${query._id}/${query._rev}`)
|
await api.delete(`/api/queries/${query._id}/${query._rev}`)
|
||||||
update(state => {
|
update(state => {
|
||||||
state.list = state.list.filter(
|
state.list = state.list.filter(existing => existing._id !== query._id)
|
||||||
existing => existing._id !== query._id
|
|
||||||
)
|
|
||||||
if (state.selected === query._id) {
|
if (state.selected === query._id) {
|
||||||
state.selected = null
|
state.selected = null
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,8 +23,8 @@ function createRolesStore() {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getRoles() {
|
async function getRoles() {
|
||||||
const response = await api.get("/api/roles")
|
const response = await api.get("/api/roles")
|
||||||
return await response.json()
|
return await response.json()
|
||||||
}
|
}
|
||||||
|
|
||||||
export const roles = createRolesStore()
|
export const roles = createRolesStore()
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { writable,get } from "svelte/store"
|
import { writable, get } from "svelte/store"
|
||||||
import { views } from './'
|
import { views } from "./"
|
||||||
|
|
||||||
function createRowsStore() {
|
function createRowsStore() {
|
||||||
const { subscribe } = writable([])
|
const { subscribe } = writable([])
|
||||||
|
@ -12,4 +12,3 @@ function createRowsStore() {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const rows = createRowsStore()
|
export const rows = createRowsStore()
|
||||||
|
|
||||||
|
|
|
@ -1,121 +1,121 @@
|
||||||
import { writable, get } from "svelte/store"
|
import { writable, get } from "svelte/store"
|
||||||
import { views } from './'
|
import { views } from "./"
|
||||||
import { cloneDeep } from "lodash/fp"
|
import { cloneDeep } from "lodash/fp"
|
||||||
import api from "../../api"
|
import api from "../../api"
|
||||||
|
|
||||||
function createTablesStore() {
|
function createTablesStore() {
|
||||||
const store = writable({
|
const store = writable({
|
||||||
list: [],
|
list: [],
|
||||||
selected: {},
|
selected: {},
|
||||||
draft: {},
|
draft: {},
|
||||||
})
|
})
|
||||||
const { subscribe, update, set } = store
|
const { subscribe, update, set } = store
|
||||||
|
|
||||||
async function fetch() {
|
async function fetch() {
|
||||||
const tablesResponse = await api.get(`/api/tables`)
|
const tablesResponse = await api.get(`/api/tables`)
|
||||||
const tables = await tablesResponse.json()
|
const tables = await tablesResponse.json()
|
||||||
update(state => ({...state, list: tables}))
|
update(state => ({ ...state, list: tables }))
|
||||||
|
}
|
||||||
|
|
||||||
|
async function select(table) {
|
||||||
|
if (!table) {
|
||||||
|
console.log("Setting selected to null")
|
||||||
|
update(state => ({
|
||||||
|
...state,
|
||||||
|
selected: {},
|
||||||
|
}))
|
||||||
|
} else {
|
||||||
|
console.log("Setting selected to null")
|
||||||
|
update(state => ({
|
||||||
|
...state,
|
||||||
|
selected: table,
|
||||||
|
draft: cloneDeep(table),
|
||||||
|
}))
|
||||||
|
views.select({ name: `all_${table._id}` })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function save(table) {
|
||||||
|
const updatedTable = cloneDeep(table)
|
||||||
|
const oldTable = get(store).list.filter(t => t._id === table._id)[0]
|
||||||
|
|
||||||
|
const fieldNames = []
|
||||||
|
// update any renamed schema keys to reflect their names
|
||||||
|
for (let key of Object.keys(updatedTable.schema)) {
|
||||||
|
// if field name has been seen before remove it
|
||||||
|
if (fieldNames.indexOf(key.toLowerCase()) !== -1) {
|
||||||
|
delete updatedTable.schema[key]
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
const field = updatedTable.schema[key]
|
||||||
|
const oldField = oldTable?.schema[key]
|
||||||
|
// if the type has changed then revert back to the old field
|
||||||
|
if (oldField != null && oldField?.type !== field.type) {
|
||||||
|
updatedTable.schema[key] = oldField
|
||||||
|
}
|
||||||
|
// field has been renamed
|
||||||
|
if (field.name && field.name !== key) {
|
||||||
|
updatedTable.schema[field.name] = field
|
||||||
|
updatedTable._rename = { old: key, updated: field.name }
|
||||||
|
delete updatedTable.schema[key]
|
||||||
|
}
|
||||||
|
// finally record this field has been used
|
||||||
|
fieldNames.push(key.toLowerCase())
|
||||||
}
|
}
|
||||||
|
|
||||||
async function select(table) {
|
const response = await api.post(`/api/tables`, updatedTable)
|
||||||
if (!table) {
|
const savedTable = await response.json()
|
||||||
console.log('Setting selected to null')
|
await fetch()
|
||||||
update(state => ({
|
await select(savedTable)
|
||||||
...state,
|
return savedTable
|
||||||
selected: {}
|
}
|
||||||
}))
|
|
||||||
} else {
|
|
||||||
console.log('Setting selected to null')
|
|
||||||
update(state => ({
|
|
||||||
...state,
|
|
||||||
selected: table,
|
|
||||||
draft: cloneDeep(table),
|
|
||||||
}))
|
|
||||||
views.select({ name: `all_${table._id}` })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function save(table) {
|
|
||||||
const updatedTable = cloneDeep(table)
|
|
||||||
const oldTable = get(store).list.filter(t => t._id === table._id)[0]
|
|
||||||
|
|
||||||
const fieldNames = []
|
|
||||||
// update any renamed schema keys to reflect their names
|
|
||||||
for (let key of Object.keys(updatedTable.schema)) {
|
|
||||||
// if field name has been seen before remove it
|
|
||||||
if (fieldNames.indexOf(key.toLowerCase()) !== -1) {
|
|
||||||
delete updatedTable.schema[key]
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
const field = updatedTable.schema[key]
|
|
||||||
const oldField = oldTable?.schema[key]
|
|
||||||
// if the type has changed then revert back to the old field
|
|
||||||
if (oldField != null && oldField?.type !== field.type) {
|
|
||||||
updatedTable.schema[key] = oldField
|
|
||||||
}
|
|
||||||
// field has been renamed
|
|
||||||
if (field.name && field.name !== key) {
|
|
||||||
updatedTable.schema[field.name] = field
|
|
||||||
updatedTable._rename = { old: key, updated: field.name }
|
|
||||||
delete updatedTable.schema[key]
|
|
||||||
}
|
|
||||||
// finally record this field has been used
|
|
||||||
fieldNames.push(key.toLowerCase())
|
|
||||||
}
|
|
||||||
|
|
||||||
const response = await api.post(`/api/tables`, updatedTable)
|
|
||||||
const savedTable = await response.json()
|
|
||||||
await fetch()
|
|
||||||
await select(savedTable)
|
|
||||||
return savedTable
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
subscribe,
|
subscribe,
|
||||||
set,
|
set,
|
||||||
fetch,
|
fetch,
|
||||||
select,
|
select,
|
||||||
save,
|
save,
|
||||||
delete: async table => {
|
delete: async table => {
|
||||||
await api.delete(`/api/tables/${table._id}/${table._rev}`)
|
await api.delete(`/api/tables/${table._id}/${table._rev}`)
|
||||||
update(state => ({
|
update(state => ({
|
||||||
...state,
|
...state,
|
||||||
list: state.list.filter(existing => existing._id !== table._id),
|
list: state.list.filter(existing => existing._id !== table._id),
|
||||||
selected: {}
|
selected: {},
|
||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
saveField: ({ originalName, field, primaryDisplay = false, indexes }) => {
|
saveField: ({ originalName, field, primaryDisplay = false, indexes }) => {
|
||||||
update(state => {
|
update(state => {
|
||||||
// delete the original if renaming
|
// delete the original if renaming
|
||||||
// need to handle if the column had no name, empty string
|
// need to handle if the column had no name, empty string
|
||||||
if (originalName || originalName === "") {
|
if (originalName || originalName === "") {
|
||||||
delete state.draft.schema[originalName]
|
delete state.draft.schema[originalName]
|
||||||
state.draft._rename = {
|
state.draft._rename = {
|
||||||
old: originalName,
|
old: originalName,
|
||||||
updated: field.name,
|
updated: field.name,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Optionally set display column
|
// Optionally set display column
|
||||||
if (primaryDisplay) {
|
if (primaryDisplay) {
|
||||||
state.draft.primaryDisplay = field.name
|
state.draft.primaryDisplay = field.name
|
||||||
}
|
}
|
||||||
|
|
||||||
if (indexes) {
|
if (indexes) {
|
||||||
state.draft.indexes = indexes
|
state.draft.indexes = indexes
|
||||||
}
|
}
|
||||||
|
|
||||||
state.draft.schema[field.name] = cloneDeep(field)
|
state.draft.schema[field.name] = cloneDeep(field)
|
||||||
save(state.draft)
|
save(state.draft)
|
||||||
return state
|
return state
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
deleteField: field => {
|
deleteField: field => {
|
||||||
update(state => {
|
update(state => {
|
||||||
delete state.draft.schema[field.name]
|
delete state.draft.schema[field.name]
|
||||||
save(state.draft)
|
save(state.draft)
|
||||||
return state
|
return state
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,43 +4,43 @@ import api from "../../api"
|
||||||
|
|
||||||
function createViewsStore() {
|
function createViewsStore() {
|
||||||
const { subscribe, update } = writable({
|
const { subscribe, update } = writable({
|
||||||
list: [],
|
list: [],
|
||||||
selected: null
|
selected: null,
|
||||||
})
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
subscribe,
|
subscribe,
|
||||||
select: view => {
|
select: view => {
|
||||||
update(state => ({
|
update(state => ({
|
||||||
...state,
|
...state,
|
||||||
selected: view,
|
selected: view,
|
||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
delete: async view => {
|
delete: async view => {
|
||||||
await api.delete(`/api/views/${view}`)
|
await api.delete(`/api/views/${view}`)
|
||||||
await tables.fetch()
|
await tables.fetch()
|
||||||
},
|
},
|
||||||
save: async view => {
|
save: async view => {
|
||||||
const response = await api.post(`/api/views`, view)
|
const response = await api.post(`/api/views`, view)
|
||||||
const json = await response.json()
|
const json = await response.json()
|
||||||
|
|
||||||
const viewMeta = {
|
const viewMeta = {
|
||||||
name: view.name,
|
name: view.name,
|
||||||
...json,
|
...json,
|
||||||
}
|
}
|
||||||
|
|
||||||
update(state => {
|
update(state => {
|
||||||
const viewTable = get(tables).list.find(
|
const viewTable = get(tables).list.find(
|
||||||
table => table._id === view.tableId
|
table => table._id === view.tableId
|
||||||
)
|
)
|
||||||
|
|
||||||
if (view.originalName) delete viewTable.views[view.originalName]
|
if (view.originalName) delete viewTable.views[view.originalName]
|
||||||
viewTable.views[view.name] = viewMeta
|
viewTable.views[view.name] = viewMeta
|
||||||
|
|
||||||
state.tables = state.tables
|
state.tables = state.tables
|
||||||
state.selectedView = viewMeta
|
state.selectedView = viewMeta
|
||||||
return state
|
return state
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,13 @@ import {
|
||||||
selectedAccessRole,
|
selectedAccessRole,
|
||||||
} from "builderStore"
|
} from "builderStore"
|
||||||
// Backendstores
|
// Backendstores
|
||||||
import { datasources, integrations, queries, database, tables } from 'builderStore/store/backend/'
|
import {
|
||||||
|
datasources,
|
||||||
|
integrations,
|
||||||
|
queries,
|
||||||
|
database,
|
||||||
|
tables,
|
||||||
|
} from "builderStore/store/backend/"
|
||||||
|
|
||||||
import { fetchComponentLibDefinitions } from "../loadComponentLibraries"
|
import { fetchComponentLibDefinitions } from "../loadComponentLibraries"
|
||||||
import api from "../api"
|
import api from "../api"
|
||||||
|
@ -61,7 +67,12 @@ export const getFrontendStore = () => {
|
||||||
await hostingStore.actions.fetch()
|
await hostingStore.actions.fetch()
|
||||||
|
|
||||||
// Initialise backend stores
|
// Initialise backend stores
|
||||||
const [_datasources, _integrations, _queries, _tables] = await Promise.all([
|
const [
|
||||||
|
_datasources,
|
||||||
|
_integrations,
|
||||||
|
_queries,
|
||||||
|
_tables,
|
||||||
|
] = await Promise.all([
|
||||||
api.get(`/api/datasources`).then(r => r.json()),
|
api.get(`/api/datasources`).then(r => r.json()),
|
||||||
api.get("/api/integrations").then(r => r.json()),
|
api.get("/api/integrations").then(r => r.json()),
|
||||||
api.get(`/api/queries`).then(r => r.json()),
|
api.get(`/api/queries`).then(r => r.json()),
|
||||||
|
@ -74,9 +85,8 @@ export const getFrontendStore = () => {
|
||||||
tables.set({
|
tables.set({
|
||||||
list: _tables,
|
list: _tables,
|
||||||
selected: {},
|
selected: {},
|
||||||
draft: {}
|
draft: {},
|
||||||
})
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
routing: {
|
routing: {
|
||||||
fetch: async () => {
|
fetch: async () => {
|
||||||
|
|
Loading…
Reference in New Issue