aboutsummaryrefslogtreecommitdiff
path: root/qc_app/static/js
diff options
context:
space:
mode:
Diffstat (limited to 'qc_app/static/js')
-rw-r--r--qc_app/static/js/select_platform.js70
-rw-r--r--qc_app/static/js/upload_progress.js97
-rw-r--r--qc_app/static/js/upload_samples.js132
-rw-r--r--qc_app/static/js/utils.js10
4 files changed, 0 insertions, 309 deletions
diff --git a/qc_app/static/js/select_platform.js b/qc_app/static/js/select_platform.js
deleted file mode 100644
index 4fdd865..0000000
--- a/qc_app/static/js/select_platform.js
+++ /dev/null
@@ -1,70 +0,0 @@
-function radio_column(chip) {
- col = document.createElement("td");
- radio = document.createElement("input");
- radio.setAttribute("type", "radio");
- radio.setAttribute("name", "genechipid");
- radio.setAttribute("value", chip["GeneChipId"]);
- radio.setAttribute("required", "required");
- col.appendChild(radio);
- return col;
-}
-
-function setup_genechips(genechip_data) {
- columns = ["GeneChipId", "GeneChipName"]
- submit_button = document.querySelector(
- "#select-platform-form button[type='submit']");
- elt = document.getElementById(
- "genechips-table").getElementsByTagName("tbody")[0];
- remove_children(elt);
- if((genechip_data === undefined) || genechip_data.length === 0) {
- row = document.createElement("tr");
- col = document.createElement("td");
- col.setAttribute("colspan", "3");
- text = document.createTextNode("No chips found for selected species");
- col.appendChild(text);
- row.appendChild(col);
- elt.appendChild(row);
- submit_button.setAttribute("disabled", true);
- return false;
- }
-
- submit_button.removeAttribute("disabled")
- genechip_data.forEach(chip => {
- row = document.createElement("tr");
- row.appendChild(radio_column(chip));
- columns.forEach(column => {
- col = document.createElement("td");
- content = document.createTextNode(chip[column]);
- col.appendChild(content);
- row.appendChild(col);
- });
- elt.appendChild(row);
- });
-}
-
-function genechips() {
- return JSON.parse(
- document.getElementById("select-platform-form").getAttribute(
- "data-genechips"));
-}
-
-function update_genechips(event) {
- genec = genechips();
-
- species_elt = document.getElementById("species");
-
- if(event.target == species_elt) {
- setup_genechips(genec[species_elt.value.toLowerCase()]);
- }
-}
-
-function select_row_radio(row) {
- radio = row.getElementsByTagName(
- "td")[0].getElementsByTagName(
- "input")[0];
- if(radio === undefined) {
- return false;
- }
- radio.setAttribute("checked", "checked");
- return true;
-}
diff --git a/qc_app/static/js/upload_progress.js b/qc_app/static/js/upload_progress.js
deleted file mode 100644
index 9638b36..0000000
--- a/qc_app/static/js/upload_progress.js
+++ /dev/null
@@ -1,97 +0,0 @@
-function make_processing_indicator(elt) {
- var count = 0;
- return function() {
- var message = "Finalising upload and saving file: "
- if(count > 5) {
- count = 1;
- }
- for(i = 0; i < count; i++) {
- message = message + ".";
- }
- elt.innerHTML = message
- count = count + 1
- };
-}
-
-function make_progress_updater(file, indicator_elt) {
- var progress_bar = indicator_elt.querySelector("#progress-bar");
- var progress_text = indicator_elt.querySelector("#progress-text");
- var extra_text = indicator_elt.querySelector("#progress-extra-text");
- return function(event) {
- if(event.loaded <= file.size) {
- var percent = Math.round((event.loaded / file.size) * 100);
- progress_bar.value = percent
- progress_text.innerHTML = "Uploading: " + percent + "%";
- extra_text.setAttribute("class", "hidden")
- }
-
- if(event.loaded == event.total) {
- progress_bar.value = 100;
- progress_text.innerHTML = "Uploaded: 100%";
- extra_text.setAttribute("class", null);
- intv = setInterval(make_processing_indicator(extra_text), 400);
- setTimeout(function() {clearTimeout(intv);}, 20000);
- }
- };
-}
-
-function setup_cancel_upload(request, indicator_elt) {
- document.getElementById("btn-cancel-upload").addEventListener(
- "click", function(event) {
- event.preventDefault();
- request.abort();
- });
-}
-
-function setup_request(file, progress_indicator_elt) {
- var request = new XMLHttpRequest();
- var updater = make_progress_updater(file, progress_indicator_elt);
- request.upload.addEventListener("progress", updater);
- request.onload = function(event) {
- document.location.assign(request.responseURL);
- };
- setup_cancel_upload(request, progress_indicator_elt)
- return request;
-}
-
-function selected_filetype(radios) {
- for(idx = 0; idx < radios.length; idx++) {
- if(radios[idx].checked) {
- return radios[idx].value;
- }
- }
-}
-
-function make_data_uploader(setup_formdata) {
- return function(event) {
- event.preventDefault();
-
- var pindicator = document.getElementById("upload-progress-indicator");
-
- var form = event.target;
- var the_file = form.querySelector("input[type='file']").files[0];
- if(the_file === undefined) {
- form.querySelector("input[type='file']").parentElement.setAttribute(
- "class", "invalid-input");
- error_elt = form.querySelector("#no-file-error");
- if(error_elt !== undefined) {
- error_elt.setAttribute("style", "display: block;");
- }
- return false;
- }
- var formdata = setup_formdata(form);
-
- document.getElementById("progress-filename").innerHTML = the_file.name;
- var request = setup_request(the_file, pindicator);
- request.open(form.getAttribute("method"), form.getAttribute("action"));
- request.send(formdata);
- return false;
- }
-}
-
-
-function setup_upload_handlers(formid, datauploader) {
- console.info("Setting up the upload handlers.")
- upload_form = document.getElementById(formid);
- upload_form.addEventListener("submit", datauploader);
-}
diff --git a/qc_app/static/js/upload_samples.js b/qc_app/static/js/upload_samples.js
deleted file mode 100644
index aed536f..0000000
--- a/qc_app/static/js/upload_samples.js
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Read the file content and set the `data-preview-content` attribute on the
- * file element
- */
-function read_first_n_lines(event,
- fileelement,
- numlines,
- firstlineheading = true) {
- var thefile = fileelement.files[0];
- var reader = new FileReader();
- reader.addEventListener("load", (event) => {
- var filecontent = event.target.result.split(
- "\n").slice(
- 0, (numlines + (firstlineheading ? 1 : 0))).map(
- (line) => {return line.trim("\r");});
- fileelement.setAttribute(
- "data-preview-content", JSON.stringify(filecontent));
- display_preview(event);
- })
- reader.readAsText(thefile);
-}
-
-function remove_rows(preview_table) {
- var table_body = preview_table.getElementsByTagName("tbody")[0];
- while(table_body.children.length > 0) {
- table_body.removeChild(table_body.children.item(0));
- }
-}
-
-/*
- * Display error row
- */
-function display_error_row(preview_table, error_message) {
- remove_rows(preview_table);
- row = document.createElement("tr");
- cell = document.createElement("td");
- cell.setAttribute("colspan", 4);
- cell.innerHTML = error_message;
- row.appendChild(cell);
- preview_table.getElementsByTagName("tbody")[0].appendChild(row);
-}
-
-function strip(str, chars) {
- var end = str.length;
- var start = 0
- for(var j = str.length; j > 0; j--) {
- if(!chars.includes(str[j - 1])) {
- break;
- }
- end = end - 1;
- }
- for(var i = 0; i < end; i++) {
- if(!chars.includes(str[i])) {
- break;
- }
- start = start + 1;
- }
- return str.slice(start, end);
-}
-
-function process_preview_data(preview_data, separator, delimiter) {
- return preview_data.map((line) => {
- return line.split(separator).map((field) => {
- return strip(field, delimiter);
- });
- });
-}
-
-function render_preview(preview_table, preview_data) {
- remove_rows(preview_table);
- var table_body = preview_table.getElementsByTagName("tbody")[0];
- preview_data.forEach((line) => {
- var row = document.createElement("tr");
- line.forEach((field) => {
- var cell = document.createElement("td");
- cell.innerHTML = field;
- row.appendChild(cell);
- });
- table_body.appendChild(row);
- });
-}
-
-/*
- * Display a preview of the data, relying on the user's selection.
- */
-function display_preview(event) {
- var data_preview_table = document.getElementById("tbl:samples-preview");
- remove_rows(data_preview_table);
-
- var separator = document.getElementById("select:separator").value;
- if(separator === "other") {
- separator = document.getElementById("txt:separator").value;
- }
- if(separator == "") {
- display_error_row(data_preview_table, "Please provide a separator.");
- return false;
- }
-
- var delimiter = document.getElementById("txt:delimiter").value;
-
- var firstlineheading = document.getElementById("chk:heading").checked;
-
- var fileelement = document.getElementById("file:samples");
- var preview_data = JSON.parse(
- fileelement.getAttribute("data-preview-content") || "[]");
- if(preview_data.length == 0) {
- display_error_row(
- data_preview_table,
- "No file data to preview. Check that file is provided.");
- }
-
- render_preview(data_preview_table, process_preview_data(
- preview_data.slice(0 + (firstlineheading ? 1 : 0)),
- separator,
- delimiter));
-}
-
-document.getElementById("chk:heading").addEventListener(
- "change", display_preview);
-document.getElementById("select:separator").addEventListener(
- "change", display_preview);
-document.getElementById("txt:separator").addEventListener(
- "keyup", display_preview);
-document.getElementById("txt:delimiter").addEventListener(
- "keyup", display_preview);
-document.getElementById("file:samples").addEventListener(
- "change", (event) => {
- read_first_n_lines(event,
- document.getElementById("file:samples"),
- 30,
- document.getElementById("chk:heading").checked);
- });
diff --git a/qc_app/static/js/utils.js b/qc_app/static/js/utils.js
deleted file mode 100644
index 045dd47..0000000
--- a/qc_app/static/js/utils.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function remove_children(element) {
- Array.from(element.children).forEach(child => {
- element.removeChild(child);
- });
-}
-
-function trigger_change_event(element) {
- evt = new Event("change");
- element.dispatchEvent(evt);
-}