Skip to content
Snippets Groups Projects
Commit 7e3fd000 authored by Swen Vermeul's avatar Swen Vermeul
Browse files

Merge branch 'master' of sissource.ethz.ch:sispub/jupyter-openbis-extension

parents 230b049e 8a568e6f
No related branches found
No related tags found
No related merge requests found
...@@ -5,6 +5,16 @@ define([ ...@@ -5,6 +5,16 @@ define([
], ],
function (dialog, common, state) { function (dialog, common, state) {
var spinner = document.createElement("IMG")
spinner.className="openbis-feedback"
spinner.src=""
function showSpinner() {
spinner.src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.8/ajax-loader.gif"
}
function hideSpinner() {
spinner.src=""
}
function writeMetaData(data) { function writeMetaData(data) {
var notebook = IPython.notebook var notebook = IPython.notebook
if (typeof notebook.metadata.datasets === 'undefined') { if (typeof notebook.metadata.datasets === 'undefined') {
...@@ -23,7 +33,7 @@ define([ ...@@ -23,7 +33,7 @@ define([
} }
} }
function show_datasets_table(env, data, datasets_table, downloadPath, entityIdentifier) { function show_datasets_table(env, data, datasets_table, pagingContainer, downloadPath, entityIdentifier) {
if (downloadPath.value === '') { if (downloadPath.value === '') {
downloadPath.value = data.cwd downloadPath.value = data.cwd
} }
...@@ -34,7 +44,7 @@ define([ ...@@ -34,7 +44,7 @@ define([
var thead = table.createTHead() var thead = table.createTHead()
var t_row = thead.insertRow() var t_row = thead.insertRow()
var titles = ['', 'permId', 'Type', 'Experiment', 'Registration Date', 'Status', 'Size'] var titles = ['', 'permId', 'Name', 'Type', 'Registration Date', 'Status', 'Size']
titles.forEach(function (title) { titles.forEach(function (title) {
t_row.insertCell().textContent = title t_row.insertCell().textContent = title
}) })
...@@ -52,8 +62,8 @@ define([ ...@@ -52,8 +62,8 @@ define([
var row = tbody.insertRow() var row = tbody.insertRow()
row.insertCell().appendChild(permId) row.insertCell().appendChild(permId)
row.insertCell().textContent = dataSet.permId row.insertCell().textContent = dataSet.permId
row.insertCell().textContent = dataSet.properties['$NAME']
row.insertCell().textContent = dataSet.type row.insertCell().textContent = dataSet.type
row.insertCell().textContent = dataSet.experiment
row.insertCell().textContent = dataSet.registrationDate row.insertCell().textContent = dataSet.registrationDate
row.insertCell().textContent = dataSet.status row.insertCell().textContent = dataSet.status
row.insertCell().textContent = dataSet.size row.insertCell().textContent = dataSet.size
...@@ -63,14 +73,16 @@ define([ ...@@ -63,14 +73,16 @@ define([
datasets_table.removeChild(datasets_table.firstChild); datasets_table.removeChild(datasets_table.firstChild);
} }
datasets_table.appendChild(table) datasets_table.appendChild(table)
datasets_table.style.overflow="auto"
const totalCount = parseInt(data.totalCount) const totalCount = parseInt(data.totalCount)
const count = parseInt(data.count) const count = parseInt(data.count)
const startWith = parseInt(data.start_with) const startWith = parseInt(data.start_with)
const hasNext = startWith + count < totalCount const hasNext = startWith + count < totalCount
const hasPrevious = startWith > 0 const hasPrevious = startWith > 0
const nextCmd = () => getDatasets(env, startWith+5, 5, entityIdentifier, datasets_table, downloadPath) const nextCmd = () => getDatasets(env, startWith+5, 5, entityIdentifier, datasets_table, pagingContainer, downloadPath)
const previousCmd = () => getDatasets(env, startWith-5, 5, entityIdentifier, datasets_table, downloadPath) const previousCmd = () => getDatasets(env, startWith-5, 5, entityIdentifier, datasets_table, pagingContainer, downloadPath)
var previous = document.createElement("A") var previous = document.createElement("A")
var linkText = document.createTextNode("<<< Previous") var linkText = document.createTextNode("<<< Previous")
...@@ -94,10 +106,13 @@ define([ ...@@ -94,10 +106,13 @@ define([
paging.appendChild(next) paging.appendChild(next)
} }
datasets_table.appendChild(paging) while (pagingContainer.firstChild) {
pagingContainer.removeChild(pagingContainer.firstChild);
}
pagingContainer.appendChild(paging)
} }
function getDatasets(env, startWith, count, entityIdentifier, datasets_table, downloadPath) { function getDatasets(env, startWith, count, entityIdentifier, datasets_table, pagingContainer, downloadPath) {
var connection_name = state.connection.name var connection_name = state.connection.name
if (!connection_name) { if (!connection_name) {
alert('Please choose a connection') alert('Please choose a connection')
...@@ -124,7 +139,7 @@ define([ ...@@ -124,7 +139,7 @@ define([
if (response.ok) { if (response.ok) {
response.json() response.json()
.then(function (data) { .then(function (data) {
show_datasets_table(env, data, datasets_table, downloadPath, entityIdentifier) show_datasets_table(env, data, datasets_table, pagingContainer, downloadPath, entityIdentifier)
}) })
} else { } else {
response.json() response.json()
...@@ -161,9 +176,10 @@ define([ ...@@ -161,9 +176,10 @@ define([
entityIdentifier.name = "entityIdentifier" entityIdentifier.name = "entityIdentifier"
entityIdentifier.size = 40 entityIdentifier.size = 40
entityIdentifier.placeholder = "Sample or Experiment identifier/permId" entityIdentifier.placeholder = "Sample or Experiment identifier/permId"
entityIdentifier.value = '' entityIdentifier.value = state.entityIdentifier
var datasets_table = document.createElement("DIV") var datasets_table = document.createElement("DIV")
var pagingContainer = document.createElement("DIV")
var show_datasets_btn = document.createElement("BUTTON") var show_datasets_btn = document.createElement("BUTTON")
show_datasets_btn.className = "btn-info btn-xs" show_datasets_btn.className = "btn-info btn-xs"
...@@ -173,6 +189,7 @@ define([ ...@@ -173,6 +189,7 @@ define([
showDataSets.appendChild(entityIdentifier) showDataSets.appendChild(entityIdentifier)
showDataSets.appendChild(show_datasets_btn) showDataSets.appendChild(show_datasets_btn)
showDataSets.appendChild(datasets_table) showDataSets.appendChild(datasets_table)
showDataSets.appendChild(pagingContainer)
var dataset_direct = document.createElement("P") var dataset_direct = document.createElement("P")
dataset_direct.style.marginTop = '10px' dataset_direct.style.marginTop = '10px'
...@@ -190,29 +207,43 @@ define([ ...@@ -190,29 +207,43 @@ define([
downloadPath.type = "text" downloadPath.type = "text"
downloadPath.name = "downloadPath" downloadPath.name = "downloadPath"
downloadPath.size = "90" downloadPath.size = "90"
downloadPath.value = '' downloadPath.value = state.workingDirectory
show_datasets_btn.onclick = show_datasets_btn.onclick =
() => getDatasets(env, 0, 5, entityIdentifier, datasets_table, downloadPath) () => getDatasets(env, 0, 5, entityIdentifier, datasets_table, pagingContainer, downloadPath)
var path = document.createElement("DIV") var path = document.createElement("DIV")
path.innerHTML = "<strong>download data to path: </strong>" path.innerHTML = "<strong>download data to path: </strong>"
path.appendChild(downloadPath) path.appendChild(downloadPath)
var download_dialog_box = document.createElement("DIV") var download_dialog_box = document.createElement("DIV")
download_dialog_box.appendChild(spinner)
download_dialog_box.appendChild(conn_table) download_dialog_box.appendChild(conn_table)
download_dialog_box.appendChild(showDataSets) download_dialog_box.appendChild(showDataSets)
download_dialog_box.appendChild(dataset_direct) download_dialog_box.appendChild(dataset_direct)
download_dialog_box.appendChild(path) download_dialog_box.appendChild(path)
function saveState() {
state.entityIdentifier = entityIdentifier.value
state.directPermId = datasetPermId.value
state.workingDirectory = downloadPath.value
}
function downloadDataset(connection_name, selectedPermIds, downloadPath) { function downloadDataset(connection_name, selectedPermIds, downloadPath) {
var spinnerCounter = selectedPermIds.length
for (permId of selectedPermIds) { for (permId of selectedPermIds) {
var downloadUrl = env.notebook.base_url + 'openbis/dataset/' + var downloadUrl = env.notebook.base_url + 'openbis/dataset/' +
connection_name + '/' + permId + '/' + encodeURIComponent(downloadPath) connection_name + '/' + permId + '/' + encodeURIComponent(downloadPath)
fetch(downloadUrl) fetch(downloadUrl)
.then(function (response) { .then(function (response) {
spinnerCounter = spinnerCounter - 1
if (spinnerCounter === 0) {
hideSpinner()
$('div.modal').remove()
$('div.modal-backdrop').remove()
}
if (response.ok) { if (response.ok) {
response.json() response.json()
.then(function (data) { .then(function (data) {
...@@ -264,13 +295,18 @@ define([ ...@@ -264,13 +295,18 @@ define([
} }
downloadDataset(selected_conn, selectedPermIds, downloadPath.value) downloadDataset(selected_conn, selectedPermIds, downloadPath.value)
showSpinner()
saveState()
return false
} }
dialog.modal({ dialog.modal({
body: download_dialog_box, body: download_dialog_box,
title: 'Download openBIS DataSets', title: 'Download openBIS DataSets',
buttons: { buttons: {
'Cancel': {}, 'Cancel': {
click: () => saveState()
},
'Download': { 'Download': {
class: 'btn-primary btn-large', class: 'btn-primary btn-large',
click: onDownloadClick, click: onDownloadClick,
......
...@@ -17,7 +17,9 @@ define([], ...@@ -17,7 +17,9 @@ define([],
unselectedDatasets: [], unselectedDatasets: [],
// download dialog // download dialog
selectedDatasets: new Set([]) selectedDatasets: new Set([]),
entityIdentifier: '',
workingDirectory: ''
} }
} }
) )
\ No newline at end of file
...@@ -36,27 +36,27 @@ KEY_STORE_PASSWORD = changeit ...@@ -36,27 +36,27 @@ KEY_STORE_PASSWORD = changeit
KEY_PASSWORD = changeit KEY_PASSWORD = changeit
# Standard technology PROTEOMICS is disabled by default # Standard technology PROTEOMICS is disabled by default
#PROTEOMICS = true PROTEOMICS = true
# Standard technology SCREENING is disabled by default # Standard technology SCREENING is disabled by default
#SCREENING = true SCREENING = true
# Standard technology ILLUMINA-NGS (ETH BSSE Setup) is disabled by default # Standard technology ILLUMINA-NGS (ETH BSSE Setup) is disabled by default
#ILLUMINA-NGS = true ILLUMINA-NGS = true
# Standard technology ELN-LIMS is disabled by default # Standard technology ELN-LIMS is disabled by default
#ELN-LIMS = true ELN-LIMS = true
# Standard technology MICROSCOPY is disabled by default # Standard technology MICROSCOPY is disabled by default
#MICROSCOPY = true MICROSCOPY = true
# Standard technology FLOW CYTOMETRY is disabled by default # Standard technology FLOW CYTOMETRY is disabled by default
#FLOW = true FLOW = true
# Full ELN/LIMS master data is enabled by default. This setting is meaningful only if ELN-LIMS is enabled # Full ELN/LIMS master data is enabled by default. This setting is meaningful only if ELN-LIMS is enabled
ELN-LIMS-MASTER-DATA = false #ELN-LIMS-MASTER-DATA = false
# #
# Comma-separated list of databases to backup. If the list is empty or undefined all databases # Comma-separated list of databases to backup. If the list is empty or undefined all databases
# will be backauped. # will be backauped.
#DATABASES_TO_BACKUP = #DATABASES_TO_BACKUP =
\ No newline at end of file
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