- Bei Auswahl eines Lektors werden die LVs zu denen er zugeteilt ist angezeigt.
This commit is contained in:
Andreas Österreicher
2007-03-23 14:20:21 +00:00
parent 25d8d8628f
commit 00cf3a02d5
8 changed files with 190 additions and 36 deletions
+70 -24
View File
@@ -152,7 +152,7 @@ function auswahlValues()
this.lektor_uid=null;
}
function onVerbandSelect(evt)
function onVerbandSelect(event)
{
var contentFrame=document.getElementById('iframeTimeTableWeek');
var tree=document.getElementById('tree-verband');
@@ -160,10 +160,21 @@ function onVerbandSelect(evt)
if(tree.currentIndex==-1)
return;
//Wenn nicht auf eine der Zeilen gedrueckt wurde (zb Scrollbar) -> beenden
if(evt.target.nodeName!='treechildren')
var row = { };
var col = { };
var child = { };
tree.treeBoxObject.getCellAt(event.pageX, event.pageY, row, col, child)
//Wenn es keine Row ist sondern ein Header oder Scrollbar dann abbrechen
if (!col.value)
return false;
//Wenn eine andere row markiert ist als angeklickt wurde -> beenden.
//Dies kommt vor wenn ein Subtree geoeffnet wird
if(row.value!=tree.currentIndex)
return;
var col;
col = tree.columns ? tree.columns["stg_kz"] : "stg_kz";
var stg_kz=tree.view.getCellText(tree.currentIndex,col);
@@ -246,6 +257,7 @@ function onVerbandSelect(evt)
treeLV.database.AddDataSource(LvTreeDatasource);
LvTreeDatasource.addXMLSinkObserver(LvTreeSinkObserver);
treeLV.builder.addListener(LvTreeListener);
document.getElementById('lehrveranstaltung-toolbar-lehrauftrag').hidden=true;
}
catch(e)
{
@@ -268,31 +280,65 @@ function onOrtSelect()
contentFrame.setAttribute('src', url);
}
function onLektorSelect()
function onLektorSelect(event)
{
/*
var contentFrame=document.getElementById('iframeTimeTableWeek');
var treeLektor=document.getElementById('tree-lektor');
if(treeLektor.currentIndex==-1)
var tree=document.getElementById('tree-lektor');
//Wenn nichts markiert wurde -> beenden
if(tree.currentIndex==-1)
return;
var row = { };
var col = { };
var child = { };
var uid=treeLektor.view.getCellText(treeLektor.currentIndex,"uid");
if(uid=='')
tree.treeBoxObject.getCellAt(event.pageX, event.pageY, row, col, child)
//Wenn es keine Row ist sondern ein Header oder Scrollbar dann abbrechen
if (!col.value)
return false;
//Wenn eine andere row markiert ist als angeklickt wurde -> beenden.
//Dies kommt vor wenn ein Subtree geoeffnet wird
if(row.value!=tree.currentIndex)
return;
//var treeVerband=document.getElementById('tree-verband');
//var stg_kz=treeVerband.view.getCellText(treeVerband.currentIndex,"stg_kz");
var daten=window.TimeTableWeek.document.getElementById('TimeTableWeekData');
var datum=parseInt(daten.getAttribute("datum"));
var attributes="?type=lektor&pers_uid="+uid+"&datum="+datum;
var url = "<?php echo APP_ROOT; ?>content/timetable-week.xul.php";
url+=attributes;
if (url)
contentFrame.setAttribute('src', url);
// LVAs
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
vboxLehrveranstalungPlanung.setAttribute('datasources','../rdf/lehreinheit-lvplan.rdf.php?'+"type=lektor&lektor="+uid);
*/
col = tree.columns ? tree.columns["uid"] : "uid";
var uid=tree.view.getCellText(tree.currentIndex,col);
var stg_idx = tree.view.getParentIndex(tree.currentIndex);
var col = tree.columns ? tree.columns["studiengang_kz"] : "studiengang_kz";
var stg_kz=tree.view.getCellText(stg_idx,col);
document.getElementById('LehrveranstaltungEditor').setAttribute('stg_kz',stg_kz);
document.getElementById('LehrveranstaltungEditor').setAttribute('uid',uid);
// Lehrveranstaltung des Lektors laden
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
try
{
url = '<?php echo APP_ROOT; ?>rdf/lehrveranstaltung_einheiten.rdf.php?stg_kz='+stg_kz+'&uid='+uid+'&'+gettimestamp();
var treeLV=document.getElementById('lehrveranstaltung-tree');
//Alte DS entfernen
var oldDatasources = treeLV.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
treeLV.database.RemoveDataSource(oldDatasources.getNext());
}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
LvTreeDatasource = rdfService.GetDataSource(url);
LvTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
LvTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
treeLV.database.AddDataSource(LvTreeDatasource);
LvTreeDatasource.addXMLSinkObserver(LvTreeSinkObserver);
treeLV.builder.addListener(LvTreeListener);
document.getElementById('lehrveranstaltung-toolbar-lehrauftrag').hidden=false;
}
catch(e)
{
debug(e);
}
}
function loadURL(event)
+1 -1
View File
@@ -98,7 +98,7 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';*/
</template>
</tree>
<tree id="tree-lektor" onmouseup="onLektorSelect();"
<tree id="tree-lektor" onmouseup="onLektorSelect(event);"
seltype="single" hidecolumnpicker="false" flex="1"
enableColumnDrag="true"
ondraggesture="nsDragAndDrop.startDrag(event,mitarbeiterDDObserver);"
+27 -3
View File
@@ -161,7 +161,6 @@ if(!$error)
$lem->semesterstunden = '0';
$lem->planstunden = '0';
$lem->faktor = '1';
$lem->anmerkung = '';
$lem->bismelden = true;
$lem->updateamum = date('Y-m-d H:i:s');
@@ -170,7 +169,7 @@ if(!$error)
$lem->insertvon = $user;
$lem->new=true;
//Stundensatz aus tbl_mitarbeiter holen
$qry = "SELECT stundensatz FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='".addslashes($_POST['mitarbeiter_uid'])."'";
if($result = pg_query($conn, $qry))
{
@@ -194,7 +193,32 @@ if(!$error)
$return=false;
$errormsg='Fehler bei einer Datenbankabfrage:'.pg_errormessage($conn);
}
//Faktor aus tbl_lehrveranstaltung holen
$qry = "SELECT planfaktor FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE lehreinheit_id='".$_POST['lehreinheit_id']."';";
if($result = pg_query($conn, $qry))
{
if($row = pg_fetch_object($result))
{
if($row->planfaktor!='')
$lem->faktor = $row->planfaktor;
else
$lem->faktor = '0';
}
else
{
$error = true;
$return = false;
$errormsg = 'Lehrveranstaltung wurde nicht gefunden';
}
}
else
{
$error = true;
$return = false;
$errormsg = 'Fehler in einer Datenbankabfrage:'.pg_errormessage($conn);
}
if(!$error)
{
if($lem->save())
@@ -170,6 +170,17 @@ function LvDetailMitarbeiterTreeKeyPress(event)
LeMitarbeiterDel();
}
// ****
// * Erstellt den Lehrauftrag fuer
// * einen Mitarbeiter
// ****
function LvCreateLehrauftrag()
{
stg = document.getElementById('LehrveranstaltungEditor').getAttribute('stg_kz');
uid = document.getElementById('LehrveranstaltungEditor').getAttribute('uid');
alert('stg:'+stg+' uid:'+uid);
}
// ****************** FUNKTIONEN ************************** //
// ****
@@ -44,14 +44,14 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungdetailo
<!-- ************************ -->
<!-- * Lehrveranstaltung * -->
<!-- ************************ -->
<vbox id="LehrveranstaltungEditor" flex="1">
<vbox id="LehrveranstaltungEditor" flex="1" uid="" stg_kz="">
<toolbox>
<toolbar id="nav-toolbar">
<toolbarbutton id="lehrveranstaltung-toolbar-neu" label="Neue Lehreinheit" oncommand="LeNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neue Lehreinheit anlegen" />
<toolbarbutton id="lehrveranstaltung-toolbar-del" label="Löschen" oncommand="LeDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Lehreinheiten löschen"/>
<toolbarbutton id="lehrveranstaltung-toolbar-refresh" label="Neu laden" oncommand="LvTreeRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
<toolbarbutton id="lehrveranstaltung-toolbar-lehrauftrag" label="Lehrauftrag" oncommand="LvCreateLehrauftrag()" disabled="false" image="../skin/images/person.gif" tooltiptext="Lehrauftrag ausdrucken" hidden="true"/>
<!--<toolbarbutton id="lehrveranstaltung-toolbar-refresh" label="Load" oncommand="debugload()" disabled="false"/>-->
</toolbar>
</toolbox>
+7 -2
View File
@@ -199,9 +199,14 @@ class lehreinheit
}
function load_lehreinheiten($lehrveranstaltung_id, $studiensemester_kurzbz)
function load_lehreinheiten($lehrveranstaltung_id, $studiensemester_kurzbz, $uid='')
{
$qry = "SELECT * FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id='$lehrveranstaltung_id' AND studiensemester_kurzbz='$studiensemester_kurzbz' ORDER BY lehreinheit_id";
$qry = "SELECT * FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id='$lehrveranstaltung_id' AND studiensemester_kurzbz='$studiensemester_kurzbz' ";
if($uid!='')
$qry .= " AND lehreinheit_id IN ( SELECT lehreinheit_id FROM lehre.tbl_lehreinheitmitarbeiter WHERE mitarbeiter_uid='".addslashes($uid)."')";
$qry.= "ORDER BY lehreinheit_id";
if($result = pg_query($this->conn, $qry))
{
+61
View File
@@ -439,5 +439,66 @@ class lehrveranstaltung
{
return false;
}
// ****************************************************
// * Laedt die Lehrveranstaltung zu der ein Mitarbeiter
// * in einem Studiensemester zugeordnet ist
// * @param studiengang_kz, uid, studiensemester_kurzbz
// * @return true wenn ok, false wenn Fehler
// ****************************************************
function loadLVAfromMitarbeiter($studiengang_kz, $uid, $studiensemester_kurzbz)
{
if(!is_numeric($studiengang_kz))
{
$this->errormsg = 'Studiengang_kz ist ungueltig';
return false;
}
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter WHERE ";
if($studiengang_kz!=0)
$qry.="tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang_kz)."' AND ";
$qry.= "tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id AND
tbl_lehreinheitmitarbeiter.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND
tbl_lehreinheit.studiensemester_kurzbz = '".addslashes($studiensemester_kurzbz)."' AND
tbl_lehreinheitmitarbeiter.mitarbeiter_uid='".addslashes($uid)."';";
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
{
$lv_obj = new lehrveranstaltung($this->conn, null, null);
$lv_obj->lehrveranstaltung_id=$row->lehrveranstaltung_id;
$lv_obj->studiengang_kz=$row->studiengang_kz;
$lv_obj->bezeichnung=$row->bezeichnung;
$lv_obj->kurzbz=$row->kurzbz;
$lv_obj->semester=$row->semester;
$lv_obj->ects=$row->ects;
$lv_obj->semesterstunden=$row->semesterstunden;
$lv_obj->anmerkung=$row->anmerkung;
$lv_obj->lehre=($row->lehre=='t'?true:false);
$lv_obj->lehreverzeichnis=$row->lehreverzeichnis;
$lv_obj->aktiv=($row->aktiv=='t'?true:false);
$lv_obj->ext_id=$row->ext_id;
$lv_obj->insertamum=$row->insertamum;
$lv_obj->insertvon=$row->insertvon;
$lv_obj->planfaktor=$row->planfaktor;
$lv_obj->planlektoren=$row->planlektoren;
$lv_obj->planpersonalkosten=$row->planpersonalkosten;
$lv_obj->plankostenprolektor=$row->plankostenprolektor;
$lv_obj->updateamum=$row->updateamum;
$lv_obj->updatevon=$row->updatevon;
$lv_obj->sprache=$row->sprache;
$this->lehrveranstaltungen[] = $lv_obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Lesen aus der Datenbank';
return false;
}
}
}
?>
+11 -4
View File
@@ -60,13 +60,20 @@ $grp=(isset($_GET['grp'])?$_GET['grp']:'');
$ver=(isset($_GET['ver'])?$_GET['ver']:'');
$sem=(isset($_GET['sem'])?$_GET['sem']:'');
$stg_kz=(isset($_GET['stg_kz'])?$_GET['stg_kz']:'');
$lektor=(isset($_GET['lektor'])?$_GET['lektor']:'');
$uid=(isset($_GET['uid'])?$_GET['uid']:'');
loadVariables($conn, $user);
// LVAs holen
$lvaDAO=new lehrveranstaltung($conn, null, true);
$lvaDAO->load_lva($stg_kz, $sem);
if($uid!='')
{
$lvaDAO->loadLVAfromMitarbeiter($stg_kz, $uid, $semester_aktuell);
}
else
{
$lvaDAO->load_lva($stg_kz, $sem);
}
$rdf_url='http://www.technikum-wien.at/lehrveranstaltung_einheiten';
@@ -119,7 +126,7 @@ $rdf_url='http://www.technikum-wien.at/lehrveranstaltung_einheiten';
//zugehoerige LE holen
$le = new lehreinheit($conn, null, true);
if(!$le->load_lehreinheiten($row_lva->lehrveranstaltung_id, $semester_aktuell))
if(!$le->load_lehreinheiten($row_lva->lehrveranstaltung_id, $semester_aktuell, $uid))
echo "Fehler: $le->errormsg";
foreach ($le->lehreinheiten as $row_le)