65d4e214bd753220cd3f1b9700f107ef1ae648da
chmalee
Fri May 24 09:36:42 2024 -0700
Make hubSpace autoSql files, haven't created the table yet
diff --git src/hg/js/hgMyData.js src/hg/js/hgMyData.js
index 0882dd3..2c1377b 100644
--- src/hg/js/hgMyData.js
+++ src/hg/js/hgMyData.js
@@ -193,95 +193,55 @@
};
let onError = function(err) {
removeCancelAllButton();
if (err.originalResponse !== null) {
alert(err.originalResponse._xhr.responseText);
} else {
alert(err);
}
};
let onProgress = function(bytesSent, bytesTotal) {
this.updateProgress((bytesSent / bytesTotal) * 100);
};
- let createdHubs = {}; // object of {name, db} objects keyed by file names
- let allSameHub = true; // by default, for multiple files, put them in the same hub
- let getOrCreateHub = function(fileName) {
- let valueStr = document.getElementById(`${fileName}#hubInput`).selectedOptions[0].value;
- if (valueStr !== "Create New") {
- return valueStr;
- }
- let hubName = "test"; // default to test
- let db = "hg38";
- // create a dialog:
- let dialog = document.createElement("dialog");
- dialog.id = "hubCreate";
- let closeBtn = document.createElement("button");
- closeBtn.textContent = "Create Hub";
- let cancelBtn = document.createElement("button");
- cancelBtn.textContent = "Cancel";
- dialog.appendChild(closeBtn);
- dialog.appendChild(cancelBtn);
- document.body.appendChild(dialog);
-
- // open the dialog in modal mode to block the rest of the page:
- if (allSameHub)
- dialog.showModal();
-
- // on close update the right variables
- closeBtn.addEventListener("click", () => {
- createdHubs[fileName] = {"name": hubName, "db": db};
- dialog.close();
- });
- // on cancel do nothing and don't submit:
- cancelBtn.addEventListener("click", () => {
- dialog.close();
- });
- };
-
for (let f in uiState.toUpload) {
file = uiState.toUpload[f];
if (useTus) {
let progMeter = makeNewProgMeter(file.name);
let tusOptions = {
endpoint: tusdServer,
metadata: {
filename: file.name,
fileSize: file.size,
fileType: document.getElementById(`${file.name}#typeInput`).selectedOptions[0].value,
- hub: getOrCreateHub(file.name),
genome: document.getElementById(`${file.name}#genomeInput`).selectedOptions[0].value,
},
onProgress: onProgress.bind(progMeter),
onBeforeRequest: onBeforeRequest,
onSuccess: onSuccess.bind(null, file),
onError: onError,
- retryDelays: [1000],
+ retryDelays: null,
};
// TODO: get the uploadUrl from the tusd server
// use a pre-create hook to validate the user
// and get an uploadUrl
- if (tusOptions.metadata.hub !== null) {
let tusUpload = new tus.Upload(file, tusOptions);
uiState.pendingQueue.push([tusUpload, file]);
tusUpload.start();
} else {
- break; // cancel button was clicked when creating a hub, stop uploads for now
- }
- } else {
// make a new XMLHttpRequest for each file, if tusd-tusclient not supported
new sendFile(file);
}
}
addCancelAllButton();
return;
}
function clearPickedFiles() {
while (uiState.pickedList.firstChild) {
uiState.pickedList.removeChild(uiState.pickedList.firstChild);
}
uiState.input = createInput();
uiState.toUpload = {};
togglePickStateMessage(true);
@@ -320,89 +280,65 @@
genomeInp.classList.add("genomePicker");
genomeInp.name = `${fileName}#genomeInput`;
genomeInp.id = `${fileName}#genomeInput`;
genomeInp.form = formName;
let labelChoice = document.createElement("option");
labelChoice.label = "Choose Genome";
labelChoice.value = "Choose Genome";
labelChoice.selected = true;
labelChoice.disabled = true;
genomeInp.appendChild(labelChoice);
let choices = ["Human hg38", "Human T2T", "Human hg19", "Mouse mm39", "Mouse mm10"];
choices.forEach( (e) => {
let choice = document.createElement("option");
choice.id = e;
choice.label = e;
- choice.value = e;
+ choice.value = e.split(" ")[1];
genomeInp.appendChild(choice);
});
return genomeInp;
}
function makeTypeSelect(formName, fileName) {
let typeInp = document.createElement("select");
typeInp.classList.add("typePicker");
typeInp.name = `${fileName}#typeInput`;
typeInp.id = `${fileName}#typeInput`;
typeInp.form = formName;
let labelChoice = document.createElement("option");
labelChoice.label = "Choose File Type";
labelChoice.value = "Choose File Type";
labelChoice.selected = true;
labelChoice.disabled = true;
typeInp.appendChild(labelChoice);
let choices = ["hub.txt", "bigBed", "bam", "vcf", "bigWig"];
choices.forEach( (e) => {
let choice = document.createElement("option");
choice.id = e;
choice.label = e;
choice.value = e;
typeInp.appendChild(choice);
});
return typeInp;
}
- function makeHubSelect(formName, fileName) {
- let hubInp = document.createElement("select");
- hubInp.classList.add("hubPicker");
- hubInp.name = `${fileName}#hubInput`;
- hubInp.id = `${fileName}#hubInput`;
- hubInp.form = formName;
- let labelChoice = document.createElement("option");
- labelChoice.label = "Choose Hub";
- labelChoice.value = "Choose Hub";
- labelChoice.selected = true;
- labelChoice.disabled = true;
- hubInp.appendChild(labelChoice);
- let choices = ["Create New", "temp"];
- choices.forEach( (e) => {
- let choice = document.createElement("option");
- choice.id = e;
- choice.label = e;
- choice.value = e;
- hubInp.appendChild(choice);
- });
- return hubInp;
- }
function makeFormControlsForFile(li, formName, fileName) {
typeInp = makeTypeSelect(formName, fileName);
genomeInp = makeGenomeSelect(formName, fileName);
- hubInp = makeHubSelect(formName, fileName);
li.append(typeInp);
li.append(genomeInp);
- li.append(hubInp);
}
function listPickedFiles() {
// let the user choose files:
if (uiState.input.files.length === 0) {
console.log("not input");
return;
} else {
let displayList;
let displayListForm = document.getElementsByClassName("pickedFilesForm");
if (displayListForm.length === 0) {
displayListForm = document.createElement("form");
displayListForm.id = "displayListForm";
displayListForm.classList.add("pickedFilesForm");
displayList = document.createElement("ul");
@@ -508,31 +444,30 @@
render: function(data, type, row) {
// click to call hgHubDelete file
return "";
}
},
{
targets: 3,
render: function(data, type, row) {
return dataTablePrintSize(data);
}
}
],
columns: [
{data: "", },
{data: "", },
- {data: "hub", title: "Hub"},
{data: "genome", title: "Genome"},
{data: "name", title: "File name"},
{data: "size", title: "File size", render: dataTablePrintSize},
{data: "createTime", title: "Creation Time"},
],
order: [[6, 'desc']],
drawCallback: function(settings) {
let btns = document.querySelectorAll('.deleteFileBtn');
let i;
for (i = 0; i < btns.length; i++) {
let fnameNode = btns[i].parentNode.nextElementSibling.childNodes[0];
if (fnameNode.nodeName !== "#text") {continue;}
let fname = fnameNode.nodeValue;
btns[i].addEventListener("click", (e) => {
deleteFile(i, fname);