diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-06-05 16:42:37 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-06-05 16:42:37 +0200 |
| commit | 5703450887a91e18b592d0b8ce7ea0e87c44088d (patch) | |
| tree | a5fa32d273ae35adc8bdcc09416dc757501ac0ca /app | |
| parent | b0d534d174def2940287745535726c7e878dcbcc (diff) | |
delete dataset if all the files go away
Diffstat (limited to 'app')
| -rw-r--r-- | app/client/dataset/dataset.actions.js | 1 | ||||
| -rw-r--r-- | app/client/modules/samplernn/samplernn.reducer.js | 47 | ||||
| -rw-r--r-- | app/client/modules/samplernn/samplernn.show.js | 2 | ||||
| -rw-r--r-- | app/server/db/model.js | 12 |
4 files changed, 54 insertions, 8 deletions
diff --git a/app/client/dataset/dataset.actions.js b/app/client/dataset/dataset.actions.js index dd4ea60..f68f337 100644 --- a/app/client/dataset/dataset.actions.js +++ b/app/client/dataset/dataset.actions.js @@ -61,6 +61,7 @@ export const fetchURL = (module, folder, url) => dispatch => { actions.file.create({ folder_id: folder.id, module: module.name, + dataset: media.token, activity: 'url', duration: parseInt(media.duration) || 0, epoch: 0, diff --git a/app/client/modules/samplernn/samplernn.reducer.js b/app/client/modules/samplernn/samplernn.reducer.js index fd9dbff..1397a0b 100644 --- a/app/client/modules/samplernn/samplernn.reducer.js +++ b/app/client/modules/samplernn/samplernn.reducer.js @@ -144,8 +144,8 @@ const samplernnReducer = (state = samplernnInitialState, action) => { output: !action.data.generated ? [] : [action.data.id], } } - console.log('old_dataset', old_dataset_update.name) - console.log('new_dataset', new_dataset_update.name) + console.log('old_dataset', old_dataset_update.name) + console.log('new_dataset', new_dataset_update.name) return { ...state, loading: false, @@ -169,15 +169,54 @@ const samplernnReducer = (state = samplernnInitialState, action) => { return state case types.file.destroy: + console.log(action.data) if (action.data.module === 'samplernn') { - // delete - const { [action.data.id]: removedFile, ...fileLookup } = state.data.fileLookup + // delete the key from fileLookup + let fileLookup = { + ...state.data.fileLookup + } + let datasetLookup = { + ...state.data.datasetLookup + } + let folderLookup = { + ...state.data.folderLookup + } + let old_file = fileLookup[action.data.id] + if (!old_file) return state + let old_dataset = state.data.datasetLookup[old_file.dataset] + let dataset + console.log(old_file.dataset, old_dataset) + if (old_dataset) { + dataset = { + ...old_dataset, + input: old_dataset.input.filter(id => id !== old_file.id), + output: old_dataset.output.filter(id => id !== old_file.id), + } + console.log(dataset.input.length, dataset.checkpoints.length, dataset.output.length) + if (! dataset.input.length && ! dataset.checkpoints.length && ! dataset.output.length) { + console.log('dataset is empty') + delete datasetLookup[old_file.dataset] + let old_folder = folderLookup[old_file.folder_id] + folderLookup[old_file.folder_id] = { + ...old_folder, + datasets: old_folder.datasets.filter(name => name !== old_file.dataset) + } + } else { + console.log('dataset just needs sweeping') + datasetLookup[old_file.dataset ] = dataset + } + } + delete fileLookup[old_file.id] + // console.log(fileLookup) + return { ...state, loading: false, data: { ...state.data, + folderLookup, fileLookup, + datasetLookup, } } } diff --git a/app/client/modules/samplernn/samplernn.show.js b/app/client/modules/samplernn/samplernn.show.js index 982ec53..0e6db32 100644 --- a/app/client/modules/samplernn/samplernn.show.js +++ b/app/client/modules/samplernn/samplernn.show.js @@ -65,7 +65,7 @@ class SampleRNNShow extends Component { const { fileLookup } = samplernn.data const input = fileLookup[dataset.input[0]] if (! input) return null - if (input.name.match(/(gif|jpe?g|png)$/i)) return null + if (input.name && input.name.match(/(gif|jpe?g|png)$/i)) return null return ( <div> <div class={'actions'}> diff --git a/app/server/db/model.js b/app/server/db/model.js index 18ce28c..98cca41 100644 --- a/app/server/db/model.js +++ b/app/server/db/model.js @@ -131,9 +131,15 @@ module.exports = function modelScope(type, db_model, _props) { destroy: (id) => { return new Promise( (resolve, reject) => { - crud.destroy(id).then( (data) => { - resolve(data.toJSON()) - })// .catch( () => res.sendStatus(500) ) + crud.show(id).then( data => { + if (! data) { + console.error('no record found', id) + return reject('no record found') + } + crud.destroy(id).then( (destroyData) => { + resolve(data.toJSON()) + })// .catch( () => res.sendStatus(500) ) + }) }) }, |
