|
|
|
@ -8,19 +8,32 @@ |
|
|
|
let username |
|
|
|
let password |
|
|
|
let newModel = { |
|
|
|
modelId: model._id, |
|
|
|
modelId: model, |
|
|
|
} |
|
|
|
let store = _bb.store |
|
|
|
let schema = {} |
|
|
|
let modelDef = {} |
|
|
|
|
|
|
|
$: fields = Object.keys(model.schema) |
|
|
|
$: if (model && model.length !== 0) { |
|
|
|
fetchModel() |
|
|
|
} |
|
|
|
|
|
|
|
$: fields = Object.keys(schema) |
|
|
|
|
|
|
|
async function fetchModel() { |
|
|
|
const FETCH_MODEL_URL = `/api/${_instanceId}/models/${model}` |
|
|
|
const response = await _bb.api.get(FETCH_MODEL_URL) |
|
|
|
modelDef = await response.json() |
|
|
|
schema = modelDef.schema |
|
|
|
} |
|
|
|
|
|
|
|
async function save() { |
|
|
|
const SAVE_RECORD_URL = `/api/${_instanceId}/records` |
|
|
|
const SAVE_RECORD_URL = `/api/${_instanceId}/${model}/records` |
|
|
|
const response = await _bb.api.post(SAVE_RECORD_URL, newModel) |
|
|
|
const json = await response.json() |
|
|
|
|
|
|
|
store.update(state => { |
|
|
|
state[model._id] = [...state[model._id], json] |
|
|
|
state[model._id] = [...state[model], json] |
|
|
|
return state |
|
|
|
}) |
|
|
|
} |
|
|
|
@ -46,14 +59,14 @@ |
|
|
|
</script> |
|
|
|
|
|
|
|
<form class="uk-form" on:submit|preventDefault> |
|
|
|
<h4>{model.name}</h4> |
|
|
|
<h4>{modelDef.name}</h4> |
|
|
|
<div> |
|
|
|
{#each fields as field} |
|
|
|
<div class="uk-margin"> |
|
|
|
<label class="form-label" for="form-stacked-text">{field}</label> |
|
|
|
<input |
|
|
|
class="uk-input" |
|
|
|
type={model.schema[field].type === 'string' ? 'text' : model.schema[field].type} |
|
|
|
type={schema[field].type === 'string' ? 'text' : schema[field].type} |
|
|
|
on:change={handleInput(field)} /> |
|
|
|
</div> |
|
|
|
{/each} |
|
|
|
|