Skip to content
Snippets Groups Projects
Commit ea7b9c66 authored by anttil's avatar anttil
Browse files

Remember checkbox states in upload dialog

parent 7c35f077
No related branches found
No related tags found
No related merge requests found
...@@ -8,8 +8,10 @@ define([], ...@@ -8,8 +8,10 @@ define([],
uploadDataSetType: null, uploadDataSetType: null,
uploadDataSetTypes: {}, uploadDataSetTypes: {},
uploadEntityIdentifier: '', uploadEntityIdentifier: '',
getSelectedDataSets: () => [], datasetCheckboxes: [],
getSelectedFiles: () => [] fileCheckboxes: [],
selectedFiles: [],
unselectedDatasets: []
} }
} }
) )
\ No newline at end of file
...@@ -40,7 +40,7 @@ define([ ...@@ -40,7 +40,7 @@ define([
.then(function(data){ .then(function(data){
var values = Object.keys(data.files) var values = Object.keys(data.files)
values.sort() values.sort()
state.getSelectedFiles = createSelectTable(values, container, false) state.fileCheckboxes = createSelectTable(values, container, false, state.selectedFiles)
}) })
} }
else { else {
...@@ -55,7 +55,7 @@ define([ ...@@ -55,7 +55,7 @@ define([
if (datasets != null) { if (datasets != null) {
var values = Object.keys(datasets) var values = Object.keys(datasets)
values.sort() values.sort()
state.getSelectedDataSets = createSelectTable(values, container, true) state.datasetCheckboxes = createSelectTable(values, container, true, state.unselectedDatasets)
} }
} }
...@@ -156,7 +156,7 @@ define([ ...@@ -156,7 +156,7 @@ define([
}) })
} }
function createSelectTable(values, container, checked) { function createSelectTable(values, container, checked, overrides) {
var table = document.createElement("TABLE") var table = document.createElement("TABLE")
table.className = 'table-bordered table-striped table-condensed' table.className = 'table-bordered table-striped table-condensed'
...@@ -170,7 +170,7 @@ define([ ...@@ -170,7 +170,7 @@ define([
var checkbox = document.createElement("INPUT") var checkbox = document.createElement("INPUT")
checkbox.type = "checkbox" checkbox.type = "checkbox"
checkbox.value = value checkbox.value = value
checkbox.checked = checked checkbox.checked = overrides.includes(value) ? !checked : checked
checkboxes.push(checkbox) checkboxes.push(checkbox)
row.insertCell().appendChild(checkbox) row.insertCell().appendChild(checkbox)
var valueCell = row.insertCell() var valueCell = row.insertCell()
...@@ -179,7 +179,7 @@ define([ ...@@ -179,7 +179,7 @@ define([
}) })
container.appendChild(table) container.appendChild(table)
return () => checkboxes.filter(cb => cb.checked).map(cb => cb.value) return checkboxes
} }
return { return {
...@@ -255,6 +255,8 @@ define([ ...@@ -255,6 +255,8 @@ define([
} }
} }
state.uploadEntityIdentifier = sampleIdentifier.value state.uploadEntityIdentifier = sampleIdentifier.value
state.unselectedDatasets = state.datasetCheckboxes.filter(cb => !cb.checked).map(cb => cb.value)
state.selectedFiles = state.fileCheckboxes.filter(cb => cb.checked).map(cb => cb.value)
} }
function onOk() { function onOk() {
...@@ -268,7 +270,7 @@ define([ ...@@ -268,7 +270,7 @@ define([
var uploadUrl = env.notebook.base_url + 'openbis/dataset/' + connection_name var uploadUrl = env.notebook.base_url + 'openbis/dataset/' + connection_name
var notebook = IPython.notebook var notebook = IPython.notebook
var files = state.getSelectedFiles() var files = state.fileCheckboxes.filter(cb => cb.checked).map(cb => cb.value)
var re = /\/notebooks\/(.*?)$/ var re = /\/notebooks\/(.*?)$/
var filepath = window.location.pathname.match(re)[1] var filepath = window.location.pathname.match(re)[1]
files.push(filepath) files.push(filepath)
...@@ -281,6 +283,7 @@ define([ ...@@ -281,6 +283,7 @@ define([
var dataSetInfo = { var dataSetInfo = {
"type": dataset_types.value, "type": dataset_types.value,
"files": files, "files": files,
"parents": state.datasetCheckboxes.filter(cb => cb.checked).map(cb => cb.value),
"sampleIdentifier": sampleIdentifier.value, "sampleIdentifier": sampleIdentifier.value,
"props": props "props": props
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment