From 41827a3307336b7b4ae0d8cc6537c3993e3bbe4e Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 21 Jan 2015 15:58:16 +0100 Subject: [PATCH] - Notenauswahl bei Pruefungsterminen per DropDown - Der Notenimport liest die Daten jetzt nicht mehr aus der Zwischenablage sondern aus einem Textfeld damit der Import mit allen Browsern wieder funktioniert --- .../benotungstool/lvgesamtnoteeintragen.php | 28 +-- .../benotungstool/lvgesamtnoteverwalten.php | 222 +++++------------- skin/images/changed.png | Bin 382 -> 458 bytes skin/images/offen.png | Bin 344 -> 417 bytes skin/images/ok.png | Bin 740 -> 819 bytes 5 files changed, 69 insertions(+), 181 deletions(-) diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php index 6ee45bf7d..7ecf94327 100755 --- a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php @@ -169,17 +169,14 @@ if (isset($_REQUEST["submit"])) { $student_uid = $_REQUEST["student_uid"]; $note = $_REQUEST["note"]; - $punkte = $_REQUEST["punkte"]; + $punkte = (isset($_REQUEST["punkte"])?$_REQUEST["punkte"]:''); - //if((($note>0) && ($note < 6)) || ($note == 7) || ($note==16) || ($note==10) || ($note==14)) - $response = savenote($db,$lvid, $student_uid, $note, $punkte); - /*else - $response = $p->t('benotungstool/noteEingeben')."!"; - */ + $response = savenote($db,$lvid, $student_uid, $note, $punkte); echo $response; } else { + foreach ($_POST as $row=>$val) { if(mb_strstr(mb_strtolower($row), 'matrikelnr_')) @@ -189,7 +186,6 @@ if (isset($_REQUEST["submit"])) { $matrikelnummer = $_POST['matrikelnr_'.$id]; $note = $_POST['note_'.$id]; - //UID ermitteln $student = new student(); if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer)) @@ -204,21 +200,9 @@ if (isset($_REQUEST["submit"])) else $znote = null; - /*if(((($note>0) && ($note < 6)) || ($note == 7) || ($note==16) || ($note==10) || ($note==14))) - {*/ - $val=savenote($db,$lvid, $student_uid, $note); - if($val!='neu' && $val!='update' && $val!='update_f') - $response.=$val; - /*} - else - { - // Wenn Zeugnisnote schon 6 ist -> keine Fehlermeldung mehr - if($znote != 6) - { - $student->load($student_uid); - $response .= "\n".$p->t('benotungstool/fehlerhafteNoteBeiStudent', array($student->vorname, $student->nachname))." ".$p->t('benotungstool/noteEingeben'); - } - }*/ + $val=savenote($db,$lvid, $student_uid, $note); + if($val!='neu' && $val!='update' && $val!='update_f') + $response.=$val; } else { diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index 610a09d54..e0f5e5ec5 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -144,22 +144,6 @@ foreach($noten_obj->result as $row) } ?> - - function MM_jumpMenu(targ, selObj, restore) - { - eval(targ + ".location='" + selObj.options[selObj.selectedIndex].value + "'"); - - if(restore) - { - selObj.selectedIndex = 0; - } - } - - function confirmdelete() - { - return confirm('t('gesamtnote/wollenSieWirklichLoeschen').'!!'; ?>'); - } - function getTopOffset() { var x,y; @@ -182,39 +166,6 @@ foreach($noten_obj->result as $row) return y; } - // ************************************** - // * XMLHttpRequest Objekt erzeugen - // ************************************** - var anfrage = null; - - function erzeugeAnfrage() - { - try - { - anfrage = new XMLHttpRequest(); - } - catch (versuchmicrosoft) - { - try - { - anfrage = new ActiveXObject("Msxml12.XMLHTTP"); - } - catch (anderesmicrosoft) - { - try - { - anfrage = new ActiveXObject("Microsoft.XMLHTTP"); - } - catch (fehlschlag) - { - anfrage = null; - } - } - } - if (anfrage == null) - alert('t('global/fehleraufgetreten');?>'); - } - // ****************************************** // * Note eines Studenten Speichern // ****************************************** @@ -248,8 +199,7 @@ foreach($noten_obj->result as $row) var note = document.getElementById(uid).note.value; var resp = result; if (resp == "neu" || resp == "update" || resp == "update_f") - { - + { notentd = document.getElementById("note_"+uid); while (notentd.childNodes.length>0) { @@ -289,16 +239,29 @@ foreach($noten_obj->result as $row) var y = getTopOffset(); y = y+50; anlegendiv.style.top = y+"px"; - + str += "t('benotungstool/pruefungAnlegenFuer');?> "+uid+":"; - str += "Datum:"; - str += " [DD.MM.YYYY]"; - str += "Note:"; - str += ""; + str += "t('global/datum');?>:"; + str += ""; + str += " [DD.MM.YYYY]"; + str += "t('benotungstool/note');?>:"; + + str +=''; + ?>'; str += "' onclick='pruefungSpeichern();'>"; - str += ""; + str += ""; anlegendiv.innerHTML = str; - anlegendiv.style.visibility = "visible"; + anlegendiv.style.visibility = "visible"; + $('#pruefungsdatum').datepicker(); + $('#pruefungnoteselect').val(note); } // ********************************************** @@ -307,15 +270,10 @@ foreach($noten_obj->result as $row) function pruefungSpeichern() { var note = document.nachpruefung_form.note.value; - if ((note < 0) || (note > 5 && note != 7 && note != 9 && note!=16 && note!=10 && note!=14 && note != "")) - { - alert("t('benotungstool/noteEingebenOderLeer');?>!"); - document.getElementById(uid).note.value=""; - } var datum = document.nachpruefung_form.datum.value; var datum_test = datum.split("."); if (datum_test[0].length != 2 || datum_test[1].length != 2 || datum_test[2].length!=4 || isNaN(datum_test[2]) || datum_test[1]>12 || datum_test[1]<1 || datum_test[0]>31 || datum_test[0]<1) - alert("Invalid Date. Format: DD.MM.YYYY"); + alert("Invalid Date Format: DD.MM.YYYY"); else { var anlegendiv = document.getElementById("nachpruefung_div"); @@ -323,8 +281,8 @@ foreach($noten_obj->result as $row) var note = document.nachpruefung_form.note.value; if (note == "" || isNaN(note)) { - document.nachpruefung_form.note.value = "9"; - note = "9"; + document.nachpruefung_form.note.value = "9"; + note = "9"; } var uid = document.nachpruefung_form.uid.value; var lehreinheit_id = document.nachpruefung_form.le_id.value; @@ -332,7 +290,6 @@ foreach($noten_obj->result as $row) var jetzt = new Date(); var ts = jetzt.getTime(); var url= ''; - //&lehreinheit_id=$lehreinheit_id url += '&submit=1&student_uid='+uid+'¬e='+note+'&datum='+datum+'&lehreinheit_id_pr='+lehreinheit_id+'&'+ts; $.ajax({ @@ -345,12 +302,10 @@ foreach($noten_obj->result as $row) var note = document.nachpruefung_form.note.value; var uid = document.nachpruefung_form.uid.value; var lehreinheit_id = document.nachpruefung_form.le_id.value; - //var note = document.getElementById(uid).note.value; var resp = result; if (resp == "neu" || resp == "update" || resp == "update_f" || resp == "update_pr") { - if (resp != "update_pr") { notentd = document.getElementById("note_"+uid); @@ -358,7 +313,7 @@ foreach($noten_obj->result as $row) { notentd.removeChild(notentd.lastChild); } - notenode = document.createTextNode(note); + notenode = document.createTextNode(noten_array[note]); notentd.appendChild(notenode); } notenstatus = document.getElementById("status_"+uid); @@ -368,9 +323,7 @@ foreach($noten_obj->result as $row) anlegendiv.innerHTML = ""; anlegendiv.style.visibility = "hidden"; - //if (note == 9) - // note = " "; - document.getElementById("span_"+uid).innerHTML = "
"+datum+""+note+"
"; + document.getElementById("span_"+uid).innerHTML = "
"+datum+""+noten_array[note]+"' onclick='pruefungAnlegen(\""+uid+"\",\""+datum+"\",\""+note+"\",\""+lehreinheit_id+"\")'>
"; } }, error:function(result) @@ -439,79 +392,47 @@ foreach($noten_obj->result as $row) } // **** - // * Liefert die Daten aus der Zwischenablage fuer IE und Firefox - // * Opera und Safari unterstuetzen dies nicht + // * Oeffnet ein Fenster fuer den Import von Noten aus dem Excel // **** - function getDataFromClipboard() + function GradeImport() { - if (navigator.appName.indexOf('Microsoft') > -1) - { - //IE - return clipboardData.getData("Text"); - } - else - { - if(!!window.Components) - { - //Firefox, Mozilla, Gecko - try - { - netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); - } - catch(e) - { - //alert('Um den Import nutzen zu können müssen sie Ihre Sicherheitseinstellungen Ändern!\n Geben Sie hierzu in der Adresszeile ihres Browsers "about:config" ein und setzen sie, in der angezeigten Liste, den Eintrag "signed.applets.codebase_pricipal_support" auf true.'); - alert("Ihr Browser unterstuetzt diese Funktion nicht. Bitte verwenden Sie für den Noten Import einen Internet Explorer"); - } - var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard); - if (!clip) - return false; - var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable); - if (!trans) - return false; - - trans.addDataFlavor("text/unicode"); - - clip.getData(trans,clip.kGlobalClipboard); - var str = new Object(); - var strLength = new Object(); - trans.getTransferData("text/unicode",str,strLength); - - if (str) str = str.value.QueryInterface(Components.interfaces.nsISupportsString); - if (str) pastetext = str.data.substring(0,strLength.value / 2); - - return pastetext; - } - else - { - //Safari, Opera, etc - alert("Ihr Browser unterstuetzt diese Funktion nicht. Bitte verwenden Sie für den Noten Import einen Internet Explorer"); - } - } - } - - // ******************************************************************************* - // * holt die Daten aus der Zwischenablage parst diese und speichert sie in der DB - // * Ablauf fuer den Import: - // * - die Spalten Matrikelnummer und Note im Excel markieren - // * - in die Zwischenablage kopieren (strg-c) - // * - auf import klicken - // ******************************************************************************* - function readNotenAusZwischenablage() - { - var data = getDataFromClipboard(); + var str = "
"; + var anlegendiv = document.getElementById("nachpruefung_div"); + var y = getTopOffset(); + y = y+50; + anlegendiv.style.top = y+"px"; + + str += ''; + str += ''; + str += "
X
Kopieren Sie die Spalten Matrikelnummer und Note aus dem Excel File und fügen Sie diese in folgendes Feld ein:
' onclick='saveGradeBulk();'>"; + str += "
"; + anlegendiv.innerHTML = str; + anlegendiv.style.visibility = "visible"; + $('#noteimporttextarea').focus(); + } + + // Speichert die Noten ueber den Import + function saveGradeBulk() + { + data = $('#noteimporttextarea').val(); + closeDiv(); + //Reihen ermitteln var rows = data.split("\n"); var i=0; var params=''; + + var gradedata = {}; + for(row in rows) { zeile = rows[row].split(" "); if(zeile[0]!='' && zeile[1]!='') { - params=params+'&matrikelnr_'+i+'='+zeile[0]+'¬e_'+i+'='+zeile[1]; + gradedata['matrikelnr_'+i]=zeile[0]; + gradedata['note_'+i]= zeile[1]; i++; } } @@ -521,21 +442,20 @@ foreach($noten_obj->result as $row) var jetzt = new Date(); var ts = jetzt.getTime(); - var url= ''; + var url= ''; url += '&submit=1&'+ts; - $.ajax({ type:"POST", url: url, - data: { test: params }, + data: gradedata, success:function(result) { - var resp = anfrage.responseText; + var resp = result; if (resp!='') { alert(resp); } - window.location.href=window.location.href; + window.location.reload(); }, error:function(result) { @@ -552,13 +472,6 @@ foreach($noten_obj->result as $row) //--> - @@ -615,7 +528,7 @@ if($stsem=='') $stsem_obj->getAll(); //Studiensemester DropDown -$stsem_content = $p->t('global/studiensemester').": "; foreach($stsem_obj->studiensemester as $studiensemester) { $selected = ($stsem == $studiensemester->studiensemester_kurzbz?'selected':''); @@ -755,15 +668,12 @@ if (isset($_REQUEST["freigabe"]) and ($_REQUEST["freigabe"] == 1)) } echo '
'; -//echo "

".$p->t('global/zurueck')."

"; echo '
'; echo ''.$p->t('benotungstool/handbuch').' (PDF)'; echo '
'; echo '
'; - //echo "

".$p->t('benotungstool/lvGesamtnoteVerwalten')."

"; - //echo $p->t('benotungstool/noten'); echo '
'; // alle Pruefungen für die LV holen @@ -777,7 +687,6 @@ if ($pr_all->getPruefungenLV($lvid,"Termin2",$stsem)) { $studpruef_arr[$pruefung->student_uid][$pruefung->lehreinheit_id]["note"] = $pruefung->note; $studpruef_arr[$pruefung->student_uid][$pruefung->lehreinheit_id]["datum"] = $datum_obj->formatDatum($pruefung->datum,'d.m.Y'); - //echo print_r($studpruef_arr[$pruefung->student_uid]); } } } @@ -808,7 +717,7 @@ echo ''; - +
".$p->t('global/vorname')." ".($grade_from_moodle?''.$p->t('benotungstool/moodleNote').'':''.$p->t('benotungstool/leNoten').' (LE-ID)')." ".$p->t('benotungstool/punkte').' / '.$p->t('benotungstool/note')."".$p->t('benotungstool/lvNote')."
".$p->t('benotungstool/lvNote')."
".$p->t('global/passwort').":
@@ -1146,7 +1055,7 @@ echo ''; $pr_le_id = $le_id_stud; echo ""; } @@ -1178,15 +1087,12 @@ echo '
"; - echo $pr_datum."".$pr_note.""; + echo $pr_datum."".$noten_array[$pr_note]['bezeichnung'].""; echo ""; echo "
'; $pr_le_id = $le_id_stud; echo ""; - //echo ""; + echo $pr_datum.""; echo ""; } echo "
"; - echo $pr_datum."".$pr_note."".$noten_array[$pr_note]['bezeichnung']."
"; echo ""; - //echo "
"; echo ""; - //echo "
"; } else { @@ -1197,8 +1103,6 @@ echo ''; $i++; } } -// } -//} echo " @@ -1216,7 +1120,7 @@ echo " echo $htmlOutput; ?> - + diff --git a/skin/images/changed.png b/skin/images/changed.png index 9e6a82ea0379b1b74caac767ad1514653276a9b6..c73b5c454bb2f87d59fc10dbb2ca28b46366fae7 100755 GIT binary patch delta 416 zcmV;R0bl<90?GrB85RTp001X|)rJ5700Lr5M??VshmXv^ks%&`-vJd4G%s&{Y2yF@ z0b5B#K~yNueUjZP!(kN1Kj-P!Oq3cW!;O^JDO|d7L9ONwAQzPKa>JjZ7R9by@dvO{ z+?%pUDOzb-^O929P&1AT&u?#L=jwaIH!7973*agFOMj2#hID}d21PZ@K`;-3SLs|^7~v86La^(5^IbVusYIgkg;wI zCtsK-fT0x#uz;&Z0YiWKjK zl1;8FFdwGF%A5tC2>T&g5M)B6{KDa7F|mEYxy^?0Gq&W5xb6?beQ7COhIh6A0000< KMNUMnLSTYgk;Huf delta 340 zcmV-a0jvJX1O5V#83+IX005}sLeY^g9)H#X2@en=n}uEQ0003UNklv^6Yp#Z2~Rh}3(r%V8Z0$yyV3V=RijRaWEwFzKgdlZCHr+?=@ zo#;!;Lh@~gtT*o41vCyrwb**C*t(q7uJ1cGnK51!4>!_j0&+qJ5?P~kq`>VlTOcwk zHJ3zIFYkT=6|D)xl5&{jme$y>0yH%MLy~ki#8>{kJzD~JKMZaP|DYHwlyRWs0p8wY zU=cY6_#V9F{(7XOH3a0JogMf8+(9{^>=U}PuqsJMyDe%V6!qgm$Wm+l2nFimtPxOO mdQk+Q=fkO_YA+yO zfCz$_vP8k62w4(n+M(?tf?z=;a2(Xe)cE7O9lq!L&hm!jVXEo3?--LeAs@Pva1Z~a zT`d<6mIl04_A2y$z+dUJ3k4-bIh<*#YkO(K>+lcmq>!s3bLfbk znFwc@=?$ti VSQd|HU>g7c002ovPDHLkV1iAZt0e#c delta 302 zcmV+}0nz@U1K0wP83+IX005}sLeY^g9)H#X2@oeUc1SsU0002@Nkl42Z{6i5Ggp$Q*kvIfY5VTVei$jG%yaDS4Wb@^zzrGdBeYz#nS!(XWI<#_CPu0@f?`TWr$D1WWb zF2DO7ev87!-o8SA1;LZ98wJ6Q7Eb7|Q@4Cb{3+LuPKT*>oZ+oxrH7HnND^EVT@op= zOtdJ4e-bE6DL__9O-yOZ60wOfZSk!z>%07*qoM6N<$g24BN ADF6Tf diff --git a/skin/images/ok.png b/skin/images/ok.png index 157a8c1b2095def8e1b6964183b07a5e9e31f0fb..fabe965257197828be281c76b64fd5ebe20696a6 100755 GIT binary patch delta 780 zcmV+n1M~dk1+xZ_85#xv0051N9Sr~g00v@9M??Vs0RI60puMM)ks%&`-vJd4GXebR z^6LNq0>DW`K~y-)rIkxalu;DNf8U+48AeAdnam6af-HQ6RyO#cLVSSZMon?!s#UIR zr5h33v~p9+h{TO3(hxytm}WGU_(H`;F&m2+%J*n9lb?RKMWB8ge-brgfHadD2g}7)1A{zT6EerQ~+pbG)*^2N5A99 zFaTf3hoj#?({z*6&~`EmYz2sX5h*!_Vj^P5I+exiAFlyuzur!N)%hw#0MrcE91E5g zn}_?Rn}$mb7!@M`t#hrcZLVQ#``RX7`d%IxmT$}Fx#Kxjqm`Mp8MfF0;MMn6w0~=t zVqjr_U)nESkU0l;dV%$GYvAY;wP~SkaFe7%u0CHn)n)=5WJ z2PR=+X=919Pi6aH03j`eajzL=jM^@A>Df|-mWOzn`4piD{HmXd!3sRIO(15JrriQ z*b(V5={hs88PEY|*JmkuU-Z|^04fqHQ2eT&j5it5^K+*z=`ra%$$Ua^Gf4GNHQu22 zNHhBJ*2h0j@4?Ii**M+E|ETstEsw7}Rum~Es-|+|?F~7)GWt)jjFTC3XLk?VOtxzR zAVNgYlhe~@S(#9IY*=MNB|SMkoi>y0+P?o#L!;$Oi+uR`A&VP}hk{~H#8RJB&;5({ z6|rmjlyECxE-)tt76)*7U37W7bZ6z~%1Mq+=C1uNiI&8DYv4C81|!)6Y*w`Z0000< KMNUMnLSTXoyKPti delta 727 zcmV;|0x12n2IK{h8Gix*0008(idp~w010qNS#tmY4H5tV4LSkn-I?A1000McNliru z)&Us|1Qc&>j4A*C0)t6JK~y-)m6T0P8c`I5@4OjH0|IRc{?ta2Cbcap4K~$@KWU9o zG~xyc#*Hgix^tx)LezyTS1ygwupuTy(wG=9R*MmpST$-8+kd#B4Om5y!44w>GhJw> zXz{0KcV5nyn|Dv%!+4&Ds|qK=)_`?~+VPxt0HE?oWr?h$A*Z2OR(vgqrNh3MuixLl z7+wrA!D~4QF45=f&9BUAsX7C^O>OIzbRi}LH!J^PzO%|%Dl5IP2mm`rSGmn!cT^Q`Sw9Q&K|ekNH!O0)UyHGqxW#uKgLFs<>1K4ZYqLvOus7nxeNDb3pS&b7+<#8m2VV~!CJwz3uRw}%@fNk! zwA^&S9Q^H-@*##}1YfPFZq9ASF}x_d2mthX`pNQ15fYswP7JGtQ2a_4495`ZKAXtC z*hfoV%UWb@tZWQnh+-+D*SLSS|L-nPx{0z;mSX`xC032U9Y+|VQ?y~#Fn=_kagnG# zr(Q7Y(SP*_8xia&d#Yd7&mGNWBvoP+(#SP}r<1e*@15=GmUK7G1OQ`!5u;d2`$@b1 z>+(t(xn{I%G@gvNueAr`!CT5-`LKfVJU`$cFz=e-f7JcFd*sas#`8SOu@#>yHcmJ0 zNopTyos~|dNQnR-3uU>gT&4okeMnP*$yMc2icpkS-ZKZ>@VDWiuS3U)vtcHyw~X{%bM?o@RaiVM@jzX7&l7)rI+Z{h#|002ov JPDHLkV1nXvQL_L5
Σ