diff --git a/cis/private/lehre/notenliste.php b/cis/private/lehre/notenliste.php index 43b264a65..1152bb4bc 100644 --- a/cis/private/lehre/notenliste.php +++ b/cis/private/lehre/notenliste.php @@ -61,6 +61,7 @@ $qry = "SELECT WHERE person.uid='$user' AND person.person_pk=student.person_fk AND + aufgenommenam is not null AND studiengang.studiengang_pk=student.studiengang_fk ORDER BY aufgenommenam DESC LIMIT 1 "; diff --git a/content/DragAndDrop.js b/content/DragAndDrop.js index 2cf4fc3ca..99dae2373 100644 --- a/content/DragAndDrop.js +++ b/content/DragAndDrop.js @@ -86,6 +86,7 @@ var nsDragAndDrop = **/ startDrag: function (aEvent, aDragDropObserver) { + try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); @@ -111,11 +112,10 @@ var nsDragAndDrop = { return; // not a draggable item, bail! } - if (!transferData.data) return; transferData = transferData.data; - + var transArray = Components.classes["@mozilla.org/supports-array;1"] .createInstance(Components.interfaces.nsISupportsArray); diff --git a/content/dragboard.js b/content/dragboard.js index 489514b3d..12cb84519 100644 --- a/content/dragboard.js +++ b/content/dragboard.js @@ -20,6 +20,22 @@ var listObserver= } }; +/***** Drag Observer fuer Gruppen *****/ +var grpObserver= +{ + onDragStart: function (evt,transferData,action) + { + var stg_kz=evt.target.getAttribute("stg_kz"); + var sem=evt.target.getAttribute("sem"); + var ver=evt.target.getAttribute("ver"); + var grp=evt.target.getAttribute("grp"); + var einheit=evt.target.getAttribute("gruppe"); + var paramList= stg_kz+'&'+sem+'&'+ver+'&'+grp+'&'+gruppe; + transferData.data=new TransferData(); + transferData.data.addDataForFlavour("gruppe",paramList); + } +}; + var boardObserver= { /*canHandleMultipleItems : function() diff --git a/content/dragboard.js.php b/content/dragboard.js.php index eee577a9b..003be9d15 100644 --- a/content/dragboard.js.php +++ b/content/dragboard.js.php @@ -1,4 +1,24 @@ , + * Andreas Oesterreicher and + * Rudolf Hangl . + */ include('../vilesci/config.inc.php'); ?> function lehrstunde(id,idList) @@ -8,7 +28,8 @@ function lehrstunde(id,idList) } var lehrstunden=new Array(); -/***** Drag Observer fuer Lehrveranstaltungen *****/ +/***** Drag Observer fuer Lehrveranstaltungen **** +may not be used?!? var lvaObserver= { onDragStart: function (evt,transferData,action) @@ -22,7 +43,224 @@ var lvaObserver= //alert("test"); } }; +*/ +/***** Drag Observer fuer Gruppen *****/ +var grpObserver= +{ + onDragStart: function (evt,transferData,action) + { + var tree = document.getElementById('tree-verband') + var row = { } + var col = { } + var child = { } + + //Index der Quell-Row ermitteln + tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) + + //Daten ermitteln + col = tree.columns ? tree.columns["stg_kz"] : "stg_kz"; + stg_kz=tree.view.getCellText(row.value,col); + + col = tree.columns ? tree.columns["sem"] : "sem"; + sem=tree.view.getCellText(row.value,col); + + col = tree.columns ? tree.columns["ver"] : "ver"; + ver=tree.view.getCellText(row.value,col); + + col = tree.columns ? tree.columns["grp"] : "grp"; + grp=tree.view.getCellText(row.value,col); + + col = tree.columns ? tree.columns["gruppe"] : "gruppe"; + gruppe=tree.view.getCellText(row.value,col); + + var paramList= stg_kz+'&'+sem+'&'+ver+'&'+grp+'&'+gruppe; + //debug('param:'+paramList); + transferData.data=new TransferData(); + transferData.data.addDataForFlavour("gruppe",paramList); + } +}; + +// **** +// * Observer fuer den Gruppen Tree im Lehreinheiten-Modul +// **** +var lfvt_grp_Observer= +{ + getSupportedFlavours : function () + { + var flavours = new FlavourSet(); + flavours.appendFlavour("gruppe"); + return flavours; + }, + onDragEnter: function (evt,flavour,session) + { + }, + onDragExit: function (evt,flavour,session) + { + }, + onDragOver: function(evt,flavour,session) + { + }, + onDrop: function (evt,dropdata,session) + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + try + { + dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService); + } + catch (e) + { + debug('treeDragDrop: e'); + } + + var ds = dragservice_ds; + + var ses = ds.getCurrentSession() + var sourceNode = ses.sourceNode + var lehreinheit_id = document.getElementById('lfvt_detail_textbox_lehreinheit_id').value; + var row = { } + var col = { } + var child = { } + + if(lehreinheit_id=='') + return false; + + quell_gruppe=dropdata.data; + var arr = quell_gruppe.split("&"); + + var stg_kz = arr[0]; + var sem = arr[1]; + var ver = arr[2]; + var grp = arr[3]; + var gruppe = arr[4]; + //alert("stg: "+stg_kz+" sem: "+sem+" ver: "+ver+" grp: "+grp+" gruppe: "+gruppe+" TO Lehreinheit:"+lehreinheit_id); + + var req = new phpRequest('lfvtCUD.php','',''); + neu = document.getElementById('lfvt_detail_checkbox_new').checked; + + req.add('type','lehreinheit_gruppe_add'); + + req.add('lehreinheit_id', lehreinheit_id); + req.add('studiengang_kz', stg_kz); + req.add('semester', sem); + req.add('verband', ver); + req.add('gruppe', grp); + req.add('gruppe_kurzbz', gruppe); + + var response = req.executePOST(); + if (response!='ok') + { + alert(response); + } + else + { + //GruppenTree Refreshen + lfvt_detail_gruppe_treerefresh(); + } + } +}; + +/***** Drag Observer fuer Lektoren *****/ +var tree_lektor_drag_Observer= +{ + onDragStart: function (evt,transferData,action) + { + var tree = document.getElementById('tree-lektor') + var row = { } + var col = { } + var child = { } + + //Index der Quell-Row ermitteln + tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) + + //Daten ermitteln + col = tree.columns ? tree.columns["uid"] : "uid"; + uid=tree.view.getCellText(row.value,col); + + var paramList= uid; + transferData.data=new TransferData(); + transferData.data.addDataForFlavour("mitarbeiter",paramList); + } +}; + +// **** +// * Observer fuer Lektor-Tree bei Lehreinheit-Modul +// * Bei OnDrop eines mitarbeiters wird dieser der +// * Lehreinheit zugeordnet +// **** +var lfvt_lektor_Observer= +{ + getSupportedFlavours : function () + { + var flavours = new FlavourSet(); + flavours.appendFlavour("mitarbeiter"); + return flavours; + }, + onDragEnter: function (evt,flavour,session) + { + + }, + onDragExit: function (evt,flavour,session) + { + }, + onDragOver: function(evt,flavour,session) + { + }, + onDrop: function (evt,dropdata,session) + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + try + { + dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService); + } + catch (e) + { + debug('treeDragDrop: e'); + } + + var ds = dragservice_ds; + + var ses = ds.getCurrentSession() + var sourceNode = ses.sourceNode + var lehreinheit_id = document.getElementById('lfvt_detail_textbox_lehreinheit_id').value; + var row = { } + var col = { } + var child = { } + + if(lehreinheit_id=='') + return false; + + uid=dropdata.data; + //alert("uid: "+uid); + + var req = new phpRequest('lfvtCUD.php','',''); + neu = document.getElementById('lfvt_detail_checkbox_new').checked; + + req.add('type','lehreinheit_mitarbeiter_add'); + + req.add('do', 'create'); + req.add('lehreinheit_id', lehreinheit_id); + req.add('mitarbeiter_uid', uid); + req.add('lehrfunktion_kurzbz', 'lektor'); + req.add('semesterstunden', '0'); + req.add('planstunden', '0'); + req.add('stundensatz', '0'); + req.add('faktor', '1'); + req.add('anmerkung', ''); + req.add('bismelden', 'true'); + + var response = req.executePOST(); + if (response!='ok') + { + alert(response); + } + else + { + //LektorTree Refreshen + lfvt_lektor_treerefresh(); + } + } +}; /***** Drag Observer fuer STPL-Verschiebung *****/ var listObserver= { diff --git a/content/lfvtCUD.php b/content/lfvtCUD.php index 18df5b096..21b8b6ee4 100644 --- a/content/lfvtCUD.php +++ b/content/lfvtCUD.php @@ -1,8 +1,37 @@ , + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +// **************************************** +// * Create/Update/Delete +// * der Lehreinheiten +// * +// * Script sorgt fuer den Datenbanzugriff +// * fuer das XUL - Lehreinheiten-Modul +// * +// * Derzeitige Funktionen: +// * - Lehreinheitmitarbeiter Zuteilung hinzufuegen/bearbeiten/loeschen +// * - Lehreinheitgruppe Zutelung hinzufuegen/loeschen +// * - Lehreinheit anlegen/bearbeiten/loeschen +// **************************************** require_once('../vilesci/config.inc.php'); require_once('../include/functions.inc.php'); @@ -17,6 +46,7 @@ $user = get_uid(); if (!$conn = @pg_pconnect(CONN_STRING)) $error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!'; +//Berechtigungen laden $rechte = new benutzerberechtigung($conn); $rechte->getBerechtigungen($user); if(!$rechte->isBerechtigt('admin')) @@ -26,6 +56,9 @@ $leDAO=new lehreinheit($conn); if(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_add') { + //Lehreinheitmitarbeiter Zuteilung + //wenn do=update dann wird aktualisiert + //wenn do=create wird ein neuer datensatz angelegt if (!isset($_POST['do'])) die('Fehlerhafte Parameteruebergabe'); @@ -33,12 +66,14 @@ if(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_add') $lem = new lehreinheitmitarbeiter($conn); if($_POST['do']=='update') - if(!$lem->load($_POST['lehreinheit_id'],$_POST['mitarbeiter_uid'])) + if(!$lem->load($_POST['lehreinheit_id'],$_POST['mitarbeiter_uid_old'])) die('Fehler beim laden:'.$lem->errormsg); $lem->lehreinheit_id = $_POST['lehreinheit_id']; $lem->lehrfunktion_kurzbz = $_POST['lehrfunktion_kurzbz']; $lem->mitarbeiter_uid = $_POST['mitarbeiter_uid']; + if($_POST['do']=='update') + $lem->mitarbeiter_uid_old = $_POST['mitarbeiter_uid_old']; $lem->semesterstunden = $_POST['semesterstunden']; $lem->planstunden = $_POST['planstunden']; $lem->stundensatz = $_POST['stundensatz']; @@ -68,8 +103,21 @@ if(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_add') else echo $lem->errormsg; } +elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_del') +{ + //Lehreinheitmitarbeiterzuteilung loeschen + if(isset($_POST['lehreinheit_id']) && is_numeric($_POST['lehreinheit_id']) && isset($_POST['mitarbeiter_uid'])) + { + $leg = new lehreinheitmitarbeiter($conn); + if($leg->delete($_POST['lehreinheit_id'], $_POST['mitarbeiter_uid'])) + echo 'ok'; + else + echo $leg->errormsg; + } +} elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_gruppe_del') { + //Lehreinheitgruppezuteilung loeschen if(isset($_POST['lehreinheitgruppe_id']) && is_numeric($_POST['lehreinheitgruppe_id'])) { $leg = new lehreinheitgruppe($conn); @@ -81,6 +129,7 @@ elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_gruppe_del') } elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_gruppe_add') { + //Lehreinheitgruppezuteilung anlegen if(isset($_POST['lehreinheit_id']) && is_numeric($_POST['lehreinheit_id'])) { $leg = new lehreinheitgruppe($conn); @@ -101,8 +150,9 @@ elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_gruppe_add') else echo "Lehreinheit_id ist ungueltig"; } -else +elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit') { + //Lehreinheit anlegen/aktualisieren if ($_POST['do']=='create' || ($_POST['do']=='update')) { if($_POST['do']=='update') @@ -148,14 +198,15 @@ else } } - else if ($_POST['do']=='delete') + else if ($_POST['do']=='delete') //Lehreinheit loeschen { // LE loeschen - if ($leDAO->delete($_POST['lehreinheit_id'])) echo 'ok'; else echo $leDAO->errormsg; } } +else + echo "Unkown type"; ?> diff --git a/content/lfvtdetailoverlay.xul.php b/content/lfvtdetailoverlay.xul.php index 30538d015..edc096dc5 100644 --- a/content/lfvtdetailoverlay.xul.php +++ b/content/lfvtdetailoverlay.xul.php @@ -1,4 +1,25 @@ , + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + header("Cache-Control: no-cache"); header("Cache-Control: post-check=0, pre-check=0",false); header("Expires Mon, 26 Jul 1997 05:00:00 GMT"); @@ -15,192 +36,189 @@ echo " - - - - - - - -