Improve "copy from above"

This commit is contained in:
Raphael Michel
2017-07-17 16:12:07 +02:00
parent c2844a8f35
commit f900c842cb
3 changed files with 24 additions and 14 deletions

View File

@@ -53,13 +53,15 @@
{% if pos.variation %} {% if pos.variation %}
{{ pos.variation }} {{ pos.variation }}
{% endif %} {% endif %}
<i class="fa fa-angle-down collapse-indicator"></i> {% if forloop.counter > 1 %}
<span class="text-right">
<input type="button" data-id="{{ forloop.counter0 }}" name="copy" class="js-copy-answers btn btn-default btn-xs" value='{% trans "Copy answers from above" %}'>
<i class="fa fa-angle-down collapse-indicator"></i>
</span>
{% else %}
<i class="fa fa-angle-down collapse-indicator"></i>
{% endif %}
</a> </a>
{% if forloop.counter > 1 %}
<span class="text-right pull-right">
<input type="button" data-id="{{ forloop.counter0 }}" name="copy" class="js-copy-answers btn btn-default btn-xs" value='{% trans "Copy answers from above" %}'>
</span>
{% endif %}
</h4> </h4>
</div> </div>
<div id="cp{{ pos.id }}" <div id="cp{{ pos.id }}"

View File

@@ -51,8 +51,10 @@ $(function () {
// Copy answers // Copy answers
$(".js-copy-answers").click(function (e) { $(".js-copy-answers").click(function (e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation();
var idx = $(this).data('id'); var idx = $(this).data('id');
copy_answers(idx); copy_answers(idx);
return false;
}); });
// Subevent choice // Subevent choice
@@ -98,31 +100,33 @@ function copy_answers(idx) {
elements.each(function(index){ elements.each(function(index){
var input = $(this), var input = $(this),
tagName = input.prop('tagName').toLowerCase(), tagName = input.prop('tagName').toLowerCase(),
attributeType = input.attr('type'); attributeType = input.attr('type'),
suffix = input.attr('name').split('-')[1];
switch (tagName) { switch (tagName) {
case "textarea": case "textarea":
input.val(firstAnswers.eq(index).val()); input.val(firstAnswers.filter("[name$=" + suffix + "]").val());
break; break;
case "select": case "select":
input.val(firstAnswers.eq(index).find(":selected").val()).change(); input.val(firstAnswers.filter("[name$=" + suffix + "]").find(":selected").val()).change();
break; break;
case "input": case "input":
switch (attributeType) { switch (attributeType) {
case "text": case "text":
case "number": case "number":
input.val(firstAnswers.eq(index).val()); input.val(firstAnswers.filter("[name$=" + suffix + "]").val());
break; break;
case "checkbox": case "checkbox":
case "radio": case "radio":
input.prop("checked", firstAnswers.eq(index).prop("checked")); input.prop("checked", firstAnswers.filter("[name$=" + suffix + "]").prop("checked"));
break; break;
default: default:
input.val(firstAnswers.eq(index).val()); input.val(firstAnswers.filter("[name$=" + suffix + "]").val());
} }
break; break;
default: default:
input.val(firstAnswers.eq(index).val()); input.val(firstAnswers.filter("[name$=" + suffix + "]").val());
} }
}); });
} }

View File

@@ -16,6 +16,10 @@
pointer-events: none; pointer-events: none;
} }
.js-copy-answers {
margin-right: 10px;
}
.form-control.is-focused { .form-control.is-focused {
@extend .form-control:focus; @extend .form-control:focus;
} }