replace form field for default value depending on question type

This commit is contained in:
Johan von Forstner
2018-05-27 12:34:30 +02:00
committed by johan12345
parent 8e22c0f3a4
commit 89bbed42e6

View File

@@ -1,5 +1,51 @@
/*global $,gettext*/
function question_page_toggle_view() {
var show = $("#id_type").val() == "C" || $("#id_type").val() == "M";
$("#answer-options").toggle(show);
show = $("#id_type").val() == "B" && $("#id_required").prop("checked");
$(".alert-required-boolean").toggle(show);
let input = $('#id_default_value');
let common_attrs = ' name="default_value" placeholder="' + input.attr('placeholder') + '" title="' + input.attr('title') + '" id="id_default_value"';
let value = input.val();
switch ($("#id_type").val()) {
case 'N':
input.replaceWith('<input type="number" class="form-control" value="' + value + '" ' + common_attrs + '>');
$('.form-group:has(#id_default_value)').show();
break;
case 'S':
input.replaceWith('<input type="text" maxlength="190" class="form-control" value="' + value + '" ' + common_attrs + '>');
$('.form-group:has(#id_default_value)').show();
break;
case 'T':
input.replaceWith('<textarea cols="40" rows="10" class="form-control" ' + common_attrs + '>' + value + '</textarea>');
$('.form-group:has(#id_default_value)').show();
break;
case 'B':
let checked = (value === 'True' ? 'checked' : '');
input.replaceWith('<input type="checkbox" ' + common_attrs + ' ' + checked + '>');
$('.form-group:has(#id_default_value)').show();
break;
case 'F':
$('.form-group:has(#id_default_value)').hide();
break;
case 'D':
input.replaceWith('<input type="date" class="form-control" value="' + value + '" ' + common_attrs + '>');
$('.form-group:has(#id_default_value)').show();
break;
case 'H':
input.replaceWith('<input type="time" class="form-control" value="' + value + '" ' + common_attrs + '>');
$('.form-group:has(#id_default_value)').show();
break;
case 'W':
input.replaceWith('<input type="datetime-local" class="form-control" value="' + value + '" ' + common_attrs + '>');
$('.form-group:has(#id_default_value)').show();
break;
}
}
var waitingDialog = {
show: function (message) {
"use strict";