|
|
|
@ -1,6 +1,5 @@ |
|
|
|
import { writable } from "svelte/store" |
|
|
|
import { cloneDeep } from "lodash/fp" |
|
|
|
import { uuid } from "builderStore/uuid" |
|
|
|
import api from "../api" |
|
|
|
|
|
|
|
export const getBackendUiStore = () => { |
|
|
|
@ -60,10 +59,6 @@ export const getBackendUiStore = () => { |
|
|
|
}, |
|
|
|
select: model => |
|
|
|
store.update(state => { |
|
|
|
model = |
|
|
|
typeof model === "string" |
|
|
|
? state.models.find(m => m._id === model) |
|
|
|
: model |
|
|
|
state.selectedModel = model |
|
|
|
state.draftModel = cloneDeep(model) |
|
|
|
state.selectedField = "" |
|
|
|
@ -73,10 +68,24 @@ export const getBackendUiStore = () => { |
|
|
|
}), |
|
|
|
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` |
|
|
|
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((await response.json())._id) |
|
|
|
store.actions.models.select(savedModel) |
|
|
|
}, |
|
|
|
addField: field => { |
|
|
|
store.update(state => { |
|
|
|
@ -84,13 +93,11 @@ export const getBackendUiStore = () => { |
|
|
|
state.draftModel.schema = {} |
|
|
|
} |
|
|
|
|
|
|
|
const id = uuid() |
|
|
|
|
|
|
|
state.draftModel.schema = { |
|
|
|
...state.draftModel.schema, |
|
|
|
[id]: field, |
|
|
|
[field.name]: cloneDeep(field), |
|
|
|
} |
|
|
|
state.selectedField = id |
|
|
|
state.selectedField = field.name |
|
|
|
state.tabs.NAVIGATION_PANEL = "NAVIGATE" |
|
|
|
|
|
|
|
return state |
|
|
|
|