summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-06-05 16:42:37 +0200
committerJules Laplace <julescarbon@gmail.com>2018-06-05 16:42:37 +0200
commit5703450887a91e18b592d0b8ce7ea0e87c44088d (patch)
treea5fa32d273ae35adc8bdcc09416dc757501ac0ca /app
parentb0d534d174def2940287745535726c7e878dcbcc (diff)
delete dataset if all the files go away
Diffstat (limited to 'app')
-rw-r--r--app/client/dataset/dataset.actions.js1
-rw-r--r--app/client/modules/samplernn/samplernn.reducer.js47
-rw-r--r--app/client/modules/samplernn/samplernn.show.js2
-rw-r--r--app/server/db/model.js12
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) )
+ })
})
},