diff options
Diffstat (limited to 'qc_app')
-rw-r--r-- | qc_app/entry.py | 12 | ||||
-rw-r--r-- | qc_app/static/js/select_platform.js | 2 | ||||
-rw-r--r-- | qc_app/templates/index.html | 80 | ||||
-rw-r--r-- | qc_app/templates/select_species.html | 87 |
4 files changed, 99 insertions, 82 deletions
diff --git a/qc_app/entry.py b/qc_app/entry.py index 94bbd53..d23a45a 100644 --- a/qc_app/entry.py +++ b/qc_app/entry.py @@ -84,20 +84,24 @@ def zip_file_errors(filepath, upload_dir) -> Tuple[str, ...]: return zfile_errors -@entrybp.route("/", methods=["GET", "POST"]) +@entrybp.route("/", methods=["GET"]) +def index(): + """Load the landing page""" + return render_template("index.html") + +@entrybp.route("/upload", methods=["GET", "POST"]) def upload_file(): """Enables uploading the files""" if request.method == "GET": return render_template( - "index.html", species=with_db_connection(species)) + "select_species.html", species=with_db_connection(species)) upload_dir = app.config["UPLOAD_FOLDER"] request_errors = errors(request) if request_errors: for error in request_errors: flash(error, "alert-error error-expr-data") - return render_template( - "index.html", species=with_db_connection(species)), 400 + return redirect(url_for("entry.upload_file")) filename = secure_filename(request.files["qc_text_file"].filename) if not os.path.exists(upload_dir): diff --git a/qc_app/static/js/select_platform.js b/qc_app/static/js/select_platform.js index 456cfcf..4fdd865 100644 --- a/qc_app/static/js/select_platform.js +++ b/qc_app/static/js/select_platform.js @@ -12,7 +12,7 @@ function radio_column(chip) { function setup_genechips(genechip_data) { columns = ["GeneChipId", "GeneChipName"] submit_button = document.querySelector( - "#select-platform-form input[type='submit']"); + "#select-platform-form button[type='submit']"); elt = document.getElementById( "genechips-table").getElementsByTagName("tbody")[0]; remove_children(elt); diff --git a/qc_app/templates/index.html b/qc_app/templates/index.html index 0d301f5..997c1e5 100644 --- a/qc_app/templates/index.html +++ b/qc_app/templates/index.html @@ -60,59 +60,9 @@ </ol> </div> - <form action="{{url_for('entry.upload_file')}}" - method="POST" - enctype="multipart/form-data" - id="frm-upload-expression-data"> - <legend class="heading">upload expression data</legend> - {{flash_messages("error-expr-data")}} - - <div class="form-group"> - <label for="select_species01" class="form-label">Species</label> - <select id="select_species01" - name="speciesid" - required="required" - class="form-control"> - <option value="">Select species</option> - {%for aspecies in species%} - <option value="{{aspecies.SpeciesId}}">{{aspecies.MenuName}}</option> - {%endfor%} - </select> - </div> - - <div class="form-group"> - <legend class="heading">file type</legend> - - <div class="form-check"> - <input type="radio" name="filetype" value="average" id="filetype_average" - required="required" class="form-check-input" /> - <label for="filetype_average" class="form-check-label">average</label> - </div> - - <div class="form-check"> - <input type="radio" name="filetype" value="standard-error" - id="filetype_standard_error" required="required" - class="form-check-input" /> - <label for="filetype_standard_error" class="form-check-label"> - standard error - </label> - </div> - </div> - - <div class="form-group"> - <span id="no-file-error" class="alert-danger" style="display: none;"> - No file selected - </span> - <label for="file_upload" class="form-label">select file</label> - <input type="file" name="qc_text_file" id="file_upload" - accept="text/plain, text/tab-separated-values, application/zip" - class="form-control"/> - </div> - - <button type="submit" class="btn btn-primary" />upload file</button> -</form> - -{{upload_progress_indicator()}} + <a href={{url_for("entry.upload_file")}} + title="Upload your expression data" + class="btn btn-primary">upload Samples/Cases</a> </div> <div class="row"> @@ -131,27 +81,3 @@ </div> {%endblock%} - - -{%block javascript%} -<script type="text/javascript" src="static/js/upload_progress.js"></script> -<script type="text/javascript"> - function setup_formdata(form) { - var formdata = new FormData(); - formdata.append( - "speciesid", - form.querySelector("#select_species01").value) - formdata.append( - "qc_text_file", - form.querySelector("input[type='file']").files[0]); - formdata.append( - "filetype", - selected_filetype( - Array.from(form.querySelectorAll("input[type='radio']")))); - return formdata; - } - - setup_upload_handlers( - "frm-upload-expression-data", make_data_uploader(setup_formdata)); -</script> -{%endblock%} diff --git a/qc_app/templates/select_species.html b/qc_app/templates/select_species.html new file mode 100644 index 0000000..30f99b4 --- /dev/null +++ b/qc_app/templates/select_species.html @@ -0,0 +1,87 @@ +{%extends "base.html"%} +{%from "flash_messages.html" import flash_messages%} +{%from "upload_progress_indicator.html" import upload_progress_indicator%} + +{%block title%}Data Upload{%endblock%} + +{%block contents%} +<div class="row"> + <form action="{{url_for('entry.upload_file')}}" + method="POST" + enctype="multipart/form-data" + id="frm-upload-expression-data"> + <legend class="heading">upload expression data</legend> + {{flash_messages("error-expr-data")}} + + <div class="form-group"> + <label for="select_species01" class="form-label">Species</label> + <select id="select_species01" + name="speciesid" + required="required" + class="form-control"> + <option value="">Select species</option> + {%for aspecies in species%} + <option value="{{aspecies.SpeciesId}}">{{aspecies.MenuName}}</option> + {%endfor%} + </select> + </div> + + <div class="form-group"> + <legend class="heading">file type</legend> + + <div class="form-check"> + <input type="radio" name="filetype" value="average" id="filetype_average" + required="required" class="form-check-input" /> + <label for="filetype_average" class="form-check-label">average</label> + </div> + + <div class="form-check"> + <input type="radio" name="filetype" value="standard-error" + id="filetype_standard_error" required="required" + class="form-check-input" /> + <label for="filetype_standard_error" class="form-check-label"> + standard error + </label> + </div> + </div> + + <div class="form-group"> + <span id="no-file-error" class="alert-danger" style="display: none;"> + No file selected + </span> + <label for="file_upload" class="form-label">select file</label> + <input type="file" name="qc_text_file" id="file_upload" + accept="text/plain, text/tab-separated-values, application/zip" + class="form-control"/> + </div> + + <button type="submit" class="btn btn-primary">upload file</button> + </form> + + {{upload_progress_indicator()}} +</div> +{%endblock%} + + +{%block javascript%} +<script type="text/javascript" src="static/js/upload_progress.js"></script> +<script type="text/javascript"> + function setup_formdata(form) { + var formdata = new FormData(); + formdata.append( + "speciesid", + form.querySelector("#select_species01").value) + formdata.append( + "qc_text_file", + form.querySelector("input[type='file']").files[0]); + formdata.append( + "filetype", + selected_filetype( + Array.from(form.querySelectorAll("input[type='radio']")))); + return formdata; + } + + setup_upload_handlers( + "frm-upload-expression-data", make_data_uploader(setup_formdata)); +</script> +{%endblock%} |