ScoDoc/static/js/formsemestre_ext_edit_ue_va...

68 lines
1.9 KiB
JavaScript

function compute_moyenne() {
var notes = $(".tf_field_note input").map(
function() { return parseFloat($(this).val()); }
).get();
var coefs = $(".tf_field_coef input").map(
function() { return parseFloat($(this).val()); }
).get();
var N = notes.length;
var dp = 0.;
var sum_coefs = 0.;
for (var i=0; i < N; i++) {
if (!(isNaN(notes[i]) || isNaN(coefs[i]))) {
dp += notes[i] * coefs[i];
sum_coefs += coefs[i];
}
}
return dp / sum_coefs;
}
// Callback select menu (UE code)
function enable_disable_fields_cb() {
enable_disable_fields(this);
}
function enable_disable_fields(select_elt) {
// input fields controled by this menu
var input_fields = $(select_elt).parent().parent().find('input');
var disabled = false;
if ($(select_elt).val() === "None") {
disabled = true;
}
console.log('disabled=', disabled);
input_fields.each( function () {
var old_state = this.disabled;
console.log("old_state=", old_state)
if (old_state == disabled) {
return; /* state unchanged */
}
var saved_value = $(this).data('saved-value');
if (typeof saved_value == 'undefined') {
saved_value = '';
}
var cur_value = $(this).val();
// swap
$(this).data('saved-value', cur_value);
$(this).val(saved_value);
});
input_fields.prop('disabled', disabled);
}
function setup_text_fields() {
$(".ueext_valid_select").each(
function() {
enable_disable_fields(this);
}
);
}
$().ready(function(){
$(".tf_ext_edit_ue_validations").change(function (){
$(".ext_sem_moy_val")[0].innerHTML=compute_moyenne();
});
$(".ueext_valid_select").change( enable_disable_fields_cb );
setup_text_fields();
});