// Formulaire saisie des notes $().ready(function(){ $("#formnotes .note").bind("blur", valid_note); $("#formnotes input").bind("paste", paste_text); }); function is_valid_note(v) { if (!v) return true; var note_min = parseFloat($("#eval_note_min").text()); var note_max = parseFloat($("#eval_note_max").text()); if (! v.match("^-?[0-9.]*$")) { return (v=="ABS")||(v=="EXC")||(v=="SUPR")||(v=="ATT")||(v=="DEM"); } else { var x = parseFloat(v); return (x >= note_min) && (x <= note_max); } } function valid_note(e) { var v = this.value.trim().toUpperCase().replace(",", "."); if (is_valid_note(v)) { if (v && (v != $(this).attr('data-last-saved-value'))) { this.className = "note_valid_new"; var etudid = $(this).attr('data-etudid'); save_note(this, v, etudid); } } else { /* Saisie invalide */ this.className = "note_invalid"; } } function save_note(elem, v, etudid) { var evaluation_id = $("#formnotes_evaluation_id").attr("value"); var formsemestre_id = $("#formnotes_formsemestre_id").attr("value"); $('#sco_msg').html("en cours...").show(); $.post( 'save_note', { 'etudid' : etudid, 'evaluation_id' : evaluation_id, 'value' : v, 'comment' : $("#formnotes_comment").attr("value") }, function(result) { sco_message("enregistré"); elem.className = "note_saved"; if (result['nbchanged'] > 0) { // il y avait une decision de jury ? if (result.existing_decisions[0] == etudid) { if (v != $(elem).attr('data-orig-value')) { $("#jurylink_"+etudid).html('mettre à jour décision de jury'); } else { $("#jurylink_"+etudid).html(''); } } // mise a jour menu historique if (result['history_menu']) { $("#hist_"+etudid).html(result['history_menu']); } } $(elem).attr('data-last-saved-value', v) } ); } function change_history(e) { var opt = e.selectedOptions[0]; var val = $(opt).attr("data-note"); var etudid = $(e).attr('data-etudid'); // le input associé a ce menu: var input_elem = e.parentElement.parentElement.parentElement.childNodes[0]; input_elem.value = val; save_note(input_elem, val, etudid); } // Contribution S.L.: copier/coller des notes function paste_text(e) { var event = e.originalEvent; event.stopPropagation(); event.preventDefault(); var clipb = e.originalEvent.clipboardData; var data = clipb.getData('Text'); var list = data.split(/\r\n|\r|\n|\t| /g); var currentInput = event.currentTarget; for(var i=0 ; i