diff --git a/content/fas.xul.php b/content/fas.xul.php
index c525f2e1e..d171ebf31 100644
--- a/content/fas.xul.php
+++ b/content/fas.xul.php
@@ -149,12 +149,12 @@ echo '';
-
+
-
+
diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php
index 308fe6619..2b644ccbb 100644
--- a/content/fasoverlay.js.php
+++ b/content/fasoverlay.js.php
@@ -265,6 +265,60 @@ function onVerbandSelect(event)
}
}
+function onFachbereichSelect(event)
+{
+ var tree=document.getElementById('tree-fachbereich');
+ //Wenn nichts markiert wurde -> beenden
+ if(tree.currentIndex==-1)
+ return;
+
+ 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;
+
+ col = tree.columns ? tree.columns["kurzbz"] : "kurzbz";
+ var kurzbz=tree.view.getCellText(tree.currentIndex,col);
+
+ // Lehrveranstaltung
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ try
+ {
+ url = 'rdf/lehrveranstaltung_einheiten.rdf.php?fachbereich_kurzbz='+kurzbz+'&'+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=true;
+ }
+ catch(e)
+ {
+ debug(e);
+ }
+}
+
function onOrtSelect()
{
var contentFrame=document.getElementById('iframeTimeTableWeek');
diff --git a/content/fasoverlay.xul.php b/content/fasoverlay.xul.php
index fd00bf5dc..56cc24e54 100644
--- a/content/fasoverlay.xul.php
+++ b/content/fasoverlay.xul.php
@@ -66,19 +66,17 @@ echo '';*/
-
+ datasources="../rdf/fachbereich.rdf.php" ref="http://www.technikum-wien.at/fachbereich/liste">
-
+
-
+
-
+
-
-
-
+
@@ -86,11 +84,10 @@ echo '';*/
-
-
-
-
-
+
+
+
+
diff --git a/content/lvplanung/lehrveranstaltungoverlay.xul.php b/content/lvplanung/lehrveranstaltungoverlay.xul.php
index a36fef295..34c7514f9 100644
--- a/content/lvplanung/lehrveranstaltungoverlay.xul.php
+++ b/content/lvplanung/lehrveranstaltungoverlay.xul.php
@@ -61,7 +61,7 @@ echo '
+
+
@@ -156,8 +160,9 @@ echo '
+
-
+
diff --git a/include/benutzerberechtigung.class.php b/include/benutzerberechtigung.class.php
index 75bf6c713..112a3f814 100644
--- a/include/benutzerberechtigung.class.php
+++ b/include/benutzerberechtigung.class.php
@@ -314,6 +314,8 @@ class benutzerberechtigung
{
if($b->fachbereich_kurzbz!='' && !in_array($b->fachbereich_kurzbz,$fachbereichs_kz))
$fachbereichs_kz[] = $b->fachbereich_kurzbz;
+ if($b->fachbereich_kurzbz=='' && ($b->studiengang_kz==0 || $b->studiengang_kz=''))
+ $fachbereichs_kz[] = '0';
}
}
sort($fachbereichs_kz);
diff --git a/include/lehreinheit.class.php b/include/lehreinheit.class.php
index eab5a5575..91fbe92be 100644
--- a/include/lehreinheit.class.php
+++ b/include/lehreinheit.class.php
@@ -199,13 +199,16 @@ class lehreinheit
}
- function load_lehreinheiten($lehrveranstaltung_id, $studiensemester_kurzbz, $uid='')
+ function load_lehreinheiten($lehrveranstaltung_id, $studiensemester_kurzbz, $uid='', $fachbereich_kurzbz='')
{
$qry = "SELECT * FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id='$lehrveranstaltung_id' AND studiensemester_kurzbz='$studiensemester_kurzbz' ";
- if($uid!='')
+ if($uid!='')
$qry .= " AND lehreinheit_id IN ( SELECT lehreinheit_id FROM lehre.tbl_lehreinheitmitarbeiter WHERE mitarbeiter_uid='".addslashes($uid)."')";
+ if($fachbereich_kurzbz!='')
+ $qry .= " AND lehrfach_id IN ( SELECT lehrfach_id FROM lehre.tbl_lehrfach WHERE fachbereich_kurzbz='".addslashes($fachbereich_kurzbz)."')";
+
$qry.= "ORDER BY lehreinheit_id";
if($result = pg_query($this->conn, $qry))
diff --git a/rdf/fachbereich.rdf.php b/rdf/fachbereich.rdf.php
index 79f692e9c..619ffed25 100644
--- a/rdf/fachbereich.rdf.php
+++ b/rdf/fachbereich.rdf.php
@@ -1,11 +1,25 @@
,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
*/
-// header für no cache
+// header fuer no cache
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,37 +29,38 @@ header("Content-type: application/vnd.mozilla.xul+xml");
// xml
echo '';
// DAO
-include('../vilesci/config.inc.php');
-include_once('../include/fachbereich.class.php');
+require_once('../vilesci/config.inc.php');
+require_once('../include/fachbereich.class.php');
+require_once('../include/functions.inc.php');
+require_once('../include/benutzerberechtigung.class.php');
// Datenbank Verbindung
if (!$conn = @pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
+$user = get_uid();
-// test
-
-$einheit_kurzbz='';
-$grp='1';
-//$ver='A';
-$sem=5;
-$stg_kz=145;
-
-
-/*
-$einheit_kurzbz='';
-$grp=$_GET['grp'];
-$ver=$_GET['ver'];
-$sem=$_GET['sem'];
-$stg_kz=$_GET['stg_kz']; */
+$rechte = new benutzerberechtigung($conn);
+$rechte->getBerechtigungen($user);
+$fb = $rechte->getFbKz();
// fachbereiche holen
-$fachbereichDAO=new fachbereich($conn);
-$fachbereiche=$fachbereichDAO->getAll();
+//$fachbereichDAO=new fachbereich($conn);
+//$fb = $fachbereiche=$fachbereichDAO->getAll();
+$qry = "SELECT * FROM public.tbl_fachbereich";
+if(count($fb)>0 && !in_array('0',$fb))
+{
+ foreach($fb as $fbbz)
+ $in = ", '".addslashes($fbbz)."'";
+ $qry.=" WHERE fachbereich_kurzbz in (1$in)";
+}
-$rdf_url='http://www.technikum-wien.at/tempus/fachbereich';
+$qry.=" ORDER BY bezeichnung";
+$result = pg_query($conn, $qry);
+
+$rdf_url='http://www.technikum-wien.at/fachbereich';
?>
@@ -57,27 +72,20 @@ $rdf_url='http://www.technikum-wien.at/tempus/fachbereich';
-
- id ?>
- kurzbz ?>
- bezeichnung ?>
- farbe ?>
- studiengang_kz ?>
- studiengang_kurzbz ?>
+
+ fachbereich_kurzbz ?>
+ bezeichnung ?>
+ farbe ?>
+ studiengang_kz ?>
-
-
\ No newline at end of file
diff --git a/rdf/lehrveranstaltung_einheiten.rdf.php b/rdf/lehrveranstaltung_einheiten.rdf.php
index d5c56b9d3..bc01a279d 100644
--- a/rdf/lehrveranstaltung_einheiten.rdf.php
+++ b/rdf/lehrveranstaltung_einheiten.rdf.php
@@ -43,7 +43,7 @@ require_once('../include/functions.inc.php');
// Datenbank Verbindung
if (!$conn = @pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
-
+ini_set('display_errors','0');
$user = get_uid();
/*
// test
@@ -61,22 +61,42 @@ $ver=(isset($_GET['ver'])?$_GET['ver']:'');
$sem=(isset($_GET['sem'])?$_GET['sem']:'');
$stg_kz=(isset($_GET['stg_kz'])?$_GET['stg_kz']:'');
$uid=(isset($_GET['uid'])?$_GET['uid']:'');
+$fachbereich_kurzbz=(isset($_GET['fachbereich_kurzbz'])?$_GET['fachbereich_kurzbz']:'');
loadVariables($conn, $user);
// LVAs holen
$lvaDAO=new lehrveranstaltung($conn, null, true);
-if($uid!='')
+if($uid!='') // Alle LVs eines Mitarbeiters
{
- $lvaDAO->loadLVAfromMitarbeiter($stg_kz, $uid, $semester_aktuell);
+ //$lvaDAO->loadLVAfromMitarbeiter($stg_kz, $uid, $semester_aktuell);
+ $qry = "SELECT distinct on(lehrveranstaltung_id) * FROM campus.vw_lehreinheit WHERE
+ studiensemester_kurzbz='".addslashes($semester_aktuell)."' AND
+ mitarbeiter_uid='".addslashes($uid)."'";
+ if($stg_kz!='0')
+ $qry .=" AND studiengang_kz='".addslashes($stg_kz)."'";
+
+}
+elseif($fachbereich_kurzbz!='') // Alle LVs eines Fachbereiches
+{
+ $qry = "SELECT distinct on(lehrveranstaltung_id) * FROM campus.vw_lehreinheit WHERE
+ studiensemester_kurzbz='".addslashes($semester_aktuell)."' AND
+ fachbereich_kurzbz='".addslashes($fachbereich_kurzbz)."'";
}
else
{
- $lvaDAO->load_lva($stg_kz, $sem);
+ $qry = "SELECT distinct on(lehrveranstaltung_id) * FROM campus.vw_lehreinheit WHERE
+ studiensemester_kurzbz='".addslashes($semester_aktuell)."' AND
+ studiengang_kz='".addslashes($stg_kz)."'";
+ if($semester!='')
+ $qry.=" AND semester='".addslashes($semester)."'";
+
+ //$lvaDAO->load_lva($stg_kz, $sem);
}
$rdf_url='http://www.technikum-wien.at/lehrveranstaltung_einheiten';
-
+if(!$result = pg_query($conn, $qry))
+ echo $qry;
?>
lehrveranstaltungen as $row_lva)
+ //foreach ($lvaDAO->lehrveranstaltungen as $row_lva)
+ while($row_lva = pg_fetch_object($result))
{
//Lehrveranstaltung
echo "
@@ -116,8 +137,9 @@ $rdf_url='http://www.technikum-wien.at/lehrveranstaltung_einheiten';
-
- ";
+
+
+ ";
$hier.="
@@ -126,7 +148,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, $uid))
+ if(!$le->load_lehreinheiten($row_lva->lehrveranstaltung_id, $semester_aktuell, $uid, $fachbereich_kurzbz))
echo "Fehler: $le->errormsg";
foreach ($le->lehreinheiten as $row_le)
@@ -153,6 +175,11 @@ $rdf_url='http://www.technikum-wien.at/lehrveranstaltung_einheiten';
$lkt='';
while($row_lkt = pg_fetch_object($result_lkt))
$lkt.=$row_lkt->kurzbz.' ';
+ $qry = "SELECT tbl_fachbereich.bezeichnung FROM public.tbl_fachbereich, lehre.tbl_lehrfach, lehre.tbl_lehreinheit WHERE tbl_fachbereich.fachbereich_kurzbz=tbl_lehrfach.fachbereich_kurzbz AND tbl_lehrfach.lehrfach_id=tbl_lehreinheit.lehrfach_id AND tbl_lehreinheit.lehreinheit_id='$row_le->lehreinheit_id'";
+ $fachbereich='';
+ if($result_fb = pg_query($conn, $qry))
+ if($row_fb = pg_fetch_object($result_fb))
+ $fachbereich = $row_fb->bezeichnung;
echo "
lehreinheit_id."\" about=\"".$rdf_url.'/'.$row_lva->lehrveranstaltung_id."/$row_le->lehreinheit_id\" >
@@ -187,6 +214,7 @@ $rdf_url='http://www.technikum-wien.at/lehrveranstaltung_einheiten';
$row_le->lvnr
+
";
$hier.="