e8ffc5e45bd8e8de9f1c78347ea6b11fd4817a40 chmalee Mon Dec 2 12:37:53 2024 -0800 Generate api keys for each user and store them in hgcentral.hubSpaceKeys diff --git src/hg/js/hgMyData.js src/hg/js/hgMyData.js index 46b6a8d..173738c 100644 --- src/hg/js/hgMyData.js +++ src/hg/js/hgMyData.js @@ -1,29 +1,86 @@ /* jshint esnext: true */ var debugCartJson = true; function prettyFileSize(num) { if (!num) {return "n/a";} if (num < (1000 * 1024)) { return `${(num/1000).toFixed(1)}KB`; } else if (num < (1000 * 1000 * 1024)) { return `${((num/1000)/1000).toFixed(1)}MB`; } else { return `${(((num/1000)/1000)/1000).toFixed(1)}GB`; } } +function generateApiKey() { + let apiKeyInstr = document.getElementById("apiKeyInstructions"); + let apiKeyDiv = document.getElementById("apiKey"); + + if (!document.getElementById("spinner")) { + let spinner = document.createElement("i"); + spinner.id = "spinner"; + spinner.classList.add("fa", "fa-spinner", "fa-spin"); + document.getElementById("generateApiKey").after(spinner); + } + + let handleSuccess = function(reqObj) { + apiKeyDiv.textContent = reqObj.apiKey; + apiKeyInstr.style.display = "block"; + let revokeDiv= document.getElementById("revokeDiv"); + revokeDiv.style.display = "block"; + document.getElementById("spinner").remove(); + + // remove the word 'already' from the message if we have just re-generated a key + let refreshSpan = document.getElementById("removeOnGenerate"); + if (refreshSpan) { + refreshSpan.style.display = "none"; + } + }; + + let cartData = {generateApiKey: {}}; + cart.setCgi("hgHubConnect"); + cart.send(cartData, handleSuccess); + cart.flush(); +} + +function revokeApiKeys() { + let apiKeyInstr = document.getElementById("apiKeyInstructions"); + let apiKeyDiv = document.getElementById("apiKey"); + + if (!document.getElementById("spinner")) { + let spinner = document.createElement("i"); + spinner.id = "spinner"; + spinner.classList.add("fa", "fa-spinner", "fa-spin"); + document.getElementById("revokeApiKeys").after(spinner); + } + + let handleSuccess = function(req) { + apiKeyInstr.style.display = "none"; + document.getElementById("spinner").remove(); + let generateDiv = document.getElementById("generateDiv"); + generateDiv.style.display = "block"; + let revokeDiv = document.getElementById("revokeDiv"); + revokeDiv.style.display = "none"; + }; + + let cartData = {revokeApiKey: {}}; + cart.setCgi("hgHubConnect"); + cart.send(cartData, handleSuccess); + cart.flush(); +} + // make our Uppy instance: const uppy = new Uppy.Uppy({ debug: true, allowMultipleUploadBatches: false, onBeforeUpload: (files) => { // set all the fileTypes and genomes from their selects let doUpload = true; for (let [key, file] of Object.entries(files)) { if (!file.meta.genome) { uppy.info(`Error: No genome selected for file ${file.name}!`, 'error', 2000); doUpload = false; continue; } else if (!file.meta.fileType) { uppy.info(`Error: File type not supported, please rename file: ${file.name}!`, 'error', 2000); doUpload = false;