- Karteireiter für Fachbereich
This commit is contained in:
Andreas Österreicher
2007-03-26 15:22:45 +00:00
parent f622f15adf
commit 92680521a1
8 changed files with 164 additions and 67 deletions
+2 -2
View File
@@ -149,12 +149,12 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/fasoverlay.xul.php"?>';
<tabbox id="tabbox-left" orient="vertical" flex="1">
<tabs orient="horizontal">
<tab id="tab-verband" label="Verband" />
<!-- <tab id="tab-ort" label="Ort" /> -->
<tab id="tab-fachbereich" label="Fachbereich" />
<tab id="tab-lektor" label="Lektor" />
</tabs>
<tabpanels id="tabpanels-left" flex="1">
<tree id="tree-verband" />
<!-- <tree id="tree-ort" /> -->
<tree id="tree-fachbereich" />
<tree id="tree-lektor" />
</tabpanels>
</tabbox>
+54
View File
@@ -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 = '<?php echo APP_ROOT; ?>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');
+10 -13
View File
@@ -66,19 +66,17 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';*/
</template>
</tree>
<tree id="tree-ort" onselect="onOrtSelect();"
<tree id="tree-fachbereich" onmouseup="onFachbereichSelect(event);"
seltype="single" hidecolumnpicker="false" flex="1"
datasources="../rdf/ort.rdf.php" ref="http://www.technikum-wien.at/ort/alle-orte">
datasources="../rdf/fachbereich.rdf.php" ref="http://www.technikum-wien.at/fachbereich/liste">
<treecols>
<treecol id="raumtyp" label="Raumtyp" flex="2" primary="true" />
<treecol id="bezeichnung" label="Bezeichnung" flex="3" primary="true" />
<splitter class="tree-splitter"/>
<treecol id="ort_kurzbz" label="Raum" flex="4" hidden="true"/>
<treecol id="kurzbz" label="Kurzbz" flex="2" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="hierarchie" label="HI" flex="1" hidden="true"/>
<treecol id="farbe" label="Farbe" flex="1" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="ort_bezeichnung" label="Bezeichnung" flex="3" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="max_person" label="MaxP" flex="1" hidden="true"/>
<treecol id="stg_kz" label="Stg_kz" flex="1" hidden="true"/>
</treecols>
<template>
@@ -86,11 +84,10 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';*/
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/ort/rdf#raumtyp"/>
<treecell label="rdf:http://www.technikum-wien.at/ort/rdf#ort_kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/ort/rdf#hierarchie"/>
<treecell label="rdf:http://www.technikum-wien.at/ort/rdf#ort_bezeichnung"/>
<treecell label="rdf:http://www.technikum-wien.at/ort/rdf#max_person"/>
<treecell label="rdf:http://www.technikum-wien.at/fachbereich/rdf#bezeichnung"/>
<treecell label="rdf:http://www.technikum-wien.at/fachbereich/rdf#kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/fachbereich/rdf#farbe"/>
<treecell label="rdf:http://www.technikum-wien.at/fachbereich/rdf#studiengang_kz"/>
</treerow>
</treeitem>
</treechildren>
@@ -61,7 +61,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungdetailo
<!-- Bem.: style="visibility:collapse" versteckt eine Spalte -->
<tree id="lehrveranstaltung-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/lehrveranstaltung_einheiten/liste"
style="margin:0px;"
style="margin:0px;" enableColumnDrag="true"
onselect="LeAuswahl(this);"
persist="height"
onkeypress="LvTreeKeyPress(event)"
@@ -127,6 +127,10 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungdetailo
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#anmerkung"/>
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-treecol-fachbereich" label="Fachbereich" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#fachbereich"/>
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-treecol-lehrveranstaltung_id" label="Lehrveranstaltung_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehrveranstaltung_id" />
@@ -156,8 +160,9 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungdetailo
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#gruppen"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lektoren"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#anmerkung"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#fachbereich"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehrveranstaltung_id" />
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehreinheit_id"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehreinheit_id"/>
</treerow>
</treeitem>
</treechildren>
+2
View File
@@ -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);
+5 -2
View File
@@ -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))
+47 -39
View File
@@ -1,11 +1,25 @@
<?php
/*
* Created on 02.12.2004
/* Copyright (C) 2006 Technikum-Wien
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
// 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 '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>';
// 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';
<RDF:Seq about="<?php echo $rdf_url ?>/liste">
<?php
if (is_array($fachbereiche)) {
foreach ($fachbereiche as $fb)
{
while ($row = pg_fetch_object($result))
{
?>
<RDF:li>
<RDF:Description id="<?php echo $fb->id; ?>" about="<?php echo $rdf_url.'/'.$fb->id; ?>" >
<FACHBEREICH:id><?php echo $fb->id ?></FACHBEREICH:id>
<FACHBEREICH:kurzbz><?php echo $fb->kurzbz ?></FACHBEREICH:kurzbz>
<FACHBEREICH:bezeichnung><?php echo $fb->bezeichnung ?></FACHBEREICH:bezeichnung>
<FACHBEREICH:farbe><?php echo $fb->farbe ?></FACHBEREICH:farbe>
<FACHBEREICH:studiengang_kz><?php echo $fb->studiengang_kz ?></FACHBEREICH:studiengang_kz>
<FACHBEREICH:studiengang_kurzbz><?php echo $fb->studiengang_kurzbz ?></FACHBEREICH:studiengang_kurzbz>
<RDF:Description id="<?php echo $row->fachbereich_kurzbz; ?>" about="<?php echo $rdf_url.'/'.$row->fachbereich_kurzbz; ?>" >
<FACHBEREICH:kurzbz><?php echo $row->fachbereich_kurzbz ?></FACHBEREICH:kurzbz>
<FACHBEREICH:bezeichnung><?php echo $row->bezeichnung ?></FACHBEREICH:bezeichnung>
<FACHBEREICH:farbe><?php echo $row->farbe ?></FACHBEREICH:farbe>
<FACHBEREICH:studiengang_kz><?php echo $row->studiengang_kz ?></FACHBEREICH:studiengang_kz>
</RDF:Description>
</RDF:li>
<?php
}
}
?>
</RDF:Seq>
</RDF:RDF>
+37 -9
View File
@@ -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;
?>
<RDF:RDF
@@ -86,7 +106,8 @@ $rdf_url='http://www.technikum-wien.at/lehrveranstaltung_einheiten';
<?php
foreach ($lvaDAO->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';
<LVA:raumtyp></LVA:raumtyp>
<LVA:raumtypalternativ></LVA:raumtypalternativ>
<LVA:gruppen></LVA:gruppen>
<LVA:lektoren></LVA:lektoren>
</RDF:Description>";
<LVA:lektoren></LVA:lektoren>
<LVA:fachbereich></LVA:fachbereich>
</RDF:Description>";
$hier.="
<RDF:li>
@@ -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 "
<RDF:Description id=\"".$row_le->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';
<LVA:lvnr>$row_le->lvnr</LVA:lvnr>
<LVA:gruppen><![CDATA[$grp]]></LVA:gruppen>
<LVA:lektoren><![CDATA[".$lkt."]]></LVA:lektoren>
<LVA:fachbereich><![CDATA[".$fachbereich."]]></LVA:fachbereich>
</RDF:Description>";
$hier.="