diff --git a/src/actions/entries.js b/src/actions/entries.js index af0ff572..8e13349b 100644 --- a/src/actions/entries.js +++ b/src/actions/entries.js @@ -1,4 +1,5 @@ import { currentBackend } from '../backends/backend'; +import { getMedia } from '../reducers'; /* * Contant Declarations @@ -152,13 +153,15 @@ export function loadEntries(collection) { }; } -export function persistEntry(collection, entry, mediaFiles) { +export function persistEntry(collection, entry) { return (dispatch, getState) => { const state = getState(); const backend = currentBackend(state.config); + const MediaProxies = entry.get('mediaFiles').map(path => getMedia(state, path)); + dispatch(entryPersisting(collection, entry)); - backend.persistEntry(collection, entry, mediaFiles).then( - ({persistedEntry, persistedMediaFiles}) => { + backend.persistEntry(collection, entry, MediaProxies.toJS()).then( + ({ persistedEntry, persistedMediaFiles }) => { dispatch(entryPersisted(persistedEntry, persistedMediaFiles)); }, (error) => dispatch(entryPersistFail(collection, entry, error)) diff --git a/src/backends/backend.js b/src/backends/backend.js index 02d44065..fd8f0450 100644 --- a/src/backends/backend.js +++ b/src/backends/backend.js @@ -67,7 +67,7 @@ class Backend { }; } - persistEntry(collection, entryDraft) { + persistEntry(collection, entryDraft, MediaFiles) { const entryData = entryDraft.getIn(['entry', 'data']).toObject(); const entryObj = { path: entryDraft.getIn(['entry', 'path']), @@ -79,8 +79,7 @@ class Backend { collection.get('label') + ' “' + entryDraft.getIn(['entry', 'data', 'title']) + '”'; - - return this.implementation.persistEntry(collection, entryObj, entryDraft.get('mediaFiles').toJS(), { commitMessage }) + return this.implementation.persistEntry(collection, entryObj, MediaFiles, { commitMessage }) .then( (response) => ({ persistedEntry: this.entryWithFormat(collection)(response.persistedEntry), diff --git a/src/valueObjects/MediaProxy.js b/src/valueObjects/MediaProxy.js index d92e2993..c02e39ca 100644 --- a/src/valueObjects/MediaProxy.js +++ b/src/valueObjects/MediaProxy.js @@ -20,7 +20,8 @@ MediaProxy.prototype.toBase64 = function() { const fr = new FileReader(); fr.onload = (readerEvt) => { const binaryString = readerEvt.target.result; - resolve(btoa(binaryString)); + + resolve(binaryString.split('base64,')[1]); }; fr.readAsDataURL(this.file); });