|
|
|
@ -1,7 +1,7 @@ |
|
|
|
import { writable } from "svelte/store" |
|
|
|
import { cloneDeep } from "lodash/fp" |
|
|
|
import { uuid } from "builderStore/uuid" |
|
|
|
import api from "../api" |
|
|
|
import { update } from "lodash" |
|
|
|
|
|
|
|
export const getBackendUiStore = () => { |
|
|
|
const INITIAL_BACKEND_UI_STATE = { |
|
|
|
@ -68,11 +68,25 @@ export const getBackendUiStore = () => { |
|
|
|
return state |
|
|
|
}), |
|
|
|
save: async ({ model }) => { |
|
|
|
const updatedModel = cloneDeep(model) |
|
|
|
|
|
|
|
// update any renamed schema keys to reflect their names
|
|
|
|
for (let key in updatedModel.schema) { |
|
|
|
const field = updatedModel.schema[key] |
|
|
|
// field has been renamed
|
|
|
|
if (field.name && field.name !== key) { |
|
|
|
updatedModel.schema[field.name] = field |
|
|
|
updatedModel._rename = { old: key, updated: field.name } |
|
|
|
delete updatedModel.schema[key] |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const SAVE_MODEL_URL = `/api/models` |
|
|
|
const response = await api.post(SAVE_MODEL_URL, model) |
|
|
|
const json = await response.json() |
|
|
|
console.log(updatedModel); |
|
|
|
const response = await api.post(SAVE_MODEL_URL, updatedModel) |
|
|
|
const savedModel = await response.json() |
|
|
|
await store.actions.models.fetch() |
|
|
|
store.actions.models.select(json) |
|
|
|
store.actions.models.select(savedModel) |
|
|
|
}, |
|
|
|
addField: field => { |
|
|
|
store.update(state => { |
|
|
|
@ -82,7 +96,7 @@ export const getBackendUiStore = () => { |
|
|
|
|
|
|
|
state.draftModel.schema = { |
|
|
|
...state.draftModel.schema, |
|
|
|
[field.name]: field, |
|
|
|
[field.name]: cloneDeep(field), |
|
|
|
} |
|
|
|
state.selectedField = field.name |
|
|
|
state.tabs.NAVIGATION_PANEL = "NAVIGATE" |
|
|
|
|