Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added confirmation to consent form submission #10

Merged
merged 1 commit into from
Apr 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 48 additions & 2 deletions limbus/app/static/js/sample/information/add/step_two.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,42 @@
function add_warning(question) {
$(question).addClass("list-group-item-warning")
$(question).find(".question-warning").css("visibility", 'visible');
var modal_question = $(`#${$(question).attr('id')}-m`)
var fa = $(`#${$(question).attr('id')}-m`).find(".fa")

fa.removeClass("fa-check-circle")
fa.removeClass("text-success")
fa.addClass("fa-exclamation-circle")
fa.addClass("text-white")

$(modal_question).addClass("bg-danger")
$(modal_question).addClass("text-white")
}

function remove_warning(question) {
$(question).removeClass("list-group-item-warning")
$(question).find(".question-warning").css("visibility", 'hidden');
var modal_question = $(`#${$(question).attr('id')}-m`)
var fa = $(`#${$(question).attr('id')}-m`).find(".fa")

fa.removeClass("fa-exclamation-circle")
fa.removeClass("text-white")
fa.addClass("fa-check-circle")
fa.addClass("text-success")

$(modal_question).removeClass("bg-danger")
$(modal_question).removeClass("text-white")
}

function style_item(item) {
var question = $(item).parents(".list-group-item")
if (item.checked) {
remove_warning(question)
} else {
add_warning(question)
}
}

$(document).ready(function() {
$('#selectAttribute').DataTable( {
dom: 'Pfrtip'
Expand All @@ -7,6 +46,14 @@ $(document).ready(function() {

$(".dtsp-panesContainer").hide();

$("#questionnaire-list").find(".form-check-input")
.change(function(e) {
style_item(this)
})

$("#questionnaire-list").find(".form-check-input")
.each( (i, item) => {style_item(item)});

$("#showFilter").click(function(e) {
if ($(".dtsp-panesContainer").is(":visible")) {
$(".dtsp-panesContainer").hide();
Expand All @@ -19,5 +66,4 @@ $(document).ready(function() {
}

});

});
});
10 changes: 7 additions & 3 deletions limbus/app/templates/macros.html
Original file line number Diff line number Diff line change
Expand Up @@ -155,9 +155,13 @@ <h4>{{ title }}</h4>
{%- endmacro %}

{% macro render_question(field, count) -%}
<div class="list-group-item flex-column align-items-start">
<div id="list-question-{{ count+1 }}" class="list-group-item list-group-item-warning flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">Question {{ count+1 }}</h5>
<h5 class="mb-1">
Question {{ count+1 }}
<i class="fa fa-exclamation-triangle question-warning"
title="Ensure correct consent is given, ignore this if you're sure this is an acceptable answer"></i>
</h5>
<small>
<input class="form-check-input" id="{{ field.id }}" name="{{ field.id }}" type="checkbox">
</small>
Expand Down Expand Up @@ -191,4 +195,4 @@ <h5 class="mb-1">Question {{ count+1 }}</h5>
{% endfor %}
</tbody>
</table>
{%- endmacro %}
{%- endmacro %}
43 changes: 40 additions & 3 deletions limbus/app/templates/sample/sample/add/step_two.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

{% set title = "New Sample: Enter Patient Consent Form" %}

{% block head %}
<link href="{{ url_for('static', filename='css/sample/information/add/step_two.css') }}" rel="stylesheet">
{% endblock %}


{% block body %}
<div class="container">
Expand All @@ -18,17 +22,50 @@ <h3>{{ pcf.name }}</h3>

<form action="{{ url_for('sample.add_sample_pcf_data', hash=hash) }}" method="POST">
{{ questionnaire.csrf_token() }}
<div class="list-group">

<div class="list-group" id="questionnaire-list">
{% for question in questionnaire %}
{% if (question.type == "BooleanField") %}
{{ render_question( question, loop.index0 ) }}
{% endif %}
{% endfor %}
</div>
{{ form_field(questionnaire.submit) }}
<!-- {{ form_field(questionnaire.submit) }} -->
<button type="button" class="btn btn-primary float-right" data-toggle="modal" data-target="#confirmModal">
Confirm
</button>

<div id="confirmModal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">{{ pcf.name }}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
{{ questionnaire.csrf_token() }}
<div class="list-group" id="questionnaire-list">
{% for question in questionnaire %}
{% if (question.type == "BooleanField") %}
<div id="list-question-{{loop.index0 + 1}}-m" class="list-group-item flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<p class="mb-1">{{ question.label.text }}</p>
<i class="fa fa-check-circle"></i>
</div>
</div>
{% endif %}
{% endfor %}
</div>
{{ form_field(questionnaire.submit) }}
</div>
</div>
</div>
</div>
</form>
</div>
{% endblock %}

{% block javascript %}
<script src="{{ url_for('static', filename='js/sample/information/add/step_two.js') }}"></script>
{% endblock %}