diff --git a/src/actions/entries.js b/src/actions/entries.js index c8d3914a..61b88e72 100644 --- a/src/actions/entries.js +++ b/src/actions/entries.js @@ -1,7 +1,9 @@ +import { List } from 'immutable'; import { actions as notifActions } from 'redux-notifications'; import { currentBackend } from '../backends/backend'; import { getIntegrationProvider } from '../integrations'; import { getMedia, selectIntegration } from '../reducers'; +import { createEntry } from '../valueObjects/Entry'; const { notifSend } = notifActions; @@ -205,10 +207,12 @@ export function loadEntries(collection, page = 0) { } export function createEmptyDraft(collection) { - return (dispatch, getState) => { - const state = getState(); - const backend = currentBackend(state.config); - const newEntry = backend.newEntry(collection); + return (dispatch) => { + const dataFields = {}; + collection.get('fields', List()).forEach((field) => { + dataFields[field.get('name')] = field.get('default', null); + }); + const newEntry = createEntry(collection.get('name'), '', '', { data: dataFields }); dispatch(emmptyDraftCreated(newEntry)); }; } diff --git a/src/backends/backend.js b/src/backends/backend.js index 229bc673..68939230 100644 --- a/src/backends/backend.js +++ b/src/backends/backend.js @@ -108,10 +108,6 @@ class Backend { ); } - newEntry(collection) { - return createEntry(collection.get('name')); - } - entryWithFormat(collectionOrEntity) { return (entry) => { const format = resolveFormat(collectionOrEntity, entry); diff --git a/src/components/ControlPanel/ControlPane.js b/src/components/ControlPanel/ControlPane.js index 6cd9566a..493c3da7 100644 --- a/src/components/ControlPanel/ControlPane.js +++ b/src/components/ControlPanel/ControlPane.js @@ -13,8 +13,7 @@ export default class ControlPane extends Component { const { entry, getMedia, onChange, onAddMedia, onRemoveMedia } = this.props; const widget = resolveWidget(field.get('widget')); const fieldName = field.get('name'); - const fieldDefaultValue = field.get('default'); - const value = entry.getIn(['data', fieldName], fieldDefaultValue); + const value = entry.getIn(['data', fieldName]); if (entry.size === 0 || entry.get('partial') === true) return null; return (