mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-22 01:12:17 +00:00
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
AuthName "Technikum-Wien"
|
||||
AuthType Basic
|
||||
AuthLDAPURL ldap://pdc1.technikum-wien.at/ou=People,dc=technikum-wien,dc=at?uid?one?objectClass=posixAccount
|
||||
require group cn=fhadmin,ou=Group,dc=technikum-wien,dc=at
|
||||
require user trob
|
||||
require user wahl
|
||||
require user drabek
|
||||
require user elgner
|
||||
require user schaaf
|
||||
require user kofler
|
||||
require user esberger
|
||||
require user kollmitz
|
||||
require user schmoe
|
||||
require user trattner
|
||||
require user naglr
|
||||
require user patai
|
||||
require user tw01e061
|
||||
require user docsek
|
||||
require user teschl
|
||||
require user oesi
|
||||
require user adams
|
||||
require user weisss
|
||||
require user moserp
|
||||
require user moehring
|
||||
require user skritek
|
||||
require user kroesl
|
||||
require user ffe
|
||||
require user kindlm
|
||||
require user schmuderm
|
||||
require user sagmeister
|
||||
require user masik
|
||||
require user kubicka
|
||||
require user lehner
|
||||
require user schwarzl
|
||||
require user horauer
|
||||
require user me
|
||||
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
/**
|
||||
* FAS-Synchronisation
|
||||
*/
|
||||
include ('../../vilesci/config.inc.php');
|
||||
$adress='fas_sync@technikum-wien.at, baier@technikum-wien.at';
|
||||
mail($adress,"FAS Synchro mit VILESCI","BEGIN OF SYNCHRONISATION","From: vilesci@technikum-wien.at");
|
||||
$conn=pg_connect(CONN_STRING);
|
||||
$conn_fas=pg_connect(CONN_STRING_FAS);
|
||||
|
||||
// Anzahl der Studenten in VILESCI
|
||||
$sql_query="SELECT count(*) AS anz FROM tbl_student";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
$vilesci_anz_std=pg_fetch_result($result,0,'anz');
|
||||
|
||||
// Start Studenten Synchro
|
||||
$sql_query="SELECT DISTINCT uid FROM fas_view_vilesci_abbrecher WHERE uid IS NOT NULL AND uid NOT LIKE '' ORDER BY uid"; // LIMIT 5";
|
||||
//echo $sql_query."<br>";
|
||||
flush();
|
||||
$result=pg_exec($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$text="Dies ist eine automatische eMail!\r\r";
|
||||
$text.="Es wurde eine Synchronisation mit FAS durchgeführt.\r";
|
||||
$text.="Anzahl der Ex-Studenten vom FAS-Import: $num_rows \r";
|
||||
$text.="Anzahl der Studenten in VILESCI: $vilesci_anz_std \r\r";
|
||||
echo $text.'<BR>';
|
||||
flush();
|
||||
$update_error=0;
|
||||
$anz_update=0;
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($result,$i);
|
||||
$uid=str_replace(' ','',$row->uid);
|
||||
// SQL vorbereiten (jeden Studenten vom FAS im vilesci suchen
|
||||
$sql_query="SELECT uid,titel,vornamen,nachname, semester FROM tbl_person NATURAL JOIN tbl_student WHERE uid LIKE '$uid'";
|
||||
//echo $sql_query;
|
||||
$res_std=pg_query($conn, $sql_query);
|
||||
$num_rows_std=pg_numrows($res_std);
|
||||
// neue Studenten
|
||||
if ($num_rows_std>=1)
|
||||
{
|
||||
$row_std=pg_fetch_object($res_std);
|
||||
if ($row_std->semester!=10)
|
||||
{
|
||||
$text.="Der Student $row_std->vornamen $row_std->nachname ($row_std->uid) wird verschoben.\r";
|
||||
$sql_query="UPDATE tbl_student SET semester=10, updateamum=now(), updatevon='auto' WHERE uid LIKE '$uid'";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_update=pg_query($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
else
|
||||
$anz_update++;
|
||||
}
|
||||
}
|
||||
}
|
||||
$text.="$update_error Fehler bei Student-Update!\r";
|
||||
$text.="$anz_update Studenten wurden ins 10te Semester verschoben.\r";
|
||||
$text.="\rEND OF SYNCHRONISATION\r";
|
||||
if (mail($adress,"FAS Synchro mit VILESCI (Ex-Studenten)",$text,"From: vilesci@technikum-wien.at"))
|
||||
$sendmail=true;
|
||||
else
|
||||
$sendmail=false;
|
||||
?>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>FAS-Synchro mit VILESCI (Ex-Studenten)</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<LINK rel="stylesheet" href="../../include/styles.css" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
if ($sendmail)
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
echo $text;
|
||||
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,202 @@
|
||||
<?php
|
||||
include ('../../vilesci/config.inc.php');
|
||||
|
||||
function clean_string($string)
|
||||
{
|
||||
$trans = array("ä" => "ae",
|
||||
"ö" => "oe",
|
||||
"ü" => "ue",
|
||||
"Ä" => "ae",
|
||||
"Ö" => "oe",
|
||||
"Ü" => "ue",
|
||||
"á" => "a",
|
||||
"à" => "a",
|
||||
"é" => "e",
|
||||
"è" => "e",
|
||||
"ó" => "o",
|
||||
"ò" => "o",
|
||||
"í" => "i",
|
||||
"ì" => "i",
|
||||
"ú" => "u",
|
||||
"ù" => "u",
|
||||
"ß" => "ss",
|
||||
"´" => "",
|
||||
"`" => "",
|
||||
);
|
||||
$string = strtr($string, $trans);
|
||||
return $string;
|
||||
}
|
||||
|
||||
$adress='fas_sync@technikum-wien.at';
|
||||
//mail($adress,"FAS Synchro mit VILESCI (Lektoren)","BEGIN OF SYNCHRONISATION","From: vilesci@technikum-wien.at");
|
||||
$conn=pg_connect(CONN_STRING);
|
||||
$conn_fas=pg_connect(CONN_STRING_FAS);
|
||||
|
||||
// Anzahl der Mitarbeiter in VILESCI
|
||||
$sql_query="SELECT count(*) AS anz FROM tbl_mitarbeiter WHERE uid NOT LIKE '\\\\_%'";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
$vil_anz_mta=pg_fetch_result($result,0,'anz');
|
||||
|
||||
// Start Studenten Synchro
|
||||
$sql_query="SELECT * FROM vw_vilesci_mitarbeiter_aktiv WHERE uid IS NOT NULL AND uid NOT LIKE ''"; // LIMIT 5";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$text="Dies ist eine automatische eMail!\r\r";
|
||||
$text.="Es wurde eine Synchronisation mit FAS durchgeführt.\r";
|
||||
$text.="Anzahl der Mitarbeiter vom FAS-Import: $num_rows \r";
|
||||
$text.="Anzahl der Mitarbeiter in der VILESCI: $vil_anz_mta \r\r";
|
||||
$plausi_error=0;
|
||||
$update_error=0;
|
||||
$insert_error=0;
|
||||
$double_error=0;
|
||||
$anz_update=0;
|
||||
$anz_insert=0;
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($result,$i);
|
||||
$row->gebort=substr($row->gebort,0,30);
|
||||
//$row->titel=substr($row->titel,0,15);
|
||||
$uid=str_replace(' ','',$row->uid);
|
||||
// Plausibilitaetscheck
|
||||
if (strlen($row->titel)>64)
|
||||
$text.="Der Mitarbeiter $row->titel $row->vornamen $row->nachname ($row->uid) hat einen zu langen Titel.\r";
|
||||
if (strlen($row->titel)<=64)
|
||||
{
|
||||
// SQL vorbereiten (jeden Mitarbeiter vom FAS in VILESCI suchen
|
||||
$sql_query="SELECT uid,titel,vornamen,nachname,gebdatum,gebort,";
|
||||
$sql_query.="personalnummer";
|
||||
$sql_query.=" FROM tbl_person NATURAL JOIN tbl_mitarbeiter WHERE uid LIKE '$uid'";
|
||||
//echo $sql_query;
|
||||
$res_std=pg_exec($conn, $sql_query);
|
||||
$num_rows_std=pg_numrows($res_std);
|
||||
|
||||
// neue Lektoren
|
||||
if ($num_rows_std==0)
|
||||
{
|
||||
$text.="Der Lektor $row->vornamen $row->nachname ($row->uid) wird neu angelegt.\r";
|
||||
// person
|
||||
$qry="INSERT INTO tbl_person(uid,titel,vornamen, nachname, gebdatum, gebort) ".
|
||||
"VALUES('$uid','$row->titel','$row->vornamen','$row->nachname','$row->gebdatum','$row->gebort')";
|
||||
echo $qry.'<BR>';
|
||||
if(!$res_insert=pg_exec($conn, $qry))
|
||||
{
|
||||
$text.=$qry;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$insert_error++;
|
||||
}
|
||||
|
||||
//Alias erstellen
|
||||
$vn = split('[- .,]',strtolower($row->vornamen));
|
||||
$vn = clean_string($vn[0]);
|
||||
|
||||
$nn = split('[- .,]',strtolower($row->nachname));
|
||||
$nn = clean_string($nn[0]);
|
||||
$alias = $vn.".".$nn;
|
||||
$qry = "UPDATE tbl_person set alias='$alias' where uid='$uid'";
|
||||
if(!$res_insert=pg_exec($conn, $qry))
|
||||
{
|
||||
$text.=$qry;
|
||||
$text.="\rFehler: Alias existiert bereits: $alias";
|
||||
$insert_error++;
|
||||
}
|
||||
// lektor
|
||||
$sql_query="INSERT INTO tbl_mitarbeiter (uid,personalnummer,kurzbz,lektor,telefonklappe,fixangestellt) ".
|
||||
"VALUES('$row->uid','$row->persnr','$row->kurzbez',true,'$row->teltw',".($row->fixangestellt?'true':'false').")";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_insert=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$insert_error++;
|
||||
}
|
||||
else
|
||||
$anz_insert++;
|
||||
}
|
||||
// bestehende Lektoren
|
||||
elseif ($num_rows_std==1)
|
||||
{
|
||||
$update=0;
|
||||
$row_std=pg_fetch_object($res_std,0);
|
||||
if ($row->gruppe==NULL)
|
||||
$row->gruppe=1;
|
||||
if ($row->titel!=$row_std->titel)
|
||||
$update=1;
|
||||
elseif ($row->vornamen!=$row_std->vornamen)
|
||||
$update=2;
|
||||
elseif ($row->nachname!=$row_std->nachname)
|
||||
$update=3;
|
||||
elseif ($row->gebdatum!=$row_std->gebdatum)
|
||||
$update=4;
|
||||
elseif ($row->gebort!=$row_std->gebort)
|
||||
$update=5;
|
||||
elseif ($row->persnr!=$row_std->personalnummer)
|
||||
$update=6;
|
||||
if ($update)
|
||||
{
|
||||
$text.="Der Lektor $row->vornamen $row->nachname ($row->uid) [$update] wird upgedatet.\r";
|
||||
// person
|
||||
$sql_query="UPDATE tbl_person SET titel='$row->titel', vornamen='$row->vornamen', ".
|
||||
" nachname='$row->nachname', gebdatum='$row->gebdatum', gebort='$row->gebort'".
|
||||
" WHERE uid LIKE '$uid'";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_update=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
|
||||
$sql_query="UPDATE tbl_mitarbeiter SET personalnummer='$row->persnr',fixangestellt=".($row->fixangestellt?'TRUE':'FALSE');
|
||||
$sql_query.=" WHERE uid LIKE '$uid'";
|
||||
echo $sql_query.'<BR>'; // kurzbz='$row->kurzbez',
|
||||
if(!$res_update=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
else
|
||||
$anz_update++;
|
||||
}
|
||||
}
|
||||
// Lektor kommt mehrmals vor ->Warnung
|
||||
elseif ($num_rows_std>1)
|
||||
{
|
||||
$text.="\r!!! Der Lektor $row->vornamen $row->nachname ($row->uid) kommt mehrfach vor!\r";
|
||||
$double_error++;
|
||||
}
|
||||
}
|
||||
else
|
||||
$plausi_error++;
|
||||
}
|
||||
$text.="\r$plausi_error Fehler beim Plausibilitaetscheck!\r";
|
||||
$text.="$update_error Fehler bei Lektor-Update!\r";
|
||||
$text.="$insert_error Fehler bei Lektor-Insert!\r";
|
||||
$text.="$double_error Lektoren kommen in VileSci doppelt vor!\r\r";
|
||||
$text.="$anz_update Lektoren wurden upgedatet.\r";
|
||||
$text.="$anz_insert Lektoren wurden neu angelegt.\r\r";
|
||||
$text.="\rEND OF SYNCHRONISATION\r";
|
||||
if (mail($adress,"FAS Synchro mit VileSci (Lektoren)",$text,"From: vilesci@technikum-wien.at"))
|
||||
$sendmail=true;
|
||||
else
|
||||
$sendmail=false;
|
||||
?>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>FAS-Synchro mit VileSci (Lektoren)</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
if ($sendmail)
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
echo $text;
|
||||
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/***************************************************************
|
||||
Script zur Feststellung, welche Daten im FAS nicht durchkommen.
|
||||
***************************************************************/
|
||||
$adress='pam@technikum-wien.at';
|
||||
include('../../vilesci/config.inc.php');
|
||||
$conn=pg_connect($conn_string);
|
||||
$conn_fas=pg_connect($conn_string_fas);
|
||||
|
||||
$headers ="MIME-Version: 1.0\r\n";
|
||||
$headers.="Content-type: text/html; charset=iso-8859-1\r\n";
|
||||
$headers.="From: vilesci@technikum-wien.at";
|
||||
|
||||
$bgcolor[0]="#CCCCCC";
|
||||
$bgcolor[1]="#DDDDDD";
|
||||
|
||||
$text='<html><head><title>FAS-Synchro mit TEMPUS fehlende Lektoren</title></head>';
|
||||
$text.='<body>';
|
||||
|
||||
// Start Check
|
||||
//Daten aus vilesci holen
|
||||
$sql_query="SELECT tbl_person.*,tbl_mitarbeiter.personalnummer,tbl_mitarbeiter.kurzbz,tbl_mitarbeiter.fixangestellt FROM tbl_person join tbl_mitarbeiter using(uid) WHERE uid NOT LIKE '\\\\_%' ORDER BY nachname";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
// Daten aus dem FAS
|
||||
$sql_query="SELECT * FROM fas_view_lektoren_vilesci";
|
||||
//echo $sql_query."<br>";
|
||||
$result_fas=pg_exec($conn_fas, $sql_query);
|
||||
$fehlend=$num_rows-$num_rows_fas;
|
||||
$num_rows_fas=pg_numrows($result_fas);
|
||||
$text.="Dies ist eine automatische eMail!<BR><BR>";
|
||||
$text.="Es wurde eine Ueberpruefung der Daten in der FAS-View fuer Lektoren durchgeführt.<BR>";
|
||||
$text.='Anzahl der fehlenden Daten: $fehlend <BR><BR>';
|
||||
$text.="Folgende Lektoren scheinen in der FAS-View nicht auf";
|
||||
$text.='<TABLE border="0"><TR bgcolor="#D3DCE3"><TH>uid</TH><TH>Titel</TH><TH>Vornamen</TH><TH>Nachname</TH></TR>';
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($result,$i);
|
||||
$sql_query="SELECT uid FROM fas_view_lektoren_vilesci WHERE uid LIKE '$row->uid'";
|
||||
$result_fas=pg_exec($conn_fas, $sql_query);
|
||||
if (pg_numrows($result_fas)!=1)
|
||||
$text.='<TR bgcolor="'.$bgcolor[$i%2].'"'."><TD>$row->uid</TD><TD>$row->titel</TD><TD>$row->vornamen</TD><TD>$row->nachname</TD></TR>";
|
||||
}
|
||||
$text.='</TABLE></BODY></HTML>';
|
||||
|
||||
echo $text;
|
||||
|
||||
if (mail($adress,"FAS Synchro mit TEMPUS fehlende Lektoren",$text,$headers))
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
|
||||
?>
|
||||
|
||||
|
||||
@@ -0,0 +1,594 @@
|
||||
<?php
|
||||
include('../../vilesci/config.inc.php');
|
||||
include('../../include/functions.inc.php');
|
||||
include('../../include/lehrstunde.class.php');
|
||||
|
||||
$conn=pg_connect(CONN_STRING);
|
||||
$conn_fas=pg_connect(CONN_STRING_FAS);
|
||||
$adress='fas_sync@technikum-wien.at';
|
||||
//$adress='pam@technikum-wien.at';
|
||||
$adress_stpl='stpl@technikum-wien.at';
|
||||
$adress_fas='pam@technikum-wien.at';
|
||||
|
||||
|
||||
// error log für jeden Studiengang
|
||||
$error_log=array();
|
||||
$missing_lehrfaecher=array();
|
||||
$missing_einheit=array();
|
||||
$missing_raumtyp=array();
|
||||
$missing_lehrform=array();
|
||||
|
||||
function printLVA($row)
|
||||
{
|
||||
return 'lvnr='.$row->lvnr.' '.$row->bezeichnung;
|
||||
}
|
||||
|
||||
function getSemesterWhereClause()
|
||||
{
|
||||
global $conn;
|
||||
$qry="select * from tbl_studiensemester where ende>now()";
|
||||
$result=pg_exec($conn, $qry);
|
||||
$where='';
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$where.= ((strlen($where)>0)?' or ':'')."studiensemester_kurzbz='".$row->studiensemester_kurzbz."' ";
|
||||
}
|
||||
if (strlen($where)>0) $where=" ($where) ";
|
||||
return $where;
|
||||
}
|
||||
|
||||
function validate($row)
|
||||
{
|
||||
global $error_log,$einheit,$missing_einheit,$missing_raumtyp,$missing_lehrform,$raumtyp,$lehrform;
|
||||
$valid=true;
|
||||
if ($row->raumtyp==null)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Raumtyp fehlt';
|
||||
$valid=false;
|
||||
}
|
||||
if ($row->semester>8 || $row->semester<1)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Semester bei '.$row->semester.$row->verband.$row->gruppe.' größer als 8';
|
||||
$valid=false;
|
||||
}
|
||||
if (!($row->verband==null || $row->verband=='' || $row->verband=='A' || $row->verband=='B' || $row->verband=='C' || $row->verband=='D'))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Verband bei '.$row->semester.$row->verband.$row->gruppe.' außerhalb des gültigen Bereichs (A bis D)';
|
||||
//print_r($row);
|
||||
$valid=false;
|
||||
}
|
||||
if (!($row->gruppe==null || $row->gruppe=='' || $row->gruppe=='1' || $row->gruppe=='2' || $row->gruppe=='3' || $row->gruppe=='4'))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Gruppe bei '.$row->semester.$row->verband.$row->gruppe.' außerhalb des gültigen Bereichs (1 bis 4)';
|
||||
$valid=false;
|
||||
}
|
||||
if (!$row->stundenblockung>0) {
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Stundenblockung ist nicht größer 0';
|
||||
$valid=false;
|
||||
}
|
||||
if (!$row->semesterstunden>0) {
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Semesterstunden sind nicht größer 0';
|
||||
$valid=false;
|
||||
}
|
||||
if (!$row->wochenrythmus>0)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Wochenrythmus ist nicht größer 0';
|
||||
$valid=false;
|
||||
}
|
||||
if ($row->start_kw<=0 || $row->start_kw>53)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Start-KW außerhalb des gültigen Bereichs (1 bis 53)';
|
||||
$valid=false;
|
||||
}
|
||||
if (strlen($row->einheit_kurzbz)>0 && !isset($einheit[$row->einheit_kurzbz]) && !isset($missing_einheit[$row->einheit_kurzbz]))
|
||||
{
|
||||
$missing_einheit[$row->einheit_kurzbz]=1;
|
||||
}
|
||||
if (strlen($row->raumtyp)>0 && !isset($raumtyp[$row->raumtyp]) && !isset($missing_raumtyp[$row->raumtyp]))
|
||||
{
|
||||
$missing_raumtyp[$row->raumtyp]=1;
|
||||
$valid=false;
|
||||
}
|
||||
if (strlen($row->raumtypalternativ)>0 && !isset($raumtyp[$row->raumtypalternativ]) && !isset($missing_raumtyp[$row->raumtypalternativ])) {
|
||||
$missing_raumtyp[$row->raumtypalternativ]=1;
|
||||
}
|
||||
if (!ereg("^[A-Za-z]{1,5}[0-9]{0,1}$",$row->raumtyp))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->raumtyp.': Raumtyp bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
if (!ereg("^[A-Za-z]{1,5}[0-9]{0,1}$",$row->raumtypalternativ))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->raumtypalternativ.': Raumtypalternative bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
if (strlen($row->lehrform)>0 && !isset($lehrform[$row->lehrform]) && !isset($missing_lehrform[$row->lehrform])) {
|
||||
$missing_lehrform[$row->lehrform]=1;
|
||||
}
|
||||
if (!ereg("^[A-Z]{1,5}[0-9]{0,1}$",$row->lehrfach_kurzbz))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->lehrfach_kurzbz.'-'.$row->lehrform.'/'.$row->studiengang_kz.'-'.$row->semester.': Lehrfach-Kuerzel bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
if (!ereg("^[A-Z]{1,3}$",$row->lehrform))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->lehrfach_kurzbz.'-'.$row->lehrform.'/'.$row->studiengang_kz.'-'.$row->semester.': Lehrform bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
return $valid;
|
||||
}
|
||||
|
||||
/**
|
||||
* FAS-Lehrfach auf interne Lehrfach-Nr übersetzen
|
||||
*/
|
||||
function getLehrfachNr($kurzbz,$studiengang_kz,$semester,$lehrfach_bezeichnung, $fachbereich_id, $ects, $conn)
|
||||
{
|
||||
global $lehrfach;
|
||||
global $text;
|
||||
|
||||
if (isset($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr']))
|
||||
{
|
||||
//echo 'Nummer:'.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'].'Bez: '.$lehrfach_bezeichnung.'<BR>';
|
||||
|
||||
// Nebenbei die Lehrfachbezeichnung kontrollieren
|
||||
if ($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung']!=$lehrfach_bezeichnung)
|
||||
{
|
||||
// Update
|
||||
$qry="UPDATE tbl_lehrfach SET bezeichnung='$lehrfach_bezeichnung' WHERE lehrfach_nr=".$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'];
|
||||
if (!$result=pg_query($conn, $qry))
|
||||
echo $qry.' fehlgeschlagen!<BR>';
|
||||
else
|
||||
{
|
||||
echo 'Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung'].' auf '.$lehrfach_bezeichnung.' geaendert!<BR>';
|
||||
$text.='Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung'].' auf '.$lehrfach_bezeichnung.' geaendert!\n';
|
||||
$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung']=$lehrfach_bezeichnung;
|
||||
}
|
||||
}
|
||||
|
||||
// Nebenbei die ECTS Punkte kontrollieren
|
||||
if ($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects']!=$ects)
|
||||
{
|
||||
if ($ects!='') //ereg("[0-9]{1,4}[\.|,][0-9]{0,2}$",$ects)
|
||||
{
|
||||
// Update
|
||||
$qry="UPDATE tbl_lehrfach SET ects='$ects' WHERE lehrfach_nr=".$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'];
|
||||
//echo $qry.'<BR>';
|
||||
if (!$result=pg_query($conn, $qry))
|
||||
echo $qry.' fehlgeschlagen!<BR>';
|
||||
else
|
||||
{
|
||||
echo ' Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurden die ECTS-Punkte von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects'].' auf '.$ects.' geaendert!<BR>';
|
||||
$text.='Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurden die ECTS-Punkte von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects'].' auf '.$ects.' geaendert!\n';
|
||||
$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects']=$ects;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' sind die ECTS-Punkte von '.$ects.' nicht Plausibel!<BR>';
|
||||
$text.='Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' sind die ECTS-Punkte von '.$ects.' nicht Plausibel!\n';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Nebenbei die FachbereichID kontrollieren
|
||||
if ($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id']!=$fachbereich_id)
|
||||
{
|
||||
// Update
|
||||
$qry="UPDATE tbl_lehrfach SET fachbereich_id=$fachbereich_id WHERE lehrfach_nr=".$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'];
|
||||
if (!$result=@pg_query($conn, $qry))
|
||||
echo $qry.' fehlgeschlagen!<BR>';
|
||||
else
|
||||
{
|
||||
echo 'Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde die FachbereichID von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id'].' auf '.$fachbereich_id.' geaendert!<BR>';
|
||||
$text.='Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde die FachbereichID von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id'].' auf '.$fachbereich_id.' geaendert!\n';
|
||||
$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id']=$fachbereich_id;
|
||||
}
|
||||
}
|
||||
return $lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'];
|
||||
}
|
||||
//echo 'missing getLehrfachNr: '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.'<br>';
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/*************************
|
||||
* FAS-Synchronisation
|
||||
*/
|
||||
|
||||
// E-Mails der Studiengänge
|
||||
$stg_mail=array();
|
||||
$qry="select studiengang_kz,email,kurzbz from tbl_studiengang";
|
||||
$result=pg_exec($conn, $qry);
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$stg_mail[$row->studiengang_kz] = $row->email;
|
||||
$stg_kurzbz[$row->studiengang_kz]=$row->kurzbz;
|
||||
}
|
||||
|
||||
// Anzahl der LVA in VileSci
|
||||
$sql_query="SELECT count(*) AS anz FROM tbl_lehrveranstaltung";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
$vil_anz_lva=pg_fetch_result($result,0,'anz');
|
||||
|
||||
// Lehrfächer holen und in Array speichern (Key ist kurzbz + '/' + lehform_kurzbz)
|
||||
$sql_query="SELECT lehrfach_nr,kurzbz,studiengang_kz,semester, bezeichnung, fachbereich_id, ects FROM tbl_lehrfach";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['lehrfach_nr'] = $row->lehrfach_nr;
|
||||
$lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['fachbereich_id'] = $row->fachbereich_id;
|
||||
$lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['lehrfach_bezeichnung'] = $row->bezeichnung;
|
||||
$lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['ects'] = $row->ects;
|
||||
}
|
||||
//print_r($lehrfach);
|
||||
// Einheiten holen
|
||||
$sql_query="SELECT einheit_kurzbz,bezeichnung FROM tbl_einheit";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
while ($row=pg_fetch_object($result))
|
||||
$einheit[$row->einheit_kurzbz] = $row->bezeichnung;
|
||||
// Raumtypen holen
|
||||
$sql_query="SELECT raumtyp_kurzbz,beschreibung FROM tbl_raumtyp";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
while ($row=pg_fetch_object($result))
|
||||
$raumtyp[$row->raumtyp_kurzbz] = $row->beschreibung;
|
||||
// Lehformen holen
|
||||
$sql_query="SELECT lehrform_kurzbz,bezeichnung FROM tbl_lehrform";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
while ($row=pg_fetch_object($result))
|
||||
$lehrform[$row->lehrform_kurzbz] = $row->bezeichnung;
|
||||
//print_r($lehrfach);
|
||||
echo 'FAS-Datenbank wird abgefragt!<BR><i>';
|
||||
flush();
|
||||
|
||||
// Start Lehrveranstaltungen Synchro
|
||||
$sql_query="SELECT DISTINCT fas_id,trim(lvnr) AS lvnr,trim(unr)::int8 AS unr,einheit_kurzbz,lektor,trim(upper(lehrfach_kurzbz)) AS lehrfach_kurzbz,
|
||||
trim(upper(lehrform)) AS lehrform, lehrfach_bezeichnung,
|
||||
studiengang_kz,fachbereich_id,semester,verband,gruppe,raumtyp,raumtypalternativ,
|
||||
round(semesterstunden) AS semesterstunden,stundenblockung,wochenrythmus,start_kw,anmerkung,studiensemester_kurzbz, ects
|
||||
FROM fas_view_alle_lehreinheiten_vilesci ".
|
||||
"where ".getSemesterWhereClause();
|
||||
//echo $sql_query."</i><br>";
|
||||
$result=pg_exec($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$text="Dies ist eine automatische eMail!\r\r";
|
||||
$text.="Es wurde eine Synchronisation mit FAS durchgeführt.\r";
|
||||
$text.="Anzahl der LVA vom FAS-Import: $num_rows \r";
|
||||
$text.="Anzahl der LVA in der VileSci: $vil_anz_lva \r\r";
|
||||
$plausi_error=0;
|
||||
$update_error=0;
|
||||
$insert_error=0;
|
||||
$double_error=0;
|
||||
$anz_update=0;
|
||||
$anz_insert=0;
|
||||
echo $num_rows.' Datensaetze<BR>';
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
if ($i%100==0)
|
||||
{
|
||||
echo '-';
|
||||
flush();
|
||||
}
|
||||
$row=pg_fetch_object($result,$i);
|
||||
// Kennzahl der Studiengangs bei ehemaligen bTec auf TW aendern.
|
||||
if ($row->studiengang_kz==203)
|
||||
$row->studiengang_kz=0;
|
||||
// Lehrfach-Nr übersetzen (-1 wenn nicht vorhanden)
|
||||
$row->lehrfach_nr=getLehrfachNr($row->lehrfach_kurzbz,$row->studiengang_kz,$row->semester, $row->lehrfach_bezeichnung, $row->fachbereich_id, $row->ects, $conn);
|
||||
// Einheit vollstaendiger Name
|
||||
if (count($row->einheit_kurzbz)>0)
|
||||
$row->einheit_kurzbz=$stg_kurzbz[$row->studiengang_kz].'-'.$row->einheit_kurzbz;
|
||||
|
||||
// Plausibilitaetscheck
|
||||
//if ($row->gruppe==NULL)
|
||||
// $row->gruppe='1';
|
||||
|
||||
//
|
||||
if (!$row->stundenblockung>0)
|
||||
$row->stundenblockung=1;
|
||||
if (!$row->start_kw>0)
|
||||
$row->start_kw=1;
|
||||
if (!$row->wochenrythmus>0)
|
||||
$row->wochenrythmus=1;
|
||||
|
||||
if ($row->lehrfach_nr==-1)
|
||||
{
|
||||
//$error_log[$row->studiengang_kz][]=printLVA($row).': Lehrfach (Kurzbz='".$row->lehrfach_kurzbz."',Lehrform".$row->lehrform) existiert noch nicht. Stundenplanabteilung wurde benachrichtigt.';
|
||||
if (!isset($missing_lehrfaecher[$row->lehrfach_kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester])) $missing_lehrfaecher[$row->lehrfach_kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]=1;
|
||||
$valid=false;
|
||||
}
|
||||
|
||||
if (validate($row) && $row->lehrfach_nr>-1)
|
||||
{
|
||||
// SQL vorbereiten (jede LVA vom FAS im VileSci suchen)
|
||||
$sql_query="SELECT * from tbl_lehrveranstaltung where fas_id=".$row->fas_id;
|
||||
//echo $sql_query;
|
||||
$res_lva=pg_query($conn, $sql_query);
|
||||
$num_rows_lva=pg_numrows($res_lva);
|
||||
|
||||
// neue LVA
|
||||
if ($num_rows_lva==0)
|
||||
{
|
||||
$text.="Die LVA fas-id=$row->fas_id lvnr=$row->lvnr unr=$row->unr wird neu angelegt.\r";
|
||||
$sql_query="INSERT INTO tbl_lehrveranstaltung (lvnr,unr,einheit_kurzbz,lektor,lehrfach_nr,lehrform_kurzbz,";
|
||||
$sql_query.="studiengang_kz,fachbereich_id,semester,verband,gruppe,raumtyp,".
|
||||
"raumtypalternativ,semesterstunden,stundenblockung,".
|
||||
"wochenrythmus,start_kw,studiensemester_kurzbz,fas_id,anmerkung) ".
|
||||
"VALUES('$row->lvnr'".
|
||||
",$row->unr,".
|
||||
(strlen($row->einheit_kurzbz)>0?"'".$row->einheit_kurzbz."'":'NULL').",".
|
||||
"'$row->lektor',".
|
||||
"'$row->lehrfach_nr',".
|
||||
"'$row->lehrform',".
|
||||
"'$row->studiengang_kz',".
|
||||
"$row->fachbereich_id,".
|
||||
"$row->semester,";
|
||||
if ($row->verband==null)
|
||||
$sql_query.='NULL,';
|
||||
else
|
||||
$sql_query.="'$row->verband',";
|
||||
if ($row->gruppe==null)
|
||||
$sql_query.='NULL,';
|
||||
else
|
||||
$sql_query.="'$row->gruppe',";
|
||||
$sql_query.="'$row->raumtyp',".
|
||||
"'$row->raumtypalternativ',".
|
||||
"$row->semesterstunden,".
|
||||
"$row->stundenblockung,".
|
||||
"$row->wochenrythmus,".
|
||||
"$row->start_kw,".
|
||||
"'$row->studiensemester_kurzbz'," .
|
||||
"$row->fas_id,'$row->anmerkung')";
|
||||
//echo $sql_query.'<BR>';
|
||||
if(!$res_insert=@pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\nFehler: ".pg_errormessage($conn)."\n";
|
||||
$insert_error++;
|
||||
}
|
||||
else
|
||||
$anz_insert++;
|
||||
}
|
||||
// bestehende LVA
|
||||
elseif ($num_rows_lva==1)
|
||||
{
|
||||
$update_sql='';
|
||||
$row_lva=pg_fetch_object($res_lva,0);
|
||||
//var_dump($row_lva);
|
||||
//if ($row->gruppe==NULL)
|
||||
// $row->gruppe=1;
|
||||
//echo '-'.$row->lvnr.'-'.$row_lva->lvnr.'-<BR>';
|
||||
if ($row->lvnr!=$row_lva->lvnr)
|
||||
$update_sql.="lvnr='".$row->lvnr."'";
|
||||
elseif ($row->unr!=$row_lva->unr)
|
||||
$update_sql.="unr=".$row->unr;
|
||||
elseif ($row->einheit_kurzbz!=$row_lva->einheit_kurzbz)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'').'einheit_kurzbz='.(strlen($row->einheit_kurzbz)>0?"'".$row->einheit_kurzbz."'":'NULL');
|
||||
elseif ($row->lektor!=$row_lva->lektor)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."lektor='".$row->lektor."'";
|
||||
elseif ($row->lehrfach_nr!=$row_lva->lehrfach_nr)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."lehrfach_nr=".$row->lehrfach_nr;
|
||||
elseif ($row->lehrform!=$row_lva->lehrform_kurzbz)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."lehrform_kurzbz='".$row->lehrform."'";
|
||||
elseif ($row->studiengang_kz!=$row_lva->studiengang_kz)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."studiengang_kz=".$row->studiengang_kz;
|
||||
elseif ($row->fachbereich_id!=$row_lva->fachbereich_id)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."fachbereich_id=".$row->fachbereich_id;
|
||||
elseif ($row->semester!=$row_lva->semester)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."semester=".$row->semester;
|
||||
elseif ($row->verband!=$row_lva->verband)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."verband=".(strlen($row->verband)>0?"'".$row->verband."'":'NULL');
|
||||
elseif ($row->gruppe!=$row_lva->gruppe)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."gruppe=".(strlen($row->gruppe)>0?"'".$row->gruppe."'":'NULL');
|
||||
elseif ($row->raumtyp!=$row_lva->raumtyp)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."raumtyp='".$row->raumtyp."'";
|
||||
elseif ($row->raumtypalternativ!=$row_lva->raumtypalternativ)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."raumtypalternativ='".$row->raumtypalternativ."'";
|
||||
elseif ($row->semesterstunden!=$row_lva->semesterstunden)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."semesterstunden=".$row->semesterstunden;
|
||||
elseif ($row->stundenblockung!=$row_lva->stundenblockung)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."stundenblockung=".$row->stundenblockung;
|
||||
elseif ($row->wochenrythmus!=$row_lva->wochenrythmus)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."wochenrythmus=".$row->wochenrythmus;
|
||||
elseif ($row->start_kw!=$row_lva->start_kw)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."start_kw=".(strlen($row->start_kw)>0?$row->start_kw:'NULL');
|
||||
elseif ($row->studiensemester_kurzbz!=$row_lva->studiensemester_kurzbz)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."studiensemester_kurzbz='".$row->studiensemester_kurzbz."'";
|
||||
elseif ($row->anmerkung!=$row_lva->anmerkung)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."anmerkung='".$row->anmerkung."'";
|
||||
|
||||
if (strlen($update_sql)>0)
|
||||
{
|
||||
$text.="Die LVA fas-id=$row->fas_id lvnr=$row->lvnr unr=$row->unr wird upgedatet.\r";
|
||||
$sql_query="UPDATE tbl_lehrveranstaltung SET ".
|
||||
$update_sql.
|
||||
" where fas_id=".$row->fas_id;
|
||||
|
||||
//echo $sql_query.'<BR>';
|
||||
if(!$res_update=@pg_query($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
else
|
||||
$anz_update++;
|
||||
|
||||
// ****************
|
||||
// Auch in tbl_stundenplandev updaten
|
||||
$sql_query="SELECT * FROM tbl_stundenplandev WHERE
|
||||
lehrveranstaltung_id=$row_lva->lehrveranstaltung_id AND datum>=now()";
|
||||
//echo $sql_query.'<BR>';
|
||||
if(!$res_upd_stpl=@pg_query($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!pg_query($conn,"BEGIN;"))
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$kollision=false;
|
||||
while ($row_upd_stpl=pg_fetch_object($res_upd_stpl))
|
||||
{
|
||||
// Lehrstunde auf Kollisionen checken
|
||||
$lehrstunde=new lehrstunde($conn);
|
||||
//echo '<BR>STPL-ID:'.$row_upd_stpl->stundenplandev_id.'<BR>';
|
||||
if (!$lehrstunde->load($row_upd_stpl->stundenplandev_id))
|
||||
echo $lehrstunde->errormsg;
|
||||
$lehrstunde->lektor_uid=$row->lektor;
|
||||
if (!$lehrstunde->kollision())
|
||||
{
|
||||
if (!$lehrstunde->save('sync_fas_lva'))
|
||||
echo $lehrstunde->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$lehrstunde->errormsg;
|
||||
$text.="\rKollision: ".$lehrstunde->errormsg."\r";
|
||||
$kollision=true;
|
||||
echo "Kollision: ".$lehrstunde->errormsg."<BR>";
|
||||
}
|
||||
}
|
||||
if ($kollision)
|
||||
{
|
||||
if (!pg_query($conn,"ROLLBACK;"))
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
}
|
||||
else
|
||||
if (!pg_query($conn,"COMMIT;"))
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
}
|
||||
}
|
||||
}
|
||||
// LVA kommt mehrmals vor ->Warnung
|
||||
elseif ($num_rows_lva>1)
|
||||
{
|
||||
$text.="\r!!! Die LVA fas_id=$row->fas_id kommt mehrfach vor!\r";
|
||||
$double_error++;
|
||||
}
|
||||
}
|
||||
else
|
||||
$plausi_error++;
|
||||
}
|
||||
|
||||
|
||||
// ****************
|
||||
// Ueberfluessige Datensaetze loeschen
|
||||
$whereClause=getSemesterWhereClause();
|
||||
$sql_query="DELETE FROM tbl_lehrveranstaltung WHERE fas_id NOT IN
|
||||
(SELECT fas_id FROM vw_fas_lehrveranstaltung WHERE $whereClause) AND (fas_id!=0 OR fas_id IS NOT NULL) AND ($whereClause)";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_delete=@pg_query($conn, $sql_query))
|
||||
{
|
||||
$text.='\n'.$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$text.="\rSolution: DELETE FROM tbl_stundenplandev WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM tbl_lehrveranstaltung WHERE fas_id NOT IN (SELECT fas_id FROM vw_fas_lehrveranstaltung WHERE $whereClause) AND (fas_id!=0 OR fas_id IS NOT NULL) AND ($whereClause))\r";
|
||||
}
|
||||
else
|
||||
{
|
||||
$anz_delete=pg_numrows($res_delete);
|
||||
}
|
||||
|
||||
//Ausgabe Zusammenfassung
|
||||
$text.="\n$anz_delete Lehrveranstaltungen wurden geloescht!\n";
|
||||
$text.="$plausi_error Fehler beim Plausibilitaetscheck!\n";
|
||||
$text.="$update_error Fehler bei LVA-Update!\n";
|
||||
$text.="$insert_error Fehler bei LVA-Insert!\n";
|
||||
$text.="$double_error LVA kommen in VileSci doppelt vor!\n\n";
|
||||
$text.="$anz_update LVA wurden upgedatet.\n";
|
||||
$text.="$anz_insert LVA wurden neu angelegt.\n\n";
|
||||
$text.="\nEND OF SYNCHRONISATION\n";
|
||||
|
||||
// Validation error hinzufügen
|
||||
while(list($k,$v)=each($error_log))
|
||||
{
|
||||
$text.="\n\nStudiengang $k:\n";
|
||||
foreach($v as $txt)
|
||||
$text.=" $txt\n";
|
||||
}
|
||||
// fehlende lehrfächer
|
||||
$text.="\n\nFehlende Lehrfächer: \n";
|
||||
while(list($k,$v)=each($missing_lehrfaecher))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
// fehlende einheiten
|
||||
$text.="\n\nFehlende Einheiten: \n";
|
||||
while(list($k,$v)=each($missing_einheit))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
// fehlende raumtypen
|
||||
$text.="\n\nFehlende Raumtypen: \n";
|
||||
while(list($k,$v)=each($missing_raumtyp))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
// fehlende lehrformen
|
||||
$text.="\n\nFehlende Lehrformen: \n";
|
||||
while(list($k,$v)=each($missing_lehrform))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
if (mail($adress,"FAS Synchro mit VileSci (Lehrveranstaltungen)",$text,"From: vilesci@technikum-wien.at"))
|
||||
$sendmail=true;
|
||||
else
|
||||
$sendmail=false;
|
||||
|
||||
//print "debug: ";print_r($stg_mail);
|
||||
|
||||
// Einzelnen Mails an Studiengänge verschicken
|
||||
reset($error_log);
|
||||
while(list($k,$v)=each($error_log))
|
||||
{
|
||||
echo "<br>Mail an Studiengang $k ".$stg_mail[$k].":<br>";
|
||||
$stg_text="Dies ist eine automatische Mail!\nFolgende Fehler sind bei der Synchronisation der Lehrveranstaltungen aufgetreten:\n\n";
|
||||
foreach($v as $txt)
|
||||
$stg_text.="$txt\n";
|
||||
echo $stg_text.'<br>';
|
||||
// Studiengang
|
||||
if (!mail($stg_mail[$k],"FAS Synchro mit VileSci (Lehrveranstaltungen) $k",$stg_text,"From: vilesci@technikum-wien.at"))
|
||||
echo "Mail an '".$stg_mail[$k]."' konnte nicht verschickt werden!<br>";
|
||||
// Stundenplanstelle
|
||||
echo "<br>Mail an Studiengang $k ($adress_stpl)<br>";
|
||||
if (!mail($adress_stpl,"FAS Synchro mit VileSci (Lehrveranstaltungen) $k",$stg_text,"From: vilesci@technikum-wien.at"))
|
||||
echo 'Mail an "'.$adress_stpl.'" konnte nicht verschickt werden!<br>';
|
||||
|
||||
}
|
||||
|
||||
// Doppelte IDs im FAS prüfen
|
||||
$sql_query="SELECT count(*) AS anzahl, fas_id FROM fas_view_alle_lehreinheiten_vilesci
|
||||
GROUP BY fas_id HAVING count(*)>1";
|
||||
//echo $sql_query."</i><br>";
|
||||
$result=pg_query($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$mail_text="Folgende $num_rows IDs kommen in der View fas_view_alle_lehreinheiten_vilesci (fas_id) mehrfach vor:\n\n";
|
||||
$mail_text_false='';
|
||||
if ($num_rows>0)
|
||||
while ($row=pg_fetch_object($result))
|
||||
$mail_text_false.=$row->fas_id.'->'.$row->anzahl."x\n";
|
||||
$mail_text.=$mail_text_false."\n\nBitte überprüfen die Daten im FAS!!!";
|
||||
if ($mail_text_false!='')
|
||||
if (!mail($adress_fas,"FAS Synchro mit VileSci (Lehrveranstaltungen)",$mail_text,"From: vilesci@technikum-wien.at"))
|
||||
echo "Mail an '".$adress_fas."' konnte nicht verschickt werden!<br>";
|
||||
else
|
||||
echo 'Mail wurde verschickt an '.$adress_fas.'!<br>';
|
||||
?>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>FAS-Synchro mit VileSci</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
if ($sendmail)
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
echo nl2br($text);
|
||||
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,233 @@
|
||||
<?php
|
||||
/**
|
||||
* FAS-Synchronisation
|
||||
*/
|
||||
|
||||
include ('../../vilesci/config.inc.php');
|
||||
$adress='fas_sync@technikum-wien.at';
|
||||
|
||||
function clean_string($string)
|
||||
{
|
||||
$trans = array("ä" => "ae",
|
||||
"ö" => "oe",
|
||||
"ü" => "ue",
|
||||
"Ä" => "ae",
|
||||
"Ö" => "oe",
|
||||
"Ü" => "ue",
|
||||
"á" => "a",
|
||||
"à" => "a",
|
||||
"é" => "e",
|
||||
"è" => "e",
|
||||
"ó" => "o",
|
||||
"ò" => "o",
|
||||
"í" => "i",
|
||||
"ì" => "i",
|
||||
"ú" => "u",
|
||||
"ù" => "u",
|
||||
"ß" => "ss",
|
||||
"´" => "",
|
||||
"`" => "",
|
||||
);
|
||||
$string = strtr($string, $trans);
|
||||
return $string;
|
||||
}
|
||||
|
||||
//mail($adress,"FAS Synchro mit VileSci (Studenten)","BEGIN OF SYNCHRONISATION","From: vilesci@technikum-wien.at");
|
||||
$conn=pg_connect(CONN_STRING);
|
||||
$conn_fas=pg_connect(CONN_STRING_FAS);
|
||||
|
||||
// Anzahl der Studenten in VileSci
|
||||
$sql_query="SELECT count(*) AS anz FROM tbl_student";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
$vilesci_anz_std=pg_fetch_result($result,0,'anz');
|
||||
|
||||
// Start Studenten Synchro
|
||||
$sql_query="SELECT DISTINCT * FROM fas_view_student_vilesci WHERE semester >0 AND semester <9 AND";
|
||||
$sql_query.=" verband IS NOT NULL AND uid IS NOT NULL AND uid NOT LIKE ''"; // LIMIT 5";
|
||||
echo $sql_query."<br>";
|
||||
flush();
|
||||
$result=pg_exec($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$text="Dies ist eine automatische eMail!\r\r";
|
||||
$text.="Es wurde eine Synchronisation mit FAS durchgeführt.\r";
|
||||
$text.="Anzahl der Studenten vom FAS-Import: $num_rows \r";
|
||||
$text.="Anzahl der Studenten in VileSci: $vilesci_anz_std \r\r";
|
||||
echo $text.'<BR>';
|
||||
flush();
|
||||
$plausi_error=0;
|
||||
$update_error=0;
|
||||
$insert_error=0;
|
||||
$double_error=0;
|
||||
$anz_update=0;
|
||||
$anz_insert=0;
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($result,$i);
|
||||
$row->gebort=substr($row->gebort,0,30);
|
||||
$row->titel=substr($row->titel,0,15);
|
||||
$uid=str_replace(' ','',$row->uid);
|
||||
// Plausibilitaetscheck
|
||||
if ($row->gruppe==null)
|
||||
$row->gruppe='1';
|
||||
if ($row->verband>='A' && $row->verband<='D' && $row->semester<=8 && $row->gruppe>'0' && $row->gruppe<='2')
|
||||
{
|
||||
// SQL vorbereiten (jeden Studenten vom FAS im VileSci suchen
|
||||
$sql_query="SELECT uid,titel,vornamen,nachname,gebdatum,gebort,";
|
||||
$sql_query.="trim(both ' ' from matrikelnr) AS matrikelnr,";
|
||||
$sql_query.=" studiengang_kz,semester,verband,gruppe";
|
||||
$sql_query.=" FROM tbl_person NATURAL JOIN tbl_student WHERE uid LIKE '$uid'";
|
||||
// echo $sql_query;
|
||||
$res_std=pg_exec($conn, $sql_query);
|
||||
$num_rows_std=pg_numrows($res_std);
|
||||
|
||||
// neue Studenten
|
||||
if ($num_rows_std==0)
|
||||
{
|
||||
$text.="Der Student $row->vornamen $row->nachname ($row->uid) wird neu angelegt.\r";
|
||||
// tbl_person
|
||||
$sql_query="INSERT INTO tbl_person(uid,titel,vornamen, nachname, gebdatum, gebort) ".
|
||||
"VALUES('$row->uid','$row->titel','$row->vornamen','$row->nachname','$row->gebdatum','$row->gebort')";
|
||||
echo $sql_query.'<BR>';
|
||||
flush();
|
||||
|
||||
//Alias erstellen
|
||||
$vn = split('[- .,]',strtolower($row->vornamen));
|
||||
$vn = clean_string($vn[0]);
|
||||
|
||||
$nn = split('[- .,]',strtolower($row->nachname));
|
||||
$nn = clean_string($nn[0]);
|
||||
$alias = $vn.".".$nn;
|
||||
$qry = "UPDATE tbl_person set alias='$alias' where uid='$row->uid'";
|
||||
if(!$res_insert=pg_exec($conn, $qry))
|
||||
{
|
||||
$text.=$qry;
|
||||
$text.="\rFehler: Alias existiert bereits: $alias";
|
||||
$insert_error++;
|
||||
}
|
||||
|
||||
// tbl_student
|
||||
if(!$res_insert=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$qry;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$insert_error++;
|
||||
}
|
||||
$sql_query="INSERT INTO tbl_student (uid,matrikelnr, studiengang_kz, semester, verband, gruppe) ".
|
||||
"VALUES('$row->uid','$row->perskz',$row->kennzahl,$row->semester,'$row->verband','$row->gruppe')";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_insert=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$insert_error++;
|
||||
}
|
||||
else
|
||||
$anz_insert++;
|
||||
}
|
||||
// bestehende Studenten
|
||||
elseif ($num_rows_std==1)
|
||||
{
|
||||
$update=0;
|
||||
$row_std=pg_fetch_object($res_std,0);
|
||||
if ($row->gruppe==NULL)
|
||||
$row->gruppe=1;
|
||||
if ($row->titel!=$row_std->titel)
|
||||
$update=1;
|
||||
elseif ($row->vornamen!=$row_std->vornamen)
|
||||
$update=2;
|
||||
elseif ($row->nachname!=$row_std->nachname)
|
||||
$update=3;
|
||||
elseif ($row->gebdatum!=$row_std->gebdatum)
|
||||
$update=4;
|
||||
elseif ($row->gebort!=$row_std->gebort)
|
||||
$update=5;
|
||||
elseif ($row->perskz!=$row_std->matrikelnr)
|
||||
$update=6;
|
||||
elseif ($row->semester!=$row_std->semester)
|
||||
$update=7;
|
||||
elseif ($row->verband!=$row_std->verband)
|
||||
$update=8;
|
||||
elseif ($row->gruppe!=$row_std->gruppe)
|
||||
$update=9;
|
||||
elseif ($row->kennzahl!=$row_std->studiengang_kz)
|
||||
$update=10;
|
||||
if ($update)
|
||||
{
|
||||
$text.="Der Student $row->vornamen $row->nachname ($row->uid) wird upgedatet.\r";
|
||||
// person
|
||||
$sql_query="UPDATE tbl_person SET titel='$row->titel', vornamen='$row->vornamen', ".
|
||||
" nachname='$row->nachname', gebdatum='$row->gebdatum', gebort='$row->gebort'".
|
||||
" WHERE uid LIKE '$uid'";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_update=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
// student
|
||||
$sql_query="UPDATE tbl_student SET matrikelnr='$row->perskz', semester=$row->semester";
|
||||
if ($row->verband==NULL)
|
||||
$sql_query.=", verband=NULL";
|
||||
else
|
||||
$sql_query.=", verband='$row->verband'";
|
||||
if ($row->gruppe==NULL)
|
||||
$sql_query.=", gruppe=NULL";
|
||||
else
|
||||
$sql_query.=", gruppe='$row->gruppe'";
|
||||
$sql_query.=", studiengang_kz=".$row->kennzahl;
|
||||
$sql_query.=", updateamum=now(), updatevon='auto' WHERE uid LIKE '$uid'";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_update=pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
else
|
||||
$anz_update++;
|
||||
}
|
||||
}
|
||||
// Student kommt mehrmals vor ->Warnung
|
||||
elseif ($num_rows_std>1)
|
||||
{
|
||||
$text.="\r!!! Der Student $row->vornamen $row->nachname ($row->uid) kommt mehrfach vor!\r";
|
||||
$double_error++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$plausi_error++;
|
||||
$text.="\r!!! Der Student $row->vornamen $row->nachname ($row->uid) STG:$row->kennzahl S:$row->semester V:$row->verband G:$row->gruppe hat nicht plausible Daten!";
|
||||
}
|
||||
}
|
||||
$text.="\r$plausi_error Fehler beim Plausibilitaetscheck!\r";
|
||||
$text.="$update_error Fehler bei Student-Update!\r";
|
||||
$text.="$insert_error Fehler bei Student-Insert!\r";
|
||||
$text.="$double_error Studenten kommen in VileSci doppelt vor!\r\r";
|
||||
$text.="$anz_update Studenten wurden upgedatet.\r";
|
||||
$text.="$anz_insert Studenten wurden neu angelegt.\r\r";
|
||||
$text.="\rEND OF SYNCHRONISATION\r";
|
||||
if (mail($adress,"FAS Synchro mit VileSci (Studenten)",$text,"From: vilesci@technikum-wien.at"))
|
||||
$sendmail=true;
|
||||
else
|
||||
$sendmail=false;
|
||||
?>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>FAS-Synchro mit VileSci (Studenten)</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
if ($sendmail)
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
echo $text;
|
||||
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/***************************************************************
|
||||
Script zur Feststellung, welche Daten im FAS nicht durchkommen.
|
||||
***************************************************************/
|
||||
$adress='pam@technikum-wien.at';
|
||||
include('../../vilesci/config.inc.php');
|
||||
$conn=pg_connect($conn_string);
|
||||
$conn_fas=pg_connect($conn_string_fas);
|
||||
|
||||
$headers ="MIME-Version: 1.0\r\n";
|
||||
$headers.="Content-type: text/html; charset=iso-8859-1\r\n";
|
||||
$headers.="From: vilesci@technikum-wien.at";
|
||||
|
||||
$bgcolor[0]="#CCCCCC";
|
||||
$bgcolor[1]="#DDDDDD";
|
||||
|
||||
$text='<html><head><title>FAS-Synchro mit TEMPUS fehlerhafte Studenten</title></head>';
|
||||
$text.='<body>';
|
||||
// Start Check
|
||||
$sql_query="SELECT * FROM fas_view_student_vilesci WHERE uid NOT IN ";
|
||||
$sql_query.="(SELECT uid FROM fas_view_student_vilesci WHERE semester >0 AND semester <8 AND";
|
||||
$sql_query.=" verband IS NOT NULL AND uid IS NOT NULL AND uid NOT LIKE '') ORDER BY kennzahl,nachname"; // LIMIT 5";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$num_fields=pg_numfields($result);
|
||||
$text.="Dies ist eine automatische eMail!<BR><BR>";
|
||||
$text.="Es wurde eine Ueberpruefung der Daten in der FAS-View fuer Studenten durchgeführt.<BR>";
|
||||
$text.="Anzahl der fehlerhaften Daten: $num_rows <BR><BR>";
|
||||
$text.="Folgende Studenten haben fehlerhafte Daten im FAS<BR><BR>";
|
||||
$text.='<TABLE border="0"><TR><TH>STG_KZ</TH><TH>uid</TH><TH>Titel</TH><TH>Vornamen</TH><TH>Nachname</TH><TH>Matrikelnr</TH>';
|
||||
$text.='<TH>Semester</TH><TH>Verband</TH><TH>Gruppe</TH></TR>';
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($result,$i);
|
||||
$text.='<TR bgcolor="'.$bgcolor[$i%2].'"'."><TD>$row->kennzahl</TD><TD>$row->uid</TD><TD>$row->titel</TD><TD>$row->vornamen</TD><TD>$row->nachname</TD><TD>$row->perskz</TD>";
|
||||
$text.="<TD>$row->semester</TD><TD>$row->verband</TD><TD>$row->gruppe</TD></TR>";
|
||||
}
|
||||
$text.='</TABLE></BODY></HTML>';
|
||||
|
||||
echo $text;
|
||||
|
||||
if (mail($adress,"FAS Synchro mit TEMPUS fehlerhafte Studenten",$text,$headers))
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
include("../../vilesci/config.inc.php");
|
||||
|
||||
//Connection öffnen
|
||||
if(!$conn = pg_pconnect(CONN_STRING))
|
||||
die("Fehler beim oeffnen der DB Connection");
|
||||
|
||||
/**
|
||||
*Schaut nach ob dieser Feedbackeintrag bereits in der Datenbank existiert.
|
||||
* @param $datum Datum des Eintrages
|
||||
* $betreff Betreff des Eintrages
|
||||
* $text Text des Eintrages
|
||||
* $uid Uid des Eintrages
|
||||
*/
|
||||
function isInTab($datum,$betreff,$text,$uid)
|
||||
{
|
||||
$sql = "Select * from tbl_feedback where datum='$datum' AND betreff='$betreff' AND text='$text' and uid='$uid'";
|
||||
$checkresult=pg_exec($sql);
|
||||
if(pg_num_rows($checkresult)>0)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * from lehre.tbl_feedback_lehrfach";
|
||||
$result = pg_exec($conn,$qry);
|
||||
|
||||
echo "Uebernahme von tbl_feedback_lehrfach";
|
||||
flush();
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$sql_qry = "Select * from tbl_lehrfach where studiengang_kz =$row->studiengang_kz AND semester=$row->semester AND lehrevz=$lehrfachzuteilung_kurzbz";
|
||||
|
||||
$lf_result=pg_exec($conn,$sql_qry);
|
||||
if($lf_row=pg_fetch_object($conn,$qry))
|
||||
{
|
||||
if(!isInTab($row->datum,$row->betreff,$row->text,$row->uid))
|
||||
{
|
||||
$insert = "INSERT INTO tbl_feedback(datum,betreff,text,lfnr,uid) VALUES('$row->datum','$row->betreff','$row->text',$lf_row->lehrfach_nr,'$row->uid')";
|
||||
pg_exec($conn,$insert);
|
||||
echo "+";
|
||||
flush();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Lehrfachaufloesung nicht moeglich"; //Oder Formular ausgeben
|
||||
}
|
||||
}
|
||||
|
||||
$qry = "SELECT * from lehre.tbl_feedback_lehrfach";
|
||||
$result = pg_exec($conn,$qry);
|
||||
|
||||
echo "Uebernahme von tbl_feedback_freifach";
|
||||
flush();
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$sql_qry = "Select * from tbl_lehrfach where lehrevz=$lehrfachzuteilung_kurzbz AND studiengang_kz=0 AND semester is null";
|
||||
|
||||
$lf_result=pg_exec($conn,$sql_qry);
|
||||
if($lf_row=pg_fetch_object($conn,$qry))
|
||||
{
|
||||
$insert = "INSERT INTO tbl_feedback(datum,betreff,text,lfnr,uid) VALUES('$row->datum','$row->betreff','$row->text',$lf_row->lehrfach_nr,'$row->uid')";
|
||||
pg_exec($conn,$insert);
|
||||
echo "+";
|
||||
flush();
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Lehrfachaufloesung nicht moeglich"; //Oder Formular ausgeben
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,406 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<title>Stundenplan-Synchro (stpldev-stpl)</title>
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
include('../../vilesci/config.inc.php');
|
||||
include('../../include/functions.inc.php');
|
||||
include('../../include/lehrstunde.class.php');
|
||||
$conn=pg_connect(CONN_STRING);
|
||||
|
||||
// Startvariablen setzen
|
||||
$adress='pam@technikum-wien.at';
|
||||
$adress_stpl='stpl@technikum-wien.at';
|
||||
if (isset($_GET['sendmail']))
|
||||
{
|
||||
if ($_GET['sendmail']=='true')
|
||||
$sendmail=(boolean)true;
|
||||
else
|
||||
$sendmail=(boolean)false;
|
||||
}
|
||||
else
|
||||
$sendmail=(boolean)true;
|
||||
|
||||
$count_del=0;
|
||||
$count_ins=0;
|
||||
$count_upd=0;
|
||||
$count_err=0;
|
||||
|
||||
// error log fuer jeden Studiengang
|
||||
$error_log=array();
|
||||
// Mails an die Lektoren und Verbaende
|
||||
$message=array();
|
||||
// Nachrichten fuer die Stundenplanstelle
|
||||
$message_stpl='';
|
||||
// error_log
|
||||
$message_sync='';
|
||||
|
||||
|
||||
// Mail Headers festlegen
|
||||
$headers= "MIME-Version: 1.0\r\n";
|
||||
$headers.="Content-Type: text/html; charset=iso-8859-1\r\n";
|
||||
|
||||
// Anfangsdatum festlegen
|
||||
$datum_begin=date("Y-m-d");
|
||||
// Endedatum festlegen
|
||||
$sql_query="SELECT * FROM tbl_studiensemester WHERE ende>=now() ORDER BY start;";
|
||||
//echo $sql_query.'<BR>';
|
||||
if (!$result=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($row=pg_fetch_object($result))
|
||||
$datum_ende=$row->ende;
|
||||
else
|
||||
$message_sync.='Kein aktuelles Studiensemester gefunden! '.$sql_query.'<BR>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
$message_begin='Dies ist eine automatische Mail!<BR>Es haben sich folgende Aenderungen in Ihrem Stundenplan ergeben:<BR>';
|
||||
|
||||
|
||||
/**************************************************
|
||||
* Datensaetze holen die neu sind
|
||||
*/
|
||||
echo 'Neue Datensätze werden angelegt.<BR>';flush();
|
||||
$sql_query="SELECT * FROM vw_stundenplandev WHERE datum>='$datum_begin' AND datum<='$datum_ende' AND
|
||||
stundenplandev_id NOT IN
|
||||
(SELECT stundenplan_id FROM tbl_stundenplan WHERE datum>='$datum_begin');";
|
||||
//echo $sql_query.'<BR>';
|
||||
if (!$result=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
}
|
||||
else
|
||||
{
|
||||
flush();
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$sql_query='INSERT INTO tbl_stundenplan
|
||||
(stundenplan_id,unr,uid,datum,stunde,ort_kurzbz,lehrfach_nr,lehrform_kurzbz,studiengang_kz,semester,verband,gruppe,
|
||||
einheit_kurzbz,titel,anmerkung,fix,updateamum,updatevon,lehrveranstaltung_id) VALUES';
|
||||
$sql_query.="($row->stundenplandev_id,$row->unr,'$row->uid','$row->datum',$row->stunde,'$row->ort_kurzbz',
|
||||
$row->lehrfach_nr,'$row->lehrform',$row->studiengang_kz,$row->semester";
|
||||
if ($row->verband==null)
|
||||
$sql_query.=',NULL';
|
||||
else
|
||||
$sql_query.=",'$row->verband'";
|
||||
if ($row->gruppe==null)
|
||||
$sql_query.=',NULL';
|
||||
else
|
||||
$sql_query.=",'$row->gruppe'";
|
||||
if ($row->einheit_kurzbz==null)
|
||||
$sql_query.=',NULL';
|
||||
else
|
||||
$sql_query.=",'$row->einheit_kurzbz'";
|
||||
$sql_query.=",'$row->titel','$row->anmerkung'";
|
||||
if ($row->fix=='t')
|
||||
$sql_query.=',TRUE';
|
||||
else
|
||||
$sql_query.=',FALSE';
|
||||
$sql_query.=",'$row->updateamum','$row->updatevon'";
|
||||
if ($row->lehrveranstaltung_id==null)
|
||||
$sql_query.=',NULL';
|
||||
else
|
||||
$sql_query.=",$row->lehrveranstaltung_id";
|
||||
$sql_query.=');';
|
||||
//echo $sql_query;
|
||||
if (!$result_insert=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$count_err++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$count_ins++;
|
||||
if ($count_ins%10==0)
|
||||
{
|
||||
echo '-';
|
||||
flush();
|
||||
}
|
||||
// Mails vorbereiten
|
||||
// Lektoren
|
||||
if (substr($row->uid,0,1)!='_')
|
||||
{
|
||||
if (!isset($message[$row->uid]->isneu));
|
||||
{
|
||||
$message[$row->uid]->isneu=true;
|
||||
$message[$row->uid]->mailadress=$row->uid.'@technikum-wien.at';
|
||||
$message[$row->uid]->message=$message_begin.'<BR>Neue Stunden:<BR>
|
||||
<TABLE><TR><TD>Ort</TD><TD>Verband</TD><TD>Lektor</TD><TD>Datum/Std</TD><TD>Lehrfach</TD></TR>';
|
||||
}
|
||||
$message[$row->uid]->message.='<TR><TH>'.$row->ort_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lektor.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->datum.'/'.$row->stunde.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
}
|
||||
// Verband
|
||||
$verband=$row->stg_kurzbz.$row->semester.$row->verband.$row->gruppe;
|
||||
$verband=trim($verband);
|
||||
$verband=strtolower($verband);
|
||||
if (!isset($message[$verband]->isneu));
|
||||
{
|
||||
$message[$verband]->isneu=true;
|
||||
$message[$verband]->mailadress=$verband.'@technikum-wien.at';
|
||||
$message[$verband]->message=$message_begin.'<BR>Neue Stunden:<BR>
|
||||
<TABLE><TR><TD>Ort</TD><TD>Verband</TD><TD>Lektor</TD><TD>Datum/Std</TD><TD>Lehrfach</TD></TR>';
|
||||
}
|
||||
$message[$verband]->message.='<TR><TH>'.$row->ort_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lektor.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->datum.'/'.$row->stunde.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
}
|
||||
}
|
||||
foreach($message as $msg)
|
||||
if($msg->isneu)
|
||||
$msg->message.='</table>';
|
||||
}
|
||||
|
||||
/**************************************************
|
||||
* Datensaetze holen die alt sind
|
||||
*/
|
||||
|
||||
echo '<BR>Alte Datensätze werden gelöscht.<BR>';flush();
|
||||
$sql_query="SELECT * FROM vw_stundenplan WHERE stundenplan_id NOT IN
|
||||
(SELECT stundenplandev_id FROM tbl_stundenplandev WHERE datum>='$datum_begin')
|
||||
AND datum>='$datum_begin';";
|
||||
if (!$result=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
}
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$sql_query='DELETE FROM tbl_stundenplan WHERE stundenplan_id='.$row->stundenplan_id;
|
||||
//echo $sql_query.'<BR>';
|
||||
if (!$result_delete=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$count_err++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$count_del++;
|
||||
if ($count_del%10==0)
|
||||
{
|
||||
echo '-';
|
||||
flush();
|
||||
}
|
||||
// Mails vorbereiten
|
||||
// Lektoren
|
||||
if (substr($row->uid,0,1)!='_')
|
||||
{
|
||||
if (!isset($message[$row->uid]->isalt));
|
||||
{
|
||||
$message[$row->uid]->isalt=true;
|
||||
$message[$row->uid]->mailadress=$row->uid.'@technikum-wien.at';
|
||||
$message[$row->uid]->message.=$message_begin.'<BR>Gelöeschte Stunden:<BR>
|
||||
<TABLE><TR><TD>Ort</TD><TD>Verband</TD><TD>Lektor</TD><TD>Datum/Std</TD><TD>Lehrfach</TD></TR>';
|
||||
}
|
||||
$message[$row->uid]->message.='<TR><TH>'.$row->ort_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lektor.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->datum.'/'.$row->stunde.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
}
|
||||
// Verband
|
||||
$verband=$row->stg_kurzbz.$row->semester.$row->verband.$row->gruppe;
|
||||
$verband=trim($verband);
|
||||
$verband=strtolower($verband);
|
||||
if (!isset($message[$verband]->isalt));
|
||||
{
|
||||
$message[$verband]->isalt=true;
|
||||
$message[$verband]->mailadress=$verband.'@technikum-wien.at';
|
||||
$message[$verband]->message.=$message_begin.'<BR>Geaenderte Stunden:<BR>
|
||||
<TABLE><TR><TD>Ort</TD><TD>Verband</TD><TD>Lektor</TD><TD>Datum/Std</TD><TD>Lehrfach</TD></TR>';
|
||||
}
|
||||
$message[$verband]->message.='<TR><TH>'.$row->ort_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lektor.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->datum.'/'.$row->stunde.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
}
|
||||
foreach($message as $msg)
|
||||
if($msg->isalt)
|
||||
$msg->message.='</table>';
|
||||
}
|
||||
|
||||
|
||||
/**************************************************
|
||||
* Datensaetze holen die anders sind
|
||||
*/
|
||||
|
||||
echo '<BR>Datensätze werden geändert.<BR>';flush();
|
||||
$sql_query="SELECT vw_stundenplandev.*, vw_stundenplan.datum AS old_datum, vw_stundenplan.stunde AS old_stunde,
|
||||
vw_stundenplan.ort_kurzbz AS old_ort_kurzbz, vw_stundenplan.lektor AS old_lektor
|
||||
FROM vw_stundenplandev, vw_stundenplan
|
||||
WHERE vw_stundenplan.stundenplan_id=vw_stundenplandev.stundenplandev_id AND (
|
||||
vw_stundenplandev.unr!=vw_stundenplan.unr OR
|
||||
vw_stundenplandev.uid!=vw_stundenplan.uid OR
|
||||
vw_stundenplandev.datum!=vw_stundenplan.datum OR
|
||||
vw_stundenplandev.stunde!=vw_stundenplan.stunde OR
|
||||
vw_stundenplandev.ort_kurzbz!=vw_stundenplan.ort_kurzbz OR
|
||||
vw_stundenplandev.lehrfach_nr!=vw_stundenplan.lehrfach_nr OR
|
||||
vw_stundenplandev.lehrform!=vw_stundenplan.lehrform OR
|
||||
vw_stundenplandev.studiengang_kz!=vw_stundenplan.studiengang_kz OR
|
||||
vw_stundenplandev.semester!=vw_stundenplan.semester OR
|
||||
vw_stundenplandev.verband!=vw_stundenplan.verband OR
|
||||
vw_stundenplandev.gruppe!=vw_stundenplan.gruppe OR
|
||||
vw_stundenplandev.einheit_kurzbz!=vw_stundenplan.einheit_kurzbz OR
|
||||
vw_stundenplandev.titel!=vw_stundenplan.titel OR
|
||||
vw_stundenplandev.anmerkung!=vw_stundenplan.anmerkung OR
|
||||
vw_stundenplandev.fix!=vw_stundenplan.fix OR
|
||||
vw_stundenplandev.lehrveranstaltung_id!=vw_stundenplan.lehrveranstaltung_id )
|
||||
AND vw_stundenplandev.datum>='$datum_begin';";
|
||||
//echo $sql_query.'<BR>';
|
||||
if (!$result=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
}
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
// Alten Eintrag aus tbl_stundenplan holen
|
||||
$sql_query="SELECT * FROM tbl_stundenplandev WHERE stundenplandev_id=$row->stundenplandev_id;";
|
||||
if (!$result_old=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
}
|
||||
else
|
||||
$row_old=pg_fetch_object($result_old);
|
||||
|
||||
// Datensaetze aendern
|
||||
$sql_query="UPDATE tbl_stundenplan SET
|
||||
unr=$row->unr,uid='$row->uid',datum='$row->datum',stunde=$row->stunde,
|
||||
ort_kurzbz='$row->ort_kurzbz',lehrfach_nr=$row->lehrfach_nr, lehrform_kurzbz='$row->lehrform',
|
||||
studiengang_kz=$row->studiengang_kz,semester=$row->semester";
|
||||
if ($row->verband==null)
|
||||
$sql_query.=',verband=NULL';
|
||||
else
|
||||
$sql_query.=",verband='$row->verband'";
|
||||
if ($row->gruppe==null)
|
||||
$sql_query.=',gruppe=NULL';
|
||||
else
|
||||
$sql_query.=",gruppe='$row->gruppe'";
|
||||
if ($row->einheit_kurzbz==null)
|
||||
$sql_query.=',einheit_kurzbz=NULL';
|
||||
else
|
||||
$sql_query.=",einheit_kurzbz='$row->einheit_kurzbz'";
|
||||
$sql_query.=",titel='$row->titel',anmerkung='$row->anmerkung'";
|
||||
if ($row->fix=='t')
|
||||
$sql_query.=',fix=TRUE';
|
||||
else
|
||||
$sql_query.=',fix=FALSE';
|
||||
$sql_query.=",updateamum='$row->updateamum',updatevon='$row->updatevon'";
|
||||
if ($row->lehrveranstaltung_id==null)
|
||||
$sql_query.=',lehrveranstaltung_id=NULL';
|
||||
else
|
||||
$sql_query.=",lehrveranstaltung_id=$row->lehrveranstaltung_id";
|
||||
$sql_query.=" WHERE stundenplan_id=$row->stundenplandev_id;";
|
||||
echo $sql_query.'<BR>';
|
||||
if (!$result_update=pg_query($conn, $sql_query))
|
||||
{
|
||||
echo $sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$message_sync.=$sql_query.' fehlgeschlagen!<BR>'.pg_last_error($conn);
|
||||
$count_err++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$count_upd++;
|
||||
if ($count_upd%10==0)
|
||||
{
|
||||
echo '-';
|
||||
flush();
|
||||
}
|
||||
// Mails vorbereiten
|
||||
// Lektoren
|
||||
if (substr($row->uid,0,1)!='_')
|
||||
{
|
||||
if (!isset($message[$row->uid]->isset));
|
||||
{
|
||||
$message[$row->uid]->isset=true;
|
||||
$message[$row->uid]->mailadress=$row->uid.'@technikum-wien.at';
|
||||
$message[$row->uid]->message.=$message_begin.'<BR>Geänderte Stunden:<BR>
|
||||
<TABLE><TR><TD>Status</TD><TD>Ort</TD><TD>Verband</TD><TD>Lektor</TD><TD>Datum/Std</TD><TD>Lehrfach</TD></TR>';
|
||||
}
|
||||
$message[$row->uid]->message.='<TR><TH>Vorher: </TH><TH>'.$row->old_ort_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->old_lektor.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->old_datum.'/'.$row->old_stunde.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
|
||||
$message[$row->uid]->message.='<TR><TH>Jetzt: </TH><TH>'.$row->ort_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lektor.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->datum.'/'.$row->stunde.'</TH>';
|
||||
$message[$row->uid]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
}
|
||||
// Verband
|
||||
$verband=$row->stg_kurzbz.$row->semester.$row->verband.$row->gruppe;
|
||||
$verband=trim($verband);
|
||||
$verband=strtolower($verband);
|
||||
if (!isset($message[$verband]->isset));
|
||||
{
|
||||
$message[$verband]->isset=true;
|
||||
$message[$verband]->mailadress=$verband.'@technikum-wien.at';
|
||||
$message[$verband]->message.=$message_begin.'<BR>Geänderte Stunden:<BR>
|
||||
<TABLE><TR><TD>Status</TD><TD>Ort</TD><TD>Verband</TD><TD>Lektor</TD><TD>Datum/Std</TD><TD>Lehrfach</TD></TR>';
|
||||
}
|
||||
$message[$verband]->message.='<TR><TH>Vorher: </TH><TH>'.$row->old_ort_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->old_lektor.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->old_datum.'/'.$row->old_stunde.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
|
||||
$message[$verband]->message.='<TR><TH>Jetzt: </TH><TH>'.$row->ort_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->stg_kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.' '.$row->einheit_kurzbz.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lektor.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->datum.'/'.$row->stunde.'</TH>';
|
||||
$message[$verband]->message.='<TH>'.$row->lehrfach.'-'.$row->lehrform.' ('.$row->lehrfach_bez.')</TH></TR>';
|
||||
}
|
||||
foreach($message as $msg)
|
||||
if($msg->isset)
|
||||
$msg->message.='</table>';
|
||||
}
|
||||
|
||||
/**************************************************
|
||||
* Mails an Lektoren und Verbaende schicken
|
||||
*/
|
||||
if ($sendmail)
|
||||
foreach ($message as $msg)
|
||||
//if (mail('pam@technikum-wien.at',"Stundenplan update",$msg->message,$headers."From: stpl@technikum-wien.at"))
|
||||
if (mail($msg->mailadress,"Stundenplan update",$msg->message,$headers."From: stpl@technikum-wien.at"))
|
||||
{
|
||||
echo 'Mail an '.$msg->mailadress.' wurde verschickt!<BR>';
|
||||
$message_stpl.='Mail an '.$msg->mailadress.' wurde verschickt!<BR>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Mail an '.$msg->mailadress.' konnte nicht verschickt werden!<BR>';
|
||||
$message_sync.='Mail an '.$msg->mailadress.' konnte ***nicht*** verschickt werden!<BR>';
|
||||
}
|
||||
// Mail an Admin
|
||||
$message_tmp=$count_upd.' Datensätze wurden geändert.<BR>
|
||||
'.$count_ins.' Datensätze wurden hinzugefügt.<BR>
|
||||
'.$count_del.' Datensätze wurden gelöscht.<BR>
|
||||
'.$count_err.' Fehler sind dabei aufgetreten!<BR><BR>';
|
||||
echo '<BR>'.$message_tmp;
|
||||
$message_sync='<HTML><BODY>'.$message_tmp.$message_sync.$message_stpl.'</BODY></HTML>';
|
||||
mail('pam@technikum-wien.at',"Stundenplan update",$message_sync,$headers."From: stpl@technikum-wien.at");
|
||||
$message_stpl='<HTML><BODY>'.$message_tmp.$message_stpl.'</BODY></HTML>';
|
||||
mail('stpl@technikum-wien.at',"Stundenplan update",$message_stpl,$headers."From: stpl@technikum-wien.at");
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,594 @@
|
||||
<?php
|
||||
include('../../vilesci/config.inc.php');
|
||||
include('../../include/functions.inc.php');
|
||||
include('../../include/lehrstunde.class.php');
|
||||
|
||||
$conn=pg_connect(CONN_STRING);
|
||||
$conn_fas=pg_connect(CONN_STRING_FAS);
|
||||
$adress='fas_sync@technikum-wien.at';
|
||||
//$adress='pam@technikum-wien.at';
|
||||
$adress_stpl='stpl@technikum-wien.at';
|
||||
$adress_fas='pam@technikum-wien.at';
|
||||
|
||||
|
||||
// error log für jeden Studiengang
|
||||
$error_log=array();
|
||||
$missing_lehrfaecher=array();
|
||||
$missing_einheit=array();
|
||||
$missing_raumtyp=array();
|
||||
$missing_lehrform=array();
|
||||
|
||||
function printLVA($row)
|
||||
{
|
||||
return 'lvnr='.$row->lvnr.' '.$row->bezeichnung;
|
||||
}
|
||||
|
||||
function getSemesterWhereClause()
|
||||
{
|
||||
global $conn;
|
||||
$qry="select * from tbl_studiensemester where ende>now()";
|
||||
$result=pg_exec($conn, $qry);
|
||||
$where='';
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$where.= ((strlen($where)>0)?' or ':'')."studiensemester_kurzbz='".$row->studiensemester_kurzbz."' ";
|
||||
}
|
||||
if (strlen($where)>0) $where=" ($where) ";
|
||||
return $where;
|
||||
}
|
||||
|
||||
function validate($row)
|
||||
{
|
||||
global $error_log,$einheit,$missing_einheit,$missing_raumtyp,$missing_lehrform,$raumtyp,$lehrform;
|
||||
$valid=true;
|
||||
if ($row->raumtyp==null)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Raumtyp fehlt';
|
||||
$valid=false;
|
||||
}
|
||||
if ($row->semester>8 || $row->semester<1)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Semester bei '.$row->semester.$row->verband.$row->gruppe.' größer als 8';
|
||||
$valid=false;
|
||||
}
|
||||
if (!($row->verband==null || $row->verband=='' || $row->verband=='A' || $row->verband=='B' || $row->verband=='C' || $row->verband=='D'))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Verband bei '.$row->semester.$row->verband.$row->gruppe.' außerhalb des gültigen Bereichs (A bis D)';
|
||||
//print_r($row);
|
||||
$valid=false;
|
||||
}
|
||||
if (!($row->gruppe==null || $row->gruppe=='' || $row->gruppe=='1' || $row->gruppe=='2' || $row->gruppe=='3' || $row->gruppe=='4'))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Gruppe bei '.$row->semester.$row->verband.$row->gruppe.' außerhalb des gültigen Bereichs (1 bis 4)';
|
||||
$valid=false;
|
||||
}
|
||||
if (!$row->stundenblockung>0) {
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Stundenblockung ist nicht größer 0';
|
||||
$valid=false;
|
||||
}
|
||||
if (!$row->semesterstunden>0) {
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Semesterstunden sind nicht größer 0';
|
||||
$valid=false;
|
||||
}
|
||||
if (!$row->wochenrythmus>0)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Wochenrythmus ist nicht größer 0';
|
||||
$valid=false;
|
||||
}
|
||||
if ($row->start_kw<=0 || $row->start_kw>53)
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=printLVA($row).': Start-KW außerhalb des gültigen Bereichs (1 bis 53)';
|
||||
$valid=false;
|
||||
}
|
||||
if (strlen($row->einheit_kurzbz)>0 && !isset($einheit[$row->einheit_kurzbz]) && !isset($missing_einheit[$row->einheit_kurzbz]))
|
||||
{
|
||||
$missing_einheit[$row->einheit_kurzbz]=1;
|
||||
}
|
||||
if (strlen($row->raumtyp)>0 && !isset($raumtyp[$row->raumtyp]) && !isset($missing_raumtyp[$row->raumtyp]))
|
||||
{
|
||||
$missing_raumtyp[$row->raumtyp]=1;
|
||||
$valid=false;
|
||||
}
|
||||
if (strlen($row->raumtypalternativ)>0 && !isset($raumtyp[$row->raumtypalternativ]) && !isset($missing_raumtyp[$row->raumtypalternativ])) {
|
||||
$missing_raumtyp[$row->raumtypalternativ]=1;
|
||||
}
|
||||
if (!ereg("^[A-Za-z]{1,5}[0-9]{0,1}$",$row->raumtyp))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->raumtyp.': Raumtyp bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
if (!ereg("^[A-Za-z]{1,5}[0-9]{0,1}$",$row->raumtypalternativ))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->raumtypalternativ.': Raumtypalternative bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
if (strlen($row->lehrform)>0 && !isset($lehrform[$row->lehrform]) && !isset($missing_lehrform[$row->lehrform])) {
|
||||
$missing_lehrform[$row->lehrform]=1;
|
||||
}
|
||||
if (!ereg("^[A-Z]{1,5}[0-9]{0,1}$",$row->lehrfach_kurzbz))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->lehrfach_kurzbz.'-'.$row->lehrform.'/'.$row->studiengang_kz.'-'.$row->semester.': Lehrfach-Kuerzel bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
if (!ereg("^[A-Z]{1,3}$",$row->lehrform))
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$row->lehrfach_kurzbz.'-'.$row->lehrform.'/'.$row->studiengang_kz.'-'.$row->semester.': Lehrform bei LVNR:'.$row->lvnr.' ist nicht plausibel.';
|
||||
$valid=false;
|
||||
}
|
||||
return $valid;
|
||||
}
|
||||
|
||||
/**
|
||||
* FAS-Lehrfach auf interne Lehrfach-Nr übersetzen
|
||||
*/
|
||||
function getLehrfachNr($kurzbz,$studiengang_kz,$semester,$lehrfach_bezeichnung, $fachbereich_id, $ects, $conn)
|
||||
{
|
||||
global $lehrfach;
|
||||
global $text;
|
||||
|
||||
if (isset($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr']))
|
||||
{
|
||||
//echo 'Nummer:'.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'].'Bez: '.$lehrfach_bezeichnung.'<BR>';
|
||||
|
||||
// Nebenbei die Lehrfachbezeichnung kontrollieren
|
||||
if ($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung']!=$lehrfach_bezeichnung)
|
||||
{
|
||||
// Update
|
||||
$qry="UPDATE tbl_lehrfach SET bezeichnung='$lehrfach_bezeichnung' WHERE lehrfach_nr=".$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'];
|
||||
if (!$result=pg_query($conn, $qry))
|
||||
echo $qry.' fehlgeschlagen!<BR>';
|
||||
else
|
||||
{
|
||||
echo 'Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung'].' auf '.$lehrfach_bezeichnung.' geaendert!<BR>';
|
||||
$text.='Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung'].' auf '.$lehrfach_bezeichnung.' geaendert!\n';
|
||||
$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_bezeichnung']=$lehrfach_bezeichnung;
|
||||
}
|
||||
}
|
||||
|
||||
// Nebenbei die ECTS Punkte kontrollieren
|
||||
if ($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects']!=$ects)
|
||||
{
|
||||
if ($ects!='') //ereg("[0-9]{1,4}[\.|,][0-9]{0,2}$",$ects)
|
||||
{
|
||||
// Update
|
||||
$qry="UPDATE tbl_lehrfach SET ects='$ects' WHERE lehrfach_nr=".$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'];
|
||||
//echo $qry.'<BR>';
|
||||
if (!$result=pg_query($conn, $qry))
|
||||
echo $qry.' fehlgeschlagen!<BR>';
|
||||
else
|
||||
{
|
||||
echo ' Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurden die ECTS-Punkte von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects'].' auf '.$ects.' geaendert!<BR>';
|
||||
$text.='Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurden die ECTS-Punkte von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects'].' auf '.$ects.' geaendert!\n';
|
||||
$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['ects']=$ects;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' sind die ECTS-Punkte von '.$ects.' nicht Plausibel!<BR>';
|
||||
$text.='Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' sind die ECTS-Punkte von '.$ects.' nicht Plausibel!\n';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Nebenbei die FachbereichID kontrollieren
|
||||
if ($lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id']!=$fachbereich_id)
|
||||
{
|
||||
// Update
|
||||
$qry="UPDATE tbl_lehrfach SET fachbereich_id=$fachbereich_id WHERE lehrfach_nr=".$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'];
|
||||
if (!$result=@pg_query($conn, $qry))
|
||||
echo $qry.' fehlgeschlagen!<BR>';
|
||||
else
|
||||
{
|
||||
echo 'Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde die FachbereichID von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id'].' auf '.$fachbereich_id.' geaendert!<BR>';
|
||||
$text.='Bei Lehrfach '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.' wurde die FachbereichID von '.$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id'].' auf '.$fachbereich_id.' geaendert!\n';
|
||||
$lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['fachbereich_id']=$fachbereich_id;
|
||||
}
|
||||
}
|
||||
return $lehrfach[$kurzbz.'/'.$studiengang_kz.'/'.$semester]['lehrfach_nr'];
|
||||
}
|
||||
//echo 'missing getLehrfachNr: '.$kurzbz.'/'.$studiengang_kz.'/'.$semester.'<br>';
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/*************************
|
||||
* FAS-Synchronisation
|
||||
*/
|
||||
|
||||
// E-Mails der Studiengänge
|
||||
$stg_mail=array();
|
||||
$qry="select studiengang_kz,email,kurzbz from tbl_studiengang";
|
||||
$result=pg_exec($conn, $qry);
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$stg_mail[$row->studiengang_kz] = $row->email;
|
||||
$stg_kurzbz[$row->studiengang_kz]=$row->kurzbz;
|
||||
}
|
||||
|
||||
// Anzahl der LVA in VileSci
|
||||
$sql_query="SELECT count(*) AS anz FROM tbl_lehrveranstaltung";
|
||||
//echo $sql_query."<br>";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
$vil_anz_lva=pg_fetch_result($result,0,'anz');
|
||||
|
||||
// Lehrfächer holen und in Array speichern (Key ist kurzbz + '/' + lehform_kurzbz)
|
||||
$sql_query="SELECT lehrfach_nr,kurzbz,studiengang_kz,semester, bezeichnung, fachbereich_id, ects FROM tbl_lehrfach";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
while ($row=pg_fetch_object($result))
|
||||
{
|
||||
$lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['lehrfach_nr'] = $row->lehrfach_nr;
|
||||
$lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['fachbereich_id'] = $row->fachbereich_id;
|
||||
$lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['lehrfach_bezeichnung'] = $row->bezeichnung;
|
||||
$lehrfach[$row->kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]['ects'] = $row->ects;
|
||||
}
|
||||
//print_r($lehrfach);
|
||||
// Einheiten holen
|
||||
$sql_query="SELECT einheit_kurzbz,bezeichnung FROM tbl_einheit";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
while ($row=pg_fetch_object($result))
|
||||
$einheit[$row->einheit_kurzbz] = $row->bezeichnung;
|
||||
// Raumtypen holen
|
||||
$sql_query="SELECT raumtyp_kurzbz,beschreibung FROM tbl_raumtyp";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
while ($row=pg_fetch_object($result))
|
||||
$raumtyp[$row->raumtyp_kurzbz] = $row->beschreibung;
|
||||
// Lehformen holen
|
||||
$sql_query="SELECT lehrform_kurzbz,bezeichnung FROM tbl_lehrform";
|
||||
$result=pg_exec($conn, $sql_query);
|
||||
while ($row=pg_fetch_object($result))
|
||||
$lehrform[$row->lehrform_kurzbz] = $row->bezeichnung;
|
||||
//print_r($lehrfach);
|
||||
echo 'FAS-Datenbank wird abgefragt!<BR><i>';
|
||||
flush();
|
||||
|
||||
// Start Lehrveranstaltungen Synchro
|
||||
$sql_query="SELECT DISTINCT fas_id,trim(lvnr) AS lvnr,trim(unr)::int8 AS unr,einheit_kurzbz,lektor,trim(upper(lehrfach_kurzbz)) AS lehrfach_kurzbz,
|
||||
trim(upper(lehrform)) AS lehrform, lehrfach_bezeichnung,
|
||||
studiengang_kz,fachbereich_id,semester,verband,gruppe,raumtyp,raumtypalternativ,
|
||||
round(semesterstunden) AS semesterstunden,stundenblockung,wochenrythmus,start_kw,anmerkung,studiensemester_kurzbz, ects
|
||||
FROM fas_view_alle_lehreinheiten_vilesci ".
|
||||
"where ".getSemesterWhereClause();
|
||||
//echo $sql_query."</i><br>";
|
||||
$result=pg_exec($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$text="Dies ist eine automatische eMail!\r\r";
|
||||
$text.="Es wurde eine Synchronisation mit FAS durchgeführt.\r";
|
||||
$text.="Anzahl der LVA vom FAS-Import: $num_rows \r";
|
||||
$text.="Anzahl der LVA in der VileSci: $vil_anz_lva \r\r";
|
||||
$plausi_error=0;
|
||||
$update_error=0;
|
||||
$insert_error=0;
|
||||
$double_error=0;
|
||||
$anz_update=0;
|
||||
$anz_insert=0;
|
||||
echo $num_rows.' Datensaetze<BR>';
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
if ($i%100==0)
|
||||
{
|
||||
echo '-';
|
||||
flush();
|
||||
}
|
||||
$row=pg_fetch_object($result,$i);
|
||||
// Kennzahl der Studiengangs bei ehemaligen bTec auf TW aendern.
|
||||
if ($row->studiengang_kz==203)
|
||||
$row->studiengang_kz=0;
|
||||
// Lehrfach-Nr übersetzen (-1 wenn nicht vorhanden)
|
||||
$row->lehrfach_nr=getLehrfachNr($row->lehrfach_kurzbz,$row->studiengang_kz,$row->semester, $row->lehrfach_bezeichnung, $row->fachbereich_id, $row->ects, $conn);
|
||||
// Einheit vollstaendiger Name
|
||||
if (count($row->einheit_kurzbz)>0)
|
||||
$row->einheit_kurzbz=$stg_kurzbz[$row->studiengang_kz].'-'.$row->einheit_kurzbz;
|
||||
|
||||
// Plausibilitaetscheck
|
||||
//if ($row->gruppe==NULL)
|
||||
// $row->gruppe='1';
|
||||
|
||||
//
|
||||
if (!$row->stundenblockung>0)
|
||||
$row->stundenblockung=1;
|
||||
if (!$row->start_kw>0)
|
||||
$row->start_kw=1;
|
||||
if (!$row->wochenrythmus>0)
|
||||
$row->wochenrythmus=1;
|
||||
|
||||
if ($row->lehrfach_nr==-1)
|
||||
{
|
||||
//$error_log[$row->studiengang_kz][]=printLVA($row).': Lehrfach (Kurzbz='".$row->lehrfach_kurzbz."',Lehrform".$row->lehrform) existiert noch nicht. Stundenplanabteilung wurde benachrichtigt.';
|
||||
if (!isset($missing_lehrfaecher[$row->lehrfach_kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester])) $missing_lehrfaecher[$row->lehrfach_kurzbz.'/'.$row->studiengang_kz.'/'.$row->semester]=1;
|
||||
$valid=false;
|
||||
}
|
||||
|
||||
if (validate($row) && $row->lehrfach_nr>-1)
|
||||
{
|
||||
// SQL vorbereiten (jede LVA vom FAS im VileSci suchen)
|
||||
$sql_query="SELECT * from tbl_lehrveranstaltung where fas_id=".$row->fas_id;
|
||||
//echo $sql_query;
|
||||
$res_lva=pg_query($conn, $sql_query);
|
||||
$num_rows_lva=pg_numrows($res_lva);
|
||||
|
||||
// neue LVA
|
||||
if ($num_rows_lva==0)
|
||||
{
|
||||
$text.="Die LVA fas-id=$row->fas_id lvnr=$row->lvnr unr=$row->unr wird neu angelegt.\r";
|
||||
$sql_query="INSERT INTO tbl_lehrveranstaltung (lvnr,unr,einheit_kurzbz,lektor,lehrfach_nr,lehrform_kurzbz,";
|
||||
$sql_query.="studiengang_kz,fachbereich_id,semester,verband,gruppe,raumtyp,".
|
||||
"raumtypalternativ,semesterstunden,stundenblockung,".
|
||||
"wochenrythmus,start_kw,studiensemester_kurzbz,fas_id,anmerkung) ".
|
||||
"VALUES('$row->lvnr'".
|
||||
",$row->unr,".
|
||||
(strlen($row->einheit_kurzbz)>0?"'".$row->einheit_kurzbz."'":'NULL').",".
|
||||
"'$row->lektor',".
|
||||
"'$row->lehrfach_nr',".
|
||||
"'$row->lehrform',".
|
||||
"'$row->studiengang_kz',".
|
||||
"$row->fachbereich_id,".
|
||||
"$row->semester,";
|
||||
if ($row->verband==null)
|
||||
$sql_query.='NULL,';
|
||||
else
|
||||
$sql_query.="'$row->verband',";
|
||||
if ($row->gruppe==null)
|
||||
$sql_query.='NULL,';
|
||||
else
|
||||
$sql_query.="'$row->gruppe',";
|
||||
$sql_query.="'$row->raumtyp',".
|
||||
"'$row->raumtypalternativ',".
|
||||
"$row->semesterstunden,".
|
||||
"$row->stundenblockung,".
|
||||
"$row->wochenrythmus,".
|
||||
"$row->start_kw,".
|
||||
"'$row->studiensemester_kurzbz'," .
|
||||
"$row->fas_id,'$row->anmerkung')";
|
||||
//echo $sql_query.'<BR>';
|
||||
if(!$res_insert=@pg_exec($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\nFehler: ".pg_errormessage($conn)."\n";
|
||||
$insert_error++;
|
||||
}
|
||||
else
|
||||
$anz_insert++;
|
||||
}
|
||||
// bestehende LVA
|
||||
elseif ($num_rows_lva==1)
|
||||
{
|
||||
$update_sql='';
|
||||
$row_lva=pg_fetch_object($res_lva,0);
|
||||
//var_dump($row_lva);
|
||||
//if ($row->gruppe==NULL)
|
||||
// $row->gruppe=1;
|
||||
//echo '-'.$row->lvnr.'-'.$row_lva->lvnr.'-<BR>';
|
||||
if ($row->lvnr!=$row_lva->lvnr)
|
||||
$update_sql.="lvnr='".$row->lvnr."'";
|
||||
elseif ($row->unr!=$row_lva->unr)
|
||||
$update_sql.="unr=".$row->unr;
|
||||
elseif ($row->einheit_kurzbz!=$row_lva->einheit_kurzbz)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'').'einheit_kurzbz='.(strlen($row->einheit_kurzbz)>0?"'".$row->einheit_kurzbz."'":'NULL');
|
||||
elseif ($row->lektor!=$row_lva->lektor)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."lektor='".$row->lektor."'";
|
||||
elseif ($row->lehrfach_nr!=$row_lva->lehrfach_nr)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."lehrfach_nr=".$row->lehrfach_nr;
|
||||
elseif ($row->lehrform!=$row_lva->lehrform_kurzbz)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."lehrform_kurzbz='".$row->lehrform."'";
|
||||
elseif ($row->studiengang_kz!=$row_lva->studiengang_kz)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."studiengang_kz=".$row->studiengang_kz;
|
||||
elseif ($row->fachbereich_id!=$row_lva->fachbereich_id)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."fachbereich_id=".$row->fachbereich_id;
|
||||
elseif ($row->semester!=$row_lva->semester)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."semester=".$row->semester;
|
||||
elseif ($row->verband!=$row_lva->verband)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."verband=".(strlen($row->verband)>0?"'".$row->verband."'":'NULL');
|
||||
elseif ($row->gruppe!=$row_lva->gruppe)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."gruppe=".(strlen($row->gruppe)>0?"'".$row->gruppe."'":'NULL');
|
||||
elseif ($row->raumtyp!=$row_lva->raumtyp)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."raumtyp='".$row->raumtyp."'";
|
||||
elseif ($row->raumtypalternativ!=$row_lva->raumtypalternativ)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."raumtypalternativ='".$row->raumtypalternativ."'";
|
||||
elseif ($row->semesterstunden!=$row_lva->semesterstunden)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."semesterstunden=".$row->semesterstunden;
|
||||
elseif ($row->stundenblockung!=$row_lva->stundenblockung)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."stundenblockung=".$row->stundenblockung;
|
||||
elseif ($row->wochenrythmus!=$row_lva->wochenrythmus)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."wochenrythmus=".$row->wochenrythmus;
|
||||
elseif ($row->start_kw!=$row_lva->start_kw)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."start_kw=".(strlen($row->start_kw)>0?$row->start_kw:'NULL');
|
||||
elseif ($row->studiensemester_kurzbz!=$row_lva->studiensemester_kurzbz)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."studiensemester_kurzbz='".$row->studiensemester_kurzbz."'";
|
||||
elseif ($row->anmerkung!=$row_lva->anmerkung)
|
||||
$update_sql.=(strlen($update_sql)>0?',':'')."anmerkung='".$row->anmerkung."'";
|
||||
|
||||
if (strlen($update_sql)>0)
|
||||
{
|
||||
$text.="Die LVA fas-id=$row->fas_id lvnr=$row->lvnr unr=$row->unr wird upgedatet.\r";
|
||||
$sql_query="UPDATE tbl_lehrveranstaltung SET ".
|
||||
$update_sql.
|
||||
" where fas_id=".$row->fas_id;
|
||||
|
||||
//echo $sql_query.'<BR>';
|
||||
if(!$res_update=@pg_query($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$update_error++;
|
||||
}
|
||||
else
|
||||
$anz_update++;
|
||||
|
||||
// ****************
|
||||
// Auch in tbl_stundenplandev updaten
|
||||
$sql_query="SELECT * FROM tbl_stundenplandev WHERE
|
||||
lehrveranstaltung_id=$row_lva->lehrveranstaltung_id AND datum>=now()";
|
||||
//echo $sql_query.'<BR>';
|
||||
if(!$res_upd_stpl=@pg_query($conn, $sql_query))
|
||||
{
|
||||
$text.=$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!pg_query($conn,"BEGIN;"))
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$kollision=false;
|
||||
while ($row_upd_stpl=pg_fetch_object($res_upd_stpl))
|
||||
{
|
||||
// Lehrstunde auf Kollisionen checken
|
||||
$lehrstunde=new lehrstunde($conn);
|
||||
//echo '<BR>STPL-ID:'.$row_upd_stpl->stundenplandev_id.'<BR>';
|
||||
if (!$lehrstunde->load($row_upd_stpl->stundenplandev_id))
|
||||
echo $lehrstunde->errormsg;
|
||||
$lehrstunde->lektor_uid=$row->lektor;
|
||||
if (!$lehrstunde->kollision())
|
||||
{
|
||||
if (!$lehrstunde->save('sync_fas_lva'))
|
||||
echo $lehrstunde->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
$error_log[$row->studiengang_kz][]=$lehrstunde->errormsg;
|
||||
$text.="\rKollision: ".$lehrstunde->errormsg."\r";
|
||||
$kollision=true;
|
||||
echo "Kollision: ".$lehrstunde->errormsg."<BR>";
|
||||
}
|
||||
}
|
||||
if ($kollision)
|
||||
{
|
||||
if (!pg_query($conn,"ROLLBACK;"))
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
}
|
||||
else
|
||||
if (!pg_query($conn,"COMMIT;"))
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
}
|
||||
}
|
||||
}
|
||||
// LVA kommt mehrmals vor ->Warnung
|
||||
elseif ($num_rows_lva>1)
|
||||
{
|
||||
$text.="\r!!! Die LVA fas_id=$row->fas_id kommt mehrfach vor!\r";
|
||||
$double_error++;
|
||||
}
|
||||
}
|
||||
else
|
||||
$plausi_error++;
|
||||
}
|
||||
|
||||
|
||||
// ****************
|
||||
// Ueberfluessige Datensaetze loeschen
|
||||
$whereClause=getSemesterWhereClause();
|
||||
$sql_query="DELETE FROM tbl_lehrveranstaltung WHERE fas_id NOT IN
|
||||
(SELECT fas_id FROM vw_fas_lehrveranstaltung WHERE $whereClause) AND (fas_id!=0 OR fas_id IS NOT NULL) AND ($whereClause)";
|
||||
echo $sql_query.'<BR>';
|
||||
if(!$res_delete=@pg_query($conn, $sql_query))
|
||||
{
|
||||
$text.='\n'.$sql_query;
|
||||
$text.="\rFehler: ".pg_errormessage($conn)."\r";
|
||||
$text.="\rSolution: DELETE FROM tbl_stundenplandev WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM tbl_lehrveranstaltung WHERE fas_id NOT IN (SELECT fas_id FROM vw_fas_lehrveranstaltung WHERE $whereClause) AND (fas_id!=0 OR fas_id IS NOT NULL) AND ($whereClause))\r";
|
||||
}
|
||||
else
|
||||
{
|
||||
$anz_delete=pg_numrows($res_delete);
|
||||
}
|
||||
|
||||
//Ausgabe Zusammenfassung
|
||||
$text.="\n$anz_delete Lehrveranstaltungen wurden geloescht!\n";
|
||||
$text.="$plausi_error Fehler beim Plausibilitaetscheck!\n";
|
||||
$text.="$update_error Fehler bei LVA-Update!\n";
|
||||
$text.="$insert_error Fehler bei LVA-Insert!\n";
|
||||
$text.="$double_error LVA kommen in VileSci doppelt vor!\n\n";
|
||||
$text.="$anz_update LVA wurden upgedatet.\n";
|
||||
$text.="$anz_insert LVA wurden neu angelegt.\n\n";
|
||||
$text.="\nEND OF SYNCHRONISATION\n";
|
||||
|
||||
// Validation error hinzufügen
|
||||
while(list($k,$v)=each($error_log))
|
||||
{
|
||||
$text.="\n\nStudiengang $k:\n";
|
||||
foreach($v as $txt)
|
||||
$text.=" $txt\n";
|
||||
}
|
||||
// fehlende lehrfächer
|
||||
$text.="\n\nFehlende Lehrfächer: \n";
|
||||
while(list($k,$v)=each($missing_lehrfaecher))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
// fehlende einheiten
|
||||
$text.="\n\nFehlende Einheiten: \n";
|
||||
while(list($k,$v)=each($missing_einheit))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
// fehlende raumtypen
|
||||
$text.="\n\nFehlende Raumtypen: \n";
|
||||
while(list($k,$v)=each($missing_raumtyp))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
// fehlende lehrformen
|
||||
$text.="\n\nFehlende Lehrformen: \n";
|
||||
while(list($k,$v)=each($missing_lehrform))
|
||||
{
|
||||
$text.=" $k\n";
|
||||
}
|
||||
if (mail($adress,"FAS Synchro mit VileSci (Lehrveranstaltungen)",$text,"From: vilesci@technikum-wien.at"))
|
||||
$sendmail=true;
|
||||
else
|
||||
$sendmail=false;
|
||||
|
||||
//print "debug: ";print_r($stg_mail);
|
||||
|
||||
// Einzelnen Mails an Studiengänge verschicken
|
||||
reset($error_log);
|
||||
while(list($k,$v)=each($error_log))
|
||||
{
|
||||
echo "<br>Mail an Studiengang $k ".$stg_mail[$k].":<br>";
|
||||
$stg_text="Dies ist eine automatische Mail!\nFolgende Fehler sind bei der Synchronisation der Lehrveranstaltungen aufgetreten:\n\n";
|
||||
foreach($v as $txt)
|
||||
$stg_text.="$txt\n";
|
||||
echo $stg_text.'<br>';
|
||||
// Studiengang
|
||||
if (!mail($stg_mail[$k],"FAS Synchro mit VileSci (Lehrveranstaltungen) $k",$stg_text,"From: vilesci@technikum-wien.at"))
|
||||
echo "Mail an '".$stg_mail[$k]."' konnte nicht verschickt werden!<br>";
|
||||
// Stundenplanstelle
|
||||
echo "<br>Mail an Studiengang $k ($adress_stpl)<br>";
|
||||
if (!mail($adress_stpl,"FAS Synchro mit VileSci (Lehrveranstaltungen) $k",$stg_text,"From: vilesci@technikum-wien.at"))
|
||||
echo 'Mail an "'.$adress_stpl.'" konnte nicht verschickt werden!<br>';
|
||||
|
||||
}
|
||||
|
||||
// Doppelte IDs im FAS prüfen
|
||||
$sql_query="SELECT count(*) AS anzahl, fas_id FROM fas_view_alle_lehreinheiten_vilesci
|
||||
GROUP BY fas_id HAVING count(*)>1";
|
||||
//echo $sql_query."</i><br>";
|
||||
$result=pg_query($conn_fas, $sql_query);
|
||||
$num_rows=pg_numrows($result);
|
||||
$mail_text="Folgende $num_rows IDs kommen in der View fas_view_alle_lehreinheiten_vilesci (fas_id) mehrfach vor:\n\n";
|
||||
$mail_text_false='';
|
||||
if ($num_rows>0)
|
||||
while ($row=pg_fetch_object($result))
|
||||
$mail_text_false.=$row->fas_id.'->'.$row->anzahl."x\n";
|
||||
$mail_text.=$mail_text_false."\n\nBitte überprüfen die Daten im FAS!!!";
|
||||
if ($mail_text_false!='')
|
||||
if (!mail($adress_fas,"FAS Synchro mit VileSci (Lehrveranstaltungen)",$mail_text,"From: vilesci@technikum-wien.at"))
|
||||
echo "Mail an '".$adress_fas."' konnte nicht verschickt werden!<br>";
|
||||
else
|
||||
echo 'Mail wurde verschickt an '.$adress_fas.'!<br>';
|
||||
?>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>FAS-Synchro mit VileSci</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
if ($sendmail)
|
||||
echo 'Mail wurde verschickt an '.$adress.'!<br>';
|
||||
else
|
||||
echo "Mail konnte nicht verschickt werden!<br>";
|
||||
echo nl2br($text);
|
||||
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,360 @@
|
||||
/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: NPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.1 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Ben Goodger <ben@netscape.com> (Original Author)
|
||||
* Pierre Chanial <pierrechanial@netscape.net>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the NPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the NPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// XXX - WARNING - DRAG AND DROP API CHANGE ALERT - XXX
|
||||
// This file has been extensively modified in a checkin planned for Mozilla
|
||||
// 0.8, and the API has been modified. DO NOT MODIFY THIS FILE without
|
||||
// approval from ben@netscape.com, otherwise your changes will be lost.
|
||||
|
||||
/**
|
||||
* XXX - until load is supported in chrome, you also need to include
|
||||
* these files:
|
||||
* chrome://global/content/nsTransferable.js
|
||||
**/
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* nsDragAndDrop - a convenience wrapper for nsTransferable, nsITransferable
|
||||
* and nsIDragService/nsIDragSession.
|
||||
*
|
||||
* USAGE INFORMATION: see 'README-nsDragAndDrop.html' in the same source directory
|
||||
* as this file (typically xpfe/global/resources/content)
|
||||
*/
|
||||
|
||||
var nsDragAndDrop =
|
||||
{
|
||||
_mDS: null,
|
||||
get mDragService()
|
||||
{
|
||||
if (!this._mDS)
|
||||
{
|
||||
const kDSContractID = "@mozilla.org/widget/dragservice;1";
|
||||
const kDSIID = Components.interfaces.nsIDragService;
|
||||
this._mDS = Components.classes[kDSContractID].getService(kDSIID);
|
||||
}
|
||||
return this._mDS;
|
||||
},
|
||||
|
||||
/**
|
||||
* void startDrag (DOMEvent aEvent, Object aDragDropObserver) ;
|
||||
*
|
||||
* called when a drag on an element is started.
|
||||
*
|
||||
* @param DOMEvent aEvent
|
||||
* the DOM event fired by the drag init
|
||||
* @param Object aDragDropObserver
|
||||
* javascript object of format described above that specifies
|
||||
* the way in which the element responds to drag events.
|
||||
**/
|
||||
startDrag: function (aEvent, aDragDropObserver)
|
||||
{
|
||||
try
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch (e) { alert(e); }
|
||||
if (!("onDragStart" in aDragDropObserver))
|
||||
return;
|
||||
|
||||
const kDSIID = Components.interfaces.nsIDragService;
|
||||
var dragAction =
|
||||
{
|
||||
action: kDSIID.DRAGDROP_ACTION_COPY + kDSIID.DRAGDROP_ACTION_MOVE + kDSIID.DRAGDROP_ACTION_LINK
|
||||
};
|
||||
|
||||
var transferData =
|
||||
{
|
||||
data: null
|
||||
};
|
||||
try
|
||||
{
|
||||
aDragDropObserver.onDragStart(aEvent, transferData, dragAction);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
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);
|
||||
|
||||
var region = null;
|
||||
if (aEvent.originalTarget.localName == "treechildren")
|
||||
{
|
||||
// let's build the drag region
|
||||
var tree = aEvent.originalTarget.parentNode;
|
||||
try
|
||||
{
|
||||
region = Components.classes["@mozilla.org/gfx/region;1"].createInstance(Components.interfaces.nsIScriptableRegion);
|
||||
region.init();
|
||||
var obo = tree.treeBoxObject;
|
||||
var bo = obo.treeBody.boxObject;
|
||||
var obosel= obo.selection;
|
||||
var rowX = bo.x;
|
||||
var rowY = bo.y;
|
||||
var rowHeight = obo.rowHeight;
|
||||
var rowWidth = bo.width;
|
||||
|
||||
//add a rectangle for each visible selected row
|
||||
for (var i = obo.getFirstVisibleRow(); i <= obo.getLastVisibleRow(); i ++)
|
||||
{
|
||||
if (obosel.isSelected(i))
|
||||
region.unionRect(rowX, rowY, rowWidth, rowHeight);
|
||||
rowY = rowY + rowHeight;
|
||||
}
|
||||
|
||||
//and finally, clip the result to be sure we don't spill over...
|
||||
region.intersectRect(bo.x, bo.y, bo.width, bo.height);
|
||||
}
|
||||
catch(ex)
|
||||
{
|
||||
dump("Error while building selection region: " + ex + "\n");
|
||||
region = null;
|
||||
}
|
||||
}
|
||||
|
||||
var count = 0;
|
||||
do
|
||||
{
|
||||
var trans = nsTransferable.set(transferData._XferID == "TransferData"
|
||||
? transferData : transferData.dataList[count++]);
|
||||
transArray.AppendElement(trans.QueryInterface(Components.interfaces.nsISupports));
|
||||
}
|
||||
while (transferData._XferID == "TransferDataSet" && count < transferData.dataList.length);
|
||||
|
||||
try
|
||||
{
|
||||
this.mDragService.invokeDragSession(aEvent.target, transArray, region, dragAction.action);
|
||||
}
|
||||
catch(ex)
|
||||
{
|
||||
// this could be because the user pressed escape to
|
||||
// cancel the drag. even if it's not, there's not much
|
||||
// we can do, so be silent.
|
||||
}
|
||||
aEvent.preventBubble();
|
||||
},
|
||||
|
||||
/**
|
||||
* void dragOver (DOMEvent aEvent, Object aDragDropObserver) ;
|
||||
*
|
||||
* called when a drag passes over this element
|
||||
*
|
||||
* @param DOMEvent aEvent
|
||||
* the DOM event fired by passing over the element
|
||||
* @param Object aDragDropObserver
|
||||
* javascript object of format described above that specifies
|
||||
* the way in which the element responds to drag events.
|
||||
**/
|
||||
dragOver: function (aEvent, aDragDropObserver)
|
||||
{
|
||||
try
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch (e) { alert(e); }
|
||||
if (!("onDragOver" in aDragDropObserver))
|
||||
return;
|
||||
if (!this.checkCanDrop(aEvent, aDragDropObserver))
|
||||
return;
|
||||
var flavourSet = aDragDropObserver.getSupportedFlavours();
|
||||
for (var flavour in flavourSet.flavourTable)
|
||||
{
|
||||
if (this.mDragSession.isDataFlavorSupported(flavour))
|
||||
{
|
||||
aDragDropObserver.onDragOver(aEvent,
|
||||
flavourSet.flavourTable[flavour],
|
||||
this.mDragSession);
|
||||
aEvent.preventBubble();
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
mDragSession: null,
|
||||
|
||||
/**
|
||||
* void drop (DOMEvent aEvent, Object aDragDropObserver) ;
|
||||
*
|
||||
* called when the user drops on the element
|
||||
*
|
||||
* @param DOMEvent aEvent
|
||||
* the DOM event fired by the drop
|
||||
* @param Object aDragDropObserver
|
||||
* javascript object of format described above that specifies
|
||||
* the way in which the element responds to drag events.
|
||||
**/
|
||||
drop: function (aEvent, aDragDropObserver)
|
||||
{
|
||||
try
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch (e) { alert(e); }
|
||||
|
||||
if (!("onDrop" in aDragDropObserver))
|
||||
return;
|
||||
if (!this.checkCanDrop(aEvent, aDragDropObserver))
|
||||
return;
|
||||
if (this.mDragSession.canDrop) {
|
||||
var flavourSet = aDragDropObserver.getSupportedFlavours();
|
||||
var transferData = nsTransferable.get(flavourSet, this.getDragData, true);
|
||||
// hand over to the client to respond to dropped data
|
||||
var multiple = "canHandleMultipleItems" in aDragDropObserver && aDragDropObserver.canHandleMultipleItems;
|
||||
var dropData = multiple ? transferData : transferData.first.first;
|
||||
aDragDropObserver.onDrop(aEvent, dropData, this.mDragSession);
|
||||
}
|
||||
aEvent.preventBubble();
|
||||
},
|
||||
|
||||
/**
|
||||
* void dragExit (DOMEvent aEvent, Object aDragDropObserver) ;
|
||||
*
|
||||
* called when a drag leaves this element
|
||||
*
|
||||
* @param DOMEvent aEvent
|
||||
* the DOM event fired by leaving the element
|
||||
* @param Object aDragDropObserver
|
||||
* javascript object of format described above that specifies
|
||||
* the way in which the element responds to drag events.
|
||||
**/
|
||||
dragExit: function (aEvent, aDragDropObserver)
|
||||
{
|
||||
try
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch (e) { alert(e); }
|
||||
|
||||
if (!this.checkCanDrop(aEvent, aDragDropObserver))
|
||||
return;
|
||||
if ("onDragExit" in aDragDropObserver)
|
||||
aDragDropObserver.onDragExit(aEvent, this.mDragSession);
|
||||
},
|
||||
|
||||
/**
|
||||
* void dragEnter (DOMEvent aEvent, Object aDragDropObserver) ;
|
||||
*
|
||||
* called when a drag enters in this element
|
||||
*
|
||||
* @param DOMEvent aEvent
|
||||
* the DOM event fired by entering in the element
|
||||
* @param Object aDragDropObserver
|
||||
* javascript object of format described above that specifies
|
||||
* the way in which the element responds to drag events.
|
||||
**/
|
||||
dragEnter: function (aEvent, aDragDropObserver)
|
||||
{
|
||||
try
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch (e) { alert(e); }
|
||||
|
||||
if (!this.checkCanDrop(aEvent, aDragDropObserver))
|
||||
return;
|
||||
if ("onDragEnter" in aDragDropObserver)
|
||||
aDragDropObserver.onDragEnter(aEvent, this.mDragSession);
|
||||
},
|
||||
|
||||
/**
|
||||
* nsISupportsArray getDragData (Object aFlavourList)
|
||||
*
|
||||
* Creates a nsISupportsArray of all droppable items for the given
|
||||
* set of supported flavours.
|
||||
*
|
||||
* @param FlavourSet aFlavourSet
|
||||
* formatted flavour list.
|
||||
**/
|
||||
getDragData: function (aFlavourSet)
|
||||
{
|
||||
try
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
alert(e);
|
||||
}
|
||||
|
||||
var supportsArray = Components.classes["@mozilla.org/supports-array;1"]
|
||||
.createInstance(Components.interfaces.nsISupportsArray);
|
||||
|
||||
for (var i = 0; i < nsDragAndDrop.mDragSession.numDropItems; ++i)
|
||||
{
|
||||
var trans = nsTransferable.createTransferable();
|
||||
for (var j = 0; j < aFlavourSet.flavours.length; ++j)
|
||||
trans.addDataFlavor(aFlavourSet.flavours[j].contentType);
|
||||
nsDragAndDrop.mDragSession.getData(trans, i);
|
||||
supportsArray.AppendElement(trans);
|
||||
}
|
||||
return supportsArray;
|
||||
},
|
||||
|
||||
/**
|
||||
* Boolean checkCanDrop (DOMEvent aEvent, Object aDragDropObserver) ;
|
||||
*
|
||||
* Sets the canDrop attribute for the drag session.
|
||||
* returns false if there is no current drag session.
|
||||
*
|
||||
* @param DOMEvent aEvent
|
||||
* the DOM event fired by the drop
|
||||
* @param Object aDragDropObserver
|
||||
* javascript object of format described above that specifies
|
||||
* the way in which the element responds to drag events.
|
||||
**/
|
||||
checkCanDrop: function (aEvent, aDragDropObserver)
|
||||
{
|
||||
try
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch (e) { alert(e); }
|
||||
|
||||
if (!this.mDragSession)
|
||||
this.mDragSession = this.mDragService.getCurrentSession();
|
||||
if (!this.mDragSession)
|
||||
return false;
|
||||
this.mDragSession.canDrop = this.mDragSession.sourceNode != aEvent.target;
|
||||
if ("canDrop" in aDragDropObserver)
|
||||
this.mDragSession.canDrop &= aDragDropObserver.canDrop(aEvent, this.mDragSession);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
/**************************************************************************
|
||||
* @brief Funktion draw_week_rdf Stundenplan im RDF-Format
|
||||
*
|
||||
* @param datum Datum eines Tages in der angeforderten Woche
|
||||
*
|
||||
* @return true oder false
|
||||
*
|
||||
*/
|
||||
function draw_week_rdf()
|
||||
{
|
||||
// Stundentafel abfragen
|
||||
$sql_query="SELECT * FROM tbl_stunde ORDER BY stunde";
|
||||
if(!$result_stunde=pg_exec($this->conn, $sql_query))
|
||||
die(pg_last_error($this->conn));
|
||||
$num_rows_stunde=pg_numrows($result_stunde);
|
||||
|
||||
//echo $this->datum;
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/lehrstunde/';
|
||||
//RDF Kopf
|
||||
echo '<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:LEHRSTUNDE="'.$rdf_url.'rdf#">';
|
||||
|
||||
// Von Montag bis Samstag
|
||||
for ($i=1; $i<7; $i++)
|
||||
{
|
||||
for ($k=0; $k<$num_rows_stunde; $k++)
|
||||
{
|
||||
$j=pg_result($result_stunde,$k,'"stunde"');
|
||||
if (isset($this->std_plan[$i][$j][0]->lehrfach))
|
||||
{
|
||||
// Daten aufbereiten
|
||||
$kollision=-1;
|
||||
unset($a_unr);
|
||||
foreach ($this->std_plan[$i][$j] as $lehrstunde)
|
||||
$a_unr[]=$lehrstunde->unr;
|
||||
|
||||
// Unterrichtsnummer (Kollision?)
|
||||
$unr=array_unique($a_unr);
|
||||
$kollision+=count($unr);
|
||||
foreach ($a_unr as $unr)
|
||||
foreach ($this->std_plan[$i][$j] as $lehrstunde)
|
||||
if ($lehrstunde->unr==$unr)
|
||||
{
|
||||
// Ausgabe
|
||||
$lvb=$lehrstunde->stg.'-'.$lehrstunde->sem;
|
||||
if ($lehrstunde->ver!=null && $lehrstunde->ver!='0' && $lehrstunde->ver!='')
|
||||
{
|
||||
$lvb.=$lehrstunde->ver;
|
||||
if ($lehrstunde->grp!=null && $lehrstunde->grp!='0' && $lehrstunde->grp!='')
|
||||
$lvb.=$lehrstunde->grp;
|
||||
}
|
||||
echo '<RDF:Description RDF:about="'.$rdf_url.$lehrstunde->stundenplan_id.'" >
|
||||
<LEHRSTUNDE:stundenplan_id>'.$lehrstunde->stundenplan_id.'</LEHRSTUNDE:stundenplan_id>
|
||||
<LEHRSTUNDE:lehrverband>'.$lvb.'</LEHRSTUNDE:lehrverband>
|
||||
<LEHRSTUNDE:stg_kz>'.$lehrstunde->stg_kz.'</LEHRSTUNDE:stg_kz>
|
||||
<LEHRSTUNDE:stg>'.$lehrstunde->stg.'</LEHRSTUNDE:stg>
|
||||
<LEHRSTUNDE:sem>'.$lehrstunde->sem.'</LEHRSTUNDE:sem>
|
||||
<LEHRSTUNDE:ver>'.$lehrstunde->ver.'</LEHRSTUNDE:ver>
|
||||
<LEHRSTUNDE:grp>'.$lehrstunde->grp.'</LEHRSTUNDE:grp>
|
||||
<LEHRSTUNDE:einheit>'.$lehrstunde->einheit_kurzbz.'</LEHRSTUNDE:einheit>
|
||||
<LEHRSTUNDE:datum>'.$lehrstunde->datum.'</LEHRSTUNDE:datum>
|
||||
<LEHRSTUNDE:stunde>'.$lehrstunde->stunde.'</LEHRSTUNDE:stunde>
|
||||
<LEHRSTUNDE:tag>'.$i.'</LEHRSTUNDE:tag>
|
||||
|
||||
<LEHRSTUNDE:kollision>'.($kollision ? 'true':'false').'</LEHRSTUNDE:kollision>
|
||||
|
||||
</RDF:Description>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Sequenz Von Montag bis Samstag
|
||||
echo '<RDF:Seq RDF:about="'.$rdf_url.'alle-lehrstunden">';
|
||||
for ($i=1; $i<7; $i++)
|
||||
{
|
||||
for ($k=0; $k<$num_rows_stunde; $k++)
|
||||
{
|
||||
$j=pg_result($result_stunde,$k,'"stunde"');
|
||||
if (isset($this->std_plan[$i][$j][0]->lehrfach))
|
||||
{
|
||||
// Daten aufbereiten
|
||||
unset($a_unr);
|
||||
foreach ($this->std_plan[$i][$j] as $lehrstunde)
|
||||
$a_unr[]=$lehrstunde->unr;
|
||||
|
||||
// Unterrichtsnummern
|
||||
$unr=array_unique($a_unr);
|
||||
foreach ($a_unr as $unr)
|
||||
{
|
||||
echo '<RDF:li RDF:resource="'.$rdf_url.$lehrstunde->stundenplan_id.'" />
|
||||
<RDF:li>
|
||||
<RDF:Seq RDF:about="'.$rdf_url.$lehrstunde->stundenplan_id.'">';
|
||||
foreach ($this->std_plan[$i][$j] as $lehrstunde)
|
||||
if ($lehrstunde->unr==$unr)
|
||||
{
|
||||
// Ausgabe
|
||||
echo '<RDF:li RDF:resource="'.$rdf_url.$lehrstunde->stundenplan_id.'" />';
|
||||
}
|
||||
echo '</RDF:Seq>
|
||||
</RDF:li>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
echo '</RDF:Seq>';
|
||||
echo '</RDF:RDF>';
|
||||
}
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
function lehrstunde(type,stg_kz,sem,ver,grp)
|
||||
{
|
||||
this.type=type;
|
||||
this.stg_kz=stg_kz;
|
||||
this.sem=sem;
|
||||
this.ver=ver;
|
||||
this.grp=grp;
|
||||
}
|
||||
|
||||
var listObserver=
|
||||
{
|
||||
onDragStart: function (evt,transferData,action)
|
||||
{
|
||||
var elemID=evt.target.getAttribute("elem");
|
||||
var paramList=evt.target.getAttribute("paramList");
|
||||
var transferObjekt=new lehrstunde(elemID,paramList,elemID,elemID,elemID);
|
||||
transferData.data=new TransferData();
|
||||
//transferData.data.addDataForFlavour("text/unicode",transferObjekt);
|
||||
transferData.data.addDataForFlavour("text/unicode",paramList);
|
||||
}
|
||||
};
|
||||
|
||||
var boardObserver=
|
||||
{
|
||||
/*canHandleMultipleItems : function()
|
||||
{
|
||||
var canHandleMultipleItems=false;
|
||||
},*/
|
||||
getSupportedFlavours : function ()
|
||||
{
|
||||
var flavours = new FlavourSet();
|
||||
flavours.appendFlavour("text/unicode");
|
||||
return flavours;
|
||||
},
|
||||
onDragOver: function (evt,flavour,session)
|
||||
{
|
||||
},
|
||||
onDrop: function (evt,dropdata,session)
|
||||
{
|
||||
if (dropdata.data!="")
|
||||
{
|
||||
var dragElement=document.getElementById(dropdata.data);
|
||||
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
||||
var stunde=evt.target.getAttribute("stunde");
|
||||
var datum=evt.target.getAttribute("datum");
|
||||
/*//var elem=document.createElement("label");*/
|
||||
/*evt.target.appendChild(elem); */
|
||||
var paramList=dragElement.getAttribute("paramList");
|
||||
/*elem.setAttribute("value",dropdata.data + paramList); */
|
||||
var url=location.href;//contentFrame.getAttribute('src');
|
||||
url+=paramList+"&new_stunde="+stunde+"&new_datum="+datum+'&aktion=stplverschieben';
|
||||
//contentFrame.setAttribute('src', url);
|
||||
location.href=url;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
<?php
|
||||
include('../vilesci/config.inc.php');
|
||||
?>
|
||||
function lehrstunde(id,idList)
|
||||
{
|
||||
this.id=id;
|
||||
this.idList=idList;
|
||||
}
|
||||
var lehrstunden=new Array();
|
||||
|
||||
/***** Drag Observer fuer Lehrveranstaltungen *****/
|
||||
var lvaObserver=
|
||||
{
|
||||
onDragStart: function (evt,transferData,action)
|
||||
{
|
||||
var idList=evt.target.getAttribute("idList");
|
||||
var aktion=evt.target.getAttribute("aktion");
|
||||
aktion+="_set";
|
||||
var paramList="?aktion="+aktion+"&lva_ids="+idList;
|
||||
transferData.data=new TransferData();
|
||||
transferData.data.addDataForFlavour("application/tempus-lehrveranstaltung",paramList);
|
||||
//alert("test");
|
||||
}
|
||||
};
|
||||
|
||||
/***** Drag Observer fuer STPL-Verschiebung *****/
|
||||
var listObserver=
|
||||
{
|
||||
onDragStart: function (evt,transferData,action)
|
||||
{
|
||||
var type=evt.target.getAttribute("stpltype");
|
||||
var dragdatum=evt.target.getAttribute("datum");
|
||||
var pers_uid=evt.target.getAttribute("pers_uid");
|
||||
var idList=evt.target.getAttribute("idList");
|
||||
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("einheit");
|
||||
var old_ort=evt.target.getAttribute("ort");
|
||||
var aktion=evt.target.getAttribute("aktion");
|
||||
aktion+="_set";
|
||||
var paramList="?dragtype="+type+"&dragdatum="+dragdatum+"&pers_uid="+pers_uid+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit+"&old_ort="+old_ort+idList+"&aktion="+aktion;
|
||||
//var transferObjekt=new lehrstunde(type,dragdatum,pers_uid,stg_kz,sem,ver,grp,einheit,old_ort,idList);
|
||||
transferData.data=new TransferData();
|
||||
transferData.data.addDataForFlavour("application/tempus-lehrstunde",paramList);
|
||||
|
||||
var styleOrig=evt.target.getAttribute("styleOrig");
|
||||
evt.target.setAttribute("style",styleOrig+"color:red;font-style:italic;");
|
||||
}
|
||||
};
|
||||
|
||||
/***** Board Observer fuer STPL- und LVA-Verschiebung *****/
|
||||
var boardObserver=
|
||||
{
|
||||
/*canHandleMultipleItems : function()
|
||||
{
|
||||
var canHandleMultipleItems=false;
|
||||
},*/
|
||||
getSupportedFlavours : function ()
|
||||
{
|
||||
var flavours = new FlavourSet();
|
||||
flavours.appendFlavour("application/tempus-lehrveranstaltung");
|
||||
flavours.appendFlavour("application/tempus-lehrstunde");
|
||||
return flavours;
|
||||
},
|
||||
onDragEnter: function (evt,flavour,session)
|
||||
{
|
||||
var styleNow=evt.target.getAttribute("style");
|
||||
if (evt.target.tagName=="label")
|
||||
evt.target.setAttribute("style","background-color:#AAFFAA;");
|
||||
else
|
||||
evt.target.setAttribute("style",styleNow+"border:1px dashed black;");
|
||||
|
||||
},
|
||||
onDragExit: function (evt,flavour,session)
|
||||
{
|
||||
var styleNow=evt.target.getAttribute("style");
|
||||
if (evt.target.tagName=="label")
|
||||
evt.target.setAttribute("style","");
|
||||
else
|
||||
evt.target.setAttribute("style",styleNow+"border:1px solid black;");
|
||||
},
|
||||
onDragOver: function(evt,flavour,session)
|
||||
{
|
||||
// Mehrfachauswahl von Lehrstunden mit CTRL bzw. ALT-Taste
|
||||
if ((evt.ctrlKey || evt.altKey) && flavour.contentType=="application/tempus-lehrstunde" && evt.target.tagName=="button")
|
||||
{
|
||||
var idList=evt.target.getAttribute("idList");
|
||||
var id=evt.target.getAttribute("id");
|
||||
var styleOrig=evt.target.getAttribute("styleOrig");
|
||||
// Ist Element schon vorhanden und an welcher stelle im Array?
|
||||
var gesetzt=null;
|
||||
for (var i=0;i<lehrstunden.length;i++)
|
||||
if (lehrstunden[i].id==id)
|
||||
gesetzt=i;
|
||||
// User will Element anhaengen?
|
||||
if (gesetzt==null && evt.ctrlKey)
|
||||
{
|
||||
var ls=new lehrstunde(id,idList);
|
||||
lehrstunden.push(ls);
|
||||
evt.target.setAttribute("style",styleOrig+"color:red;font-style:italic;");
|
||||
}
|
||||
else
|
||||
// User will Element entfernen?
|
||||
if (gesetzt!=null && evt.altKey)
|
||||
{
|
||||
// Element aus Array loeschen
|
||||
if (gesetzt==0)
|
||||
lehrstunden.shift();
|
||||
else
|
||||
if (gesetzt==lehrstunden.length)
|
||||
lehrstunden.pop();
|
||||
else
|
||||
{
|
||||
var tmpArray=new array();
|
||||
tmpArray.concat(lehrstunden.slice(0,gesetzt-1));
|
||||
tmpArray.concat(lehrstunden.slice(gesetzt+1,lehrstunden.length));
|
||||
lehrstunden=tmpArray;
|
||||
}
|
||||
evt.target.setAttribute("style",styleOrig+"color:black;font-style:normal;");
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
onDrop: function (evt,dropdata,session)
|
||||
{
|
||||
if (dropdata.data!="")
|
||||
{
|
||||
var stplData=document.getElementById('TimeTableWeekData');
|
||||
var datum=stplData.getAttribute("datum");
|
||||
var type=stplData.getAttribute("stpl_type");
|
||||
var stg_kz=stplData.getAttribute("stg_kz");
|
||||
var sem=stplData.getAttribute("sem");
|
||||
var ver=stplData.getAttribute("ver");
|
||||
var grp=stplData.getAttribute("grp");
|
||||
var pers_uid=stplData.getAttribute("pers_uid");
|
||||
var ort=stplData.getAttribute("ort");
|
||||
var einheit=stplData.getAttribute("einheit");
|
||||
|
||||
var stunde=evt.target.getAttribute("stunde");
|
||||
var new_datum=evt.target.getAttribute("datum");
|
||||
if (evt.target.tagName=="label")
|
||||
var new_ort=evt.target.getAttribute("value");
|
||||
else
|
||||
if (dropdata.flavour.contentType=="application/tempus-lehrveranstaltung")
|
||||
var new_ort=ort;
|
||||
|
||||
var url="<?php echo APP_ROOT; ?>content/timetable-week.xul.php";
|
||||
url+=dropdata.data+"&new_stunde="+stunde+"&new_datum="+new_datum;
|
||||
url+="&type="+type+"&datum="+datum+"&ort="+ort+"&pers_uid="+pers_uid;
|
||||
url+="&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit;
|
||||
if (evt.target.tagName=="label" || dropdata.flavour.contentType=="application/tempus-lehrveranstaltung")
|
||||
url+="&new_ort="+new_ort;
|
||||
else
|
||||
url+="&aktion=stpl_move";
|
||||
url+="&mime="+dropdata.flavour.contentType;
|
||||
|
||||
// Mehrfachauswahl anhaengen
|
||||
for (var i=0;i<lehrstunden.length;i++)
|
||||
url+=lehrstunden[i].idList.replace(/&/g,"&x"+i);
|
||||
|
||||
//var BoxTimeTableWeek=document.getElementById('boxTimeTableWeek');
|
||||
//var ScrollX=BoxTimeTableWeek.contentWindow.scrollX;
|
||||
//var ScrollY=BoxTimeTableWeek.contentWindow.scrollY;
|
||||
//alert('X:'+ScrollX+' Y:'+ScrollY);
|
||||
//alert(url);
|
||||
location.href=url;
|
||||
//BoxTimeTableWeek=document.getElementById('boxTimeTableWeek');
|
||||
//BoxTimeTableWeek.scrollTo(ScrollX,ScrollY);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
* To change the template for this generated file go to
|
||||
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||||
*/
|
||||
// header für 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");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
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/einheit.class.php');
|
||||
|
||||
// Datenbank Verbindung
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
|
||||
// Einheiten holen
|
||||
$einheitenDAO=new einheit($conn);
|
||||
$einheiten=$einheitenDAO->getAll();
|
||||
|
||||
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/einheiten';
|
||||
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:EINHEIT="<?php echo $rdf_url; ?>/rdf#"
|
||||
>
|
||||
|
||||
|
||||
<RDF:Seq about="<?php echo $rdf_url ?>/liste">
|
||||
|
||||
<?php
|
||||
foreach ($einheiten as $einheit)
|
||||
{
|
||||
?>
|
||||
<RDF:li>
|
||||
<RDF:Description id="<?php echo $einheit->kurzbz; ?>" about="<?php echo $rdf_url.'/'.$einheit->kurzbz; ?>" >
|
||||
<EINHEIT:kurzbz><?php echo $einheit->kurzbz ?></EINHEIT:kurzbz>
|
||||
<EINHEIT:stg_kz><?php echo $einheit->stg_kz ?></EINHEIT:stg_kz>
|
||||
<EINHEIT:stg_kurzbz><?php echo $einheit->stg_kurzbz ?></EINHEIT:stg_kurzbz>
|
||||
<EINHEIT:bezeichnung><?php echo $einheit->bezeichnung ?></EINHEIT:bezeichnung>
|
||||
<EINHEIT:semester><?php echo $einheit->semester ?></EINHEIT:semester>
|
||||
<EINHEIT:typ><?php echo $einheit->typ ?></EINHEIT:typ>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</RDF:Seq>
|
||||
|
||||
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,160 @@
|
||||
<?php
|
||||
/*
|
||||
* author: Christian Paminger <pam@technikum-wien.at>
|
||||
* date: 2006-04-22
|
||||
*/
|
||||
|
||||
//error_reporting(E_ALL);
|
||||
//ini_set('display_errors','1');
|
||||
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
include_once('../include/fas/functions.inc.php');
|
||||
include_once('../include/fas/person.class.php');
|
||||
include_once('../include/fas/mitarbeiter.class.php');
|
||||
include_once('../include/Excel/PEAR.php');
|
||||
include_once('../include/Excel/BIFFwriter.php');
|
||||
include_once('../include/Excel/Workbook.php');
|
||||
include_once('../include/Excel/Format.php');
|
||||
include_once('../include/Excel/Worksheet.php');
|
||||
include_once('../include/Excel/Parser.php');
|
||||
include_once('../include/Excel/OLE.php');
|
||||
include_once('../include/Excel/PPS.php');
|
||||
include_once('../include/Excel/Root.php');
|
||||
include_once('../include/Excel/File.php');
|
||||
include_once('../include/Excel/Writer.php');
|
||||
|
||||
|
||||
// Datenbank Verbindung
|
||||
if (!$conn = @pg_pconnect(CONN_STRING_FAS))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
//Parameter holen
|
||||
if (isset($_GET['mitarbeiter_id']))
|
||||
$mitarbeiter_id = $_GET['mitarbeiter_id'];
|
||||
else
|
||||
$mitarbeiter_id=null;
|
||||
|
||||
if (isset($_GET['fix']))
|
||||
$fix = $_GET['fix'];
|
||||
else
|
||||
$fix=null;
|
||||
|
||||
if (isset($_GET['stgl']))
|
||||
$stgl = $_GET['stgl'];
|
||||
else
|
||||
$stgl=null;
|
||||
|
||||
if (isset($_GET['fbl']))
|
||||
$fbl = $_GET['fbl'];
|
||||
else
|
||||
$fbl=null;
|
||||
|
||||
if (isset($_GET['aktiv']))
|
||||
$aktiv = $_GET['aktiv'];
|
||||
else
|
||||
$aktiv=null;
|
||||
|
||||
if (isset($_GET['karenziert']))
|
||||
$karenziert = $_GET['karenziert'];
|
||||
else
|
||||
$karenziert=null;
|
||||
|
||||
if (isset($_GET['ausgeschieden']))
|
||||
$ausgeschieden = $_GET['ausgeschieden'];
|
||||
else
|
||||
$ausgeschieden=null;
|
||||
|
||||
if (isset($_GET['zustelladresse']))
|
||||
$zustelladresse = $_GET['zustelladresse'];
|
||||
else
|
||||
$zustelladresse = null;
|
||||
|
||||
//Spalten
|
||||
$anzSpalten=0;
|
||||
$varname='spalte'.(string)$anzSpalten;
|
||||
while (isset($_GET[$varname]))
|
||||
{
|
||||
$spalte[$anzSpalten]=$_GET[$varname];
|
||||
//echo $spalte[$anzSpalten];
|
||||
$anzSpalten++;
|
||||
$varname='spalte'.(string)$anzSpalten;
|
||||
}
|
||||
$zustelladresse=true;
|
||||
|
||||
// Mitarbeiter holen
|
||||
$mitarbeiterDAO=new mitarbeiter($conn);
|
||||
$mitarbeiterDAO->getMitarbeiter($mitarbeiter_id, $fix, $stgl, $fbl, $aktiv, $karenziert, $ausgeschieden, $zustelladresse,getStudiensemesterIdFromName($conn, $benutzer->variable->semester_aktuell));
|
||||
|
||||
/*
|
||||
* Create Excel File with Content from Students Examples solved
|
||||
*/
|
||||
|
||||
// Creating a workbook
|
||||
$workbook = new Spreadsheet_Excel_Writer();
|
||||
|
||||
// sending HTTP headers
|
||||
$workbook->send("Mitarbeiter". "_" . date("d_m_Y") . ".xls");
|
||||
|
||||
// Creating a worksheet
|
||||
$worksheet =& $workbook->addWorksheet("Mitarbeiter");
|
||||
|
||||
$format_bold =& $workbook->addFormat();
|
||||
$format_bold->setBold();
|
||||
|
||||
$format_title =& $workbook->addFormat();
|
||||
$format_title->setBold();
|
||||
// $format_title->setColor('yellow');
|
||||
// $format_title->setPattern(1);
|
||||
// $format_title->setFgColor('blue');
|
||||
// let's merge
|
||||
$format_title->setAlign('merge');
|
||||
|
||||
for ($i=0;$i<$anzSpalten;$i++)
|
||||
$worksheet->write(0,$i,strtoupper(str_replace('_bezeichnung','',$spalte[$i])), $format_bold);
|
||||
$worksheet->write(0,$i,"STRASSE", $format_bold);
|
||||
$worksheet->write(0,$i+1,"PLZ", $format_bold);
|
||||
$worksheet->write(0,$i+2,"ORT", $format_bold);
|
||||
|
||||
// set width of columns
|
||||
|
||||
//$worksheet->setColumn(1,4,20); // ersten 3 Spalten auf width=17
|
||||
//$worksheet->setColumn(0,0,22);
|
||||
|
||||
$j=1;
|
||||
$maxlength = array();
|
||||
for ($i=0;$i<$anzSpalten;$i++)
|
||||
$maxlength[$i]=strlen(str_replace('_bezeichnung','',$spalte[$i]));
|
||||
$maxlength[$i]=strlen('STRASSE');
|
||||
$maxlength[$i+1]=strlen('PLZ');
|
||||
$maxlength[$i+2]=strlen('ORT');
|
||||
|
||||
foreach ($mitarbeiterDAO->result as $mitarbeiter)
|
||||
{
|
||||
for ($i=0;$i<$anzSpalten;$i++)
|
||||
{
|
||||
if(strlen($mitarbeiter->$spalte[$i])>$maxlength[$i])
|
||||
$maxlength[$i] = strlen($mitarbeiter->$spalte[$i]);
|
||||
$worksheet->write($j,$i, utf8_decode($mitarbeiter->$spalte[$i]));
|
||||
}
|
||||
if(strlen($mitarbeiter->zustelladresse_strasse)>$maxlength[$i])
|
||||
$maxlength[$i]=strlen($mitarbeiter->zustelladresse_strasse);
|
||||
$worksheet->write($j,$i, utf8_decode($mitarbeiter->zustelladresse_strasse));
|
||||
if(strlen($mitarbeiter->zustelladresse_plz)>$maxlength[$i+1])
|
||||
$maxlength[$i+1]=strlen($mitarbeiter->zustelladresse_plz);
|
||||
$worksheet->write($j,$i+1, utf8_decode($mitarbeiter->zustelladresse_plz));
|
||||
if(strlen($mitarbeiter->zustelladresse_ort)>$maxlength[$i+2])
|
||||
$maxlength[$i+2]=strlen($mitarbeiter->zustelladresse_ort);
|
||||
$worksheet->write($j,$i+2, utf8_decode($mitarbeiter->zustelladresse_ort));
|
||||
$j++;
|
||||
}
|
||||
|
||||
for ($i=0;$i<$anzSpalten;$i++)
|
||||
$worksheet->setColumn($i, $i, $maxlength[$i]+2);
|
||||
$worksheet->setColumn($i, $i, $maxlength[$i]+2);
|
||||
$worksheet->setColumn($i+1, $i+1, $maxlength[$i+1]+2);
|
||||
$worksheet->setColumn($i+2, $i+2, $maxlength[$i+2]+2);
|
||||
|
||||
$workbook->close();
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
* To change the template for this generated file go to
|
||||
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||||
*/
|
||||
// header für 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");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
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');
|
||||
|
||||
// Datenbank Verbindung
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
|
||||
// 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']; */
|
||||
|
||||
// fachbereiche holen
|
||||
$fachbereichDAO=new fachbereich($conn);
|
||||
$fachbereiche=$fachbereichDAO->getAll();
|
||||
|
||||
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/fachbereich';
|
||||
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:FACHBEREICH="<?php echo $rdf_url; ?>/rdf#"
|
||||
>
|
||||
|
||||
<RDF:Seq about="<?php echo $rdf_url ?>/liste">
|
||||
|
||||
<?php
|
||||
if (is_array($fachbereiche)) {
|
||||
|
||||
foreach ($fachbereiche as $fb)
|
||||
{
|
||||
?>
|
||||
<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>
|
||||
</RDF:li>
|
||||
<?php
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
</RDF:Seq>
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,144 @@
|
||||
<?php
|
||||
include("../vilesci/config.inc.php");
|
||||
?>
|
||||
|
||||
/**
|
||||
* Wenn einer der Tabs angeklickt wird wird der zugehoerige Tab
|
||||
* im anderen Overlay auch geaendert
|
||||
*/
|
||||
function tabchange(select)
|
||||
{
|
||||
if(select=='lehreinheiten') //Auswahl des Lehreinheiten Tabs
|
||||
{
|
||||
document.getElementById('tab-mitarbeiter').selected=false;
|
||||
document.getElementById('tab-mitarbeiter1').selected=false;
|
||||
document.getElementById('tab-lehreinheiten').selected=true;
|
||||
document.getElementById('tab-verband').selected=true;
|
||||
document.getElementById('tabpanels-main').selectedIndex=1;
|
||||
document.getElementById('tabpanels-left').selectedIndex=1;
|
||||
|
||||
}
|
||||
else if(select=='mitarbeiter') //Auswahl des Mitarbeiter Tabs
|
||||
{
|
||||
document.getElementById('tab-lehreinheiten').selected=false;
|
||||
document.getElementById('tab-verband').selected=false;
|
||||
document.getElementById('tab-mitarbeiter').selected=true;
|
||||
document.getElementById('tab-mitarbeiter1').selected=true;
|
||||
document.getElementById('tabpanels-main').selectedIndex=0;
|
||||
document.getElementById('tabpanels-left').selectedIndex=0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Beim schliessen des Fensters wird ueberprueft ob Daten geaendert und noch
|
||||
* nicht gespeichert wurden.
|
||||
*/
|
||||
function closeWindow()
|
||||
{
|
||||
//Wenn Daten geaendert wurden
|
||||
if(treeMitarbeiterDetailChanged)
|
||||
{
|
||||
if(confirm("Wollen Sie die geänderten Daten speichern?"))
|
||||
if(!saveMitarbeiter())
|
||||
{
|
||||
//Falls beim Speichern ein Fehler auftritt bleibt das Fenster offen!
|
||||
return false;
|
||||
}
|
||||
else
|
||||
window.close();
|
||||
else
|
||||
window.close();
|
||||
}
|
||||
else
|
||||
window.close();
|
||||
}
|
||||
|
||||
/**
|
||||
* Wenn das Fenster Fertig geladen ist
|
||||
*/
|
||||
function onLoad()
|
||||
{
|
||||
//rebuild Listener setzen
|
||||
document.getElementById('tree-liste-mitarbeiter').builder.addListener(treemenurebuildobserve);
|
||||
|
||||
//Eingabefelder deaktivieren
|
||||
SetMitarbeiterDetailAktiv(false);
|
||||
|
||||
//studiengangsleiter als Default setzen
|
||||
document.getElementById('tree-menu-mitarbeiter1').view.selection.select(6);
|
||||
}
|
||||
|
||||
/**
|
||||
* Aenderung des Studiensemesters
|
||||
*/
|
||||
function studiensemesterChange()
|
||||
{
|
||||
var items = document.getElementsByTagName('menuitem');
|
||||
var stsem='';
|
||||
//Markiertes Studiensemester holen
|
||||
for(i in items)
|
||||
{
|
||||
if(items[i].id=='menu-properies-studiensemester-name' && items[i].getAttribute("checked")=='true')
|
||||
stsem = items[i].label;
|
||||
}
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
var url = "<?php echo APP_ROOT; ?>rdf/fas/db_dml.rdf.php";
|
||||
|
||||
httpRequest.open("POST", url, false, '','');
|
||||
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
var param = "type=variablechange";
|
||||
param = param + "&stsem="+stsem;
|
||||
|
||||
//Parameter schicken
|
||||
httpRequest.send(param);
|
||||
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status);
|
||||
return false;
|
||||
break;
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Returnwerte aus RDF abfragen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/dbdml');
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/dbdml/0");
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/dbdml/rdf";
|
||||
|
||||
var dbdml_return = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
var dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
|
||||
|
||||
if(dbdml_return=='true')
|
||||
{
|
||||
//Statusbar setzen
|
||||
setStatusBarText("Studiensemester erfolgreich geändert");
|
||||
document.getElementById("tree-liste-funktionen").builder.refresh();
|
||||
document.getElementById("statusbarpanel-semester").label = stsem;
|
||||
MitarbeiterDetailStudiensemester_id = dbdml_errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Fehler beim Speichern der Daten: "+dbdml_errormsg);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
<?php
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
include('../vilesci/config.inc.php');
|
||||
include('../include/functions.inc.php');
|
||||
include('../include/fas/benutzer.class.php');
|
||||
|
||||
// Testumgebung
|
||||
//if (!isset($REMOTE_USER))
|
||||
// $REMOTE_USER='pam';
|
||||
//$uid=$REMOTE_USER;
|
||||
$user = get_uid();
|
||||
|
||||
$error_msg='';
|
||||
|
||||
//Variablen laden
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
$benutzer = new benutzer($conn);
|
||||
if(!$benutzer->loadVariables($user))
|
||||
$error_msg = $benutzer->errormsg;
|
||||
|
||||
|
||||
/*echo '<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>';*/
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/fas.css" type="text/css"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/fasoverlay.xul.php"?>';
|
||||
?>
|
||||
|
||||
<!DOCTYPE window >
|
||||
|
||||
<window
|
||||
id="fas"
|
||||
title="FAS-Online Version 0.4 vom 07. November 2006"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
orient="vertical"
|
||||
width="800"
|
||||
height="600"
|
||||
persist="screenX screenY width height sizemode"
|
||||
onload="onLoad()" onclose="return closeWindow()"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fas.js.php" />
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
|
||||
<!--
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/DragAndDrop.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/dragboard.js"/>
|
||||
-->
|
||||
|
||||
<commandset id="maincommands">
|
||||
<command id="menu-file-close:command" oncommand="closeWindow();"/>
|
||||
<command id="menu-properties-studiensemester:command" oncommand="studiensemesterChange();"/>
|
||||
</commandset>
|
||||
|
||||
<keyset id="mainkeys">
|
||||
<key
|
||||
id = "menu-file-close:key"
|
||||
key = "D"
|
||||
observes = "menu-file-close:command"
|
||||
modifiers = "accel" />
|
||||
</keyset>
|
||||
|
||||
<toolbox id="main-toolbox">
|
||||
<menubar id="menu">
|
||||
<menu id="menu-file" label="Datei" accesskey="D">
|
||||
<menupopup id="menu-file-popup">
|
||||
<menuitem
|
||||
id = "menu-file-close"
|
||||
key = "menu-file-close:key"
|
||||
label = "Beenden"
|
||||
command = "menu-file-close:command"
|
||||
accesskey = "B"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu-properties" label="Einstellungen" accesskey="E">
|
||||
<menupopup id="menu-properties-popup">
|
||||
<menu
|
||||
id = "menu-properies-studiensemester"
|
||||
label = "Studiensemester">
|
||||
<menupopup id="menu-properties-popup">
|
||||
<?php
|
||||
$stsem_arr = $benutzer->getpossibilities('semester_aktuell');
|
||||
foreach ($stsem_arr as $stsem)
|
||||
{
|
||||
echo "
|
||||
<menuitem
|
||||
id = 'menu-properies-studiensemester-name'
|
||||
label = '$stsem'
|
||||
type = 'radio'
|
||||
command = 'menu-properties-studiensemester:command'
|
||||
checked = ".($benutzer->variable->semester_aktuell==$stsem?"'true' ":"'false'")." />";
|
||||
}
|
||||
?>
|
||||
|
||||
</menupopup>
|
||||
</menu>
|
||||
|
||||
</menupopup>
|
||||
</menu>
|
||||
<!-- <menu id="menu-prefs" label="&menu-prefs:label;" accesskey="&menu-prefs:accesskey;">
|
||||
<menupopup id="menu-prefs-popup">
|
||||
<menu id="menu-prefs-stpltable" label="&menu-prefs-stpltable:label;" accesskey="&menu-prefs-stpltable:accesskey;">
|
||||
<menupopup id="menu-prefs-stpltable-popup">
|
||||
<menuitem
|
||||
id ="menu-prefs-stpltable-stundenplan"
|
||||
type ="radio"
|
||||
key ="menu-prefs-stpltable-stundenplan:key"
|
||||
label ="&menu-prefs-stpltable-stundenplan:label;"
|
||||
command ="menu-prefs-stpltable-stundenplan:command"
|
||||
accesskey ="&menu-prefs-stpltable-stundenplan:accesskey;"/>
|
||||
<menuitem
|
||||
id ="menu-prefs-stpltable-stundenplandev"
|
||||
type ="radio"
|
||||
key ="menu-prefs-stpltable-stundenplandev:key"
|
||||
label ="&menu-prefs-stpltable-stundenplandev:label;"
|
||||
command ="menu-prefs-stpltable-stundenplandev:command"
|
||||
accesskey ="&menu-prefs-stpltable-stundenplandev:accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu-help" label="&menu-help:label;" accesskey="&menu-help:accesskey;">
|
||||
<menupopup id="menu-about-popup">
|
||||
<menuitem
|
||||
id = "menu-help-close"
|
||||
key = "menu-help-close:key"
|
||||
label = "&menu-help-close:label;"
|
||||
command = "menu-help-close:command"
|
||||
accesskey = "&menu-help-close:accesskey;"/>
|
||||
</menupopup>
|
||||
</menu> -->
|
||||
</menubar>
|
||||
</toolbox>
|
||||
|
||||
<hbox flex="1">
|
||||
<tabbox id="tabbox-left" orient="vertical" flex="1">
|
||||
<tabs orient="horizontal">
|
||||
|
||||
<tab id="tab-mitarbeiter1" label="Mitarbeiter" oncommand="tabchange('mitarbeiter');"/>
|
||||
<tab id="tab-verband" label="Verband" oncommand="tabchange('lehreinheiten');"/>
|
||||
<tab id="tab-ort" label="Ort" />
|
||||
<!--<tab id="tab-lektor" label="Lektor" />-->
|
||||
</tabs>
|
||||
<tabpanels id="tabpanels-left" flex="1" >
|
||||
<tree id="tree-menu-mitarbeiter1" />
|
||||
<tree id="tree-verband" />
|
||||
|
||||
<!--<tree id="tree-ort" />
|
||||
<tree id="tree-lektor" />-->
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
<splitter collapse="before" persist="state">
|
||||
<grippy />
|
||||
</splitter>
|
||||
<vbox id="vbox-main" flex="15" />
|
||||
</hbox>
|
||||
|
||||
<statusbar id="status-bar" persist="collapsed">
|
||||
<statusbarpanel class="statusbarpanel-iconic" id="logo-icon" />
|
||||
<statusbarpanel id="statusbarpanel-semester" label="<?php echo $benutzer->variable->semester_aktuell; ?>"/>
|
||||
<statusbarpanel id="statusbarpanel-db_table" label="<?php echo substr(CONN_STRING_FAS,strpos(CONN_STRING_FAS,'dbname=')+7,strpos(CONN_STRING_FAS,'user=')-strpos(CONN_STRING_FAS,'dbname=')-7); ?>"/>
|
||||
<statusbarpanel id="statusbarpanel-user" label="<?php echo $user; ?>"/>
|
||||
<statusbarpanel id="statusbarpanel-text" label="<?php echo htmlspecialchars($error_msg); ?>" flex="4" crop="right" />
|
||||
<statusbarpanel class="statusbarpanel-iconic" id="example-status" flex="1" />
|
||||
<statusbarpanel id="statusbarpanel-progressmeter" hidden='true'>
|
||||
<progressmeter id="identifier" mode="undetermined"/>
|
||||
</statusbarpanel>
|
||||
</statusbar>
|
||||
</window>
|
||||
@@ -0,0 +1,231 @@
|
||||
<?php
|
||||
/**
|
||||
* Erstellt ein XML File fuer die BIS-Meldung
|
||||
* Personal
|
||||
*/
|
||||
include('../vilesci/config.inc.php');
|
||||
header("content-type text/xml");
|
||||
if(!$conn=pg_connect(CONN_STRING_FAS))
|
||||
die("Connection Problem");
|
||||
$error='<table><tr><th>Vorname</th><th>Nachname</th><th>PersNr</th><th>Fehlermeldung</th></tr>';
|
||||
$funktionen='';
|
||||
$stgleitung='';
|
||||
$myausmass='<table><tr><th>Vorname</th><th>Nachname</th><th>Ausmass</th></tr>';
|
||||
$stsem1=9;
|
||||
$stsem2=8;
|
||||
$jahr='2005-09-01';
|
||||
$stsemwhere = "(funktion.studiensemester_fk=$stsem1 OR funktion.studiensemester_fk=$stsem2)";
|
||||
if(isset($_GET['printerror']) && $_GET['printerror']=='false')
|
||||
$printerror=false;
|
||||
else
|
||||
$printerror=true;
|
||||
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
|
||||
?>
|
||||
<Erhalter>
|
||||
<ErhKz>005</ErhKz>
|
||||
<MeldeDatum>1511<?php echo date('Y');?></MeldeDatum>
|
||||
<PersonalMeldung>
|
||||
<?php
|
||||
//$qry = "Select mitarbeiter_pk, vorname, familienname, persnr, gebdat, geschlecht, ausbildung, habilitation,funktion.besonderequalifikation, funktion.beschart1, funktion.beschart2, funktion.ausmass, funktion.verwendung,(select kennzahl from studiengang where studiengang_pk=studiengang_fk) as kennzahl, funktion.sws, funktion.hauptberuflich, funktion.hauptberuf, funktion.entwicklungsteam, funktion.funktion, (Select kennzahl from studiengang where studiengang_pk=funktion.studiengang_fk) as stgkz from person, mitarbeiter, funktion where person_pk=person_fk and mitarbeiter_pk=mitarbeiter_fk AND (studiensemester_fk=9 OR studiensemester_fk=8) AND ausgeschieden='N' and familienname!='Dummy' order by persnr ASC, beschart1 DESC";
|
||||
//$qry = "Select * from vw_bis_personal";
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';SELECT distinct person_pk, mitarbeiter_pk, persnr, vorname, familienname, gebdat, geschlecht, ausbildung, habilitation FROM person, funktion, mitarbeiter where bismelden='J' AND person.person_pk=mitarbeiter.person_fk AND mitarbeiter.mitarbeiter_pk=funktion.mitarbeiter_fk AND $stsemwhere AND familienname!='Dummy' AND (beendigungsdatum>'$jahr' OR beendigungsdatum is null) ORDER BY persnr ASC";
|
||||
if(!$result=pg_query($conn,$qry))
|
||||
die("Fehler beim auslesen der Datenbank".$qry);
|
||||
$aktpers=0;
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
//Neue Person
|
||||
//Verwendungsblock hinausschreiben
|
||||
$aktpers=$row->persnr;
|
||||
$funktionen='';
|
||||
$stgleitung='';
|
||||
echo " <Person>\n";
|
||||
echo " <PersonalNummer>".sprintf("%015d",$row->persnr)."</PersonalNummer>\n";
|
||||
//Geburtsdatum
|
||||
list($y,$m,$d) = explode("-",$row->gebdat);
|
||||
if(date('Y')-$y<10)
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Person muss aelter als 10 Jahre sein</td></tr>';
|
||||
echo " <GeburtsDatum>".$d.$m.$y."</GeburtsDatum>\n";
|
||||
//Geschlecht
|
||||
if(!in_array($row->geschlecht,array('M','m','W','w')))
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Geschlecht ist ungueltig</td></tr>';
|
||||
echo " <Geschlecht>".$row->geschlecht."</Geschlecht>\n";
|
||||
//Hoechste abgeschlossene Ausbildung
|
||||
if(!in_array($row->ausbildung,array(1,2,3,4,5,6,7,8,9,10,11)))
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>HoechsteAbgeschlosseneAusbildung ist ungueltig</td></tr>';
|
||||
echo " <HoechsteAbgeschlosseneAusbildung>".$row->ausbildung."</HoechsteAbgeschlosseneAusbildung>\n";
|
||||
//Habilitation
|
||||
if(!in_array($row->habilitation,array('J','j','N','n')))
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Habilitation ist ungueltig</td></tr>';
|
||||
echo " <Habilitation>".$row->habilitation."</Habilitation>\n";
|
||||
|
||||
//VERWENDUNG
|
||||
echo " <Verwendung>\n";
|
||||
|
||||
//Beschaeftigungsart1
|
||||
$qry1 = "Select beschart1 from funktion where mitarbeiter_fk='$row->mitarbeiter_pk' and beschart1 in(1,2,3,4,5,6) AND $stsemwhere";
|
||||
if(!$result1 = pg_query($conn,$qry1))
|
||||
$error.= "<br>qry failed: $qry1";
|
||||
else
|
||||
if(!$row1 = pg_fetch_object($result1))
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>BeschaeftigungsArt1 ist ungueltig</td></tr>';
|
||||
else
|
||||
$beschart1 = $row1->beschart1;
|
||||
|
||||
echo " <BeschaeftigungsArt1>".$beschart1."</BeschaeftigungsArt1>\n";
|
||||
|
||||
//Beschaeftingungsart2
|
||||
$qry1 = "Select beschart2 from funktion where mitarbeiter_fk='$row->mitarbeiter_pk' and beschart2 in(1,2) AND $stsemwhere";
|
||||
if(!$result1 = pg_query($conn,$qry1))
|
||||
$error.= "<tr><td>qry failed: $qry1</td></tr>";
|
||||
else
|
||||
if(!$row1 = pg_fetch_object($result1))
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>BeschaeftigungsArt2 ist ungueltig</td></tr>';
|
||||
else
|
||||
$beschart2 = $row1->beschart2;
|
||||
|
||||
echo " <BeschaeftigungsArt2>".$beschart2."</BeschaeftigungsArt2>\n";
|
||||
|
||||
//Beschaeftigungsausmass
|
||||
$qry1 = "Select ausmass from funktion where mitarbeiter_fk='$row->mitarbeiter_pk' and ausmass in(1,2,3,4,5) AND $stsemwhere";
|
||||
if(!$result1 = pg_query($conn,$qry1))
|
||||
$error.= "<br>qry failed: $qry1";
|
||||
else
|
||||
if(!$row1 = pg_fetch_object($result1))
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Ausmass ist ungueltig</td></tr>';
|
||||
else
|
||||
$ausmass = $row1->ausmass;
|
||||
|
||||
echo " <BeschaeftigungsAusmass>".$ausmass."</BeschaeftigungsAusmass>\n";
|
||||
$myausmass .= "<tr><td>$row->vorname</td><td>$row->familienname</td><td>$ausmass</td></tr>";
|
||||
//Verwendung
|
||||
$qry1 = "Select verwendung from funktion where mitarbeiter_fk='$row->mitarbeiter_pk' and verwendung in(1,2,3,4,5,6,7,8,9) AND $stsemwhere";
|
||||
if(!$result1 = pg_query($conn,$qry1))
|
||||
$error.= "<tr><td>qry failed: $qry1</td></tr>";
|
||||
else
|
||||
if(!$row1 = pg_fetch_object($result1))
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Verwendung ist ungueltig</td></tr>';
|
||||
else
|
||||
$verwendung = $row1->verwendung;
|
||||
|
||||
echo " <VerwendungsCode>".$verwendung."</VerwendungsCode>\n";
|
||||
|
||||
//Hauptberuflich / Hauptberuf
|
||||
$qry1 = "Select hauptberuflich, hauptberuf from funktion where mitarbeiter_fk = '$row->mitarbeiter_pk' and hauptberuflich!='' AND $stsemwhere";
|
||||
if(!$result1=pg_query($conn,$qry1))
|
||||
$error.= "<tr><td>qry failed: $qry1</td></tr>";
|
||||
else
|
||||
if(!$row1 = pg_fetch_object($result1))
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>hauptberuflich/hauptberuf ist ungueltig</td></tr>';
|
||||
else
|
||||
{
|
||||
$hauptberuf = $row1->hauptberuf;
|
||||
$hauptberuflich = $row1->hauptberuflich;
|
||||
}
|
||||
|
||||
if(($hauptberuflich=='N' || $hauptberuflich=='n') && !in_array($hauptberuf, array(0,1,2,3,4,5,6,7,8,9,10,11,12)))
|
||||
{
|
||||
$qry1 = "Select hauptberuf from funktion where mitarbeiter_fk = '$row->mitarbeiter_pk' and hauptberuf in (0,1,2,3,4,5,6,7,8,9,10,11,12) AND $stsemwhere AND hauptberuf is not null limit 1";
|
||||
if(!$result1 = pg_query($conn,$qry1))
|
||||
$error.="<tr><td>qry failed: $qry1</td></tr>";
|
||||
else
|
||||
if(!$row1=pg_fetch_object($result1))
|
||||
$error.='<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>hauptberuf ist ungueltig</td></tr>';
|
||||
else
|
||||
$hauptberuf = $row1->hauptberuf;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//Studiengangsleiter Funktionen zusammenbauen
|
||||
$qry1 = "Select distinct kennzahl FROM studiengang where studiengang_pk in(Select studiengang_fk from funktion where funktion.funktion=5 AND $stsemwhere AND mitarbeiter_fk='$row->mitarbeiter_pk')";
|
||||
if(!$result1 = pg_query($conn,$qry1))
|
||||
$error.= "<tr><td>qry failed: $qry1</td></tr>";
|
||||
while($row1 = pg_fetch_object($result1))
|
||||
{
|
||||
$x = sprintf("%04d",$row1->kennzahl);
|
||||
$stgleitung.=" <StgLeitung>\n";
|
||||
$stgleitung.=" <StgKz>".$x."</StgKz>\n";
|
||||
$stgleitung.=" </StgLeitung>\n";
|
||||
}
|
||||
|
||||
|
||||
//FUNKTIONEN
|
||||
$qry1 = "SELECT studiengang_pk, kennzahl, entwicklungsteam, besonderequalifikation FROM funktion, studiengang WHERE mitarbeiter_fk='$row->mitarbeiter_pk' AND $stsemwhere AND studiengang_fk=studiengang_pk";
|
||||
|
||||
if($result1 = pg_query($conn,$qry1))
|
||||
{
|
||||
$stg = array();
|
||||
while($row1 = pg_fetch_object($result1))
|
||||
{
|
||||
//Wenn noch kein Funktionseintrag fuer diesen Studiengang vorhanden ist
|
||||
if(!in_array($row1->studiengang_pk,$stg))
|
||||
{
|
||||
$stg[] = $row1->studiengang_pk;
|
||||
$funktion='';
|
||||
$valid=true;
|
||||
$x = sprintf("%04d",$row1->kennzahl);
|
||||
$funktion.= " <Funktion>\n";
|
||||
$funktion.= " <StgKz>".$x."</StgKz>\n";
|
||||
|
||||
//$qry2 = "Select sum(sws) as sws from lehreinheit, mitarbeiterlehreinheit where lehreinheit_pk = lehreinheit_fk and (lehreinheit.studiensemester_fk=$stsem1 or lehreinheit.studiensemester_fk=$stsem2) and mitarbeiter_fk='$row->mitarbeiter_pk'";
|
||||
$qry2 = "Select sum(semesterwochenstunden) as sws from lehreinheit, mitarbeiter_lehreinheit where studiengang_fk='$row1->studiengang_pk' AND lehreinheit_pk = mitarbeiter_lehreinheit.lehreinheit_fk and (lehreinheit.studiensemester_fk=$stsem1 or lehreinheit.studiensemester_fk=$stsem2) and mitarbeiter_fk='$row->mitarbeiter_pk'";
|
||||
if(!$row2 = pg_fetch_object(pg_query($conn,$qry2)))
|
||||
$error.="<br>qry failed: $qry2";
|
||||
|
||||
//Semesterwochenstunden
|
||||
if($row2->sws > 80 || $row2->sws < 0)
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>SWS ist ungueltig:'.$row2->sws.'</td></tr>';
|
||||
if($row2->sws==0)
|
||||
$valid=false;
|
||||
$funktion.= " <SWS>".sprintf("%.2f",$row2->sws)."</SWS>\n";
|
||||
//Hauptberuflich
|
||||
if(!in_array($hauptberuflich,array('j','J','n','N')))
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Hauptberuflich ist ungueltig</td></tr>';
|
||||
$funktion.= " <Hauptberuflich>".$hauptberuflich."</Hauptberuflich>\n";
|
||||
//Hauptberuf
|
||||
if($hauptberuflich=='n' || $hauptberuflich=='N')
|
||||
{
|
||||
if(!in_array($hauptberuf, array(0,1,2,3,4,5,6,7,8,9,10,11,12)))
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.' HauptberufCode ist ungueltig</td></tr>';
|
||||
$funktion.= " <HauptberufCode>".$hauptberuf."</HauptberufCode>\n";
|
||||
}
|
||||
//Mitglied im Entwicklungsteam
|
||||
if(!in_array($row1->entwicklungsteam, array('J','j','n','N')))
|
||||
$funktion.= " <Entwicklungsteam>N</Entwicklungsteam>\n";
|
||||
else
|
||||
$funktion.= " <Entwicklungsteam>".$row1->entwicklungsteam."</Entwicklungsteam>\n";
|
||||
|
||||
//Besondere Qualifikation
|
||||
if($row1->entwicklungsteam=='J' || $row1->entwicklungsteam=='j')
|
||||
{
|
||||
if(!in_array($row1->besonderequalifikation,array(0,1,2,3)))
|
||||
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>BesondereQualifikationCode ist ungueltig</td></tr>';
|
||||
$funktion.= " <BesondereQualifikationCode>".$row1->besonderequalifikation."</BesondereQualifikationCode>\n";
|
||||
}
|
||||
$funktion.= " </Funktion>\n";
|
||||
if($valid)
|
||||
$funktionen .= $funktion;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
$error.="<tr><td>qry failed: $qry1</td></tr>";
|
||||
|
||||
if($aktpers!=0) //Ende einer Person erreicht
|
||||
{
|
||||
echo $stgleitung;
|
||||
echo $funktionen;
|
||||
echo " </Verwendung>\n";
|
||||
echo " </Person>\n";
|
||||
}
|
||||
}
|
||||
|
||||
if($printerror)
|
||||
{
|
||||
echo $error.'</table>';
|
||||
echo $myausmass.'</table>';
|
||||
}
|
||||
?>
|
||||
</PersonalMeldung>
|
||||
</Erhalter>
|
||||
@@ -0,0 +1,300 @@
|
||||
<?php
|
||||
include('../vilesci/config.inc.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/fas/functions.inc.php');
|
||||
require_once('../include/fas/benutzer.class.php');
|
||||
|
||||
// Datenbank Verbindung
|
||||
if (!$conn = @pg_pconnect(CONN_STRING_FAS))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
if (!$conn_vilesci = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
//Studiensemester_id holen
|
||||
$benutzer = new benutzer($conn_vilesci);
|
||||
$benutzer->loadVariables($user);
|
||||
$stsem = $benutzer->variable->semester_aktuell;
|
||||
$stsem_id = getStudiensemesterIdFromName($conn, $stsem);
|
||||
|
||||
echo "var studiensemester_id=".$stsem_id.";";
|
||||
?>
|
||||
var sink;
|
||||
var MenuMitarbeiterAuswahl=0;
|
||||
var treemenuobservedata='';
|
||||
/**
|
||||
* Observer der aufgerufen wird wenn Refresh des Funktionen-Trees
|
||||
* fertig ausgefuehrt wurde.
|
||||
*/
|
||||
var treefunktionenobserve = {
|
||||
onBeginLoad: function(aSink)
|
||||
{
|
||||
/* Statusbar setzen */
|
||||
setStatusBarText('Loading ...');
|
||||
/* Progressmeter anzeigen */
|
||||
document.getElementById('statusbarpanel-progressmeter').hidden=false;
|
||||
},
|
||||
onInterrupt: function(aSink) { },
|
||||
onResume: function(aSink) { },
|
||||
onEndLoad: function(aSink)
|
||||
{
|
||||
//debug('onEndLoad Funktionen');
|
||||
/* Statusbar leeren */
|
||||
setStatusBarText('');
|
||||
|
||||
/* Progressmeter verstecken */
|
||||
document.getElementById('statusbarpanel-progressmeter').hidden=true;
|
||||
|
||||
/* Mitarbeiter Value Changed zuruecksetzen und Speichern Button deaktivieren */
|
||||
// MitarbeiterDetailRestore();
|
||||
//debug('Starting Rebuild');
|
||||
document.getElementById('tree-liste-funktionen').builder.rebuild();
|
||||
|
||||
},
|
||||
onError: function(aSink, aStatus, aErrorMsg)
|
||||
{
|
||||
alert('Bei der Datenuebertragung ist ein Fehler Aufgetreten. Bitte Versuchen Sie es erneut.');
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Observer der aufgerufen wird wenn Refresh des Mitarbeiter-Trees
|
||||
* fertig ausgefuehrt wurde.
|
||||
*/
|
||||
var treemenuobserve = {
|
||||
onBeginLoad: function(aSink)
|
||||
{
|
||||
/* Statusbar setzen */
|
||||
setStatusBarText('Loading ...');
|
||||
/* Progressmeter anzeigen */
|
||||
document.getElementById('statusbarpanel-progressmeter').hidden=false;
|
||||
},
|
||||
onInterrupt: function(aSink) { },
|
||||
onResume: function(aSink) { },
|
||||
onEndLoad: function(aSink)
|
||||
{
|
||||
//debug('onEndLoad');
|
||||
/* Statusbar leeren */
|
||||
setStatusBarText('');
|
||||
|
||||
/* Progressmeter verstecken */
|
||||
document.getElementById('statusbarpanel-progressmeter').hidden=true;
|
||||
|
||||
/* Mitarbeiter Value Changed zuruecksetzen und Speichern Button deaktivieren */
|
||||
MitarbeiterDetailRestore();
|
||||
|
||||
document.getElementById('tree-liste-mitarbeiter').builder.rebuild();
|
||||
},
|
||||
onError: function(aSink, aStatus, aErrorMsg)
|
||||
{
|
||||
alert('Bei der Datenuebertragung ist ein Fehler Aufgetreten. Bitte Versuchen Sie es erneut.');
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Observer der aufgerufen wird wenn Rebuild fertig abgearbeitet wurde
|
||||
* (Funktioniert mit Moz 1.7.13 nicht richtig -> Seamonkey 1.0.2 funktioniert)
|
||||
*/
|
||||
var treemenurebuildobserve = {
|
||||
willRebuild: function(aSink) { },
|
||||
didRebuild: function(aSink)
|
||||
{
|
||||
//debug('didRebuild:'+treemenuobservedata);
|
||||
//wenn treemenuobservedata = refresheintragmerken dann wird der Mitarbeiter wieder markiert
|
||||
if(treemenuobservedata=='refresheintragmerken')
|
||||
MitarbeiterSelectMitarbeiter();
|
||||
treemenuobservedata='';
|
||||
treeMitarbeiterReload=true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt eine Message auf die Javascript Console aus
|
||||
*/
|
||||
function debug(msg)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var consoleService = Components.classes["@mozilla.org/consoleservice;1"]
|
||||
.getService(Components.interfaces.nsIConsoleService);
|
||||
consoleService.logStringMessage(msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Beim Auswaehlen eines Mitarbeiter-Filters werden die Mitarbeiter
|
||||
* die diesem Filter entsprechen geladen
|
||||
*/
|
||||
function onMenuMitarbeiterSelect(id)
|
||||
{
|
||||
//Falls Daten geaendert wurden aber noch nicht gespeichert
|
||||
if(treeMitarbeiterDetailChanged)
|
||||
{
|
||||
if(confirm("Wollen Sie die geänderten Daten speichern?"))
|
||||
saveMitarbeiter();
|
||||
else
|
||||
treeMitarbeiterDetailChanged=false;
|
||||
}
|
||||
|
||||
var tree=document.getElementById(id);
|
||||
var content=document.getElementById('tree-liste-mitarbeiter');
|
||||
var col = tree.columns ? tree.columns["tree-menu-mitarbeiter-col-filter"] : "tree-menu-mitarbeiter-col-filter";
|
||||
var filter=tree.view.getCellText(tree.currentIndex,col);
|
||||
var url = "<?php echo APP_ROOT; ?>rdf/fas/mitarbeiter.rdf.php";
|
||||
var attributes="?type=unknown&leerzeichencodierung=true";
|
||||
|
||||
if(filter=="")
|
||||
filter="Studiengangsleiter";
|
||||
|
||||
if (filter=="Studiengangsleiter")
|
||||
{
|
||||
attributes+="&stgl=true";
|
||||
MenuMitarbeiterAuswahl=0;
|
||||
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=true;
|
||||
}
|
||||
if (filter=="Fachbereichsleiter")
|
||||
{
|
||||
attributes+="&fbl=true";
|
||||
MenuMitarbeiterAuswahl=1;
|
||||
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=true;
|
||||
}
|
||||
if (filter=="Alle")
|
||||
{
|
||||
attributes+="&alle=true";
|
||||
MenuMitarbeiterAuswahl=2;
|
||||
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=false;
|
||||
}
|
||||
if (filter=="Aktive")
|
||||
{
|
||||
attributes+="&aktiv=true";
|
||||
MenuMitarbeiterAuswahl=3;
|
||||
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=false;
|
||||
}
|
||||
if (filter=="FixAngestellte")
|
||||
{
|
||||
attributes+="&fix=true&aktiv=true";
|
||||
MenuMitarbeiterAuswahl=4;
|
||||
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=false;
|
||||
}
|
||||
if (filter=="FixAngestellteAlle")
|
||||
{
|
||||
attributes+="&fix=true";
|
||||
MenuMitarbeiterAuswahl=5;
|
||||
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=false;
|
||||
}
|
||||
if (filter=="Inaktive")
|
||||
{
|
||||
attributes+="&aktiv=false";
|
||||
MenuMitarbeiterAuswahl=6;
|
||||
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=true;
|
||||
}
|
||||
if (filter=="Karenziert")
|
||||
{
|
||||
attributes+="&karenziert=true";
|
||||
MenuMitarbeiterAuswahl=7;
|
||||
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=true;
|
||||
}
|
||||
if (filter=="Ausgeschieden")
|
||||
{
|
||||
attributes+="&ausgeschieden=true";
|
||||
MenuMitarbeiterAuswahl=8;
|
||||
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=true;
|
||||
}
|
||||
if (filter=="FreiAngestellte")
|
||||
{
|
||||
attributes+="&fix=false&aktiv=true";
|
||||
MenuMitarbeiterAuswahl=9;
|
||||
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=false;
|
||||
}
|
||||
if (filter=="FreiAngestellteAlle")
|
||||
{
|
||||
attributes+="&fix=false";
|
||||
MenuMitarbeiterAuswahl=10;
|
||||
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=false;
|
||||
}
|
||||
//Timestamp anhaengen da beim Laden von Zwischengespeicherten Dateien kein
|
||||
//Observer Event ausgeloest wird.
|
||||
url+=attributes+'&'+gettimestamp();
|
||||
|
||||
treeMitarbeiterReload=false;
|
||||
//Mitarbeiter Detail Felder deaktivieren
|
||||
SetMitarbeiterDetailAktiv(false);
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
//Alte Datasources loeschen
|
||||
var oldDatasources = content.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
content.database.RemoveDataSource(oldDatasources.getNext());
|
||||
|
||||
//Neue Datasource setzen
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
var newDs = rdfService.GetDataSource(url);
|
||||
content.database.AddDataSource(newDs);
|
||||
|
||||
//Sink Observer anhaengen
|
||||
sink = newDs.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
sink.addXMLSinkObserver(treemenuobserve);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bei Auswahl des Verbandes wird lehreinheiten.rdf
|
||||
* fuer die zugehoerige Gruppe/Studiengang geladen
|
||||
*/
|
||||
function onMenuVerbandSelect()
|
||||
{
|
||||
tree = document.getElementById('tree-verband');
|
||||
|
||||
//Studiengang, Gruppe und Ausbildungssemester holen
|
||||
var col = tree.columns ? tree.columns["tree-verband-studiengang_id"] : "tree-verband-studiengang_id";
|
||||
var studiengang_id=tree.view.getCellText(tree.currentIndex,col);
|
||||
col = tree.columns ? tree.columns["tree-verband-gruppe_id"] : "tree-verband-gruppe_id";
|
||||
var gruppe_id=tree.view.getCellText(tree.currentIndex,col);
|
||||
col = tree.columns ? tree.columns["tree-verband-ausbildungssemester_id"] : "tree-verband-ausbildungssemester_id";
|
||||
var ausbildungssemester_id=tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
//Tree fuellen
|
||||
lehreinheitentree = document.getElementById('tree-liste-lehreinheiten');
|
||||
if(gruppe_id==0)
|
||||
url = '<?php echo APP_ROOT; ?>rdf/fas/lehreinheiten.rdf.php?studiengang_id='+studiengang_id;
|
||||
else
|
||||
url = '<?php echo APP_ROOT; ?>rdf/fas/lehreinheiten.rdf.php?gruppe_id='+gruppe_id;
|
||||
|
||||
lehreinheitentree.setAttribute('datasources',url);
|
||||
document.getElementById('textbox-lehreinheiten-detail-studiengang').value=studiengang_id;
|
||||
document.getElementById('textbox-lehreinheiten-ausbildungssemester_id').value=ausbildungssemester_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parst einen RDF String
|
||||
*/
|
||||
function parseRDFString(str, url)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
var memoryDS = Components.classes["@mozilla.org/rdf/datasource;1?name=in-memory-datasource"].createInstance(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
var ios=Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
|
||||
baseUri=ios.newURI(url,null,null);
|
||||
|
||||
var parser=Components.classes["@mozilla.org/rdf/xml-parser;1"].createInstance(Components.interfaces.nsIRDFXMLParser);
|
||||
parser.parseString(memoryDS,baseUri,str);
|
||||
|
||||
return memoryDS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert Wert aus Datasource
|
||||
*/
|
||||
function getTargetHelper(dsource,subj,predi)
|
||||
{
|
||||
if (dsource.hasArcOut(subj, predi))
|
||||
{
|
||||
var target = dsource.GetTarget(subj, predi, true);
|
||||
if (target instanceof Components.interfaces.nsIRDFLiteral)
|
||||
return target.Value;
|
||||
if (target instanceof Components.interfaces.nsIRDFInt) //Fuer Integer Werte
|
||||
return target.Value;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
@@ -0,0 +1,238 @@
|
||||
<?php
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiteroverlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/lehreinheitenoverlay.xul.php"?>';
|
||||
/*echo '<?xul-overlay href="'.APP_ROOT.'content/studentenoverlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/lfvtoverlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/stpl-week-overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/stpl-semester-overlay.xul.php"?>';
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/fas.css" type="text/css"?>';*/
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay >
|
||||
|
||||
<overlay id="FASOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
|
||||
<!--
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/DragAndDrop.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/dragboard.js"/>
|
||||
-->
|
||||
<tree id="tree-menu-mitarbeiter1" onselect="onMenuMitarbeiterSelect('tree-menu-mitarbeiter1');"
|
||||
seltype="single" hidecolumnpicker="true" flex="1"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="tree-menu-mitarbeiter-col-name" label="Filter" primary="true" flex="1"/>
|
||||
<treecol id="tree-menu-mitarbeiter-col-filter" label="ColFilter" hidden="true" flex="1"/>
|
||||
</treecols>
|
||||
|
||||
<treechildren>
|
||||
<treeitem>
|
||||
<treerow>
|
||||
<treecell label="Alle"/>
|
||||
<treecell label="Alle"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
<treeitem>
|
||||
<treerow>
|
||||
<treecell label="FixAngestellte"/>
|
||||
<treecell label="FixAngestellteAlle"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
<treeitem>
|
||||
<treerow>
|
||||
<treecell label="FreiAngestellte"/>
|
||||
<treecell label="FreiAngestellteAlle"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
|
||||
<treeitem container="true" open="true">
|
||||
<treerow>
|
||||
<treecell label="Aktive"/>
|
||||
<treecell label="Aktive"/>
|
||||
</treerow>
|
||||
<treechildren>
|
||||
<treeitem>
|
||||
<treerow>
|
||||
<treecell label="FixAngestellte"/>
|
||||
<treecell label="FixAngestellte"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
<treeitem>
|
||||
<treerow>
|
||||
<treecell label="FreiAngestellte"/>
|
||||
<treecell label="FreiAngestellte"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
<treeitem>
|
||||
<treerow>
|
||||
<treecell label="Studiengangsleiter"/>
|
||||
<treecell label="Studiengangsleiter"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
<treeitem>
|
||||
<treerow>
|
||||
<treecell label="Fachbereichsleiter"/>
|
||||
<treecell label="Fachbereichsleiter"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</treeitem>
|
||||
|
||||
<treeitem container="true" open="true">
|
||||
<treerow>
|
||||
<treecell label="Inaktive"/>
|
||||
<treecell label="Inaktive"/>
|
||||
</treerow>
|
||||
<treechildren>
|
||||
<treeitem>
|
||||
<treerow>
|
||||
<treecell label="Karenziert"/>
|
||||
<treecell label="Karenziert"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
<treeitem>
|
||||
<treerow>
|
||||
<treecell label="Ausgeschieden"/>
|
||||
<treecell label="Ausgeschieden"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</treeitem>
|
||||
|
||||
</treechildren>
|
||||
</tree>
|
||||
|
||||
<tree id="tree-verband" onselect="onMenuVerbandSelect();"
|
||||
seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/student-verbaende.rdf.php" ref="http://www.technikum-wien.at/gruppen/liste"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="tree-verband-name" label="Name" flex="2" primary="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-verband-bezeichnung" label="Bezeichnung" flex="15" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-verband-studiengang_id" label="StudiengangID" flex="15" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-verband-gruppe_id" label="GruppenID" flex="15" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-verband-ausbildungssemester_id" label="AusbildungssemesterID" flex="15" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/gruppen/rdf#name"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/gruppen/rdf#studiengang_bezeichnung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/gruppen/rdf#studiengang_id"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/gruppen/rdf#gruppe_id"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/gruppen/rdf#ausbildungssemester_id"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
|
||||
<tree id="tree-ort" onselect="onOrtSelect();"
|
||||
seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="" ref="http://www.technikum-wien.at/tempus/ort/alle-orte">
|
||||
<treecols>
|
||||
<treecol id="raumtyp" label="Raumtyp" flex="2" primary="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="ort_kurzbz" label="Raum" flex="4" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="hierarchie" label="HI" 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"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/ort/rdf#raumtyp"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/ort/rdf#ort_kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/ort/rdf#hierarchie"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/ort/rdf#ort_bezeichnung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/ort/rdf#max_person"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
|
||||
<tree id="tree-lektor" onselect="onLektorSelect();"
|
||||
seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="mitarbeiter.rdf.php" ref="http://www.technikum-wien.at/tempus/mitarbeiter/alle">
|
||||
<treecols>
|
||||
<treecol id="kurzbz" label="Kuerzel" flex="2" primary="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="nachname" label="Nachname" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="vornamen" label="Vornamen" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="titel" label="Titel" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="uid" label="UID" flex="1" hidden="true"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/mitarbeiter/rdf#kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/mitarbeiter/rdf#nachname"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/mitarbeiter/rdf#vornamen"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/mitarbeiter/rdf#titel"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/mitarbeiter/rdf#uid"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
-->
|
||||
<vbox id="vbox-main">
|
||||
<tabbox id="tabbox-main" flex="3" orient="vertical">
|
||||
<tabs orient="horizontal">
|
||||
<tab id="tab-mitarbeiter" label="Mitarbeiter" oncommand="tabchange('mitarbeiter');" />
|
||||
<tab id="tab-lehreinheiten" label="Lehreinheiten" oncommand="tabchange('lehreinheiten');"/>
|
||||
<!--<tab id="tab-semester" label="Semesterplan" />
|
||||
<tab id="tab-studenten" label="Studenten" />-->
|
||||
<!-- <tab id="tab-lfvt" label="Lehrveranstaltung" /> -->
|
||||
</tabs>
|
||||
<tabpanels id="tabpanels-main" flex="1">
|
||||
<!-- Mitarbeiter -->
|
||||
<vbox id="MitarbeiterEditor" />
|
||||
<vbox id="LehreinheitenEditor" />
|
||||
<!-- Wochenplan -->
|
||||
<!-- <hbox id="hboxTimeTableWeek" /> -->
|
||||
<!-- Semesterplan -->
|
||||
<!-- <vbox id="vboxTimeTableSemester" /> -->
|
||||
<!-- Studenten -->
|
||||
<!-- <vbox id="studentenEditor" /> -->
|
||||
<!-- Lehrfachverteilung -->
|
||||
<!-- <vbox id="lfvtEditor" /> -->
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
|
||||
</overlay>
|
||||
@@ -0,0 +1,237 @@
|
||||
<?php
|
||||
require('../vilesci/config.inc.php');
|
||||
?>
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
/**
|
||||
* Wird zu Beginn einer DragnDrop Session aufgerufen.
|
||||
* Hier werden die Flayvour und die zu uebertragenden Daten
|
||||
* festgelegt.
|
||||
*/
|
||||
function treeDragGesture(event)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
|
||||
var tree = document.getElementById('tree-liste-lehreinheiten')
|
||||
var row = { }
|
||||
var col = { }
|
||||
var child = { }
|
||||
|
||||
//Index der Quell-Row ermitteln
|
||||
tree.treeBoxObject.getCellAt(event.pageX, event.pageY, row, col, child)
|
||||
|
||||
//Wenn es keine Row ist sondern ein Header oder Scrollbar dann das DnD abbrechen
|
||||
if (!col.value)
|
||||
return false;
|
||||
|
||||
//Lehreinheit_id ermitteln
|
||||
col = tree.columns ? tree.columns["tree-liste-lehreinheiten-col-lehreinheit_id"] : "tree-liste-lehreinheiten-col-lehreinheit_id";
|
||||
lehreinheit_id=tree.view.getCellText(row.value,col);
|
||||
|
||||
var ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService);
|
||||
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
|
||||
|
||||
//Flavour anhaengen
|
||||
trans.addDataFlavor("lva");
|
||||
var textWrapper = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
|
||||
|
||||
//Daten anhaengen
|
||||
textWrapper.data = lehreinheit_id;
|
||||
trans.setTransferData("lva", textWrapper, textWrapper.data.length*2);
|
||||
var transArray = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);
|
||||
transArray.AppendElement(trans);
|
||||
|
||||
// Actually start dragging
|
||||
ds.invokeDragSession(event.target, transArray, null, ds.DRAGDROP_ACTION_COPY + ds.DRAGDROP_ACTION_MOVE);
|
||||
event.stopPropagation();
|
||||
}
|
||||
|
||||
/**
|
||||
* Wird aufgerufen wenn Drag Event von Ausserhalb des eigenen Windows kommt
|
||||
*/
|
||||
function treeDragEnter(event)
|
||||
{
|
||||
//Not implemented
|
||||
}
|
||||
|
||||
/**
|
||||
* Drag ueber ein Element
|
||||
*/
|
||||
function DragOverContentArea ( event )
|
||||
{
|
||||
var validFlavor = false;
|
||||
var dragSession = null;
|
||||
|
||||
var targetNode = event.target
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
var dragService = Components.classes["@mozilla.org/widget/dragservice;1"].
|
||||
getService().QueryInterface(Components.interfaces.nsIDragService);
|
||||
|
||||
if( dragService )
|
||||
{
|
||||
dragSession = dragService.getCurrentSession();
|
||||
|
||||
if( dragSession )
|
||||
{
|
||||
if( dragSession.isDataFlavorSupported("moz/toolbaritem") )
|
||||
validFlavor = true;
|
||||
else if ( dragSession.isDataFlavorSupported("lva") )
|
||||
validFlavor = true;
|
||||
|
||||
if ( validFlavor )
|
||||
{
|
||||
//Style action
|
||||
//targetNode.style.backgroundColor = "red";
|
||||
//targetNode.style.color = "red";
|
||||
//event.originalTarget.style.color = "red";
|
||||
dragSession.canDrop = true;
|
||||
event.stopPropagation();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function treeDragExit(event)
|
||||
{
|
||||
//Not implemented
|
||||
}
|
||||
|
||||
var dragservice_ds;
|
||||
/**
|
||||
* Holt die Daten aus der DragSession
|
||||
*/
|
||||
function getDragData(aFlavourSet)
|
||||
{
|
||||
debug('getdragdata in');
|
||||
/*try
|
||||
{
|
||||
var ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService);
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
debug('getDragData() in lehreinheitenDragnDrop.js.php hat folgenden Fehler verursacht: '+e);
|
||||
}
|
||||
*/
|
||||
var ds = dragservice_ds;
|
||||
var ses = ds.getCurrentSession()
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
var supportsArray = Components.classes["@mozilla.org/supports-array;1"]
|
||||
.createInstance(Components.interfaces.nsISupportsArray);
|
||||
|
||||
for (var i = 0; i < ses.numDropItems; ++i)
|
||||
{
|
||||
var trans = nsTransferable.createTransferable();
|
||||
for (var j = 0; j < aFlavourSet.flavours.length; ++j)
|
||||
trans.addDataFlavor(aFlavourSet.flavours[j].contentType);
|
||||
ses.getData(trans, i);
|
||||
supportsArray.AppendElement(trans);
|
||||
}
|
||||
debug('getdragdata out');
|
||||
return supportsArray;
|
||||
}
|
||||
|
||||
/**
|
||||
* (Wenn gedroppt wird)
|
||||
* Speichert die Partizipierung
|
||||
*/
|
||||
function treeDragDrop(event)
|
||||
{
|
||||
event.stopPropagation();
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
|
||||
try {
|
||||
dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
debug('treeDragDrop: e');
|
||||
}
|
||||
debug('treeDragDrop in');
|
||||
var ds = dragservice_ds;
|
||||
var ses = ds.getCurrentSession()
|
||||
var sourceNode = ses.sourceNode
|
||||
var tree = document.getElementById('tree-liste-lehreinheiten')
|
||||
var row = { }
|
||||
var col = { }
|
||||
var child = { }
|
||||
|
||||
tree.treeBoxObject.getCellAt(event.pageX, event.pageY, row, col, child)
|
||||
if(row.value!=-1) //Drop on Row
|
||||
{
|
||||
//Ziel Lehreinheit holen
|
||||
col = tree.columns ? tree.columns["tree-liste-lehreinheiten-col-lehreinheit_id"] : "tree-liste-lehreinheiten-col-lehreinheit_id";
|
||||
ziel_lehreinheit_id=tree.view.getCellText(row.value,col);
|
||||
}
|
||||
else
|
||||
ziel_lehreinheit_id=-1; //Drop on Header or empty place
|
||||
|
||||
//Quell Lehreinheit holen
|
||||
var flavourset = new FlavourSet();
|
||||
flavourset.appendFlavour("lva");
|
||||
var transferData = nsTransferable.get(flavourset, getDragData, true);
|
||||
quell_lehreinheit_id=transferData.first.first.data;
|
||||
|
||||
if(quell_lehreinheit_id!=ziel_lehreinheit_id)
|
||||
{
|
||||
//Pratizipierung Speichern
|
||||
if(confirm('Wollen Sie diese Lehreinheit wirklich verschieben'))
|
||||
{
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
var url = "<?php echo APP_ROOT; ?>rdf/fas/db_dml.rdf.php";
|
||||
|
||||
httpRequest.open("POST", url, false, '','');
|
||||
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
var param = 'type=lva_partizipierung&ziel_lehreinheit_id='+ziel_lehreinheit_id+'&quell_lehreinheit_id='+quell_lehreinheit_id;
|
||||
|
||||
//Parameter schicken
|
||||
httpRequest.send(param);
|
||||
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status);
|
||||
return false;
|
||||
break;
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
default: //passiert hoffentlich nie
|
||||
alert("Fehler: DragnDrop Request Error");
|
||||
break;
|
||||
}
|
||||
|
||||
// Returnwerte aus RDF abfragen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/dbdml');
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/dbdml/0");
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/dbdml/rdf";
|
||||
|
||||
var dbdml_return = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
var dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
|
||||
|
||||
if(dbdml_return=='true')
|
||||
RefreshLehreinheitenTree();
|
||||
else
|
||||
alert(dbdml_errormsg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
alert('Partizipierung von sich selbst ist nicht moeglich');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,353 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay>
|
||||
|
||||
<overlay id="LehreinheitenDetailOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<vbox id="LehreinheitenDetailEditor" flex="1" style="overflow:auto">
|
||||
|
||||
<textbox id="textbox-lehreinheiten-detail-lehreinheit_id" hidden="true" />
|
||||
<tabbox id="tabbox-lehreinheitenDetail" flex="3" orient="vertical" hidden="false">
|
||||
<tabs orient="horizontal">
|
||||
<tab id="tab-lehreinheiten-daten" label="Daten" />
|
||||
<tab id="tab-lehreinheiten-lektoren" label="Lektoren" />
|
||||
</tabs>
|
||||
<tabpanels id="tabpanels-lehreinheiten-main" flex="1">
|
||||
<!--Daten-->
|
||||
<vbox style="margin-top: 5px;">
|
||||
<textbox id="textbox-lehreinheiten-detail-studiengang" oninput="LehreinheitenDetailValueChange()" hidden="true"/>
|
||||
<textbox id="textbox-lehreinheiten-detail-studiensemester" oninput="LehreinheitenDetailValueChange()" hidden="true"/>
|
||||
<textbox id="textbox-lehreinheiten-detail-lehrveranstaltung" oninput="LehreinheitenDetailValueChange()" hidden="true"/>
|
||||
<textbox id="textbox-lehreinheiten-detail-lehreinheit_fk" oninput="LehreinheitenDetailValueChange()" hidden="true"/>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
>
|
||||
<columns>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<label align="end" control="menulist-lehreinheiten-detail-fachbereich" value="Fachbereich:"/>
|
||||
<menulist id="menulist-lehreinheiten-detail-fachbereich" oncommand="LehreinheitenDetailValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/fachbereich.rdf.php"
|
||||
ref="http://www.technikum-wien.at/fachbereich/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/fachbereich/rdf#name"
|
||||
value="rdf:http://www.technikum-wien.at/fachbereich/rdf#fachbereich_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label align="end" control="menulist-lehreinheiten-detail-ausbildungssemester" value="Ausbildungssemester:"/>
|
||||
<menulist id="menulist-lehreinheiten-detail-ausbildungssemester" oncommand="LehreinheitenDetailsetGruppenMenulistDatasource();LehreinheitenDetailValueChange();"
|
||||
datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/ausbildungssemester/liste">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/ausbildungssemester/rdf#name"
|
||||
value="rdf:http://www.technikum-wien.at/ausbildungssemester/rdf#ausbildungssemester_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label align="end" control="menulist-lehreinheiten-detail-gruppe" value="Gruppe:"/>
|
||||
<menulist id="menulist-lehreinheiten-detail-gruppe" oncommand="LehreinheitenDetailValueChange();"
|
||||
datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/gruppen/liste">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/gruppen/rdf#fullname"
|
||||
value="rdf:http://www.technikum-wien.at/gruppen/rdf#gruppe_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<label control="textbox-lehreinheiten-detail-bezeichnung" value="Bezeichnung: "/>
|
||||
<textbox id="textbox-lehreinheiten-detail-bezeichnung" maxlength="255" flex="1" oninput="LehreinheitenDetailValueChange()"/>
|
||||
<label control="textbox-lehreinheiten-detail-kurzbezeichnung" value="Kurzbezeichnung: "/>
|
||||
<textbox id="textbox-lehreinheiten-detail-kurzbezeichnung" maxlength="255" flex="1" oninput="LehreinheitenDetailValueChange()"/>
|
||||
<label align="end" control="menulist-lehreinheiten-detail-lehrform" value="Lehrform:"/>
|
||||
<menulist id="menulist-lehreinheiten-detail-lehrform" oncommand="LehreinheitenDetailValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/lehrform.rdf.php"
|
||||
ref="http://www.technikum-wien.at/lehrform/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/lehrform/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/lehrform/rdf#lehrform_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<label control="textbox-lehreinheiten-detail-nummer" value="Nummer: "/>
|
||||
<textbox id="textbox-lehreinheiten-detail-nummer" maxlength="255" flex="1" oninput="LehreinheitenDetailValueChange()"/>
|
||||
<label align="end" control="menulist-lehreinheiten-detail-koordinator" value="Koordinator:"/>
|
||||
<menulist id="menulist-lehreinheiten-detail-koordinator" oncommand="LehreinheitenDetailValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/mitarbeiter.rdf.php?aktiv=true"
|
||||
ref="http://www.technikum-wien.at/mitarbeiter/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="-1" label="Kein Koordinator" />
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname^ rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname"
|
||||
value="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#mitarbeiter_id"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname"
|
||||
/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
</rows>
|
||||
|
||||
</grid>
|
||||
|
||||
<groupbox>
|
||||
<caption label="Kosten" />
|
||||
<vbox flex="1" style="margin: 5px;">
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
>
|
||||
<columns>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label control="textbox-lehreinheiten-detail-sws" value="Semesterwochenstunden: "/>
|
||||
<textbox id="textbox-lehreinheiten-detail-sws" maxlength="255" flex="1" oninput="LehreinheitenDetailValueChange()"/>
|
||||
<label control="textbox-lehreinheiten-detail-gesamtstunden" value="Gesamtstunden: "/>
|
||||
<textbox id="textbox-lehreinheiten-detail-gesamtstunden" maxlength="255" flex="1" oninput="LehreinheitenDetailValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label control="textbox-lehreinheiten-detail-planlektoren" value="Anzahl der Lektoren: "/>
|
||||
<hbox><textbox id="textbox-lehreinheiten-detail-planlektoren" maxlength="2" oninput="LehreinheitenDetailValueChange()"/><spacer flex="1"/></hbox>
|
||||
<label control="textbox-lehreinheiten-detail-plankostenprolektor" value="Kosten pro Lektor: "/>
|
||||
<textbox id="textbox-lehreinheiten-detail-plankostenprolektor" maxlength="255" flex="1" oninput="LehreinheitenDetailValueChange()"/>
|
||||
<label control="textbox-lehreinheiten-detail-planfaktor" value="Geplanter Faktor: "/>
|
||||
<textbox id="textbox-lehreinheiten-detail-planfaktor" maxlength="255" flex="1" oninput="LehreinheitenDetailValueChange()"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</vbox>
|
||||
</groupbox>
|
||||
<groupbox>
|
||||
<caption label="LV-Planung" />
|
||||
<vbox flex="1" style="margin: 5px;">
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
>
|
||||
<columns>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label align="end" control="menulist-lehreinheiten-detail-raumtyp" value="Raumtyp:"/>
|
||||
<menulist id="menulist-lehreinheiten-detail-raumtyp" oncommand="LehreinheitenDetailValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/raumtyp.rdf.php"
|
||||
ref="http://www.technikum-wien.at/raumtyp/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/raumtyp/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/raumtyp/rdf#raumtyp_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label align="end" control="menulist-lehreinheiten-detail-raumtypalternativ" value="Raumtyp Alternativ:"/>
|
||||
<menulist id="menulist-lehreinheiten-detail-raumtypalternativ" oncommand="LehreinheitenDetailValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/raumtyp.rdf.php"
|
||||
ref="http://www.technikum-wien.at/raumtyp/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/raumtyp/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/raumtyp/rdf#raumtyp_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="menulist-lehreinheiten-detail-wochenrythmus" value="Wochenrythmus:"/>
|
||||
<menulist id="menulist-lehreinheiten-detail-wochenrythmus" oncommand="LehreinheitenDetailValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/wochenrythmus.rdf.php"
|
||||
ref="http://www.technikum-wien.at/wochenrythmus/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/wochenrythmus/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/wochenrythmus/rdf#wochenrythmus_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label control="textbox-lehreinheiten-detail-kalenderwoche" value="Kalenderwoche: "/>
|
||||
<textbox id="textbox-lehreinheiten-detail-kalenderwoche" maxlength="255" flex="1" oninput="LehreinheitenDetailValueChange()"/>
|
||||
<label control="textbox-lehreinheiten-detail-stundenblockung" value="Stundenblockung: "/>
|
||||
<textbox id="textbox-lehreinheiten-detail-stundenblockung" maxlength="255" flex="1" oninput="LehreinheitenDetailValueChange()"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox>
|
||||
<label control="textbox-lehreinheiten-detail-bemerkungen" value="Bemerkung:"/>
|
||||
<textbox id="textbox-lehreinheiten-detail-bemerkungen" multiline="true" oninput="LehreinheitenDetailValueChange()" flex="1"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</groupbox>
|
||||
|
||||
<hbox>
|
||||
<spacer flex="1"/>
|
||||
<button label="Abbrechen" oncommand="LehreinheitenTreeAuswahl();"/>
|
||||
<button label="Speichern" oncommand="LehreinheitenDetailSpeichern()"/>
|
||||
</hbox>
|
||||
<spacer flex="5"/>
|
||||
</vbox>
|
||||
<!--Lektoren Tab-->
|
||||
<vbox>
|
||||
<hbox flex="1" style="padding: 10px">
|
||||
<vbox width="250">
|
||||
<hbox flex="1">
|
||||
<tree id="tree-liste-mitarbeiterlehreinheiten" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/mitarbeiterlehreinheiten/alle"
|
||||
onselect="MitarbeiterLehreinheitenTreeAuswahl();" flags="dont-build-content"
|
||||
style="border: 1px solid black;"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="tree-liste-mitarbeiterlehreinheiten-col-nachname" label="Nachname" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiterlehreinheiten/rdf#nachname" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiterlehreinheiten-col-vorname" label="Vorname" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiterlehreinheiten/rdf#vorname" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiterlehreinheiten-col-mitarbeiter_lehreinheit_id" label="MitarbeiterLehreinheitID" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiterlehreinheiten/rdf#mitarbeiter_lehreinheit_id" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiterlehreinheiten/rdf#nachname" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiterlehreinheiten/rdf#vorname" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiterlehreinheiten/rdf#mitarbeiter_lehreinheit_id" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
<spacer />
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<button label="+" oncommand="MitarbeiterLehreinheitenAdd()" style="max-width: 30px;"/>
|
||||
<button label="-" oncommand="MitarbeiterLehreinheitenDel()" style="max-width: 30px;"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<hbox>
|
||||
<groupbox>
|
||||
<caption label="Lektorendaten" />
|
||||
<vbox flex="1">
|
||||
<textbox id="textbox-lehreinheiten-detail-lektoren-lehreinheit_id" hidden="true"/>
|
||||
<textbox id="textbox-lehreinheiten-detail-lektoren-mitarbeiter_lehreinheit_id" hidden="true"/>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
>
|
||||
<columns>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<label align="end" control="menulist-lehreinheiten-detail-funktion" value="Funktion:"/>
|
||||
<menulist id="menulist-lehreinheiten-detail-funktion" disabled="true" oncommand="LehreinheitenDetailLektorValueChanged();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/mitarbeiterlehreinheitenfunktionen.rdf.php"
|
||||
ref="http://www.technikum-wien.at/mitarbeiterlehreinheitenfunktionen/alle" flex="1">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/mitarbeiterlehreinheitenfunktionen/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/mitarbeiterlehreinheitenfunktionen/rdf#funktion_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label align="end" control="menulist-lehreinheiten-detail-mitarbeiterauswahl" value="Lektor:"/>
|
||||
<hbox flex="1">
|
||||
<menulist id="menulist-lehreinheiten-detail-mitarbeiterauswahl" disabled="true" oncommand="LehreinheitenDetailLektorValueChanged();"
|
||||
datasources="rdf:*"
|
||||
ref="http://www.technikum-wien.at/mitarbeiterlehreinheitenauswahl/alle" flex="1">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/mitarbeiterlehreinheitenauswahl/rdf#nachname rdf:http://www.technikum-wien.at/mitarbeiterlehreinheitenauswahl/rdf#vorname"
|
||||
value="rdf:http://www.technikum-wien.at/mitarbeiterlehreinheitenauswahl/rdf#mitarbeiter_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<button label='+' id="button-lehreinheiten-detail-lektoren-auswahladd" disabled="true" oncommand='OpenMitarbeiterAuswahlDialog()' style="max-width: 30px;"/>
|
||||
</hbox>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<label control="textbox-lehreinheiten-detail-lektoren-kosten" value="Kosten: "/>
|
||||
<textbox id="textbox-lehreinheiten-detail-lektoren-kosten" disabled="true" maxlength="255" flex="1" oninput="LehreinheitenDetailLektorValueChanged()"/>
|
||||
<label control="textbox-lehreinheiten-detail-lektoren-gesamtstunden" value="Gesamtstunden: "/>
|
||||
<textbox id="textbox-lehreinheiten-detail-lektoren-gesamtstunden" disabled="true" maxlength="255" flex="1" oninput="LehreinheitenDetailLektorValueChanged()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label control="textbox-lehreinheiten-detail-lektoren-faktor" value="Faktor: "/>
|
||||
<textbox id="textbox-lehreinheiten-detail-lektoren-faktor" disabled="true" maxlength="255" flex="1" oninput="LehreinheitenDetailLektorValueChanged()"/>
|
||||
<label control="textbox-lehreinheiten-detail-lektoren-differenz" value="Differenz: "/>
|
||||
<textbox id="textbox-lehreinheiten-detail-lektoren-differenz" maxlength="255" flex="1" oninput="LehreinheitenDetailLektorValueChanged()" disabled="true"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox flex="1">
|
||||
<spacer flex="1" />
|
||||
<button label="Speichern" disabled="true" id="button-lehreinheiten-detail-lektoren-save" oncommand="MitarbeiterLehreinheitenZuteilungSave();"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</groupbox>
|
||||
</hbox>
|
||||
</vbox>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
</vbox>
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
</overlay>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
include("../vilesci/config.inc.php");
|
||||
?>
|
||||
|
||||
function LehreinheitenMitarbeiterHinzufuegen()
|
||||
{
|
||||
tree = document.getElementById('tree-liste-lehreinheiten-mitarbeiter');
|
||||
var idx;
|
||||
if(tree.currentIndex>=0)
|
||||
idx = tree.currentIndex;
|
||||
else
|
||||
{
|
||||
alert('Bitte zuerst einen Lektor auswaehlen');
|
||||
return false;
|
||||
}
|
||||
|
||||
//MitarbeiterLehreinheit_id holen
|
||||
var col = tree.columns ? tree.columns["tree-liste-lehreinheiten-mitarbeiter-col-mitarbeiter_id"] : "tree-liste-lehreinheiten-mitarbeiter-col-mitarbeiter_id";
|
||||
var mitarbeiter_id=tree.view.getCellText(idx,col);
|
||||
|
||||
window.opener.MitarbeiterLehreinheitAuswahlAdd(mitarbeiter_id);
|
||||
window.close();
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/fas.css" type="text/css"?>';
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<window id="lehreinheiten-mitarbeiter-dialog" title="Mitarbeiter Auswahl"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/lehreinheitenmitarbeiterdialog.js.php" />
|
||||
|
||||
<tree id="tree-liste-lehreinheiten-mitarbeiter" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/mitarbeiter.rdf.php?aktiv=true"
|
||||
ref="http://www.technikum-wien.at/mitarbeiter/alle"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true" style="margin:5px;"
|
||||
persist="height"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="tree-liste-lehreinheiten-mitarbeiter-col-anrede" label="Anrede" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#anrede" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-mitarbeiter-col-titelpre" label="Titel(Pre)" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-mitarbeiter-col-vorname" label="Vorname" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-mitarbeiter-col-vornamen" label="Vornamen" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-mitarbeiter-col-nachname" label="Nachname" flex="2" hidden="false" primary="true"
|
||||
class="sortDirectionIndicator" sortActive="true" sortDirection="ascending"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-mitarbeiter-col-titelpost" label="Titel(Post)" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-mitarbeiter-col-uid" label="UID" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-mitarbeiter-col-mitarbeiter_id" label="mitarbeiter_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#mitarbeiter_id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-mitarbeiter-col-person_id" label="person_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#person_id" />
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#anrede" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#mitarbeiter_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#person_id" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
|
||||
</tree>
|
||||
<vbox>
|
||||
<hbox flex="1">
|
||||
<spacer flex="1"/>
|
||||
<button id="button-lehreinheiten-mitarbeiter-auswahl" label="Hinzufuegen" oncommand="LehreinheitenMitarbeiterHinzufuegen();" />
|
||||
</hbox>
|
||||
</vbox>
|
||||
</window>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
include("../vilesci/config.inc.php");
|
||||
?>
|
||||
|
||||
/**
|
||||
* Fuegt eine neue Lehreinheit hinzu.
|
||||
* Wenn das anlegen erfolgreich war, wird das Dialogfenster geschlossen.
|
||||
*/
|
||||
function LehreinheitenLVAHinzufuegen()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
//Markierten Eintrag holen
|
||||
tree = document.getElementById('tree-liste-lehreinheiten-lehrveranstaltung');
|
||||
var idx;
|
||||
if(tree.currentIndex>=0)
|
||||
idx = tree.currentIndex;
|
||||
else
|
||||
{
|
||||
alert('Bitte zuerst einen Lektor auswaehlen');
|
||||
return false;
|
||||
}
|
||||
|
||||
//LVA_id holen
|
||||
var col = tree.columns ? tree.columns["tree-liste-lehreinheiten-lehrveranstaltung-col-lehrveranstaltung_id"] : "tree-liste-lehreinheiten-lehrveranstaltung-col-lehrveranstaltung_id";
|
||||
var lehrveranstaltung_id=tree.view.getCellText(idx,col);
|
||||
|
||||
if(window.opener.LehreinheitenNeu1(lehrveranstaltung_id))
|
||||
window.close();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'."\n";
|
||||
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/fas.css" type="text/css"?>';
|
||||
if(isset($_GET['stg_id']))
|
||||
{
|
||||
$parameter='?studiengang_id='.$_GET['stg_id'];
|
||||
if(isset($_GET['ausbildungssemester_id']) && $_GET['ausbildungssemester_id']!='0')
|
||||
$parameter.='&ausbildungssemester_id='.$_GET['ausbildungssemester_id'];
|
||||
}
|
||||
else
|
||||
$parameter='';
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<window id="lehreinheiten-mitarbeiter-dialog" title="Mitarbeiter Auswahl"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/lehreinheitenneudialog.js.php" />
|
||||
|
||||
<tree id="tree-liste-lehreinheiten-lehrveranstaltung" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/lehrveranstaltungen.rdf.php<?php echo $parameter; ?>"
|
||||
ref="http://www.technikum-wien.at/lehrveranstaltung/liste"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true" style="margin:5px;"
|
||||
persist="height"
|
||||
ondblclick="LehreinheitenLVAHinzufuegen()"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="tree-liste-lehreinheiten-lehrveranstaltung-col-lehrveranstaltung_id" label="LVA_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#lehrveranstaltung_id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-lehrveranstaltung-col-name" label="Name" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#name" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-lehrveranstaltung-col-ausbildungssemester" label="Ausbildungssemester" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" sortActive="true" sortDirection="ascending"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#ausbildungssemester_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-lehrveranstaltung-col-fachbereich" label="Fachbereich" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#fachbereich_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#lehrveranstaltung_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#ausbildungssemester_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#fachbereich_bezeichnung" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
<vbox>
|
||||
<hbox flex="1">
|
||||
<spacer flex="1"/>
|
||||
<button id="button-lehreinheiten-mitarbeiter-auswahl" label="Hinzufuegen" oncommand="LehreinheitenLVAHinzufuegen();" />
|
||||
</hbox>
|
||||
</vbox>
|
||||
</window>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,204 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/fas.css" type="text/css"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/lehreinheitendetailoverlay.xul.php"?>';
|
||||
// rdf:null
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay>
|
||||
|
||||
<overlay id="LehreinheitenOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/lehreinheitenoverlay.js.php" />
|
||||
<!--
|
||||
<script src="chrome://global/content/nsTransferable.js"/>
|
||||
-->
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/lehreinheitenDragnDrop.js.php" />
|
||||
|
||||
<vbox id="LehreinheitenEditor" flex="1">
|
||||
<keyset>
|
||||
<key id="lehreinheiten-delete-key" keycode="VK_DELETE" oncommand="LehreinheitenDelete();"/>
|
||||
<key id="lehreinheiten-new-key" modifiers="control" key="N" oncommand="LehreinheitenNeu();"/>
|
||||
</keyset>
|
||||
|
||||
<toolbox>
|
||||
<toolbar id="toolbar-LehreinheitenEditor">
|
||||
<toolbarbutton id="toolbar-LehreinheitenEditor-neu" label=" Neu" key="lehreinheiten-new-key" oncommand="LehreinheitenNeu();" image="../skin/images/NeuDokument.png" tooltiptext="Neue Lehreinheit anlegen" />
|
||||
<toolbarbutton id='toolbar-LehreinheitenEditor-loeschen' label=" Löschen" key="lehreinheiten-delete-key" oncommand="LehreinheitenDelete();" image="../skin/images/DeleteIcon.png" tooltiptext="Lehreinheiten löschen" />
|
||||
<toolbarbutton label=" Neu Laden" oncommand="RefreshLehreinheitenTree()" image="../skin/images/refresh.png" tooltiptext="Liste neu laden" />
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
<textbox id="textbox-lehreinheiten-ausbildungssemester_id" oninput="LehreinheitenDetailValueChange()" hidden="true"/>
|
||||
|
||||
<tree id="tree-liste-lehreinheiten" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/lehreinheiten/liste"
|
||||
onselect="LehreinheitenTreeAuswahl();" flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
ondraggesture="treeDragGesture(event);"
|
||||
ondragenter="treeDragEnter(event);"
|
||||
ondragover="return DragOverContentArea(event);"
|
||||
ondragexit="treeDragExit(event);"
|
||||
ondragdrop="treeDragDrop(event);"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="tree-liste-lehreinheiten-col-bezeichnung" label="Bezeichnung" flex="2" hidden="false" primary="true"
|
||||
class="sortDirectionIndicator" sortActive="true" sortDirection="ascending"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#bezeichnung" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-studiengang" label="Studiengang" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#studiengang_kurzbz" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-studiensemester" label="Studiensemester" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#studiensemester_kurzbz" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-fachbereich" label="Fachbereich" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#fachbereich_bezeichnung" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-ausbildungssemester" label="Ausbildungssemester" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#ausbildungssemester_kurzbz" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-lehrform" label="Lehrform" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#lehrform_kurzbz" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-gruppe" label="Gruppe" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#gruppe_kurzbz" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-nummer" label="Nummer" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#nummer" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-kurzbezeichnung" label="Kurzbezeichnung" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#kurzbezeichnung" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-semesterwochenstunden" label="Semesterwochenstunden" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#semesterwochenstunden" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-gesamtstunden" label="Gesamtstunden" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#gesamtstunden" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-plankostenprolektor" label="Plankosten pro Lektor" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#plankostenprolektor" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-planfaktor" label="Planfaktor" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#planfaktor" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-planlektoren" label="Planlektoren" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#planlektoren" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-raumtyp_bezeichnung" label="Raumtyp" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#raumtyp_bezeichnung" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-raumtypalternativ_bezeichnung" label="Raumtyp Alternativ" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#raumtypalternativ_bezeichnung" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-bemerkungen" label="Bemerkungen" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#bemerkungen" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-wochenrythmus" label="Wochenrythmus" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#wochenrythmus" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-kalenderwoche" label="Kalenderwoche" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#kalenderwoche" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-stundenblockung" label="Stundenblockung" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#stundenblockung" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-koordinator_nachname" label="Koordinator Nachname" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#koordinator_nachname" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-koordinator_vorname" label="Koordinator Vorname" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#koordinator_vorname" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-lehreinheit_id" label="LehreinheitID" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#lehreinheit_id" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-koordinator_id" label="Koordinator_id" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#koordinator_id" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-lehreinheiten-col-gruppe_id" label="Gruppe_id" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#gruppe_id" onclick="LehreinheitenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem container="true" open="true" uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#studiengang_kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#studiensemester_kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#fachbereich_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#ausbildungssemester_kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#lehrform_kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#gruppe_kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#nummer" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#kurzbezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#semesterwochenstunden" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#gesamtstunden" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#plankostenprolektor" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#planfaktor" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#planlektoren" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#raumtyp_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#raumtypalternativ_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#bemerkungen" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#wochenrythmus" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#kalenderwoche" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#stundenblockung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#koordinator_nachname" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#koordinator_vorname" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#lehreinheit_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#koordinator_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehreinheiten/rdf#gruppe_id" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
|
||||
</tree>
|
||||
|
||||
<splitter id="lehreinheiten-overlay-splitter" collapse="after" persist="state">
|
||||
<grippy />
|
||||
</splitter>
|
||||
|
||||
<vbox id="LehreinheitenDetailEditor" persist="height"/>
|
||||
|
||||
|
||||
</vbox>
|
||||
</overlay>
|
||||
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
* To change the template for this generated file go to
|
||||
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||||
*/
|
||||
// header für 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");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
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/lehrfach.class.php');
|
||||
|
||||
// Datenbank Verbindung
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
// Einheiten holen
|
||||
$lehrfachDAO=new lehrfach($conn);
|
||||
$lehrfaecher=$lehrfachDAO->getAll();
|
||||
|
||||
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/lehrfach';
|
||||
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:LEHRFACH="<?php echo $rdf_url; ?>/rdf#"
|
||||
>
|
||||
|
||||
|
||||
<RDF:Seq about="<?php echo $rdf_url ?>/liste">
|
||||
|
||||
|
||||
<?php
|
||||
foreach ($lehrfaecher as $lehrfach)
|
||||
{
|
||||
?>
|
||||
<RDF:li>
|
||||
<RDF:Description id="<?php echo $lehrfach->lehrfach_nr; ?>" about="<?php echo $rdf_url.'/'.$lehrfach->lehrfach_nr; ?>" >
|
||||
<LEHRFACH:lehrfach_nr><?php echo $lehrfach->lehrfach_nr ?></LEHRFACH:lehrfach_nr>
|
||||
<LEHRFACH:bezeichnung><![CDATA[ <?php echo $lehrfach->bezeichnung ?> ]]></LEHRFACH:bezeichnung>
|
||||
<LEHRFACH:fachbereich_id><?php echo $lehrfach->fachbereich_id ?></LEHRFACH:fachbereich_id>
|
||||
<LEHRFACH:kurzbz><?php echo $lehrfach->kurzbz ?></LEHRFACH:kurzbz>
|
||||
<LEHRFACH:lehrelink><?php echo $lehrfach->lehrelink ?></LEHRFACH:lehrelink>
|
||||
<LEHRFACH:farbe><?php echo $lehrfach->farbe ?></LEHRFACH:farbe>
|
||||
<LEHRFACH:lehrform_kurzbz><?php echo $lehrfach->lehrform_kurzbz ?></LEHRFACH:lehrform_kurzbz>
|
||||
<LEHRFACH:aktiv><?php echo $lehrfach->aktiv ?></LEHRFACH:aktiv>
|
||||
<LEHRFACH:studiengang_kz><?php echo $lehrfach->studiengang_kz ?></LEHRFACH:studiengang_kz>
|
||||
<LEHRFACH:ects><?php echo $lehrfach->ects ?></LEHRFACH:ects>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</RDF:Seq>
|
||||
|
||||
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
* To change the template for this generated file go to
|
||||
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||||
*/
|
||||
// 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");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
// xml
|
||||
echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>';
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
include('../include/functions.inc.php');
|
||||
include('../include/lehrstunde.class.php');
|
||||
|
||||
function checkID($needle)
|
||||
{
|
||||
global $id_list;
|
||||
//echo "checkID $needle \n";
|
||||
reset($id_list);
|
||||
foreach($id_list as $v)
|
||||
if ($v==$needle)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
$id_list=array();
|
||||
while(list($k,$v)=each($_GET))
|
||||
if (strpos($k,'stundenplan_id')!==false)
|
||||
$id_list[]=$v;
|
||||
|
||||
//print_r($id_list);
|
||||
|
||||
if (!isset($REMOTE_USER))
|
||||
$REMOTE_USER='pam';
|
||||
$uid=$REMOTE_USER;
|
||||
|
||||
if (isset($_GET[datum]))
|
||||
$datum=$_GET[datum];
|
||||
if (isset($_GET[datum_bis]))
|
||||
$datum_bis=$_GET[datum_bis];
|
||||
if (isset($_GET[stunde]))
|
||||
$stunde=$_GET[stunde];
|
||||
if (isset($_GET[type]))
|
||||
$type=$_GET[type];
|
||||
if (isset($_GET[stg_kz]))
|
||||
$stg_kz=$_GET[stg_kz];
|
||||
if (isset($_GET[sem]))
|
||||
$sem=$_GET[sem];
|
||||
if (isset($_GET[ver]))
|
||||
$ver=$_GET[ver];
|
||||
if (isset($_GET[grp]))
|
||||
$grp=$_GET[grp];
|
||||
if (isset($_GET[einheit]))
|
||||
$einheit=$_GET[einheit];
|
||||
if (isset($_GET[pers_uid]))
|
||||
$pers_uid=$_GET[pers_uid];
|
||||
if (isset($_GET[ort_kurzbz]))
|
||||
$ort_kurzbz=$_GET[ort_kurzbz];
|
||||
|
||||
|
||||
$error_msg='';
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg.='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
$error_msg.=loadVariables($conn,$REMOTE_USER);
|
||||
|
||||
if (!isset($datum_bis))
|
||||
$datum_bis=date('Y-m-d',(mktime(0,0,1,substr($datum,5,2),substr($datum,8),substr($datum,0,4))+86400));
|
||||
|
||||
$lehrstunden=new lehrstunde($conn);
|
||||
$anz=$lehrstunden->load_lehrstunden($type,$datum,$datum_bis,$pers_uid,$ort_kurzbz,$stg_kz,$sem,$ver,$grp,$einheit,$db_stpl_table);
|
||||
if ($anz<0)
|
||||
{
|
||||
$errormsg=$lehrstunden->errormsg;
|
||||
echo "Fehler: ".$errormsg;
|
||||
exit();
|
||||
}
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/lehrstunde';
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:LEHRSTUNDE="<?php echo $rdf_url; ?>/rdf#"
|
||||
>
|
||||
<RDF:Seq about="<?php echo $rdf_url ?>/alle">
|
||||
|
||||
<?php
|
||||
if (is_array($lehrstunden->lehrstunden))
|
||||
foreach ($lehrstunden->lehrstunden as $ls)
|
||||
{
|
||||
//var_dump($ls);
|
||||
//echo $ls->stunde.";";
|
||||
//if ($ls->stunde == $stunde && checkID($ls->stundenplan_id))
|
||||
//{
|
||||
?>
|
||||
<RDF:li>
|
||||
<RDF:Description id="<?php echo $ls->stundenplan_id; ?>" about="<?php echo $rdf_url.'/'. $ls->stundenplan_id; ?>" >
|
||||
<LEHRSTUNDE:id><?php echo $ls->stundenplan_id ?></LEHRSTUNDE:id>
|
||||
<LEHRSTUNDE:datum><?php echo $ls->datum ?></LEHRSTUNDE:datum>
|
||||
<LEHRSTUNDE:stunde><?php echo $ls->stunde ?></LEHRSTUNDE:stunde>
|
||||
<LEHRSTUNDE:unr><?php echo $ls->unr ?></LEHRSTUNDE:unr>
|
||||
<LEHRSTUNDE:ort_kurzbz><?php echo $ls->ort_kurzbz ?></LEHRSTUNDE:ort_kurzbz>
|
||||
<LEHRSTUNDE:lehrfach><?php echo $ls->lehrfach ?></LEHRSTUNDE:lehrfach>
|
||||
<LEHRSTUNDE:lehrfach_bez><?php echo $ls->lehrfach_bez ?></LEHRSTUNDE:lehrfach_bez>
|
||||
<LEHRSTUNDE:lehrform><?php echo $ls->lehrform ?></LEHRSTUNDE:lehrform>
|
||||
<LEHRSTUNDE:lektor><?php echo $ls->lektor_kurzbz ?></LEHRSTUNDE:lektor>
|
||||
<LEHRSTUNDE:semester><?php echo $ls->sem ?></LEHRSTUNDE:semester>
|
||||
<LEHRSTUNDE:verband><?php echo $ls->ver ?></LEHRSTUNDE:verband>
|
||||
<LEHRSTUNDE:gruppe><?php echo $ls->grp ?></LEHRSTUNDE:gruppe>
|
||||
<LEHRSTUNDE:einheit><?php echo $ls->einheit_kurzbz ?></LEHRSTUNDE:einheit>
|
||||
<LEHRSTUNDE:lehrform><?php echo $ls->lehrform ?></LEHRSTUNDE:lehrform>
|
||||
<LEHRSTUNDE:studiengang><?php echo $ls->studiengang ?></LEHRSTUNDE:studiengang>
|
||||
<LEHRSTUNDE:farbe><?php echo $ls->farbe ?></LEHRSTUNDE:farbe>
|
||||
<LEHRSTUNDE:anmerkung><![CDATA[<?php echo $ls->anmerkung ?>]]></LEHRSTUNDE:anmerkung>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
<?php
|
||||
//}
|
||||
}
|
||||
?>
|
||||
|
||||
</RDF:Seq>
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,214 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
* To change the template for this generated file go to
|
||||
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||||
*/
|
||||
// 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");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
// xml
|
||||
echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>';
|
||||
// DAO
|
||||
include_once('../vilesci/config.inc.php');
|
||||
include_once('../include/functions.inc.php');
|
||||
include_once('../include/lehrveranstaltung.class.php');
|
||||
include_once('../include/berechtigung.class.php');
|
||||
|
||||
// Testumgebung
|
||||
if (!isset($REMOTE_USER))
|
||||
$REMOTE_USER='pam';
|
||||
$uid=$REMOTE_USER;
|
||||
$error_msg='';
|
||||
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
$berechtigung=new berechtigung($conn);
|
||||
$berechtigung->getBerechtigungen($uid);
|
||||
$error_msg.=loadVariables($conn,$uid);
|
||||
|
||||
if (isset($semester_aktuell))
|
||||
$studiensemester=$semester_aktuell;
|
||||
else
|
||||
echo $error_msg='studiensemester is not set!';
|
||||
if (isset($_GET['type']))
|
||||
$type=$_GET['type'];
|
||||
else
|
||||
$type='lektor';
|
||||
if (isset($_GET['stg_kz']))
|
||||
$stg_kz=$_GET['stg_kz'];
|
||||
else
|
||||
$stg_kz=0;
|
||||
if (isset($_GET['sem']))
|
||||
$sem=$_GET['sem'];
|
||||
else
|
||||
$sem=0;
|
||||
if (isset($_GET['lektor']))
|
||||
$lektor=$_GET['lektor'];
|
||||
else
|
||||
$lektor=$uid;
|
||||
if (isset($_GET['ver']))
|
||||
$ver=$_GET['ver'];
|
||||
else
|
||||
$ver=null;
|
||||
if (isset($_GET['grp']))
|
||||
$grp=$_GET['grp'];
|
||||
else
|
||||
$grp=null;
|
||||
if (isset($_GET['einheit']))
|
||||
$einheit_kurzbz=$_GET['einheit'];
|
||||
else
|
||||
$einheit_kurzbz=null;
|
||||
|
||||
// LVA holen
|
||||
$lva=array();
|
||||
$lehrveranstaltung=new lehrveranstaltung($conn);
|
||||
if (!$error_msg)
|
||||
$lva=$lehrveranstaltung->getLehrveranstaltungSTPL($db_stpl_table,$studiensemester,$type,$stg_kz,$sem,$lektor,$ver,$grp,$einheit_kurzbz);
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/lehrveranstaltung/';
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:LVA="<?php echo $rdf_url; ?>rdf#">
|
||||
|
||||
<RDF:Seq about="<?php echo $rdf_url.'alle'; ?>">
|
||||
|
||||
<?php
|
||||
//var_dump($lva);
|
||||
//echo $lehrveranstaltung->errormsg;
|
||||
$anz=count($lva);
|
||||
if ($anz>0)
|
||||
foreach ($lva as $l)
|
||||
{
|
||||
$lva_ids='';
|
||||
$lehrverband='';
|
||||
$lvnr='';
|
||||
$lektor='';
|
||||
$einheit='';
|
||||
$i=0;
|
||||
// IDs der Lehrveranstaltungen
|
||||
foreach($l->lehrveranstaltung_id as $lva_id)
|
||||
$lva_ids.='&lva_id'.$i++.'='.$lva_id;
|
||||
// Lektoren
|
||||
$lektor='';
|
||||
$l->lektor=array_unique($l->lektor);
|
||||
sort($l->lektor);
|
||||
foreach($l->lektor as $lv)
|
||||
$lektor.=$lv.' ';
|
||||
// Lehrverbaende
|
||||
$l->lehrverband=array_unique($l->lehrverband);
|
||||
sort($l->lehrverband);
|
||||
foreach($l->lehrverband as $lv)
|
||||
$lehrverband.=$lv.' ';
|
||||
// LVNRs
|
||||
foreach($l->lvnr as $lv)
|
||||
$lvnr.=$lv.' ';
|
||||
foreach($l->einheit as $lv)
|
||||
$einheit.=$lv.' ';
|
||||
// Stundenblockung
|
||||
$stundenblockung='';
|
||||
$l->stundenblockung=array_unique($l->stundenblockung);
|
||||
sort($l->stundenblockung);
|
||||
foreach($l->stundenblockung as $sb)
|
||||
$stundenblockung.=$sb.' ';
|
||||
if (count($l->stundenblockung)>1)
|
||||
$stundenblockung.=' ?';
|
||||
// Start KW
|
||||
$start_kw='';
|
||||
$l->start_kw=array_unique($l->start_kw);
|
||||
sort($l->start_kw);
|
||||
foreach($l->start_kw as $kw)
|
||||
$start_kw.=$kw.' ';
|
||||
if (count($l->start_kw)>1)
|
||||
$start_kw.=' ?';
|
||||
// Wochenrythmus
|
||||
$wochenrythmus='';
|
||||
$l->wochenrythmus=array_unique($l->wochenrythmus);
|
||||
sort($l->wochenrythmus);
|
||||
foreach($l->wochenrythmus as $wr)
|
||||
$wochenrythmus.=$wr.' ';
|
||||
if (count($l->wochenrythmus)>1)
|
||||
$wochenrythmus.=' ?';
|
||||
// Lehrfach
|
||||
$lehrfach='';
|
||||
$l->lehrfach=array_unique($l->lehrfach);
|
||||
sort($l->lehrfach);
|
||||
foreach($l->lehrfach as $lf)
|
||||
$lehrfach.=$lf.' ';
|
||||
if (count($l->lehrfach)>1)
|
||||
$lehrfach.=' ?';
|
||||
// Lehrform
|
||||
$lehrform='';
|
||||
$l->lehrform=array_unique($l->lehrform);
|
||||
sort($l->lehrform);
|
||||
foreach($l->lehrform as $lf)
|
||||
$lehrform.=$lf.' ';
|
||||
if (count($l->lehrform)>1)
|
||||
$lehrform.=' ?';
|
||||
// Semesterstunden
|
||||
$semesterstunden='';
|
||||
$l->semesterstunden=array_unique($l->semesterstunden);
|
||||
sort($l->semesterstunden);
|
||||
foreach($l->semesterstunden as $lf)
|
||||
$semesterstunden.=$lf.' ';
|
||||
if (count($l->semesterstunden)>1)
|
||||
$semesterstunden.=' ?';
|
||||
// Verplant
|
||||
$verplant='';
|
||||
$l->verplant=array_unique($l->verplant);
|
||||
sort($l->verplant);
|
||||
foreach($l->verplant as $lf)
|
||||
$verplant.=$lf.' ';
|
||||
if (count($l->verplant)>1)
|
||||
$verplant.=' ?';
|
||||
// Offene Stunden
|
||||
$offenestunden='';
|
||||
$l->offenestunden=array_unique($l->offenestunden);
|
||||
sort($l->offenestunden);
|
||||
foreach($l->offenestunden as $os)
|
||||
$offenestunden.=$os.' ';
|
||||
if (count($l->offenestunden)>1)
|
||||
$offenestunden.=' ?';
|
||||
|
||||
if ($berechtigung->isBerechtigt('lvaVerplanung',$l->stg_kz[0]) || $berechtigung->isBerechtigt('admin',0) || $berechtigung->isBerechtigt('admin',$l->stg_kz[0]))
|
||||
echo'<RDF:li>
|
||||
<RDF:Description id="lva'.($anz--).'" about="'.$rdf_url.$l->unr.'">
|
||||
<LVA:lvnr>'.$lvnr.'</LVA:lvnr>
|
||||
<LVA:unr>'.$l->unr.'</LVA:unr>
|
||||
<LVA:einheit>'.$einheit.'</LVA:einheit>
|
||||
<LVA:lektor>'.$lektor.'</LVA:lektor>
|
||||
<LVA:lehrfach_nr>'.$l->lehrfach_nr.'</LVA:lehrfach_nr>
|
||||
<LVA:studiengang_kz>'.$l->studiengang_kz.'</LVA:studiengang_kz>
|
||||
<LVA:fachbereich_id>'.$l->fachbereich_id.'</LVA:fachbereich_id>
|
||||
<LVA:semester>'.$l->semester[0].'</LVA:semester>
|
||||
<LVA:verband>'.$l->verband[0].'</LVA:verband>
|
||||
<LVA:gruppe>'.$l->gruppe[0].'</LVA:gruppe>
|
||||
<LVA:einheit>'.$l->einheit[0].'</LVA:einheit>
|
||||
<LVA:raumtyp>'.$l->raumtyp.'</LVA:raumtyp>
|
||||
<LVA:raumtypalternativ>'.$l->raumtypalternativ.'</LVA:raumtypalternativ>
|
||||
<LVA:semesterstunden>'.$semesterstunden.'</LVA:semesterstunden>
|
||||
<LVA:stundenblockung>'.$stundenblockung.'</LVA:stundenblockung>
|
||||
<LVA:wochenrythmus>'.$wochenrythmus.'</LVA:wochenrythmus>
|
||||
<LVA:verplant>'.$verplant.'</LVA:verplant>
|
||||
<LVA:offenestunden>'.$offenestunden.'</LVA:offenestunden>
|
||||
<LVA:start_kw>'.$start_kw.'</LVA:start_kw>
|
||||
<LVA:anmerkung>'.$l->anmerkung[0].'</LVA:anmerkung>
|
||||
<LVA:studiensemester_kurzbz>'.$l->studiensemester_kurzbz.'</LVA:studiensemester_kurzbz>
|
||||
<LVA:lehrfach>'.$lehrfach.'</LVA:lehrfach>
|
||||
<LVA:lehrform>'.$lehrform.'</LVA:lehrform>
|
||||
<LVA:lehrfach_bez><![CDATA['.$l->lehrfach_bez[0].']]></LVA:lehrfach_bez>
|
||||
<LVA:lehrfach_farbe>#'.$l->lehrfach_farbe[0].'</LVA:lehrfach_farbe>
|
||||
<LVA:lva_ids>'.$lva_ids.'</LVA:lva_ids>
|
||||
<LVA:lehrverband>'.$lehrverband.'</LVA:lehrverband>
|
||||
</RDF:Description>
|
||||
</RDF:li>';
|
||||
}
|
||||
?>
|
||||
</RDF:Seq>
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,89 @@
|
||||
|
||||
.stplDetailRow {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
-moz-binding: url('lfvtbinding.xml.php#stplDetailRow');
|
||||
}
|
||||
|
||||
|
||||
.stplDetail {
|
||||
overflow:auto;
|
||||
margin:0px;
|
||||
-moz-binding: url('lfvtbinding.xml.php#stplDetail');
|
||||
}
|
||||
|
||||
|
||||
customMenulist.fachbereich {
|
||||
-moz-binding: url('lfvtbinding.xml.php#fachbereichListe');
|
||||
}
|
||||
|
||||
|
||||
customMenulist.lehrform {
|
||||
-moz-binding: url('lfvtbinding.xml.php#lehrformListe');
|
||||
}
|
||||
|
||||
customMenulist.raumtyp {
|
||||
-moz-binding: url('lfvtbinding.xml.php#raumtypListe');
|
||||
}
|
||||
|
||||
customMenulist.raum {
|
||||
-moz-binding: url('lfvtbinding.xml.php#raumListe');
|
||||
}
|
||||
|
||||
customMenulist.studiengang {
|
||||
-moz-binding: url('lfvtbinding.xml.php#stgListe');
|
||||
}
|
||||
|
||||
customMenulist.lektor {
|
||||
-moz-binding: url('lfvtbinding.xml.php#lektorenListe');
|
||||
}
|
||||
|
||||
customMenulist.einheit {
|
||||
-moz-binding: url('lfvtbinding.xml.php#einheitenListe');
|
||||
}
|
||||
|
||||
customMenulist.lehrfach {
|
||||
-moz-binding: url('lfvtbinding.xml.php#lehrfaecherListe');
|
||||
}
|
||||
|
||||
customMenulist.studiensemester {
|
||||
-moz-binding: url('lfvtbinding.xml.php#studiensemesterListe');
|
||||
}
|
||||
|
||||
tree.lvaTree {
|
||||
-moz-binding: url('lfvtbinding.xml.php#lfvtTree');
|
||||
}
|
||||
|
||||
tree treecol {
|
||||
background-color: #FFFFCC;
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
tree {
|
||||
font-size:9pt;
|
||||
font-family:Arial;
|
||||
}
|
||||
|
||||
box.lvaDetail {
|
||||
-moz-binding: url('lfvtbinding.xml.php#lfvtDetail');
|
||||
}
|
||||
|
||||
box.studentDetail {
|
||||
-moz-binding: url('lfvtbinding.xml.php#studentDetail');
|
||||
}
|
||||
|
||||
label,textbox {
|
||||
font-size:9pt;
|
||||
font-family:Arial;
|
||||
}
|
||||
|
||||
#gridLFVT > rows > row {padding:2px;vertical-align:bottom;}
|
||||
|
||||
|
||||
|
||||
treechildren::-moz-tree-row(selected) { background-color: #FFFFAA; }
|
||||
treechildren::-moz-tree-row(odd) { background-color: #EEEEEE; }
|
||||
treechildren::-moz-tree-row(odd, selected) { background-color: #FFFFAA; }
|
||||
treechildren::-moz-tree-row(even, selected) { background-color: #FFFFAA; }
|
||||
treechildren::-moz-tree-cell-text(selected) { color: #000000; }
|
||||
treechildren::-moz-tree-cell-text(odd, selected) { color: #000000; }
|
||||
@@ -0,0 +1,135 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
* To change the template for this generated file go to
|
||||
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||||
*/
|
||||
// header f�r no cache
|
||||
header("Cache-Control: no-cache, must-revalidate");
|
||||
header("Cache-Control: post-check=0, pre-check=0",false);
|
||||
header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
// xml
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
// DAO
|
||||
include('../vilesci/config.inc.php');
|
||||
include_once('../include/lfvt.class.php');
|
||||
include_once('../include/functions.inc.php');
|
||||
|
||||
// Datenbank Verbindung
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
$uid = get_uid();
|
||||
loadVariables($conn,$uid);
|
||||
// test
|
||||
|
||||
//$einheit_kurzbz='';
|
||||
//$grp='1';
|
||||
//$ver='A';
|
||||
//$sem=5;
|
||||
//$stg_kz=145;
|
||||
|
||||
$einheit_kurzbz=$_GET['einheit'];
|
||||
$grp=$_GET['grp'];
|
||||
$ver=$_GET['ver'];
|
||||
$sem=$_GET['sem'];
|
||||
$stg_kz=$_GET['stg_kz'];
|
||||
$lektor=$_GET['lektor'];
|
||||
|
||||
// LVAs holen
|
||||
$lvaDAO=new lfvt($conn);
|
||||
$lvas=$lvaDAO->getLVAs($einheit_kurzbz, $grp, $ver, $sem, $stg_kz,$lektor,$semester_aktuell);
|
||||
|
||||
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/lva';
|
||||
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:LVA="<?php echo $rdf_url; ?>/rdf#"
|
||||
>
|
||||
|
||||
<?php
|
||||
if (is_array($lvas))
|
||||
{
|
||||
$currentUNR='';
|
||||
$lastUNR='';
|
||||
$nextUNR='';
|
||||
$inSub=false;
|
||||
for ($i=0;$i<count($lvas);$i++)
|
||||
{
|
||||
$lva=$lvas[$i];
|
||||
$currentUNR=$lva->unr;
|
||||
$lastUNR=($i>0?$lvas[$i-1]->unr:'');
|
||||
$nextUNR=($i<(count($lvas)-1)?$lvas[$i+1]->unr:'');
|
||||
$descr.="
|
||||
<RDF:Description id=\"".$lva->lehrveranstaltung_id."\" about=\"".$rdf_url.'/'.$lva->lehrveranstaltung_id."\" >
|
||||
<LVA:lvnr>".$lva->lvnr."</LVA:lvnr>
|
||||
<LVA:unr>".$lva->unr."</LVA:unr>
|
||||
<LVA:einheit_kurzbz>".$lva->einheit_kurzbz."</LVA:einheit_kurzbz>
|
||||
<LVA:lektor>".$lva->lektor."</LVA:lektor>
|
||||
<LVA:lektorPrettyPrint>".utf8_encode($lva->lektorPrettyPrint)."</LVA:lektorPrettyPrint>
|
||||
<LVA:lehrfach_nr>".$lva->lehrfach_nr."</LVA:lehrfach_nr>
|
||||
<LVA:studiengang_kz>".$lva->studiengang_kz."</LVA:studiengang_kz>
|
||||
<LVA:fachbereich_id>".$lva->fachbereich_id."</LVA:fachbereich_id>
|
||||
<LVA:semester>".$lva->semester."</LVA:semester>".
|
||||
(strlen(trim($lva->verband))>0?" <LVA:verband>".$lva->verband."</LVA:verband>":"").
|
||||
($lva->gruppe>0?" <LVA:gruppe>".$lva->gruppe."</LVA:gruppe>":"")."
|
||||
<LVA:raumtyp>".$lva->raumtyp."</LVA:raumtyp>
|
||||
<LVA:raumtypalternativ>".$lva->raumtypalternativ."</LVA:raumtypalternativ>
|
||||
<LVA:semesterstunden>".$lva->semesterstunden."</LVA:semesterstunden>
|
||||
<LVA:stundenblockung>".$lva->stundenblockung."</LVA:stundenblockung>
|
||||
<LVA:wochenrythmus>".$lva->wochenrythmus."</LVA:wochenrythmus>
|
||||
<LVA:start_kw>".$lva->start_kw."</LVA:start_kw>
|
||||
<LVA:anmerkung>".$lva->anmerkung."</LVA:anmerkung>
|
||||
<LVA:studiensemester_kurzbz>".$lva->studiensemester_kurzbz."</LVA:studiensemester_kurzbz>
|
||||
<LVA:lehrfach><![CDATA[".utf8_encode($lva->lehrfach)."]]></LVA:lehrfach>
|
||||
<LVA:lehrform>".$lva->lehrform."</LVA:lehrform>
|
||||
<LVA:dbID>".$lva->lehrveranstaltung_id."</LVA:dbID>
|
||||
</RDF:Description>";
|
||||
|
||||
$subClose=false;
|
||||
if (($lastUNR!=$currentUNR && $currentUNR==$nextUNR) || count($lvas)==$i) {
|
||||
$inSub=true;
|
||||
$hier.="
|
||||
<!-- ********************************* -->
|
||||
<RDF:li>
|
||||
<RDF:Seq about=\"".$rdf_url.'/'.$lva->lehrveranstaltung_id."\" >";
|
||||
}
|
||||
|
||||
if ($nextUNR!=$currentUNR && $inSub) {
|
||||
$inSub=false;
|
||||
$subClose=true;
|
||||
$hier.="
|
||||
<RDF:li resource=\"".$rdf_url.'/'.$lva->lehrveranstaltung_id."\" />
|
||||
</RDF:Seq>
|
||||
</RDF:li>
|
||||
<!-- ********************************* -->";
|
||||
}
|
||||
|
||||
if (($inSub && $lastUNR==$currentUNR) || (count($lvas)==1) || (!$inSub && $currentUNR!=nextUNR && !$subClose)) {
|
||||
$hier.="
|
||||
<RDF:li resource=\"".$rdf_url.'/'.$lva->lehrveranstaltung_id."\" /> <!-- insub -->";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
$hier="
|
||||
<RDF:Seq about=\"".$rdf_url."/liste\">".$hier."
|
||||
</RDF:Seq>";
|
||||
echo $descr;
|
||||
echo $hier;
|
||||
//print_r($lvas);
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
// *****************************
|
||||
// Create/Update/Delete
|
||||
// der Lehrfachverteilung
|
||||
// *****************************
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
include_once('../include/lfvt.class.php');
|
||||
|
||||
// Datenbank Verbindung
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
$lvaDAO=new lfvt($conn);
|
||||
|
||||
if ($_GET['do']=='create' || ($_GET['do']=='update')) {
|
||||
|
||||
$lvaDAO->lvnr=$_GET['lvnr'];
|
||||
$lvaDAO->unr=$_GET['unr'];
|
||||
$lvaDAO->einheit_kurzbz=$_GET['einheit_kurzbz'];
|
||||
$lvaDAO->lektor=$_GET['lektor'];
|
||||
$lvaDAO->lehrfach_nr=$_GET['lehrfach_nr'];
|
||||
$lvaDAO->studiengang_kz=$_GET['studiengang_kz'];
|
||||
$lvaDAO->fachbereich_id=$_GET['fachbereich_id'];
|
||||
$lvaDAO->semester=$_GET['semester'];
|
||||
$lvaDAO->verband=$_GET['verband'];
|
||||
$lvaDAO->gruppe=$_GET['gruppe'];
|
||||
$lvaDAO->raumtyp=$_GET['raumtyp'];
|
||||
if (isset($_GET['raumtypalternativ'])) $lvaDAO->raumtypalternativ=$_GET['raumtypalternativ'];
|
||||
if (isset($_GET['semesterstunden'])) $lvaDAO->semesterstunden=$_GET['semesterstunden'];
|
||||
if (isset($_GET['stundenblockung'])) $lvaDAO->stundenblockung=$_GET['stundenblockung'];
|
||||
if (isset($_GET['wochenrythmus'])) $lvaDAO->wochenrythmus=$_GET['wochenrythmus'];
|
||||
if (isset($_GET['start_kw'])) $lvaDAO->start_kw=$_GET['start_kw'];
|
||||
if (isset($_GET['anmerkung'])) $lvaDAO->anmerkung=$_GET['anmerkung'];
|
||||
if (isset($_GET['studiensemester_kurzbz'])) $lvaDAO->studiensemester_kurzbz=$_GET['studiensemester_kurzbz'];
|
||||
if (isset($_GET['lehrform'])) $lvaDAO->lehrform=$_GET['lehrform'];
|
||||
|
||||
if ($_GET['do']=='create') {
|
||||
// LVA neu anlegen
|
||||
$lvaDAO->new=true;
|
||||
if ($lvaDAO->save()) echo 'ok';
|
||||
else echo $lvaDAO->errormsg;
|
||||
//echo "NEU";
|
||||
|
||||
} else if ($_GET['do']=='update') {
|
||||
// LVA aktualisieren
|
||||
$lvaDAO->lehrveranstaltung_id=$_GET['lehrveranstaltung_id'];
|
||||
$lvaDAO->new=false;
|
||||
if ($lvaDAO->save()) echo 'ok';
|
||||
else echo $lvaDAO->errormsg;
|
||||
}
|
||||
|
||||
} else if ($_GET['do']=='delete') {
|
||||
// LVA löschen
|
||||
$lvaDAO->new=false;
|
||||
$lvaDAO->lehrveranstaltung_id=$_GET['lehrveranstaltung_id'];
|
||||
if ($lvaDAO->lehrveranstaltung_id>0) {
|
||||
$lvaDAO->delete();
|
||||
}
|
||||
if ($lvaDAO->save()) echo 'ok';
|
||||
else echo $lvaDAO->errormsg;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,968 @@
|
||||
<?php
|
||||
include('../vilesci/config.inc.php');
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>';
|
||||
?>
|
||||
<bindings xmlns="http://www.mozilla.org/xbl"
|
||||
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
xmlns:xbl="http://www.mozilla.org/xbl"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
>
|
||||
|
||||
|
||||
<binding id="stplDetail">
|
||||
<content>
|
||||
|
||||
<xul:vbox style="margin:0px;padding:0px;" flex="1">
|
||||
|
||||
<xul:hbox style="background:#eeeeee;margin:0px;padding:2px" flex="0">
|
||||
<xul:label value="Details" style="font-size:12pt;font-weight:bold;margin-top:5px;" flex="1" />
|
||||
<xul:button id="btnLFVTSave" label="speichern" oncommand="parentNode.parentNode.parentNode.saveData();"/>
|
||||
</xul:hbox>
|
||||
|
||||
|
||||
|
||||
<xul:grid id="gridLFVT" flex="1" datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/tempus/lva/liste"
|
||||
style="padding:0px;"
|
||||
>
|
||||
<xul:columns >
|
||||
<xul:column />
|
||||
</xul:columns>
|
||||
<xul:rows>
|
||||
<xul:row>
|
||||
<xul:box id="stplDetailRow1" class="stplDetailRow" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:box id="stplDetailRow2" class="stplDetailRow" />
|
||||
</xul:row>
|
||||
</xul:rows>
|
||||
</xul:grid>
|
||||
|
||||
</xul:vbox>
|
||||
|
||||
</content>
|
||||
</binding>
|
||||
|
||||
|
||||
|
||||
<binding id="stplDetailRow">
|
||||
<resources>
|
||||
<stylesheet src="lfvt.css" />
|
||||
</resources>
|
||||
|
||||
<content>
|
||||
|
||||
<xul:grid id="gridLFVT" flex="1" datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/tempus/lva/liste"
|
||||
style="padding:0px;border:1px solid #000000"
|
||||
>
|
||||
<xul:columns >
|
||||
<xul:column />
|
||||
<xul:column style="min-width:240px" />
|
||||
<xul:column />
|
||||
<xul:column style="min-width:240px" />
|
||||
</xul:columns>
|
||||
<xul:rows>
|
||||
<!-- fehlt hier die eindeutige ID ? -->
|
||||
<xul:row >
|
||||
<xul:label value="Datum" />
|
||||
<xul:textbox id="gridSTPLDatum" maxlength="20" onchange="document.getBindingParent(this).lvnr=this.value"/>
|
||||
|
||||
<xul:label value="Stunde" />
|
||||
<xul:textbox id="gridSTPLStunde" onchange="document.getBindingParent(this).unr=this.value;" />
|
||||
</xul:row>
|
||||
|
||||
|
||||
<xul:row >
|
||||
<xul:label value="LVNR" />
|
||||
<xul:textbox id="gridSTPLLVNR" maxlength="20" onchange="document.getBindingParent(this).lvnr=this.value"/>
|
||||
|
||||
<xul:label value="UNR" />
|
||||
<xul:textbox id="gridSTPLNR" onchange="document.getBindingParent(this).unr=this.value;" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Einheit" />
|
||||
<xul:customMenulist id="gridSTPLEinheit" class="einheit" oncommand="document.getBindingParent(this).einheit=document.getAnonymousNodes(this)[0].value" />
|
||||
|
||||
<xul:label value="Lektor" />
|
||||
<xul:customMenulist id="gridSTPLLektor" class="lektor" flex="1" oncommand="document.getBindingParent(this).lektor=document.getAnonymousNodes(this)[0].value" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Lehrfach" />
|
||||
<xul:customMenulist id="gridSTPLLehrfach" class="lehrfach" oncommand="document.getBindingParent(this).lehrfach=document.getAnonymousNodes(this)[0].value" />
|
||||
|
||||
<xul:label value="Studiengang" />
|
||||
<!--<xul:menulist id="gridLFVTStudiengang" name="stgListe" class="studiengang" maxwidth="100px" /> -->
|
||||
<xul:customMenulist id="gridSTPLStudiengang" class="studiengang" oncommand="document.getBindingParent(this).studiengang=document.getAnonymousNodes(this)[0].value" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Fachbereich" />
|
||||
<xul:customMenulist id="gridSTPLFachbereich" class="fachbereich" oncommand="document.getBindingParent(this).fachbereich=document.getAnonymousNodes(this)[0].value" />
|
||||
|
||||
<xul:label value="Semester" />
|
||||
<xul:textbox id="gridSTPLSemester" flex="1" onchange="document.getBindingParent(this).semester=this.value" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Verband" />
|
||||
<xul:textbox id="gridSTPLVerband" flex="1" onchange="document.getBindingParent(this).verband=this.value" />
|
||||
|
||||
<xul:label value="Gruppe" />
|
||||
<xul:textbox id="gridSTPLGruppe" flex="1" onchange="document.getBindingParent(this).gruppe=this.value" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Raum" />
|
||||
<xul:customMenulist id="gridSTPLRaum" class="raum" flex="1" oncommand="document.getBindingParent(this).raumtyp=document.getAnonymousNodes(this)[0].value" />
|
||||
|
||||
|
||||
</xul:row>
|
||||
|
||||
</xul:rows>
|
||||
</xul:grid>
|
||||
|
||||
|
||||
|
||||
</content>
|
||||
</binding>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<binding id="lfvtDetail">
|
||||
<content>
|
||||
|
||||
<xul:vbox style="margin:0px;padding:0px;" flex="1">
|
||||
|
||||
<xul:hbox style="background:#eeeeee;margin:0px;padding:2px" flex="1">
|
||||
<xul:label value="Details" style="font-size:12pt;font-weight:bold;margin-top:5px;" flex="1" />
|
||||
<xul:button id="btnLFVTSave" label="speichern" oncommand="parentNode.parentNode.parentNode.saveData();"/>
|
||||
</xul:hbox>
|
||||
|
||||
<xul:grid id="gridLFVT" flex="1" datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/tempus/lva/liste"
|
||||
style="padding:5px;"
|
||||
>
|
||||
<xul:columns >
|
||||
<xul:column />
|
||||
<xul:column style="min-width:240px" />
|
||||
<xul:column />
|
||||
<xul:column style="min-width:240px" />
|
||||
</xul:columns>
|
||||
<xul:rows>
|
||||
<!-- fehlt hier die eindeutige ID ? -->
|
||||
<xul:row >
|
||||
<xul:label value="LVNR" />
|
||||
<xul:textbox id="gridLFVTLVNR" maxlength="20" onchange="document.getBindingParent(this).lvnr=this.value"/>
|
||||
|
||||
<xul:label value="UNR" />
|
||||
<xul:textbox id="gridLFVTUNR" onchange="document.getBindingParent(this).unr=this.value;" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Einheit" />
|
||||
<xul:customMenulist id="gridLFVTEinheit" class="einheit" oncommand="document.getBindingParent(this).einheit=document.getAnonymousNodes(this)[0].value" />
|
||||
|
||||
<xul:label value="Lektor" />
|
||||
<xul:customMenulist id="gridLFVTLektor" class="lektor" flex="1" oncommand="document.getBindingParent(this).lektor=document.getAnonymousNodes(this)[0].value" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Lehrfach" />
|
||||
<xul:customMenulist id="gridLFVTLehrfach" class="lehrfach" oncommand="document.getBindingParent(this).lehrfach=document.getAnonymousNodes(this)[0].value" />
|
||||
|
||||
<xul:label value="Studiengang" />
|
||||
<!-- <xul:menulist id="gridLFVTStudiengang" name="stgListe" class="studiengang" maxwidth="100px" /> -->
|
||||
<xul:customMenulist id="gridLFVTStudiengang" class="studiengang" oncommand="document.getBindingParent(this).studiengang=document.getAnonymousNodes(this)[0].value" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Fachbereich" />
|
||||
<xul:customMenulist id="gridLFVTFachbereich" class="fachbereich" oncommand="document.getBindingParent(this).fachbereich=document.getAnonymousNodes(this)[0].value" />
|
||||
|
||||
<xul:label value="Semester" />
|
||||
<xul:textbox id="gridLFVTSemester" flex="1" onchange="document.getBindingParent(this).semester=this.value" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Verband" />
|
||||
<xul:textbox id="gridLFVTVerband" flex="1" onchange="document.getBindingParent(this).verband=this.value" />
|
||||
|
||||
<xul:label value="Gruppe" />
|
||||
<xul:textbox id="gridLFVTGruppe" flex="1" onchange="document.getBindingParent(this).gruppe=this.value" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Raumtyp" />
|
||||
<xul:customMenulist id="gridLFVTRaumtyp" class="raumtyp" flex="1" oncommand="document.getBindingParent(this).raumtyp=document.getAnonymousNodes(this)[0].value" />
|
||||
|
||||
<xul:label value="Raumtyp alternativ" />
|
||||
<xul:customMenulist id="gridLFVTRaumtypAlt" class="raumtyp" flex="1" oncommand="document.getBindingParent(this).raumtyp_alt=document.getAnonymousNodes(this)[0].value" />
|
||||
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
|
||||
<xul:label value="Semesterstunden" />
|
||||
<xul:textbox id="gridLFVTSemesterstunden" onchange="document.getBindingParent(this).semesterstunden=this.value"/>
|
||||
|
||||
<xul:label value="Stundenblockung" />
|
||||
<xul:textbox id="gridLFVTStundenblockung" onchange="document.getBindingParent(this).stundenblockung=this.value" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Wochenrythmus" />
|
||||
<xul:textbox id="gridLFVTWochenrythmus" onchange="document.getBindingParent(this).wochenrythmus=this.value" />
|
||||
|
||||
<xul:label value="Start KW" />
|
||||
<xul:textbox id="gridLFVTStart_kw" onchange="document.getBindingParent(this).start_kw=this.value" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Studiensemester" />
|
||||
<xul:textbox id="gridLFVTStudiensemester" onchange="document.getBindingParent(this).studiensemester=this.value" />
|
||||
|
||||
<xul:label value="Anmerkung" />
|
||||
<xul:textbox id="gridLFVTAnmerkung" onchange="document.getBindingParent(this).anmerkung=this.value" />
|
||||
<!--
|
||||
<xul:label value="ECTS" />
|
||||
<xul:textbox id="gridLFVTECTS" onchange="parentNode.parentNode.parentNode.parentNode.ects=this.value" />
|
||||
-->
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Lehrform" />
|
||||
<xul:customMenulist id="gridLFVTLehrform" class="lehrform" flex="1" oncommand="document.getBindingParent(this).lehrform=document.getAnonymousNodes(this)[0].value" />
|
||||
</xul:row>
|
||||
</xul:rows>
|
||||
</xul:grid>
|
||||
|
||||
</xul:vbox>
|
||||
|
||||
</content>
|
||||
<implementation>
|
||||
<constructor>
|
||||
this.gridLFVTLVNR=document.getElementById('gridLFVTLVNR');
|
||||
this.gridLFVTUNR=document.getElementById('gridLFVTUNR');
|
||||
this.gridLFVTEinheit=document.getElementById('gridLFVTEinheit');
|
||||
this.gridLFVTLektor=document.getElementById('gridLFVTLektor');
|
||||
this.gridLFVTLehrfach=document.getElementById('gridLFVTLehrfach');
|
||||
this.gridLFVTStudiengang=document.getElementById('gridLFVTStudiengang');
|
||||
this.gridLFVTFachbereich=document.getElementById('gridLFVTFachbereich');
|
||||
this.gridLFVTSemester=document.getElementById('gridLFVTSemester');
|
||||
this.gridLFVTVerband=document.getElementById('gridLFVTVerband');
|
||||
this.gridLFVTGruppe=document.getElementById('gridLFVTGruppe');
|
||||
this.gridLFVTRaumtyp=document.getElementById('gridLFVTRaumtyp');
|
||||
this.gridLFVTRaumtypAlt=document.getElementById('gridLFVTRaumtypAlt');
|
||||
this.gridLFVTSemesterstunden=document.getElementById('gridLFVTSemesterstunden');
|
||||
this.gridLFVTStundenblockung=document.getElementById('gridLFVTStundenblockung');
|
||||
this.gridLFVTWochenrythmus=document.getElementById('gridLFVTWochenrythmus');
|
||||
this.gridLFVTStart_kw=document.getElementById('gridLFVTStart_kw');
|
||||
this.gridLFVTAnmerkung=document.getElementById('gridLFVTAnmerkung');
|
||||
this.gridLFVTStudiensemester=document.getElementById('gridLFVTStudiensemester');
|
||||
this.gridLFVTLehrform=document.getElementById('gridLFVTLehrform');
|
||||
<!-- this.gridLFVTECTS=document.getElementById('gridLFVTECTS'); -->
|
||||
</constructor>
|
||||
<!-- Grid-Felder -->
|
||||
<field name="gridLFVTLVNR">null</field>
|
||||
<field name="gridLFVTUNR">null</field>
|
||||
<field name="gridLFVTEinheit">null</field>
|
||||
<field name="gridLFVTLektor">null</field>
|
||||
<field name="gridLFVTLehrfach">null</field>
|
||||
<field name="gridLFVTStudiengang">null</field>
|
||||
<field name="gridLFVTFachbereich">null</field>
|
||||
<field name="gridLFVTSemester">null</field>
|
||||
<field name="gridLFVTVerband">null</field>
|
||||
<field name="gridLFVTGruppe">null</field>
|
||||
<field name="gridLFVTRaumtyp">null</field>
|
||||
<field name="gridLFVTRaumtypAlt">null</field>
|
||||
<field name="gridLFVTSemesterstunden">null</field>
|
||||
<field name="gridLFVTStundenblockung">null</field>
|
||||
<field name="gridLFVTWochenrythmus">null</field>
|
||||
<field name="gridLFVTStart_kw">null</field>
|
||||
<field name="gridLFVTAnmerkung">null</field>
|
||||
<field name="gridLFVTStudiensemester">null</field>
|
||||
<field name="gridLFVTLehrform">null</field>
|
||||
<!-- <field name="gridLFVTECTS">null</field> -->
|
||||
<!-- neuer Datensatz -->
|
||||
<field name="_new">false</field>
|
||||
<!-- aktuelles Value Objekt der Lehrveranstaltung -->
|
||||
<field name="currentLVA">null</field>
|
||||
<!-- neuer Datensatz -->
|
||||
<property name="isNew" onget="return this._new" onset="this._new=val;return val;" />
|
||||
<!-- LVA-Felder -->
|
||||
<property name="lvnr" onget="return this.currentLVA.lvnr;" >
|
||||
<setter>
|
||||
if (isNaN(val)) {
|
||||
alert('LVNR muss eine Zahl sein!');
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.lvnr=null;
|
||||
} else {
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.lvnr=val;
|
||||
}
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<property name="unr" onget="return this.currentLVA.unr;" >
|
||||
<setter>
|
||||
if (isNaN(val)) {
|
||||
alert('UNR muss eine Zahl sein!');
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.unr=null;
|
||||
} else {
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.unr=val;
|
||||
}
|
||||
alert('unr:'+val);
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<!-- einheit -->
|
||||
<property name="einheit" onget="return this.currentLVA.einheit;" >
|
||||
<setter>
|
||||
//alert('property-setter: val='+val);
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.einheit=val;
|
||||
//this.showCurrentLVA();
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<!-- lektor -->
|
||||
<property name="lektor" onget="return this.currentLVA.lektor;" >
|
||||
<setter>
|
||||
//alert('property-setter: val='+val);
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.lektor=val;
|
||||
//this.showCurrentLVA();
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<!-- lehrfach -->
|
||||
<property name="lehrfach" onget="return this.currentLVA.lehrfach;" >
|
||||
<setter>
|
||||
//alert('property-setter: val='+val);
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.lehrfach=val;
|
||||
//this.showCurrentLVA();
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<!-- studiengang -->
|
||||
<property name="studiengang" onget="return this.currentLVA.studiengang;" >
|
||||
<setter>
|
||||
//alert('property-setter: val='+val);
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.studiengang=val;
|
||||
//this.showCurrentLVA();
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<!-- fachbereich -->
|
||||
<property name="fachbereich" onget="return this.currentLVA.fachbereich;" >
|
||||
<setter>
|
||||
//alert('fachbereich-setter: val='+val);
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.fachbereich=val;
|
||||
//this.showCurrentLVA();
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<!-- raumtyp -->
|
||||
<property name="raumtyp" onget="return this.currentLVA.raumtyp;" >
|
||||
<setter>
|
||||
//alert('property-setter: val='+val);
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.raumtyp=val;
|
||||
//this.showCurrentLVA();
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<!-- raumtyp_alt -->
|
||||
<property name="raumtyp_alt" onget="return this.currentLVA.raumtyp_alt;" >
|
||||
<setter>
|
||||
//alert('property-setter: val='+val);
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.raumtyp_alt=val;
|
||||
//this.showCurrentLVA();
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
|
||||
<property name="semester" onget="return this.currentLVA.semester;" >
|
||||
<setter>
|
||||
if (isNaN(val)) {
|
||||
alert('Semester muss eine Zahl sein!');
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.unr=null;
|
||||
} else {
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.semester=val;
|
||||
}
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<property name="verband" onget="return this.currentLVA.verband;" >
|
||||
<setter>
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.verband=val;
|
||||
}
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<property name="gruppe" onget="return this.currentLVA.gruppe;" >
|
||||
<setter>
|
||||
if (isNaN(val)) {
|
||||
alert('Gruppe muss eine Zahl sein!');
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.gruppe=null;
|
||||
} else {
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.gruppe=val;
|
||||
}
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<property name="semesterstunden" onget="return this.currentLVA.semesterstunden;" >
|
||||
<setter>
|
||||
if (isNaN(val)) {
|
||||
alert('Semesterstunden muss eine Zahl sein!');
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.semesterstunden=null;
|
||||
} else {
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.semesterstunden=val;
|
||||
}
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<property name="stundenblockung" onget="return this.currentLVA.stundenblockung;" >
|
||||
<setter>
|
||||
if (isNaN(val)) {
|
||||
alert('Stundenblockung muss eine Zahl sein!');
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.stundenblockung=null;
|
||||
} else {
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.stundenblockung=val;
|
||||
}
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<property name="wochenrythmus" onget="return this.currentLVA.wochenrythmus;" >
|
||||
<setter>
|
||||
if (isNaN(val)) {
|
||||
alert('Wochenrythmus muss eine Zahl sein!');
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.wochenrythmus=null;
|
||||
} else {
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.wochenrythmus=val;
|
||||
}
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<property name="start_kw" onget="return this.currentLVA.start_kw;" >
|
||||
<setter>
|
||||
if (isNaN(val)) {
|
||||
alert('start_kw muss eine Zahl sein!');
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.start_kw=null;
|
||||
} else {
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.start_kw=val;
|
||||
}
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<property name="studiensemester" onget="return this.currentLVA.studiensemester;" >
|
||||
<setter>
|
||||
// todo: Validation Check
|
||||
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.studiensemester=val;
|
||||
//this.showCurrentLVA();
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<property name="lehrform" onget="return this.currentLVA.lehrform;" >
|
||||
<setter>
|
||||
// todo: Validation Check
|
||||
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.lehrform=val;
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<property name="anmerkung" onget="return this.currentLVA.anmerkung;" >
|
||||
<setter>
|
||||
if (this.currentLVA!=null)
|
||||
this.currentLVA.anmerkung=val;
|
||||
|
||||
return val;
|
||||
</setter>
|
||||
</property>
|
||||
<!-- Daten speichern -->
|
||||
<method name="saveData">
|
||||
<body><![CDATA[
|
||||
var req = new phpRequest('lfvtCUD.php','pam','pam');
|
||||
if (this.isNew) {
|
||||
req.add('do','create');
|
||||
} else {
|
||||
req.add('do','update');
|
||||
}
|
||||
req.add('lehrveranstaltung_id',this.currentLVA.id);
|
||||
if (this.currentLVA.unr!=null) req.add('unr',this.currentLVA.unr);
|
||||
if (this.currentLVA.lvnr!=null) req.add('lvnr',this.currentLVA.lvnr);
|
||||
if (this.currentLVA.einheit!=null) req.add('einheit_kurzbz',this.currentLVA.einheit);
|
||||
if (this.currentLVA.lektor!=null) req.add('lektor',this.currentLVA.lektor);
|
||||
if (this.currentLVA.lehrfach!=null) req.add('lehrfach_nr',this.currentLVA.lehrfach);
|
||||
if (this.currentLVA.studiengang!=null) req.add('studiengang_kz',this.currentLVA.studiengang);
|
||||
if (this.currentLVA.fachbereich!=null) req.add('fachbereich_id',this.currentLVA.fachbereich);
|
||||
if (this.currentLVA.semester!=null) req.add('semester',this.currentLVA.semester);
|
||||
if (this.currentLVA.verband!=null) req.add('verband',this.currentLVA.verband);
|
||||
if (this.currentLVA.gruppe!=null) req.add('gruppe',this.currentLVA.gruppe);
|
||||
if (this.currentLVA.raumtyp!=null) req.add('raumtyp',this.currentLVA.raumtyp);
|
||||
if (this.currentLVA.raumtyp_alt!=null) req.add('raumtypalternativ',this.currentLVA.raumtyp_alt);
|
||||
if (this.currentLVA.semesterstunden!=null) req.add('semesterstunden',this.currentLVA.semesterstunden);
|
||||
if (this.currentLVA.stundenblockung!=null) req.add('stundenblockung',this.currentLVA.stundenblockung);
|
||||
if (this.currentLVA.wochenrythmus!=null) req.add('wochenrythmus',this.currentLVA.wochenrythmus);
|
||||
if (this.currentLVA.start_kw!=null) req.add('start_kw',this.currentLVA.start_kw);
|
||||
if (this.currentLVA.studiensemester!=null) req.add('studiensemester_kurzbz',this.currentLVA.studiensemester);
|
||||
if (this.currentLVA.lehrform!=null) req.add('lehrform',this.currentLVA.lehrform);
|
||||
|
||||
var response = req.execute();
|
||||
if (response!='ok') {
|
||||
alert(response);
|
||||
} else {
|
||||
if (this.currentLVA.isNew) this.currentLVA.isNew=false;
|
||||
}
|
||||
]]>
|
||||
</body>
|
||||
</method>
|
||||
<method name="showCurrentLVA">
|
||||
<body>
|
||||
alert('CurrentLVA: studiensemester='+this.currentLVA.studiensemester+'; einheit='+this.currentLVA.einheit);
|
||||
</body>
|
||||
</method>
|
||||
<!-- Felder zuruecksetzen -->
|
||||
<method name="reset">
|
||||
<body><![CDATA[
|
||||
this.gridLFVTLVNR.value=null;
|
||||
this.gridLFVTUNR.value=null;
|
||||
this.gridLFVTEinheit.currentValue=null;
|
||||
this.gridLFVTLektor.currentValue=null;
|
||||
this.gridLFVTLehrfach.currentValue=null;
|
||||
this.gridLFVTStudiengang.currentValue=null;
|
||||
this.gridLFVTFachbereich.currentValue=null;
|
||||
this.gridLFVTSemester.value=null;
|
||||
this.gridLFVTVerband.value=null;
|
||||
this.gridLFVTGruppe.value=null;
|
||||
this.gridLFVTRaumtyp.currentValue=null;
|
||||
this.gridLFVTRaumtypAlt.currentValue=null;
|
||||
this.gridLFVTSemesterstunden.value=null;
|
||||
this.gridLFVTStundenblockung.value=null;
|
||||
this.gridLFVTWochenrythmus.value=null;
|
||||
this.gridLFVTStart_kw.value=null;
|
||||
this.gridLFVTAnmerkung.value=null;
|
||||
this.gridLFVTStudiensemester.value=null;
|
||||
this.gridLFVTLehrform.value=null;
|
||||
this.currentLVA=null;
|
||||
]]>
|
||||
</body>
|
||||
</method>
|
||||
<!-- Value Objekt -->
|
||||
<method name="setLVA">
|
||||
<parameter name="lva"/>
|
||||
<body><![CDATA[
|
||||
// Value Object
|
||||
this.currentLVA=lva;
|
||||
//alert('unr='+this.currentLVA.unr);
|
||||
// LVNR
|
||||
this.gridLFVTLVNR.value=this.currentLVA.lvnr;
|
||||
// UNR
|
||||
this.gridLFVTUNR.value=this.currentLVA.unr;
|
||||
// Einheit
|
||||
this.gridLFVTEinheit.currentValue=this.currentLVA.einheit;
|
||||
// Lektor setzen
|
||||
this.gridLFVTLektor.currentValue=this.currentLVA.lektor;
|
||||
// Lehrfach
|
||||
this.gridLFVTLehrfach.currentValue=this.currentLVA.lehrfach;
|
||||
//alert(this.currentLVA.lehrfach);
|
||||
// Studiengang
|
||||
this.gridLFVTStudiengang.currentValue=this.currentLVA.studiengang;
|
||||
//alert('stg='+this.currentLVA.studiengang);
|
||||
// Fachbereich
|
||||
this.gridLFVTFachbereich.currentValue=this.currentLVA.fachbereich;
|
||||
// Semester
|
||||
this.gridLFVTSemester.value=this.currentLVA.semester;
|
||||
// Verband
|
||||
this.gridLFVTVerband.value=this.currentLVA.verband;
|
||||
// Gruppe
|
||||
this.gridLFVTGruppe.value=this.currentLVA.gruppe;
|
||||
// Raumtyp
|
||||
this.gridLFVTRaumtyp.currentValue=this.currentLVA.raumtyp;
|
||||
// Raumtyp alternativ
|
||||
this.gridLFVTRaumtypAlt.currentValue=this.currentLVA.raumtyp_alt;
|
||||
//alert('alt:'+this.currentLVA.raumtyp_alt);
|
||||
// semesterstunden
|
||||
this.gridLFVTSemesterstunden.value=this.currentLVA.semesterstunden;
|
||||
// stundenblockung
|
||||
this.gridLFVTStundenblockung.value=this.currentLVA.stundenblockung;
|
||||
// Wochenrythmus
|
||||
this.gridLFVTWochenrythmus.value=this.currentLVA.wochenrythmus;
|
||||
// Start KW
|
||||
this.gridLFVTStart_kw.value=this.currentLVA.start_kw;
|
||||
// Studiensemester
|
||||
this.gridLFVTStudiensemester.value=this.currentLVA.studiensemester;
|
||||
// Lehrform
|
||||
this.gridLFVTLehrform.currentValue=this.currentLVA.lehrform;
|
||||
|
||||
|
||||
|
||||
// ECTS
|
||||
// ist bei lehrfach
|
||||
]]>
|
||||
</body>
|
||||
</method>
|
||||
</implementation>
|
||||
</binding>
|
||||
|
||||
<binding id="studentDetail">
|
||||
<content>
|
||||
<xul:hbox flex="1">
|
||||
<xul:grid id="gridStudenten" style="overflow:auto;margin:4px;" flex="1" datasources="rdf:null" ref="http://www.technikum-wien.at/tempus/studenten/liste">
|
||||
<xul:columns >
|
||||
<xul:column flex="1"/>
|
||||
<xul:column flex="5"/>
|
||||
<xul:column flex="3"/>
|
||||
</xul:columns>
|
||||
<xul:rows>
|
||||
<xul:row>
|
||||
<xul:label value="UID" />
|
||||
<xul:textbox id="gridStudentenUID" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Matrikelnummer" />
|
||||
<xul:textbox id="gridStudentenMatrikelnummer" onchange="currentStudent.updateData();" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Titel" />
|
||||
<xul:textbox id="gridStudentenTitel" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Vorname" />
|
||||
<xul:textbox id="gridStudentenVornamen" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Nachname" />
|
||||
<xul:textbox id="gridStudentenNachname" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Geburtsdatum" />
|
||||
<xul:textbox id="gridStudentenGeburtsdatum" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Geburtsort" />
|
||||
<xul:textbox id="gridStudentenGeburtsort" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Geburtszeit" />
|
||||
<xul:textbox id="gridStudentenGeburtszeit" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Homepage" />
|
||||
<xul:textbox id="gridStudentenHomepage" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Email" />
|
||||
<xul:textbox id="gridStudentenEmail" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Semester" />
|
||||
<xul:textbox id="gridStudentenSemester" />
|
||||
<xul:spacer flex="5" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Verband" />
|
||||
<xul:textbox id="gridStudentenVerband" />
|
||||
<xul:spacer flex="5" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Gruppe" />
|
||||
<xul:textbox id="gridStudentenGruppe" />
|
||||
<xul:spacer flex="5" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Studiengang" />
|
||||
<xul:customMenulist id="gridStudentenStgBezeichnung" class="studiengang" />
|
||||
<xul:spacer flex="5" />
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Aktiv" />
|
||||
<xul:checkbox id="gridStudentenAktiv" checked="true" />
|
||||
<xul:spacer flex="5" />
|
||||
</xul:row>
|
||||
</xul:rows>
|
||||
|
||||
</xul:grid>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
|
||||
</binding>
|
||||
|
||||
|
||||
<binding id="lfvtTree">
|
||||
<content>
|
||||
<children/>
|
||||
|
||||
</content>
|
||||
</binding>
|
||||
|
||||
|
||||
<!-- DropDownList fuer Fachbereiche -->
|
||||
|
||||
<binding id="fachbereichListe" extends="lfvtbinding.xml.php#customMenulist-base" >
|
||||
<content>
|
||||
<xul:menulist datasources="fachbereich.rdf.php" flex="1"
|
||||
ref="http://www.technikum-wien.at/tempus/fachbereich/liste" >
|
||||
<xul:template>
|
||||
<xul:menupopup>
|
||||
<!--<xul:menuitem value="null" label="-" />-->
|
||||
<xul:menuitem value="rdf:http://www.technikum-wien.at/tempus/fachbereich/rdf#id"
|
||||
label="rdf:http://www.technikum-wien.at/tempus/fachbereich/rdf#bezeichnung"
|
||||
uri="rdf:*"/>
|
||||
</xul:menupopup>
|
||||
</xul:template>
|
||||
</xul:menulist>
|
||||
</content>
|
||||
<handlers>
|
||||
<handler event="command" action="this.currentValue=document.getAnonymousNodes(this)[0].value;" />
|
||||
</handlers>
|
||||
</binding>
|
||||
|
||||
<!-- DropDownList fuer Lehrform -->
|
||||
|
||||
<binding id="lehrformListe" extends="lfvtbinding.xml.php#customMenulist-base" >
|
||||
<content>
|
||||
<xul:menulist datasources="../rdf/lehrform.rdf.php" flex="1"
|
||||
ref="http://www.technikum-wien.at/lehrform/liste" >
|
||||
<xul:template>
|
||||
<xul:menupopup>
|
||||
<!--<xul:menuitem value="null" label="-" />-->
|
||||
<xul:menuitem value="rdf:http://www.technikum-wien.at/lehrform/rdf#kurzbz"
|
||||
label="rdf:http://www.technikum-wien.at/lehrform/rdf#kurzbz"
|
||||
uri="rdf:*"/>
|
||||
</xul:menupopup>
|
||||
</xul:template>
|
||||
</xul:menulist>
|
||||
</content>
|
||||
<handlers>
|
||||
<handler event="command" action="this.currentValue=document.getAnonymousNodes(this)[0].value;" />
|
||||
</handlers>
|
||||
</binding>
|
||||
<!-- DropDownList fuer Raumtyp -->
|
||||
|
||||
<binding id="raumtypListe" extends="lfvtbinding.xml.php#customMenulist-base" >
|
||||
<content>
|
||||
<xul:menulist datasources="raumtyp.rdf.php" flex="1"
|
||||
ref="http://www.technikum-wien.at/tempus/raumtyp/liste" >
|
||||
<xul:template>
|
||||
<xul:menupopup>
|
||||
<!--<xul:menuitem value="null" label="-" />-->
|
||||
<xul:menuitem value="rdf:http://www.technikum-wien.at/tempus/raumtyp/rdf#kurzbz"
|
||||
label="rdf:http://www.technikum-wien.at/tempus/raumtyp/rdf#kurzbz"
|
||||
uri="rdf:*"/>
|
||||
</xul:menupopup>
|
||||
</xul:template>
|
||||
</xul:menulist>
|
||||
</content>
|
||||
<handlers>
|
||||
<handler event="command" action="this.currentValue=document.getAnonymousNodes(this)[0].value;" />
|
||||
</handlers>
|
||||
</binding>
|
||||
|
||||
<!-- DropDownList fuer Orte -->
|
||||
|
||||
<binding id="raumListe" extends="lfvtbinding.xml.php#customMenulist-base" >
|
||||
<content>
|
||||
<xul:menulist datasources="<?php echo APP_ROOT; ?>rdf/ort.rdf.php" flex="1"
|
||||
ref="http://www.technikum-wien.at/tempus/ort/alle-orte" >
|
||||
<xul:template>
|
||||
<xul:menupopup>
|
||||
<!--<xul:menuitem value="null" label="-" />-->
|
||||
<xul:menuitem value="rdf:http://www.technikum-wien.at/tempus/ort/rdf#raumtyp"
|
||||
label="rdf:http://www.technikum-wien.at/tempus/ort/rdf#raumtyp"
|
||||
uri="rdf:*"/>
|
||||
</xul:menupopup>
|
||||
</xul:template>
|
||||
</xul:menulist>
|
||||
</content>
|
||||
<handlers>
|
||||
<handler event="command" action="this.currentValue=document.getAnonymousNodes(this)[0].value;" />
|
||||
</handlers>
|
||||
</binding>
|
||||
|
||||
<!-- DropDownList fuer Lektoren -->
|
||||
|
||||
<binding id="lektorenListe" extends="lfvtbinding.xml.php#customMenulist-base" >
|
||||
<content>
|
||||
<xul:menulist datasources="mitarbeiter.rdf.php?lektor=1" flex="1"
|
||||
ref="http://www.technikum-wien.at/tempus/mitarbeiter/alle" >
|
||||
<xul:template>
|
||||
<xul:menupopup>
|
||||
<!--<xul:menuitem value="null" label="-" />-->
|
||||
<xul:menuitem value="rdf:http://www.technikum-wien.at/tempus/mitarbeiter/rdf#uid"
|
||||
label="rdf:http://www.technikum-wien.at/tempus/mitarbeiter/rdf#kurzbz"
|
||||
uri="rdf:*"/>
|
||||
</xul:menupopup>
|
||||
</xul:template>
|
||||
</xul:menulist>
|
||||
</content>
|
||||
<handlers>
|
||||
<handler event="command" action="this.currentValue=document.getAnonymousNodes(this)[0].value;" />
|
||||
</handlers>
|
||||
<!--
|
||||
<implementation>
|
||||
<property name="currentValue" onget="return this.getAttribute('currentValue');">
|
||||
<setter><![CDATA[
|
||||
this.setAttribute('currentValue',val);
|
||||
var menulist=document.getAnonymousNodes(this)[0];
|
||||
// auszuwaehlenden Datensatz suchen (stammt aus original Source Code)
|
||||
var arr=menulist.menupopup.getElementsByAttribute('value',val);
|
||||
//alert('anzahl arr='+arr.length+'; val='+val);
|
||||
if (arr.item(0)) {
|
||||
menulist.selectedItem=arr[0];
|
||||
} else {
|
||||
menulist.selectedIndex=0;
|
||||
}
|
||||
return val;
|
||||
]]>
|
||||
</setter>
|
||||
</property>
|
||||
<property name="selectedIndex"
|
||||
onget="return document.getAnonymousNodes(this)[0].selectedIndex;"
|
||||
onset="alert('val='+val);return document.getAnonymousNodes(this)[0].selectedIndex=val;"
|
||||
/>
|
||||
</implementation>
|
||||
<handlers>
|
||||
<handler event="command" action="this.currentValue=document.getAnonymousNodes(this)[0].getAttribute('value');" />
|
||||
</handlers>
|
||||
-->
|
||||
</binding>
|
||||
|
||||
|
||||
<!-- DropDownList fuer Einheiten -->
|
||||
|
||||
<binding id="einheitenListe" extends="lfvtbinding.xml.php#customMenulist-base" >
|
||||
<content>
|
||||
|
||||
<xul:menulist datasources="<?php echo APP_ROOT; ?>rdf/einheiten.rdf.php" flex="1"
|
||||
ref="http://www.technikum-wien.at/tempus/einheiten/liste"
|
||||
>
|
||||
<xul:template>
|
||||
<xul:menupopup>
|
||||
<!--<xul:menuitem value="null" label="-" />-->
|
||||
<xul:menuitem value="rdf:http://www.technikum-wien.at/tempus/einheiten/rdf#kurzbz"
|
||||
label="rdf:http://www.technikum-wien.at/tempus/einheiten/rdf#kurzbz"
|
||||
uri="rdf:*"/>
|
||||
</xul:menupopup>
|
||||
</xul:template>
|
||||
</xul:menulist>
|
||||
</content>
|
||||
<handlers>
|
||||
<handler event="command" action="this.currentValue=document.getAnonymousNodes(this)[0].value;" />
|
||||
</handlers>
|
||||
</binding>
|
||||
|
||||
|
||||
<!-- DropDownList fuer Lehrfaecher -->
|
||||
|
||||
<binding id="lehrfaecherListe" extends="lfvtbinding.xml.php#customMenulist-base" >
|
||||
<content>
|
||||
<xul:menulist datasources="lehrfach.rdf.php" flex="1"
|
||||
ref="http://www.technikum-wien.at/tempus/lehrfach/liste" >
|
||||
<xul:template>
|
||||
<xul:menupopup>
|
||||
<!--<xul:menuitem value="null" label="-" />-->
|
||||
<xul:menuitem value="rdf:http://www.technikum-wien.at/tempus/lehrfach/rdf#lehrfach_nr"
|
||||
label="rdf:http://www.technikum-wien.at/tempus/lehrfach/rdf#bezeichnung"
|
||||
uri="rdf:*"/>
|
||||
</xul:menupopup>
|
||||
</xul:template>
|
||||
</xul:menulist>
|
||||
</content>
|
||||
<handlers>
|
||||
<handler event="command" action="this.currentValue=document.getAnonymousNodes(this)[0].value;" />
|
||||
</handlers>
|
||||
</binding>
|
||||
|
||||
|
||||
<!-- DropDownList fuer Studiengaenge -->
|
||||
|
||||
<!--
|
||||
/ extends="chrome://global/content/bindings/menulist.xml#menulist"
|
||||
-->
|
||||
|
||||
<binding id="stgListe" extends="lfvtbinding.xml.php#customMenulist-base" >
|
||||
<content>
|
||||
<xul:menulist id="stg" flex="1" datasources="studiengang.rdf.php"
|
||||
ref="http://www.technikum-wien.at/tempus/studiengang/liste" >
|
||||
<xul:template>
|
||||
<xul:menupopup>
|
||||
<!--<xul:menuitem value="null" label="-" />-->
|
||||
<xul:menuitem value="rdf:http://www.technikum-wien.at/tempus/studiengang/rdf#studiengang_kz"
|
||||
label="rdf:http://www.technikum-wien.at/tempus/studiengang/rdf#bezeichnung"
|
||||
uri="rdf:*"/>
|
||||
</xul:menupopup>
|
||||
</xul:template>
|
||||
</xul:menulist>
|
||||
</content>
|
||||
<handlers>
|
||||
<handler event="command" action="this.currentValue=document.getAnonymousNodes(this)[0].value;" />
|
||||
</handlers>
|
||||
</binding>
|
||||
|
||||
<!-- ************************************************************************* -->
|
||||
<!-- customMenulist-base -->
|
||||
<!-- - f�gt property currentValue hinzu, welcher dem value der internen -->
|
||||
<!-- Menulist entspricht, au�erdem wird durch setzen von currentValue -->
|
||||
<!-- auch der entsprechende Datensatz selektiert -->
|
||||
<!-- - forward f�r selectedIndex -->
|
||||
<!-- ************************************************************************* -->
|
||||
<binding id="customMenulist-base" >
|
||||
<content />
|
||||
|
||||
<implementation>
|
||||
<property name="currentValue" onget="return this.getAttribute('currentValue');">
|
||||
<setter><![CDATA[
|
||||
this.setAttribute('currentValue',val);
|
||||
var menulist=document.getAnonymousNodes(this)[0];
|
||||
// auszuwaehlenden Datensatz suchen (stammt aus original Source Code)
|
||||
var arr=menulist.menupopup.getElementsByAttribute('value',val);
|
||||
//alert('anzahl arr='+arr.length+'; val='+val);
|
||||
if (arr.item(0)) {
|
||||
menulist.selectedItem=arr[0];
|
||||
} else {
|
||||
menulist.selectedIndex=0;
|
||||
}
|
||||
return val;
|
||||
]]>
|
||||
</setter>
|
||||
</property>
|
||||
<property name="selectedIndex"
|
||||
onget="return document.getAnonymousNodes(this)[0].selectedIndex;"
|
||||
onset="return document.getAnonymousNodes(this)[0].selectedIndex=val;"
|
||||
/>
|
||||
</implementation>
|
||||
|
||||
</binding>
|
||||
|
||||
|
||||
|
||||
</bindings>
|
||||
@@ -0,0 +1,506 @@
|
||||
|
||||
|
||||
function getDropDownValue(obj) {
|
||||
//var list = document.getElementById(obj.name);
|
||||
//var selectedText = list.selectedItem.label;
|
||||
//alert(selectedText);
|
||||
return obj.name;
|
||||
}
|
||||
|
||||
function listElementHandlers(aObj) {
|
||||
if(!aObj)
|
||||
return null;
|
||||
for(var list in aObj)
|
||||
if(list.match(/^on/))
|
||||
dump(list+'\n');
|
||||
}
|
||||
|
||||
/**
|
||||
* neue LVA anlegen
|
||||
*/
|
||||
function lvaNeu() {
|
||||
var lvaDetail=document.getElementById('lvaDetail');
|
||||
lvaDetail.reset();
|
||||
var lva = new Lehrveranstaltung();
|
||||
lva.studiengang=currentAuswahl.stg_kz;
|
||||
lva.semester=currentAuswahl.sem;
|
||||
lva.verband=currentAuswahl.ver;
|
||||
lva.gruppe=currentAuswahl.grp;
|
||||
lva.einheit=currentAuswahl.einheit;
|
||||
lvaDetail.setLVA(lva);
|
||||
lvaDetail.isNew=true;
|
||||
//alert('stg_kz='+lva.stg_kz);
|
||||
}
|
||||
|
||||
/**
|
||||
* neue LVA löschen
|
||||
*/
|
||||
function lvaDelete() {
|
||||
|
||||
// id holen
|
||||
var lvaDetail=document.getElementById('lvaDetail');
|
||||
var id=lvaDetail.currentLVA.id;
|
||||
var lvnr=lvaDetail.currentLVA.lvnr;
|
||||
|
||||
if (confirm('LVA '+lvnr+' wirklich löschen?')) {
|
||||
|
||||
var details = document.getElementById('lvaDetail');
|
||||
details.reset();
|
||||
var req = new phpRequest('lfvtCUD.php','<?php echo $_SERVER['PHP_AUTH_USER'] ?>','<?php echo $_SERVER['PHP_AUTH_PASSW'] ?>');
|
||||
req.add('do','delete');
|
||||
req.add('lehrveranstaltung_id',id);
|
||||
var response = req.execute();
|
||||
if (response!='ok') alert(response);
|
||||
|
||||
currentLVA_id=id;
|
||||
|
||||
// RDF aktualisieren (=Datensatz aus Tree entfernen)
|
||||
var tree=document.getElementById('treeLFVT');
|
||||
|
||||
if (tree.currentIndex==-1) return;
|
||||
|
||||
|
||||
/*
|
||||
// aus dem RDF loeschen
|
||||
|
||||
// Datasource holen
|
||||
var dsource;
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var sources=tree.database.GetDataSources();
|
||||
if (sources.hasMoreElements()){
|
||||
dsource=sources.getNext();
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
// refresh
|
||||
/* funktioniert zwar, ist aber unpraktisch, weil langsam und außerdem werden die Aeste vom Tree geschlossen
|
||||
dsource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Refresh(true);
|
||||
tree.builder.rebuild( );
|
||||
return;
|
||||
*/
|
||||
|
||||
/*
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
|
||||
var subRes = rdfService.GetResource("http://www.technikum-wien.at/tempus/lva/" + id);
|
||||
|
||||
var rootSubject = rdfService.GetResource("http://www.technikum-wien.at/tempus/lva/liste");
|
||||
|
||||
|
||||
var container = Components.classes["@mozilla.org/rdf/container;1"].
|
||||
createInstance(Components.interfaces.nsIRDFContainer);
|
||||
try {
|
||||
container.Init(dsource, rootSubject);
|
||||
//alert(container);
|
||||
//container.AppendElement(christaRes);
|
||||
}
|
||||
catch (ex){}
|
||||
|
||||
var rdfContainerUtils = Components.classes["@mozilla.org/rdf/container-utils;1"].
|
||||
getService(Components.interfaces.nsIRDFContainerUtils);
|
||||
|
||||
|
||||
if (rdfContainerUtils.IsContainer(dsource,subRes)) {
|
||||
alert(' is container');
|
||||
} else {
|
||||
|
||||
// -> partizipierende LVA
|
||||
// parent suchen
|
||||
|
||||
var parent = null;
|
||||
|
||||
var arcsIn = dsource.ArcLabelsIn(subRes);
|
||||
while (arcsIn.hasMoreElements()){
|
||||
var arc = arcsIn.getNext();
|
||||
if (arc instanceof Components.interfaces.nsIRDFResource){
|
||||
if (rdfContainerUtils.IsOrdinalProperty(arc)){
|
||||
parent = dsource.GetSource(arc, subRes, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (rdfContainerUtils.IsContainer(dsource,parent)) {
|
||||
alert('parent is container '+parent.Value);
|
||||
|
||||
var idx = rdfContainerUtils.indexOf(dsource,parent,subRes);
|
||||
alert('index='+idx);
|
||||
|
||||
var container = Components.classes["@mozilla.org/rdf/container;1"].
|
||||
createInstance(Components.interfaces.nsIRDFContainer);
|
||||
|
||||
try {
|
||||
container.Init(dsource, parent);
|
||||
var twoRes = rdfContainerUtils.IndexToOrdinalResource(2);
|
||||
alert("count="+container.GetCount()+"; twoRes="+twoRes.Value);
|
||||
// geht nicht bei remote RDF
|
||||
//container.RemoveElementAt(2,true);
|
||||
} catch(ex) {alert(ex);}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//predicate = rdfService.GetResource( "id" ); // RDF.GetResource('http://books.mozdev.org/rdf#chapters');
|
||||
//object = dsource.GetTarget(rootSubject,predicate,true);
|
||||
|
||||
|
||||
|
||||
|
||||
//datasource.Mark(rootSubject,predicate,object,true);
|
||||
//datasource.Sweep( );
|
||||
|
||||
*/
|
||||
|
||||
// löscht nur aus dem view!
|
||||
try {
|
||||
//alert('currentIndex'+tree.currentIndex);
|
||||
var selected = tree.treeBoxObject.view.getItemAtIndex(tree.currentIndex);
|
||||
var cells = selected.getElementsByTagName( "treerow" );
|
||||
var id = cells[ 0 ].getAttribute( "dbID" );
|
||||
// ids müssten identisch sein (ist nur ein Sicherheitscheck)
|
||||
if (id==currentLVA_id) {
|
||||
var parent = tree.view.getItemAtIndex(tree.currentIndex).parentNode;
|
||||
parent.removeChild(selected);
|
||||
}
|
||||
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Datasource holen
|
||||
var dsource;
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* neue LVA als Partizipierung anlegen
|
||||
*/
|
||||
function lvaNeuPart() {
|
||||
// ausgewählte LVA holen
|
||||
var tree = document.getElementById('treeLFVT');
|
||||
|
||||
if (tree.currentIndex==-1) return;
|
||||
try {
|
||||
var unr = tree.view.getCellText(tree.currentIndex, "lvaUnr")
|
||||
//alert('currentIndex'+tree.currentIndex);
|
||||
// level (0 oder 1?)
|
||||
var level=tree.view.getLevel(tree.currentIndex);
|
||||
//alert("unr="+unr+"; level="+tree.view.getLevel(tree.currentIndex));
|
||||
if (level==1) {
|
||||
var parent = tree.view.getItemAtIndex(c).parentNode;
|
||||
parent.addChild();
|
||||
}
|
||||
tree.builder.rebuild( );
|
||||
//parent.removeChild(selected);
|
||||
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return false;
|
||||
}
|
||||
// unr holen
|
||||
|
||||
// Datensatz anlegen
|
||||
var details = document.getElementById('lvaDetail');
|
||||
details.reset();
|
||||
}
|
||||
|
||||
function lvaAuswahl() {
|
||||
var tree = document.getElementById('treeLFVT');
|
||||
|
||||
if (tree.currentIndex==-1) return;
|
||||
try {
|
||||
//alert('currentIndex'+tree.currentIndex);
|
||||
var selected = tree.treeBoxObject.view.getItemAtIndex(tree.currentIndex);
|
||||
var cells = selected.getElementsByTagName( "treerow" );
|
||||
var id = cells[ 0 ].getAttribute( "dbID" );
|
||||
//alert(id);
|
||||
//var parent = tree.view.getItemAtIndex(c).parentNode;
|
||||
//parent.removeChild(selected);
|
||||
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// Datasource holen
|
||||
var dsource;
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return;
|
||||
}
|
||||
var sources=tree.database.GetDataSources();
|
||||
if (sources.hasMoreElements()){
|
||||
dsource=sources.getNext();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
// RDF/XML Datasources are all nsIRDFXMLSinks
|
||||
var sink = dsource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
// Attach the observer to the datasource-as-sink
|
||||
sink.addXMLSinkObserver(
|
||||
{
|
||||
onBeginLoad: function(aSink) { },
|
||||
onInterrupt: function(aSink) { },
|
||||
onResume: function(aSink) { }, */
|
||||
// onEndLoad: function(aSink) { /*tree.builder.rebuild();*/ alert('Refresh done'); },
|
||||
// onError: function(aSink, aStatus, aErrorMsg) { alert('Error! ' + aErrorMsg); }
|
||||
// }
|
||||
//);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/tempus/lva/" + id);
|
||||
|
||||
|
||||
|
||||
// zum debuggen; zeigt predicates an, die in resource zu finden sind
|
||||
|
||||
//var karen = rdfService.GetResource("http://www.technikum-wien.at/tempus/lva/176355");
|
||||
|
||||
/*
|
||||
var targets = dsource.ArcLabelsOut(subject);
|
||||
while (targets.hasMoreElements()){
|
||||
var predicate = targets.getNext();
|
||||
if (predicate instanceof Components.interfaces.nsIRDFResource){
|
||||
var newPredicate = rdfService.GetResource( predicate.Value );
|
||||
alert(predicate.Value);
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
/*
|
||||
var targets = dsource.ArcLabelsOut(karen);
|
||||
while (targets.hasMoreElements()){
|
||||
|
||||
var predicate = targets.getNext();
|
||||
if (predicate instanceof Components.interfaces.nsIRDFResource){
|
||||
alert(predicate.Value);
|
||||
var target = dsource.GetTarget(subject, predicate, true);
|
||||
|
||||
if (target instanceof Components.interfaces.nsIRDFResource){
|
||||
alert("Resource is: " + target.Value);
|
||||
}
|
||||
else if (target instanceof Components.interfaces.nsIRDFLiteral){
|
||||
alert("Literal is: " + target.Value + " predi="+ predicate.Value+ "subject="+subject.Value);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
//
|
||||
var predicateNS = "http://www.technikum-wien.at/tempus/lva/rdf";
|
||||
|
||||
// debug
|
||||
|
||||
var predicate = rdfService.GetResource( predicateNS + "#lvnr" );
|
||||
|
||||
//
|
||||
var lva = new Lehrveranstaltung();
|
||||
|
||||
lva.id = getTargetHelper(dsource,subject,rdfService.GetResource( "id" ));
|
||||
lva.unr = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#unr" ));
|
||||
lva.lvnr=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lvnr" ));
|
||||
lva.einheit=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#einheit_kurzbz" ));
|
||||
lva.lektor=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lektor" ));
|
||||
lva.lehrfach=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrfach_nr" ));
|
||||
lva.studiengang=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studiengang_kz" ));
|
||||
lva.fachbereich=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#fachbereich_id" ));
|
||||
lva.semester=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#semester" ));
|
||||
lva.verband=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#verband" ));
|
||||
lva.gruppe=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gruppe" ));
|
||||
lva.raumtyp=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#raumtyp" ));
|
||||
lva.raumtyp_alt=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#raumtyp_alt" ));
|
||||
lva.semesterstunden=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#semesterstunden" ));
|
||||
lva.stundenblockung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#stundenblockung" ));
|
||||
lva.wochenrythmus=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#wochenrythmus" ));
|
||||
lva.start_kw=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#start_kw" ));
|
||||
lva.studiensemester=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studiensemester_kurzbz" ));
|
||||
// ist jetzt beim lehrfach:
|
||||
//lva.ects=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ects" ));
|
||||
|
||||
//student.show();
|
||||
currentLVA = lva;
|
||||
|
||||
//alert("lva.studiengang="+lva.studiengang);
|
||||
|
||||
var lvaDetail=document.getElementById('lvaDetail');
|
||||
lvaDetail.setLVA(lva);
|
||||
lvaDetail.isNew=false;
|
||||
|
||||
/*
|
||||
if (dsource.hasArcOut(subject, predicate)) {
|
||||
if (target instanceof Components.interfaces.nsIRDFLiteral) {
|
||||
alert("Literal is: " + target.Value + " predi="+ predicate.Value+ "subject="+subject.Value);
|
||||
student.vornamen = target.Value;
|
||||
student.show();
|
||||
}
|
||||
} */
|
||||
}
|
||||
|
||||
function getTargetHelper(dsource,subj,predi) {
|
||||
if (dsource.hasArcOut(subj, predi)) {
|
||||
var target = dsource.GetTarget(subj, predi, true);
|
||||
if (target instanceof Components.interfaces.nsIRDFLiteral) {
|
||||
return target.Value;
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Lehrveranstaltung Value Object
|
||||
*/
|
||||
function Lehrveranstaltung() {
|
||||
this.id=null; // =lehrveranstaltung_id
|
||||
this.lvnr=null;
|
||||
this.unr=null;
|
||||
this.einheit=null;
|
||||
this.lektor=null;
|
||||
this.lehrfach=null;
|
||||
this.studiengang=null;
|
||||
this.fachbereich=null;
|
||||
this.semester=null;
|
||||
this.verband=null;
|
||||
this.gruppe=null;
|
||||
this.raumtyp=null;
|
||||
this.raumtyp_alt=null;
|
||||
this.semesterstunden=null;
|
||||
this.stundenblockung=null;
|
||||
this.wochenrythmus=null;
|
||||
this.start_kw=null;
|
||||
this.studiensemester=null;
|
||||
this.ects=null;
|
||||
// flag, welches angibt, ob Daten verändert wurden
|
||||
this.dataChanged=false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Daten aus Formular holen und evt. speichern
|
||||
*/
|
||||
Lehrveranstaltung.prototype.updateData = function() {
|
||||
if (document.getElementById('gridStudentenUID').value!=this.uid) {
|
||||
this.uid = document.getElementById('gridStudentenUID').value;
|
||||
this.dataChanged = true;
|
||||
};
|
||||
if (document.getElementById('gridStudentenTitel').value!=this.titel) {
|
||||
this.titel = document.getElementById('gridStudentenTitel').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenVornamen').value!=this.vornamen) {
|
||||
this.vornamen = document.getElementById('gridStudentenVornamen').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenNachname').value!=this.nachname) {
|
||||
this.nachname = document.getElementById('gridStudentenNachname').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenMatrikelnummer').value!=this.matrikelnummer) {
|
||||
this.matrikelnummer = document.getElementById('gridStudentenMatrikelnummer').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
//alert(document.getElementById('gridStudentenMatrikelnummer').value);
|
||||
if (document.getElementById('gridStudentenGeburtsdatum').value!=this.geburtsdatum) {
|
||||
// todo validation
|
||||
this.geburtsdatum = document.getElementById('gridStudentenGeburtsdatum').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenGeburtsort').value!=this.geburtsort) {
|
||||
this.geburtsort = document.getElementById('gridStudentenGeburtsort').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenGeburtszeit').value!=this.geburtszeit) {
|
||||
// todo validation
|
||||
this.geburtszeit = document.getElementById('gridStudentenGeburtszeit').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenHomepage').value!=this.homepage) {
|
||||
this.homepage = document.getElementById('gridStudentenHomepage').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenEmail').value!=this.email) {
|
||||
this.email = document.getElementById('gridStudentenEmail').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenSemester').value!=this.semester) {
|
||||
this.semester = document.getElementById('gridStudentenSemester').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenVerband').value!=this.verband) {
|
||||
this.verband = document.getElementById('gridStudentenVerband').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenGruppe').value!=this.gruppe) {
|
||||
this.gruppe = document.getElementById('gridStudentenGruppe').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (!((document.getElementById('gridStudentenAktiv').checked && this.aktiv=='True') ||
|
||||
(!document.getElementById('gridStudentenAktiv').checked && this.aktiv=='False'))) {
|
||||
this.aktiv = document.getElementById('gridStudentenAktiv').checked?'True':'False';
|
||||
this.dataChanged = true;
|
||||
}
|
||||
alert(this.dataChanged?'dataChanged':'nix changed');
|
||||
}
|
||||
|
||||
/**
|
||||
* Student anzeigen
|
||||
*/
|
||||
Lehrveranstaltung.prototype.show = function() {
|
||||
document.getElementById('gridStudentenUID').value = this.uid;
|
||||
document.getElementById('gridStudentenTitel').value = this.titel;
|
||||
document.getElementById('gridStudentenVornamen').value = this.vornamen;
|
||||
document.getElementById('gridStudentenNachname').value = this.nachname;
|
||||
document.getElementById('gridStudentenMatrikelnummer').value = this.matrikelnummer;
|
||||
document.getElementById('gridStudentenGeburtsdatum').value = this.geburtsdatum;
|
||||
document.getElementById('gridStudentenGeburtsort').value = this.geburtsort;
|
||||
document.getElementById('gridStudentenGeburtszeit').value = this.geburtszeit;
|
||||
document.getElementById('gridStudentenHomepage').value = this.homepage;
|
||||
document.getElementById('gridStudentenEmail').value = this.email;
|
||||
document.getElementById('gridStudentenSemester').value = this.semester;
|
||||
document.getElementById('gridStudentenVerband').value = this.verband;
|
||||
document.getElementById('gridStudentenGruppe').value = this.gruppe;
|
||||
document.getElementById('gridStudentenStgBezeichnung').value = this.stg_bezeichnung;
|
||||
document.getElementById('gridStudentenAktiv').checked = (this.aktiv=='True'?true:false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,512 @@
|
||||
|
||||
function getDropDownValue(obj) {
|
||||
//var list = document.getElementById(obj.name);
|
||||
//var selectedText = list.selectedItem.label;
|
||||
//alert(selectedText);
|
||||
return obj.name;
|
||||
}
|
||||
|
||||
function listElementHandlers(aObj) {
|
||||
if(!aObj)
|
||||
return null;
|
||||
for(var list in aObj)
|
||||
if(list.match(/^on/))
|
||||
dump(list+'\n');
|
||||
}
|
||||
|
||||
/**
|
||||
* neue LVA anlegen
|
||||
*/
|
||||
function lvaNeu() {
|
||||
var lvaDetail=document.getElementById('lvaDetail');
|
||||
lvaDetail.reset();
|
||||
var lva = new Lehrveranstaltung();
|
||||
lva.studiengang=currentAuswahl.stg_kz;
|
||||
lva.semester=currentAuswahl.sem;
|
||||
lva.verband=currentAuswahl.ver;
|
||||
lva.gruppe=currentAuswahl.grp;
|
||||
lva.einheit=currentAuswahl.einheit;
|
||||
lvaDetail.setLVA(lva);
|
||||
lvaDetail.isNew=true;
|
||||
//alert('stg_kz='+lva.stg_kz);
|
||||
}
|
||||
|
||||
/**
|
||||
* neue LVA löschen
|
||||
*/
|
||||
function lvaDelete() {
|
||||
|
||||
// id holen
|
||||
var lvaDetail=document.getElementById('lvaDetail');
|
||||
var id=lvaDetail.currentLVA.id;
|
||||
var lvnr=lvaDetail.currentLVA.lvnr;
|
||||
|
||||
if (confirm('LVA '+lvnr+' wirklich löschen?')) {
|
||||
|
||||
var details = document.getElementById('lvaDetail');
|
||||
details.reset();
|
||||
var req = new phpRequest('lfvtCUD.php','pam','pam');
|
||||
req.add('do','delete');
|
||||
req.add('lehrveranstaltung_id',id);
|
||||
var response = req.execute();
|
||||
if (response!='ok') alert(response);
|
||||
|
||||
currentLVA_id=id;
|
||||
|
||||
// RDF aktualisieren (=Datensatz aus Tree entfernen)
|
||||
var tree=document.getElementById('treeLFVT');
|
||||
|
||||
if (tree.currentIndex==-1) return;
|
||||
|
||||
|
||||
/*
|
||||
// aus dem RDF loeschen
|
||||
|
||||
// Datasource holen
|
||||
var dsource;
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var sources=tree.database.GetDataSources();
|
||||
if (sources.hasMoreElements()){
|
||||
dsource=sources.getNext();
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
// refresh
|
||||
/* funktioniert zwar, ist aber unpraktisch, weil langsam und außerdem werden die Aeste vom Tree geschlossen
|
||||
dsource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Refresh(true);
|
||||
tree.builder.rebuild( );
|
||||
return;
|
||||
*/
|
||||
|
||||
/*
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
|
||||
var subRes = rdfService.GetResource("http://www.technikum-wien.at/tempus/lva/" + id);
|
||||
|
||||
var rootSubject = rdfService.GetResource("http://www.technikum-wien.at/tempus/lva/liste");
|
||||
|
||||
|
||||
var container = Components.classes["@mozilla.org/rdf/container;1"].
|
||||
createInstance(Components.interfaces.nsIRDFContainer);
|
||||
try {
|
||||
container.Init(dsource, rootSubject);
|
||||
//alert(container);
|
||||
//container.AppendElement(christaRes);
|
||||
}
|
||||
catch (ex){}
|
||||
|
||||
var rdfContainerUtils = Components.classes["@mozilla.org/rdf/container-utils;1"].
|
||||
getService(Components.interfaces.nsIRDFContainerUtils);
|
||||
|
||||
|
||||
if (rdfContainerUtils.IsContainer(dsource,subRes)) {
|
||||
alert(' is container');
|
||||
} else {
|
||||
|
||||
// -> partizipierende LVA
|
||||
// parent suchen
|
||||
|
||||
var parent = null;
|
||||
|
||||
var arcsIn = dsource.ArcLabelsIn(subRes);
|
||||
while (arcsIn.hasMoreElements()){
|
||||
var arc = arcsIn.getNext();
|
||||
if (arc instanceof Components.interfaces.nsIRDFResource){
|
||||
if (rdfContainerUtils.IsOrdinalProperty(arc)){
|
||||
parent = dsource.GetSource(arc, subRes, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (rdfContainerUtils.IsContainer(dsource,parent)) {
|
||||
alert('parent is container '+parent.Value);
|
||||
|
||||
var idx = rdfContainerUtils.indexOf(dsource,parent,subRes);
|
||||
alert('index='+idx);
|
||||
|
||||
var container = Components.classes["@mozilla.org/rdf/container;1"].
|
||||
createInstance(Components.interfaces.nsIRDFContainer);
|
||||
|
||||
try {
|
||||
container.Init(dsource, parent);
|
||||
var twoRes = rdfContainerUtils.IndexToOrdinalResource(2);
|
||||
alert("count="+container.GetCount()+"; twoRes="+twoRes.Value);
|
||||
// geht nicht bei remote RDF
|
||||
//container.RemoveElementAt(2,true);
|
||||
} catch(ex) {alert(ex);}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//predicate = rdfService.GetResource( "id" ); // RDF.GetResource('http://books.mozdev.org/rdf#chapters');
|
||||
//object = dsource.GetTarget(rootSubject,predicate,true);
|
||||
|
||||
|
||||
|
||||
|
||||
//datasource.Mark(rootSubject,predicate,object,true);
|
||||
//datasource.Sweep( );
|
||||
|
||||
*/
|
||||
|
||||
// löscht nur aus dem view!
|
||||
try {
|
||||
//alert('currentIndex'+tree.currentIndex);
|
||||
var selected = tree.treeBoxObject.view.getItemAtIndex(tree.currentIndex);
|
||||
var cells = selected.getElementsByTagName( "treerow" );
|
||||
var id = cells[ 0 ].getAttribute( "dbID" );
|
||||
// ids müssten identisch sein (ist nur ein Sicherheitscheck)
|
||||
if (id==currentLVA_id) {
|
||||
var parent = tree.view.getItemAtIndex(tree.currentIndex).parentNode;
|
||||
parent.removeChild(selected);
|
||||
}
|
||||
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Datasource holen
|
||||
var dsource;
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* neue LVA als Partizipierung anlegen
|
||||
*/
|
||||
function lvaNeuPart() {
|
||||
// ausgewählte LVA holen
|
||||
var tree = document.getElementById('treeLFVT');
|
||||
|
||||
if (tree.currentIndex==-1) return;
|
||||
try {
|
||||
var unr = tree.view.getCellText(tree.currentIndex, "lvaUnr")
|
||||
//alert('currentIndex'+tree.currentIndex);
|
||||
// level (0 oder 1?)
|
||||
var level=tree.view.getLevel(tree.currentIndex);
|
||||
//alert("unr="+unr+"; level="+tree.view.getLevel(tree.currentIndex));
|
||||
if (level==1) {
|
||||
var parent = tree.view.getItemAtIndex(c).parentNode;
|
||||
parent.addChild();
|
||||
}
|
||||
tree.builder.rebuild( );
|
||||
//parent.removeChild(selected);
|
||||
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return false;
|
||||
}
|
||||
// unr holen
|
||||
|
||||
// Datensatz anlegen
|
||||
var details = document.getElementById('lvaDetail');
|
||||
details.reset();
|
||||
}
|
||||
|
||||
function lvaAuswahl() {
|
||||
var tree = document.getElementById('treeLFVT');
|
||||
|
||||
if (tree.currentIndex==-1) return;
|
||||
try {
|
||||
//alert('currentIndex'+tree.currentIndex);
|
||||
var selected = tree.treeBoxObject.view.getItemAtIndex(tree.currentIndex);
|
||||
var cells = selected.getElementsByTagName( "treerow" );
|
||||
var id = cells[ 0 ].getAttribute( "dbID" );
|
||||
//alert(id);
|
||||
//var parent = tree.view.getItemAtIndex(c).parentNode;
|
||||
//parent.removeChild(selected);
|
||||
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// Datasource holen
|
||||
var dsource;
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return;
|
||||
}
|
||||
var sources=tree.database.GetDataSources();
|
||||
if (sources.hasMoreElements()){
|
||||
dsource=sources.getNext();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
// RDF/XML Datasources are all nsIRDFXMLSinks
|
||||
var sink = dsource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
// Attach the observer to the datasource-as-sink
|
||||
sink.addXMLSinkObserver(
|
||||
{
|
||||
onBeginLoad: function(aSink) { },
|
||||
onInterrupt: function(aSink) { },
|
||||
onResume: function(aSink) { }, */
|
||||
// onEndLoad: function(aSink) { /*tree.builder.rebuild();*/ alert('Refresh done'); },
|
||||
// onError: function(aSink, aStatus, aErrorMsg) { alert('Error! ' + aErrorMsg); }
|
||||
// }
|
||||
//);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/tempus/lva/" + id);
|
||||
|
||||
|
||||
|
||||
// zum debuggen; zeigt predicates an, die in resource zu finden sind
|
||||
|
||||
//var karen = rdfService.GetResource("http://www.technikum-wien.at/tempus/lva/176355");
|
||||
|
||||
/*
|
||||
var targets = dsource.ArcLabelsOut(subject);
|
||||
while (targets.hasMoreElements()){
|
||||
var predicate = targets.getNext();
|
||||
if (predicate instanceof Components.interfaces.nsIRDFResource){
|
||||
var newPredicate = rdfService.GetResource( predicate.Value );
|
||||
alert(predicate.Value);
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
/*
|
||||
var targets = dsource.ArcLabelsOut(karen);
|
||||
while (targets.hasMoreElements()){
|
||||
|
||||
var predicate = targets.getNext();
|
||||
if (predicate instanceof Components.interfaces.nsIRDFResource){
|
||||
alert(predicate.Value);
|
||||
var target = dsource.GetTarget(subject, predicate, true);
|
||||
|
||||
if (target instanceof Components.interfaces.nsIRDFResource){
|
||||
alert("Resource is: " + target.Value);
|
||||
}
|
||||
else if (target instanceof Components.interfaces.nsIRDFLiteral){
|
||||
alert("Literal is: " + target.Value + " predi="+ predicate.Value+ "subject="+subject.Value);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
//
|
||||
var predicateNS = "http://www.technikum-wien.at/tempus/lva/rdf";
|
||||
|
||||
// debug
|
||||
|
||||
var predicate = rdfService.GetResource( predicateNS + "#lvnr" );
|
||||
|
||||
//
|
||||
var lva = new Lehrveranstaltung();
|
||||
|
||||
lva.id = getTargetHelper(dsource,subject,rdfService.GetResource( "id" ));
|
||||
lva.unr = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#unr" ));
|
||||
lva.lvnr=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lvnr" ));
|
||||
lva.einheit=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#einheit_kurzbz" ));
|
||||
lva.lektor=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lektor" ));
|
||||
lva.lehrfach=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrfach_nr" ));
|
||||
lva.studiengang=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studiengang_kz" ));
|
||||
lva.fachbereich=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#fachbereich_id" ));
|
||||
lva.semester=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#semester" ));
|
||||
lva.verband=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#verband" ));
|
||||
lva.gruppe=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gruppe" ));
|
||||
lva.raumtyp=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#raumtyp" ));
|
||||
lva.raumtyp_alt=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#raumtypalternativ" ));
|
||||
lva.semesterstunden=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#semesterstunden" ));
|
||||
lva.stundenblockung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#stundenblockung" ));
|
||||
lva.wochenrythmus=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#wochenrythmus" ));
|
||||
lva.start_kw=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#start_kw" ));
|
||||
lva.studiensemester=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studiensemester_kurzbz" ));
|
||||
lva.lehrform=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrform" ));
|
||||
|
||||
// ist jetzt beim lehrfach:
|
||||
//lva.ects=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ects" ));
|
||||
|
||||
//student.show();
|
||||
currentLVA = lva;
|
||||
|
||||
//alert("lva.studiengang="+lva.studiengang);
|
||||
|
||||
var lvaDetail=document.getElementById('lvaDetail');
|
||||
lvaDetail.setLVA(lva);
|
||||
lvaDetail.isNew=false;
|
||||
|
||||
/*
|
||||
if (dsource.hasArcOut(subject, predicate)) {
|
||||
if (target instanceof Components.interfaces.nsIRDFLiteral) {
|
||||
alert("Literal is: " + target.Value + " predi="+ predicate.Value+ "subject="+subject.Value);
|
||||
student.vornamen = target.Value;
|
||||
student.show();
|
||||
}
|
||||
} */
|
||||
}
|
||||
|
||||
function getTargetHelper(dsource,subj,predi) {
|
||||
if (dsource.hasArcOut(subj, predi)) {
|
||||
var target = dsource.GetTarget(subj, predi, true);
|
||||
if (target instanceof Components.interfaces.nsIRDFLiteral) {
|
||||
return target.Value;
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Lehrveranstaltung Value Object
|
||||
*/
|
||||
function Lehrveranstaltung() {
|
||||
this.id=null; // =lehrveranstaltung_id
|
||||
this.lvnr=null;
|
||||
this.unr=null;
|
||||
this.einheit=null;
|
||||
this.lektor=null;
|
||||
this.lehrfach=null;
|
||||
this.studiengang=null;
|
||||
this.fachbereich=null;
|
||||
this.semester=null;
|
||||
this.verband=null;
|
||||
this.gruppe=null;
|
||||
this.raumtyp=null;
|
||||
this.raumtyp_alt=null;
|
||||
this.semesterstunden=null;
|
||||
this.stundenblockung=null;
|
||||
this.wochenrythmus=null;
|
||||
this.start_kw=null;
|
||||
this.studiensemester=null;
|
||||
this.lehrform=null;
|
||||
this.ects=null;
|
||||
// flag, welches angibt, ob Daten verändert wurden
|
||||
this.dataChanged=false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Daten aus Formular holen und evt. speichern
|
||||
*/
|
||||
Lehrveranstaltung.prototype.updateData = function() {
|
||||
if (document.getElementById('gridStudentenUID').value!=this.uid) {
|
||||
this.uid = document.getElementById('gridStudentenUID').value;
|
||||
this.dataChanged = true;
|
||||
};
|
||||
if (document.getElementById('gridStudentenTitel').value!=this.titel) {
|
||||
this.titel = document.getElementById('gridStudentenTitel').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenVornamen').value!=this.vornamen) {
|
||||
this.vornamen = document.getElementById('gridStudentenVornamen').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenNachname').value!=this.nachname) {
|
||||
this.nachname = document.getElementById('gridStudentenNachname').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenMatrikelnummer').value!=this.matrikelnummer) {
|
||||
this.matrikelnummer = document.getElementById('gridStudentenMatrikelnummer').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
//alert(document.getElementById('gridStudentenMatrikelnummer').value);
|
||||
if (document.getElementById('gridStudentenGeburtsdatum').value!=this.geburtsdatum) {
|
||||
// todo validation
|
||||
this.geburtsdatum = document.getElementById('gridStudentenGeburtsdatum').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenGeburtsort').value!=this.geburtsort) {
|
||||
this.geburtsort = document.getElementById('gridStudentenGeburtsort').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenGeburtszeit').value!=this.geburtszeit) {
|
||||
// todo validation
|
||||
this.geburtszeit = document.getElementById('gridStudentenGeburtszeit').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenHomepage').value!=this.homepage) {
|
||||
this.homepage = document.getElementById('gridStudentenHomepage').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenEmail').value!=this.email) {
|
||||
this.email = document.getElementById('gridStudentenEmail').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenSemester').value!=this.semester) {
|
||||
this.semester = document.getElementById('gridStudentenSemester').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenVerband').value!=this.verband) {
|
||||
this.verband = document.getElementById('gridStudentenVerband').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenGruppe').value!=this.gruppe) {
|
||||
this.gruppe = document.getElementById('gridStudentenGruppe').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridLehrform').value!=this.lehrform) {
|
||||
this.lehrform = document.getElementById('gridLehrform').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (!((document.getElementById('gridStudentenAktiv').checked && this.aktiv=='True') ||
|
||||
(!document.getElementById('gridStudentenAktiv').checked && this.aktiv=='False'))) {
|
||||
this.aktiv = document.getElementById('gridStudentenAktiv').checked?'True':'False';
|
||||
this.dataChanged = true;
|
||||
}
|
||||
alert(this.dataChanged?'dataChanged':'nix changed');
|
||||
}
|
||||
|
||||
/**
|
||||
* Student anzeigen
|
||||
*/
|
||||
Lehrveranstaltung.prototype.show = function() {
|
||||
document.getElementById('gridStudentenUID').value = this.uid;
|
||||
document.getElementById('gridStudentenTitel').value = this.titel;
|
||||
document.getElementById('gridStudentenVornamen').value = this.vornamen;
|
||||
document.getElementById('gridStudentenNachname').value = this.nachname;
|
||||
document.getElementById('gridStudentenMatrikelnummer').value = this.matrikelnummer;
|
||||
document.getElementById('gridStudentenGeburtsdatum').value = this.geburtsdatum;
|
||||
document.getElementById('gridStudentenGeburtsort').value = this.geburtsort;
|
||||
document.getElementById('gridStudentenGeburtszeit').value = this.geburtszeit;
|
||||
document.getElementById('gridStudentenHomepage').value = this.homepage;
|
||||
document.getElementById('gridStudentenEmail').value = this.email;
|
||||
document.getElementById('gridStudentenSemester').value = this.semester;
|
||||
document.getElementById('gridStudentenVerband').value = this.verband;
|
||||
document.getElementById('gridStudentenGruppe').value = this.gruppe;
|
||||
document.getElementById('gridStudentenStgBezeichnung').value = this.stg_bezeichnung;
|
||||
document.getElementById('gridStudentenAktiv').checked = (this.aktiv=='True'?true:false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>';
|
||||
echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?>";
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<overlay id="LFVTOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/phpRequest.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/lfvtoverlay.js.php" />
|
||||
|
||||
<!-- ************************ -->
|
||||
<!-- * Lehrfachverteilung * -->
|
||||
<!-- ************************ -->
|
||||
<vbox id="lfvtEditor" flex="1">
|
||||
<toolbox>
|
||||
<toolbar id="nav-toolbar">
|
||||
<toolbarbutton label="Neue LVA" oncommand="lvaNeu();" />
|
||||
<toolbarbutton label="Neue LVA-Partizipierung" oncommand="lvaNeuPart();"/>
|
||||
<toolbarbutton label="Löschen" oncommand="lvaDelete();" />
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
|
||||
|
||||
|
||||
<!-- ************* -->
|
||||
<!-- * Auswahl * -->
|
||||
<!-- ************* -->
|
||||
<!-- Bem.: style="visibility:collapse" versteckt eine Spalte -->
|
||||
<tree id="treeLFVT" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/tempus/lva/liste"
|
||||
style="margin:0px;"
|
||||
onselect="lvaAuswahl(this);"
|
||||
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="lvaUnr" label="UNR" flex="2" primary="true"
|
||||
class="sortDirectionIndicator"
|
||||
sortActive="true"
|
||||
sortDirection="ascending"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lva/rdf#unr"
|
||||
/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaLvnr" label="LVNR" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lva/rdf#lvnr" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaLehrfach" label="Lehrfach" flex="10" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lva/rdf#lehrfach"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaLektor" label="Lektor" flex="5" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lva/rdf#lektorPrettyPrint"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaSemester" label="S" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lva/rdf#semester" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaVerband" label="V" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lva/rdf#verband" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaGruppe" label="G" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lva/rdf#gruppe"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaEinheit" label="Einheit" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lva/rdf#einheit_kurzbz"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaRaumtyp" label="R.Typ." flex="5" hidden="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaRaumtypalternativ" label="R.Typ.alt." flex="5" hidden="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaSemesterstunden" label="Semesterstunden" flex="1" hidden="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaStundenblockung" label="Stundenblockung" flex="5" hidden="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaWochenrythmus" label="Wochenrythmus" flex="5" hidden="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaStart_kw" label="Start KW" flex="5" hidden="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaStudiensemester_kurzbz" label="Studiensemester" flex="5" hidden="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lvaLehrform" label="Lehrform" flex="5" hidden="true" />
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<treechildren flex="1" >
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow dbID="rdf:http://www.technikum-wien.at/tempus/lva/rdf#dbID">
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#unr" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#lvnr"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#lehrfach"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#lektorPrettyPrint"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#semester"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#verband"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#gruppe"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#einheit_kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#raumtyp"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#raumtypalternativ"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#semesterstunden"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#stundenblockung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#wochenrythmus"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#start_kw"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#studiensemester_kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lva/rdf#lehrform"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</template>
|
||||
</tree>
|
||||
|
||||
<splitter collapse="after" persist="state">
|
||||
<grippy />
|
||||
</splitter>
|
||||
|
||||
<!-- ************ -->
|
||||
<!-- * Detail * -->
|
||||
<!-- ************ -->
|
||||
<vbox flex="1" style="overflow:auto;margin:0px;">
|
||||
|
||||
<box id="lvaDetail" class="lvaDetail" style="margin:0px;" />
|
||||
|
||||
</vbox>
|
||||
|
||||
</vbox>
|
||||
</overlay>
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
* To change the template for this generated file go to
|
||||
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||||
*/
|
||||
// header f?r 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");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
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/person.class.php');
|
||||
include_once('../include/mitarbeiter.class.php');
|
||||
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
// test
|
||||
/*
|
||||
$einheit_kurzbz='';
|
||||
$grp='1';
|
||||
$ver='A';
|
||||
$sem=3;
|
||||
$stg_kz=145;
|
||||
*/
|
||||
|
||||
$einheit_kurzbz='';
|
||||
if (isset($_GET['lektor']))
|
||||
$lektor=$_GET['lektor'];
|
||||
else
|
||||
$lektor=true;
|
||||
$fixangestellt=$_GET['fixangestellt'];
|
||||
$stg_kz=$_GET['stg_kz'];
|
||||
$fachbereich_id=$_GET['fachbereich_id'];
|
||||
|
||||
// Mitarbeiter holen
|
||||
$mitarbeiter=new mitarbeiter($conn);
|
||||
$ma=$mitarbeiter->getMitarbeiter($lektor,$fixangestellt,$stg_kz,$fachbereich_id);
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/mitarbeiter/';
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:MITARBEITER="<?php echo $rdf_url; ?>rdf#"
|
||||
>
|
||||
|
||||
|
||||
<RDF:Seq about="<?php echo $rdf_url ?>alle">
|
||||
|
||||
<?php
|
||||
foreach ($ma as $mitarbeiter)
|
||||
{
|
||||
?>
|
||||
<RDF:li>
|
||||
<RDF:Description about="<?php echo $rdf_url.$mitarbeiter->uid; ?>" >
|
||||
<MITARBEITER:uid><?php echo $mitarbeiter->uid; ?></MITARBEITER:uid>
|
||||
<MITARBEITER:titel><?php echo $mitarbeiter->titel; ?></MITARBEITER:titel>
|
||||
<MITARBEITER:vornamen><?php echo $mitarbeiter->vornamen; ?></MITARBEITER:vornamen>
|
||||
<MITARBEITER:nachname><?php echo $mitarbeiter->nachname; ?></MITARBEITER:nachname>
|
||||
<MITARBEITER:kurzbz><?php echo $mitarbeiter->kurzbz; ?></MITARBEITER:kurzbz>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</RDF:Seq>
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,196 @@
|
||||
<?php
|
||||
/**
|
||||
* FAS-Online
|
||||
* Dialog zum eingeben und bearbeiten der Adressen
|
||||
*/
|
||||
include('../vilesci/config.inc.php');
|
||||
if(isset($_GET['adress_id']) && $_GET['adress_id']!='')
|
||||
echo "var MitarbeiterDetailAdress_id=".$_GET['adress_id'];
|
||||
else
|
||||
echo "var MitarbeiterDetailAdress_id=null";
|
||||
?>
|
||||
|
||||
if(MitarbeiterDetailAdress_id!=null)
|
||||
{
|
||||
window.setTimeout("MitarbeiterAdressenBearbeiten()",window.opener.sleep_time/2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den zu bearbeitenden Datensatz
|
||||
*/
|
||||
function MitarbeiterAdressenBearbeiten()
|
||||
{
|
||||
// RDF vom Server holen
|
||||
|
||||
// Url zum RDF
|
||||
var url="<?php echo APP_ROOT; ?>rdf/fas/adressen.rdf.php?adress_id="+MitarbeiterDetailAdress_id;
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
httpRequest.open("GET", url, false, '','');
|
||||
httpRequest.send('');
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status); //404 ErrorCodes etc
|
||||
return false;
|
||||
break;
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// XML in Datasource parsen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/adressen/alle');
|
||||
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Daten aus RDF auslesen
|
||||
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/adressen/" + MitarbeiterDetailAdress_id);
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/adressen/rdf";
|
||||
|
||||
//Felder befuellen
|
||||
|
||||
person_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#person_id" ));
|
||||
adresstyp = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#typ" ));
|
||||
nation = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#nation" ));
|
||||
strasse = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#strasse" ));
|
||||
plz = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#plz" ));
|
||||
gemeinde = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#gemeinde" ));
|
||||
ort = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#ort" ));
|
||||
zustelladresse = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#zustelladresse" ));
|
||||
bismeldeadresse = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#bismeldeadresse" ));
|
||||
|
||||
document.getElementById('textbox-mitarbeiter-adressen-person_id').value = person_id;
|
||||
document.getElementById('menulist-mitarbeiter-adressen-adresstyp').value = adresstyp;
|
||||
document.getElementById('menulist-mitarbeiter-adressen-nation').value = nation;
|
||||
document.getElementById('textbox-mitarbeiter-adressen-strasse').value = strasse;
|
||||
document.getElementById('textbox-mitarbeiter-adressen-plz').value = plz;
|
||||
document.getElementById('textbox-mitarbeiter-adressen-gemeinde').value = gemeinde;
|
||||
document.getElementById('textbox-mitarbeiter-adressen-ort').value = ort;
|
||||
if(zustelladresse == 'Ja')
|
||||
document.getElementById('checkbox-mitarbeiter-adressen-zustelladresse').checked = true;
|
||||
else
|
||||
document.getElementById('checkbox-mitarbeiter-adressen-zustelladresse').checked = false;
|
||||
if(bismeldeadresse == 'Ja')
|
||||
document.getElementById('checkbox-mitarbeiter-adressen-bismeldeadresse').checked = true;
|
||||
else
|
||||
document.getElementById('checkbox-mitarbeiter-adressen-bismeldeadresse').checked = false;
|
||||
}
|
||||
|
||||
function MitarbeiterAdressenValueChange()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert die eingegebene Adresse
|
||||
*/
|
||||
function MitarbeiterAdressenSave()
|
||||
{
|
||||
//Daten aus den Felder holen
|
||||
person_id = document.getElementById('textbox-mitarbeiter-adressen-person_id').value;
|
||||
adresstyp = document.getElementById('menulist-mitarbeiter-adressen-adresstyp').value;
|
||||
name = document.getElementById('menulist-mitarbeiter-adressen-adresstyp').label;
|
||||
nation = document.getElementById('menulist-mitarbeiter-adressen-nation').value;
|
||||
strasse = document.getElementById('textbox-mitarbeiter-adressen-strasse').value;
|
||||
plz = document.getElementById('textbox-mitarbeiter-adressen-plz').value;
|
||||
gemeinde = document.getElementById('textbox-mitarbeiter-adressen-gemeinde').value;
|
||||
ort = document.getElementById('textbox-mitarbeiter-adressen-ort').value;
|
||||
zustelladresse = document.getElementById('checkbox-mitarbeiter-adressen-zustelladresse').checked;
|
||||
bismeldeadresse = document.getElementById('checkbox-mitarbeiter-adressen-bismeldeadresse').checked;
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
var url = "<?php echo APP_ROOT; ?>rdf/fas/db_dml.rdf.php";
|
||||
|
||||
httpRequest.open("POST", url, false, '','');
|
||||
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
//Parameterliste zusammenbauen
|
||||
var param = "type=adresse";
|
||||
if(MitarbeiterDetailAdress_id!=null)
|
||||
param = param + "&new=false";
|
||||
else
|
||||
param = param + "&new=true";
|
||||
|
||||
param = param + "&adress_id="+encodeURIComponent(MitarbeiterDetailAdress_id);
|
||||
param = param + "&person_id="+encodeURIComponent(person_id);
|
||||
param = param + "&adresstyp="+encodeURIComponent(adresstyp);
|
||||
param = param + "&name="+encodeURIComponent(name);
|
||||
param = param + "&nation="+encodeURIComponent(nation);
|
||||
param = param + "&strasse="+encodeURIComponent(strasse);
|
||||
param = param + "&plz="+encodeURIComponent(plz);
|
||||
param = param + "&gemeinde="+encodeURIComponent(gemeinde);
|
||||
param = param + "&ort="+encodeURIComponent(ort);
|
||||
param = param + "&zustelladresse="+encodeURIComponent(zustelladresse);
|
||||
param = param + "&bismeldeadresse="+encodeURIComponent(bismeldeadresse);
|
||||
|
||||
//Parameter schicken
|
||||
httpRequest.send(param);
|
||||
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status);
|
||||
return false;
|
||||
break;
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Returnwerte aus RDF abfragen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/dbdml');
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/dbdml/0");
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/dbdml/rdf";
|
||||
|
||||
var dbdml_return = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
var dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
|
||||
|
||||
if(dbdml_return=='true')
|
||||
{
|
||||
//AdressenTree aktualisieren
|
||||
|
||||
//Statusbar setzen
|
||||
window.opener.setStatusBarText("Adresse erfolgreich gespeichert");
|
||||
window.opener.document.getElementById("tree-liste-adressen").builder.refresh();
|
||||
//Fenster schliessen
|
||||
window.close();
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Fehler beim Speichern der Daten: "+dbdml_errormsg);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
|
||||
if(isset($_GET['person_id']))
|
||||
$person_id = $_GET['person_id'];
|
||||
else
|
||||
$person_id=null;
|
||||
|
||||
if(isset($_GET['adress_id']))
|
||||
$adress_id=$_GET['adress_id'];
|
||||
else
|
||||
$adress_id=null;
|
||||
|
||||
// rdf:null
|
||||
?>
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
|
||||
|
||||
<window id="mitarbeiter-adressen-dialog" title="Adressen"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/mitarbeiteradressendialog.js.php?adress_id=<?php echo $adress_id;?>" />
|
||||
|
||||
|
||||
<textbox id="textbox-mitarbeiter-adressen-person_id" value="<?php echo $person_id;?>" hidden="true"/>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true" style="margin:0px;"
|
||||
>
|
||||
<columns>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<label align="end" control="menulist-mitarbeiter-adresse-adresstyp" value="Adresstyp:"/>
|
||||
<menulist id="menulist-mitarbeiter-adressen-adresstyp"
|
||||
oncommand="MitarbeiterAdressenValueChange();">
|
||||
<menupopup>
|
||||
<menuitem label=" --- " value="0"/>
|
||||
<menuitem label="Firmensitz" value="1"/>
|
||||
<menuitem label="Hauptwohnsitz" value="2" selected="true"/>
|
||||
<menuitem label="Nebenwohnsitz" value="3"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="menulist-mitarbeiter-adressen-nation" value="Nation:"/>
|
||||
<menulist id="menulist-mitarbeiter-adressen-nation" oncommand="MitarbeiterAdressenValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/nation.rdf.php"
|
||||
ref="http://www.technikum-wien.at/nation/alle" value='A'>
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
value="rdf:http://www.technikum-wien.at/nation/rdf#code"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-adressen-strasse" value="Strasse:"/>
|
||||
<textbox id="textbox-mitarbeiter-adressen-strasse" maxlength="255" oninput="MitarbeiterAdressenValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="menulist-mitarbeiter-adressen-plz" value="Plz:"/>
|
||||
<hbox><textbox id="textbox-mitarbeiter-adressen-plz" size="10" maxlength="10" oninput="MitarbeiterAdressenValueChange()"/><spacer /></hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-adressen-gemeinde" value="Gemeinde:"/>
|
||||
<textbox id="textbox-mitarbeiter-adressen-gemeinde" maxlength="255" oninput="MitarbeiterAdressenValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-adressen-ort" value="Ort:"/>
|
||||
<textbox id="textbox-mitarbeiter-adressen-ort" maxlength="255" oninput="MitarbeiterAdressenValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<spacer />
|
||||
<hbox>
|
||||
<checkbox label="Zustelladresse" id="checkbox-mitarbeiter-adressen-zustelladresse" checked="true" onclick="MitarbeiterAdressenValueChange()"/>
|
||||
<checkbox label="BIS-Meldeadresse" id="checkbox-mitarbeiter-adressen-bismeldeadresse" checked="true" onclick="MitarbeiterAdressenValueChange()"/>
|
||||
</hbox>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true" style="margin:0px;"
|
||||
>
|
||||
<columns>
|
||||
<column flex="5"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<spacer />
|
||||
<button label="OK" oncommand="MitarbeiterAdressenSave()"/>
|
||||
<button label="Abbrechen" oncommand="window.close()"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</window>
|
||||
@@ -0,0 +1,194 @@
|
||||
<?php
|
||||
include('../vilesci/config.inc.php');
|
||||
|
||||
if(isset($_GET['bankverbindung_id']) && $_GET['bankverbindung_id']!='')
|
||||
echo "var MitarbeiterDetailBankverbindung_id=".$_GET['bankverbindung_id'];
|
||||
else
|
||||
echo "var MitarbeiterDetailBankverbindung_id=null";
|
||||
|
||||
?>
|
||||
|
||||
if(MitarbeiterDetailBankverbindung_id!=null)
|
||||
{
|
||||
window.setTimeout("MitarbeiterBankverbindungBearbeiten()",window.opener.sleep_time/2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den zu bearbeitenden Datensatz
|
||||
*/
|
||||
function MitarbeiterBankverbindungBearbeiten()
|
||||
{
|
||||
// RDF vom Server holen
|
||||
|
||||
// Url zum RDF
|
||||
var url="<?php echo APP_ROOT; ?>rdf/fas/bankverbindungen.rdf.php?bankverbindung_id="+MitarbeiterDetailBankverbindung_id;
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
httpRequest.open("GET", url, false, '','');
|
||||
httpRequest.send('');
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status); //404 ErrorCodes etc
|
||||
return false;
|
||||
break;
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// XML in Datasource parsen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/bankverbindungen/alle');
|
||||
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Daten aus RDF auslesen
|
||||
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/bankverbindungen/" + MitarbeiterDetailBankverbindung_id);
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/bankverbindungen/rdf";
|
||||
|
||||
//Felder befuellen
|
||||
|
||||
person_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#person_id" ));
|
||||
name = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#name" ));
|
||||
anschrift = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#anschrift" ));
|
||||
blz = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#blz" ));
|
||||
bic = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#bic" ));
|
||||
kontonr = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#kontonummer" ));
|
||||
iban = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#iban" ));
|
||||
typ = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#typ" ));
|
||||
verrechnungskonto = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#verrechnungskonto" ));
|
||||
|
||||
document.getElementById('textbox-mitarbeiter-bankverbindung-person_id').value = person_id;
|
||||
document.getElementById('textbox-mitarbeiter-bankverbindung-name').value = name;
|
||||
document.getElementById('textbox-mitarbeiter-bankverbindung-anschrift').value = anschrift;
|
||||
document.getElementById('textbox-mitarbeiter-bankverbindung-blz').value = blz;
|
||||
document.getElementById('textbox-mitarbeiter-bankverbindung-bic').value = bic;
|
||||
document.getElementById('textbox-mitarbeiter-bankverbindung-kontonr').value = kontonr;
|
||||
document.getElementById('textbox-mitarbeiter-bankverbindung-iban').value = iban;
|
||||
document.getElementById('menulist-mitarbeiter-bankverbindung-typ').value = typ;
|
||||
if(verrechnungskonto=='Ja')
|
||||
document.getElementById('checkbox-mitarbeiter-bankverbindung-verrechnungskonto').checked=true;
|
||||
else
|
||||
document.getElementById('checkbox-mitarbeiter-bankverbindung-verrechnungskonto').checked=false;
|
||||
|
||||
}
|
||||
|
||||
function MitarbeiterBankverbindungValueChange()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert die eingegebene Email
|
||||
*/
|
||||
function MitarbeiterBankverbindungSave()
|
||||
{
|
||||
//Daten aus den Felder holen
|
||||
person_id = document.getElementById('textbox-mitarbeiter-bankverbindung-person_id').value;
|
||||
name = document.getElementById('textbox-mitarbeiter-bankverbindung-name').value;
|
||||
typ = document.getElementById('menulist-mitarbeiter-bankverbindung-typ').value;
|
||||
anschrift = document.getElementById('textbox-mitarbeiter-bankverbindung-anschrift').value;
|
||||
blz = document.getElementById('textbox-mitarbeiter-bankverbindung-blz').value;
|
||||
bic = document.getElementById('textbox-mitarbeiter-bankverbindung-bic').value;
|
||||
kontonr = document.getElementById('textbox-mitarbeiter-bankverbindung-kontonr').value;
|
||||
iban = document.getElementById('textbox-mitarbeiter-bankverbindung-iban').value;
|
||||
verrechnungskonto = document.getElementById('checkbox-mitarbeiter-bankverbindung-verrechnungskonto').checked;
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
var url = "<?php echo APP_ROOT; ?>rdf/fas/db_dml.rdf.php";
|
||||
|
||||
httpRequest.open("POST", url, false, '','');
|
||||
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
var param = "type=bankverbindung";
|
||||
if(MitarbeiterDetailBankverbindung_id!=null)
|
||||
param = param + "&new=false";
|
||||
else
|
||||
param = param + "&new=true";
|
||||
|
||||
param = param + "&bankverbindung_id="+encodeURIComponent(MitarbeiterDetailBankverbindung_id);
|
||||
param = param + "&person_id="+encodeURIComponent(person_id);
|
||||
param = param + "&name="+encodeURIComponent(name);
|
||||
param = param + "&typ="+encodeURIComponent(typ);
|
||||
param = param + "&anschrift="+encodeURIComponent(anschrift);
|
||||
param = param + "&blz="+encodeURIComponent(blz);
|
||||
param = param + "&bic="+encodeURIComponent(bic);
|
||||
param = param + "&kontonr="+encodeURIComponent(kontonr);
|
||||
param = param + "&iban="+encodeURIComponent(iban);
|
||||
if(verrechnungskonto)
|
||||
param = param + "&verrechnungskonto=true";
|
||||
else
|
||||
param = param + "&verrechnungskonto=false";
|
||||
|
||||
//Parameter schicken
|
||||
httpRequest.send(param);
|
||||
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status);
|
||||
return false;
|
||||
break;
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Returnwerte aus RDF abfragen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/dbdml');
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/dbdml/0");
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/dbdml/rdf";
|
||||
|
||||
var dbdml_return = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
var dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
|
||||
|
||||
if(dbdml_return=='true')
|
||||
{
|
||||
//BankverbindungenTree aktualisieren
|
||||
|
||||
//Statusbar setzen
|
||||
window.opener.setStatusBarText(dbdml_errormsg);
|
||||
window.opener.document.getElementById("tree-liste-bankverbindungen").builder.refresh();
|
||||
window.setTimeout('window.opener.document.getElementById("tree-liste-bankverbindungen").builder.rebuild()',window.opener.sleep_time*2);
|
||||
|
||||
//Fenster schliessen
|
||||
window.close();
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Fehler beim Speichern der Daten: "+dbdml_errormsg);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
|
||||
if(isset($_GET['person_id']))
|
||||
$person_id = $_GET['person_id'];
|
||||
else
|
||||
$person_id=null;
|
||||
|
||||
if(isset($_GET['bankverbindung_id']))
|
||||
$bankverbindung_id=$_GET['bankverbindung_id'];
|
||||
else
|
||||
$bankverbindung_id=null;
|
||||
|
||||
// rdf:null
|
||||
?>
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
|
||||
|
||||
<window id="mitarbeiter-bankverbindung-dialog" title="Email"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/mitarbeiterbankverbindungdialog.js.php?bankverbindung_id=<?php echo $bankverbindung_id;?>" />
|
||||
|
||||
|
||||
<textbox id="textbox-mitarbeiter-bankverbindung-person_id" value="<?php echo $person_id;?>" hidden="true"/>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true" style="margin:0px;"
|
||||
>
|
||||
<columns>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<label align="end" control="menulist-mitarbeiter-bankverbindung-typ" value="Konto Typ:"/>
|
||||
<menulist id="menulist-mitarbeiter-bankverbindung-typ"
|
||||
oncommand="MitarbeiterBankverbindungValueChange();">
|
||||
<menupopup>
|
||||
<menuitem label="Privatkonto" value="1" selected="true"/>
|
||||
<menuitem label="Firmenkonto" value="2"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-bankverbindung-name" value="Bank Bezeichnung:"/>
|
||||
<textbox id="textbox-mitarbeiter-bankverbindung-name" maxlength="255" oninput="MitarbeiterBankverbindungValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-bankverbindung-anschrift" value="Bank Anschrift:"/>
|
||||
<textbox id="textbox-mitarbeiter-bankverbindung-anschrift" maxlength="255" oninput="MitarbeiterBankverbindungValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-bankverbindung-blz" value="BLZ:"/>
|
||||
<textbox id="textbox-mitarbeiter-bankverbindung-blz" maxlength="255" oninput="MitarbeiterBankverbindungValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-bankverbindung-kontonr" value="Kontonummer:"/>
|
||||
<textbox id="textbox-mitarbeiter-bankverbindung-kontonr" maxlength="255" oninput="MitarbeiterBankverbindungValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-bankverbindung-bic" value="BIC:"/>
|
||||
<textbox id="textbox-mitarbeiter-bankverbindung-bic" maxlength="255" oninput="MitarbeiterBankverbindungValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-bankverbindung-iban" value="IBAN:"/>
|
||||
<textbox id="textbox-mitarbeiter-bankverbindung-iban" maxlength="255" oninput="MitarbeiterBankverbindungValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<spacer />
|
||||
<checkbox label="Verrechnungskonto" id="checkbox-mitarbeiter-bankverbindung-verrechnungskonto" checked="true" oncommand="MitarbeiterBankverbindungValueChange()"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true" style="margin:0px;"
|
||||
>
|
||||
<columns>
|
||||
<column flex="5"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<spacer />
|
||||
<button label="OK" oncommand="MitarbeiterBankverbindungSave()"/>
|
||||
<button label="Abbrechen" oncommand="window.close()"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</window>
|
||||
@@ -0,0 +1,630 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/fas.css" type="text/css"?>';
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay>
|
||||
|
||||
<overlay id="MitarbeiterDetailOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns:NC="http://home.netscape.com/NC-rdf#"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<!-- datasources="rdf:null" ref="http://www.technikum-wien.at/mitarbeiter/alle" -->
|
||||
|
||||
<vbox id="MitarbeiterDetailEditor" flex="1" style="overflow:auto">
|
||||
<tabbox id="tabbox-MitarbeiterDetail" flex="3" orient="vertical" hidden="false">
|
||||
<tabs orient="horizontal">
|
||||
<tab id="tab-mitarbeiter-person" label="Stammdaten" />
|
||||
<tab id="tab-mitarbeiter-detail" label="Zusätzliche Daten" />
|
||||
</tabs>
|
||||
<tabpanels id="tabpanels-mitarbeiter-main" flex="1">
|
||||
<vbox>
|
||||
<groupbox id='groupbox-personendaten'>
|
||||
<!--PersonenDaten-->
|
||||
<caption label="Personendaten" />
|
||||
<textbox id="textbox-mitarbeiter-detail-mitarbeiter_id" hidden="true" />
|
||||
<textbox id="textbox-mitarbeiter-detail-person_id" hidden="true" />
|
||||
<textbox id="textbox-mitarbeiter-detail-aktstatus" hidden="true" />
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
>
|
||||
<columns>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-detail-anrede" value="Anrede:"/>
|
||||
<textbox id="textbox-mitarbeiter-detail-anrede" flex="1" value="" oninput="treeMitarbeiterValueChange()" onchange="MitarbeiterAnredeValueChange()"/>
|
||||
<label control="textbox-mitarbeiter-detail-titelpre" value="Titel (Pre):"/>
|
||||
<textbox id="textbox-mitarbeiter-detail-titelpre" flex="1" value="" oninput="treeMitarbeiterValueChange()"/>
|
||||
<label control="textbox-mitarbeiter-detail-titelpost" value="Titel (Post):"/>
|
||||
<textbox id="textbox-mitarbeiter-detail-titelpost" flex="1" oninput="treeMitarbeiterValueChange()"/>
|
||||
<label control="textbox-mitarbeiter-detail-uid" value="UID:"/>
|
||||
<hbox><textbox id="textbox-mitarbeiter-detail-uid" size="20" maxlength="20" oninput="treeMitarbeiterValueChange()"/><spacer /></hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label control="textbox-mitarbeiter-detail-nachname" value="Nachname:"/>
|
||||
<textbox id="textbox-mitarbeiter-detail-nachname" class="pflichtfeld" flex="1" oninput="treeMitarbeiterValueChange()"/>
|
||||
<label control="textbox-mitarbeiter-detail-vorname" value="Vorname:"/>
|
||||
<textbox id="textbox-mitarbeiter-detail-vorname" class="pflichtfeld" flex="1" oninput="treeMitarbeiterValueChange()"/>
|
||||
<label control="textbox-mitarbeiter-detail-vornamen" value="Vornamen:"/>
|
||||
<textbox id="textbox-mitarbeiter-detail-vornamen" flex="1" oninput="treeMitarbeiterValueChange()"/>
|
||||
<label control="textbox-mitarbeiter-detail-svnr" value="SVNR:" />
|
||||
<hbox><textbox id="textbox-mitarbeiter-detail-svnr" size="10" maxlength="10" oninput="treeMitarbeiterValueChange()" onchange="MitarbeiterSVNRValueChange()"/><spacer /></hbox>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<label control="textbox-mitarbeiter-detail-geburtsort" value="Geburtsort: "/>
|
||||
<textbox id="textbox-mitarbeiter-detail-geburtsort" maxlength="255" flex="1" oninput="treeMitarbeiterValueChange()"/>
|
||||
<label control="menulist-mitarbeiter-detail-staatsbuergerschaft" value="Staatsbürgerschaft:"/>
|
||||
<menulist id="menulist-mitarbeiter-detail-staatsbuergerschaft" oncommand="treeMitarbeiterValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/nation.rdf.php?ohnesperre=true"
|
||||
ref="http://www.technikum-wien.at/nation/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
value="rdf:http://www.technikum-wien.at/nation/rdf#code"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label control="menulist-mitarbeiter-detail-geburtsnation" value="Geburtsnation:"/>
|
||||
<menulist id="menulist-mitarbeiter-detail-geburtsnation" oncommand="treeMitarbeiterValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/nation.rdf.php"
|
||||
ref="http://www.technikum-wien.at/nation/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
value="rdf:http://www.technikum-wien.at/nation/rdf#code"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label control="textbox-mitarbeiter-detail-ersatzkennzeichen" value="Ersatzkennzeichen:"/>
|
||||
<textbox id="textbox-mitarbeiter-detail-ersatzkennzeichen" size="10" maxlength="10" oninput="treeMitarbeiterValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label control="textbox-mitarbeiter-detail-geburtsdatum" value="Gebutsdatum:"/>
|
||||
<hbox><textbox id="textbox-mitarbeiter-detail-geburtsdatum" size="10" maxlength="10" oninput="treeMitarbeiterValueChange()"/><spacer /></hbox>
|
||||
<label control="button-mitarbeiter-detail-geschlecht" value="Geschlecht:"/>
|
||||
<button id='button-mitarbeiter-detail-geschlecht' label='maennlich' oncommand="MitarbeiterDetailGeschlechtChange()" class="change" />
|
||||
<label control="menulist-mitarbeiter-detail-familienstand" value="Familienstand: "/>
|
||||
<menulist id="menulist-mitarbeiter-detail-familienstand"
|
||||
oncommand="treeMitarbeiterValueChange();">
|
||||
<menupopup>
|
||||
<menuitem label=" --- " value="0"/>
|
||||
<menuitem label="ledig" value="1" selected="true"/>
|
||||
<menuitem label="verheiratet" value="2"/>
|
||||
<menuitem label="geschieden" value="3"/>
|
||||
<menuitem label="verwitwet" value="4"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
<label control="textbox-mitarbeiter-detail-anzahlderkinder" value="Anzahl Kinder:"/>
|
||||
<hbox><textbox id="textbox-mitarbeiter-detail-anzahlderkinder" size="2" maxlength="2" value="0" oninput="treeMitarbeiterValueChange()"/><spacer /></hbox>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true" class="style-groupbox"
|
||||
>
|
||||
<columns>
|
||||
<column />
|
||||
<column flex="2"/>
|
||||
<column flex="1"/>
|
||||
<column />
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
|
||||
<row>
|
||||
<label control="textbox-mitarbeiter-detail-bemerkung" value="Bemerkung:"/>
|
||||
<textbox id="textbox-mitarbeiter-detail-bemerkung" multiline="true" oninput="treeMitarbeiterValueChange()"/>
|
||||
<spacer flex="1"/>
|
||||
<checkbox label="Aktiv" id="checkbox-mitarbeiter-detail-aktiv" checked="true" oncommand="treeMitarbeiterValueChange()"/>
|
||||
<checkbox label="BIS Melden" id="checkbox-mitarbeiter-detail-bismelden" checked="true" oncommand="treeMitarbeiterValueChange()"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
|
||||
</groupbox>
|
||||
<hbox>
|
||||
<groupbox flex="8">
|
||||
<caption label="Mitarbeiterdaten" />
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
>
|
||||
<columns>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-detail-personal_nr" value="Personalnummer:"/>
|
||||
<textbox id="textbox-mitarbeiter-detail-personal_nr" size="10" maxlength="10" oninput="treeMitarbeiterValueChange()"/>
|
||||
<label align="end" control="textbox-mitarbeiter-detail-kurzbezeichnung" value="Kurzbezeichnung:"/>
|
||||
<hbox>
|
||||
<textbox id="textbox-mitarbeiter-detail-kurzbezeichnung" class="pflichtfeld" size="10" maxlength="10" oninput="treeMitarbeiterValueChange()"/>
|
||||
<button id='button-mitarbeiter-detail-gen_kurzbez' label='G' oncommand="MitarbeiterDetailKurzbzGenerate()"/>
|
||||
</hbox>
|
||||
<label align="end" control="textbox-mitarbeiter-detail-beginndatum" value="Beginndatum:"/>
|
||||
<hbox><textbox id="textbox-mitarbeiter-detail-beginndatum" size="10" maxlength="10" oninput="treeMitarbeiterValueChange()"/><spacer /></hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-detail-stundensatz" value="Stundensatz:"/>
|
||||
<textbox id="textbox-mitarbeiter-detail-stundensatz" size="10" maxlength="10" oninput="treeMitarbeiterValueChange()"/>
|
||||
<checkbox label="Habilitation" id="checkbox-mitarbeiter-detail-habilitation" checked="false" oncommand="treeMitarbeiterValueChange()"/>
|
||||
<spacer/>
|
||||
<checkbox label="ausgeschieden am" id="checkbox-mitarbeiter-detail-ausgeschieden" checked="false" oncommand="treeMitarbeiterValueChange(); MitarbeiterDetailAusgeschiedenChange();"/>
|
||||
<hbox><textbox id="textbox-mitarbeiter-detail-beendigungsdatum" disabled="true" size="10" maxlength="10" oninput="treeMitarbeiterValueChange()"/><spacer /></hbox>
|
||||
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox class="style-groupbox">
|
||||
<label align="end" control="menulist-mitarbeiter-detail-ausbildung" value="Höchste abgeschlossene Ausbildung:"/>
|
||||
<menulist id="menulist-mitarbeiter-detail-ausbildung" oncommand="treeMitarbeiterValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/ausbildung.rdf.php"
|
||||
ref="http://www.technikum-wien.at/ausbildung/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/ausbildung/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/ausbildung/rdf#ausbildung_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
<spacer flex="2" />
|
||||
<vbox flex="1">
|
||||
<spacer flex="1"/>
|
||||
<hbox><button id="button-mitarbeiter-detail-zurueck" flex="1" disabled="true" label="Zurück" oncommand="MitarbeiterDetailZurueck();"/></hbox>
|
||||
<hbox><button id="button-mitarbeiter-detail-speichern" flex="1" disabled="true" label="Speichern" oncommand="saveMitarbeiter();"/></hbox>
|
||||
<spacer flex="1"/>
|
||||
</vbox>
|
||||
<spacer flex="2" />
|
||||
|
||||
</hbox>
|
||||
|
||||
|
||||
|
||||
<groupbox hidden="false" flex="1">
|
||||
<caption label="Funktionen" />
|
||||
<hbox flex="1" class="hbox-tree">
|
||||
<tree id="tree-liste-funktionen" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/funktionen/alle"
|
||||
onselect="" flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
ondblclick="MitarbeiterDetailFunktionenBearbeiten()"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="tree-liste-funktionen-col-funktion_id" label="Funktion_id" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#funktion_id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-mitarbeiter_id" label="Mitarbeiter_id" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#mitarbeiter_id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-studiensemester_bezeichnung" label="Studiensemester" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#studiensemester_id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<?php /*Wenn die ID nicht angezeigt wird, dann funktioniert das Sortieren von studiensemester_bezeichnung nicht richtig*/ ?>
|
||||
<treecol id="tree-liste-funktionen-col-studiensemester_id" label="StudiensemesterID" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#studiensemester_id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-erhalter_id" label="Erhalter" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#erhalter_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-studiengang_bezeichnung" label="Studiengang" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#studiengang_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-fachbereich_bezeichnung" label="Fachbereich" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#fachbereich_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-name" label="Name" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#name" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-funktion_bezeichnung" label="Funktion" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#funktion_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-beschart1" label="Beschäftigungsart 1" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#beschart1_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-beschart2" label="Beschäftigungsart 2" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#beschart2_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-verwendung" label="Verwendung" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#verwendung_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-hauptberuflich" label="Hauptberuflich" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#hauptberuflich" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-hauptberuf" label="Hauptberuf" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#hauptberuf_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-entwicklungsteam" label="Mitglied im Entwicklungsteam" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#entwicklungsteam" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-besonderequalifikation" label="Besondere Qualifikation" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#besonderequalifikation_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-funktionen-col-ausmass" label="Ausmass" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/funktionen/rdf#ausmass_bezeichnung" />
|
||||
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#funktion_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#mitarbeiter_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#studiensemester_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#studiensemester_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#erhalter_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#studiengang_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#fachbereich_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#funktion_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#beschart1_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#beschart2_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#verwendung_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#hauptberuflich" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#hauptberuf_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#entwicklungsteam" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#besonderequalifikation_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/funktionen/rdf#ausmass_bezeichnung" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
|
||||
</tree>
|
||||
<vbox>
|
||||
<button id="button-mitarbeiter-detail-funktionen-neu" disabled="true" label="Neu" oncommand="MitarbeiterDetailFunktionenNeu();"/>
|
||||
<button id="button-mitarbeiter-detail-funktionen-bearbeiten" disabled="true" label="Bearbeiten" oncommand="MitarbeiterDetailFunktionenBearbeiten();"/>
|
||||
<button id="button-mitarbeiter-detail-funktionen-loeschen" disabled="true" label="Löschen" oncommand="MitarbeiterDetailFunktionenLoeschen();"/>
|
||||
<spacer flex="1" />
|
||||
<button id="button-mitarbeiter-detail-funktionen-alleanzeigen" disabled="true" label="Alle Anzeigen" oncommand="MitarbeiterDetailFunktionenAlleAnzeigen();"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
|
||||
</vbox>
|
||||
|
||||
<!-- Seite 2 -->
|
||||
|
||||
<vbox>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
>
|
||||
<columns>
|
||||
<column flex="6"/>
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<vbox>
|
||||
<groupbox hidden="false">
|
||||
<caption label="Adressen" />
|
||||
<hbox class="hbox-tree">
|
||||
<tree id="tree-liste-adressen" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/adressen/alle"
|
||||
onselect="" flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="tree-liste-adressen-col-adresse_id" label="Adresse_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adressen/rdf#adresse_id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-adressen-col-bismeldeadresse" label="BisMeldeAdresse" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adressen/rdf#bismeldeadresse" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-adressen-col-gemeinde" label="Gemeinde" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adressen/rdf#gemeinde" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-adressen-col-name" label="Name" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adressen/rdf#name" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-adressen-col-nation" label="Nation" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adressen/rdf#nation" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-adressen-col-plz" label="Plz" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adressen/rdf#plz" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-adressen-col-ort" label="Ort" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adressen/rdf#ort" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-adressen-col-strasse" label="Strasse" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adressen/rdf#strassse" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<!-- ist das selbe wie name
|
||||
<treecol id="tree-liste-adressen-col-typ" label="Typ" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adressen/rdf#typ" />
|
||||
<splitter class="tree-splitter"/>
|
||||
-->
|
||||
<treecol id="tree-liste-adressen-col-zustelladresse" label="Zustelladresse" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adressen/rdf#zustelladresse" />
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adressen/rdf#adresse_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adressen/rdf#bismeldeadresse" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adressen/rdf#gemeinde" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adressen/rdf#name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adressen/rdf#nation" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adressen/rdf#plz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adressen/rdf#ort" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adressen/rdf#strasse" />
|
||||
<!--<treecell label="rdf:http://www.technikum-wien.at/adressen/rdf#typ" />-->
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adressen/rdf#zustelladresse" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
|
||||
</tree>
|
||||
<vbox>
|
||||
<button id="button-mitarbeiter-detail-adressen-neu" disabled="true" label="Neu" oncommand="MitarbeiterDetailAdressenNeu();"/>
|
||||
<button id="button-mitarbeiter-detail-adressen-bearbeiten" disabled="true" label="Bearbeiten" oncommand="MitarbeiterDetailAdressenBearbeiten();"/>
|
||||
<button id="button-mitarbeiter-detail-adressen-loeschen" disabled="true" label="Löschen" oncommand="MitarbeiterDetailAdressenLoeschen();"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
|
||||
<groupbox hidden="false">
|
||||
<caption label="Emailadressen" />
|
||||
<hbox class="hbox-tree">
|
||||
<tree id="tree-liste-email" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/email/alle"
|
||||
onselect="" flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="tree-liste-email-col-email_id" label="Email_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/email/rdf#email_id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-email-col-email" label="Email" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/email/rdf#email" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-email-col-name" label="Name" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/email/rdf#name" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<!-- ist das gleiche wie name
|
||||
<treecol id="tree-liste-email-col-typ" label="Typ" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/email/rdf#typ" />
|
||||
<splitter class="tree-splitter"/>
|
||||
-->
|
||||
<treecol id="tree-liste-email-col-zustelladresse" label="Zustelladresse" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/email/rdf#zustelladresse" />
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/email/rdf#email_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/email/rdf#email" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/email/rdf#name" />
|
||||
<!--<treecell label="rdf:http://www.technikum-wien.at/email/rdf#typ" />-->
|
||||
<treecell label="rdf:http://www.technikum-wien.at/email/rdf#zustelladresse" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
|
||||
</tree>
|
||||
<vbox>
|
||||
<button id="button-mitarbeiter-detail-email-neu" disabled="true" label="Neu" oncommand="MitarbeiterDetailEmailNeu();"/>
|
||||
<button id="button-mitarbeiter-detail-email-bearbeiten" disabled="true" label="Bearbeiten" oncommand="MitarbeiterDetailEmailBearbeiten();"/>
|
||||
<button id="button-mitarbeiter-detail-email-loeschen" disabled="true" label="Löschen" oncommand="MitarbeiterDetailEmailLoeschen();"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
|
||||
<groupbox hidden="false">
|
||||
<caption label="Telefonnummern" />
|
||||
<hbox class="hbox-tree">
|
||||
<tree id="tree-liste-telefonnummern" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/telefonnummern/alle"
|
||||
onselect="" flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="tree-liste-telefonnummern-col-telefonnummer_id" label="Telefonnummer_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/telefonnummern/rdf#telefonnummer_id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-telefonnummern-col-name" label="Name" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/telefonnummern/rdf#name" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-telefonnummern-col-nummer" label="Nummer" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/telefonnummern/rdf#nummer" />
|
||||
<!--<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-telefonnummern-col-typ" label="Typ" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/telefonnummern/rdf#typ" />
|
||||
-->
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/telefonnummern/rdf#telefonnummer_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/telefonnummern/rdf#name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/telefonnummern/rdf#nummer" />
|
||||
<!--<treecell label="rdf:http://www.technikum-wien.at/telefonnummern/rdf#typ" />-->
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
|
||||
</tree>
|
||||
<vbox>
|
||||
<button id="button-mitarbeiter-detail-telefonnummern-neu" disabled="true" label="Neu" oncommand="MitarbeiterDetailTelefonnummernNeu();"/>
|
||||
<button id="button-mitarbeiter-detail-telefonnummern-bearbeiten" disabled="true" label="Bearbeiten" oncommand="MitarbeiterDetailTelefonnummernBearbeiten();"/>
|
||||
<button id="button-mitarbeiter-detail-telefonnummern-loeschen" disabled="true" label="Löschen" oncommand="MitarbeiterDetailTelefonnummernLoeschen();"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
<groupbox hidden="false">
|
||||
<caption label="Bankverbindungen" />
|
||||
<hbox class="hbox-tree">
|
||||
<tree id="tree-liste-bankverbindungen" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/bankverbindungen/alle"
|
||||
onselect="" flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="tree-liste-bankverbindungen-col-bankverbindung_id" label="Bankverbindung_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#bankverbindungen_id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-bankverbindungen-col-name" label="Name" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#name" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-bankverbindungen-col-anschrift" label="Anschrift" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#anschrift" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-bankverbindungen-col-blz" label="BLZ" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#blz" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-bankverbindungen-col-bic" label="BIC" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#bic" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-bankverbindungen-col-kontonummer" label="Kontonummer" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#kontonummer" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-bankverbindungen-col-iban" label="IBAN" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#iban" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-bankverbindungen-col-verrechnungskonto" label="Verrechnungskonto" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#verrechnungskonto" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-bankverbindungen-col-typ" label="Typ" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#typ_name" />
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#bankverbindung_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#anschrift" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#blz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#bic" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#kontonummer" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#iban" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#verrechnungskonto" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindungen/rdf#typ_name" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
|
||||
</tree>
|
||||
<vbox>
|
||||
<button id="button-mitarbeiter-detail-bankverbindungen-neu" disabled="true" label="Neu" oncommand="MitarbeiterDetailBankverbindungenNeu();"/>
|
||||
<button id="button-mitarbeiter-detail-bankverbindungen-bearbeiten" disabled="true" label="Bearbeiten" oncommand="MitarbeiterDetailBankverbindungenBearbeiten();"/>
|
||||
<button id="button-mitarbeiter-detail-bankverbindungen-loeschen" disabled="true" label="Löschen" oncommand="MitarbeiterDetailBankverbindungenLoeschen();"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
</vbox>
|
||||
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</vbox>
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
|
||||
</overlay>
|
||||
@@ -0,0 +1,169 @@
|
||||
<?php
|
||||
include('../vilesci/config.inc.php');
|
||||
if(isset($_GET['email_id']) && $_GET['email_id']!='')
|
||||
echo "var MitarbeiterDetailEmail_id=".$_GET['email_id'];
|
||||
else
|
||||
echo "var MitarbeiterDetailEmail_id=null";
|
||||
?>
|
||||
|
||||
if(MitarbeiterDetailEmail_id!=null)
|
||||
{
|
||||
window.setTimeout("MitarbeiterEmailBearbeiten()",window.opener.sleep_time/2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den zu bearbeitenden Datensatz
|
||||
*/
|
||||
function MitarbeiterEmailBearbeiten()
|
||||
{
|
||||
// RDF vom Server holen
|
||||
|
||||
// Url zum RDF
|
||||
var url="<?php echo APP_ROOT; ?>rdf/fas/email.rdf.php?email_id="+MitarbeiterDetailEmail_id;
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
httpRequest.open("GET", url, false, '','');
|
||||
httpRequest.send('');
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status); //404 ErrorCodes etc
|
||||
return false;
|
||||
break;
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// XML in Datasource parsen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/email/alle');
|
||||
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Daten aus RDF auslesen
|
||||
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/email/" + MitarbeiterDetailEmail_id);
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/email/rdf";
|
||||
|
||||
//Felder befuellen
|
||||
|
||||
person_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#person_id" ));
|
||||
typ = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#typ" ));
|
||||
email = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#email" ));
|
||||
zustelladresse = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#zustelladresse" ));
|
||||
|
||||
document.getElementById('textbox-mitarbeiter-email-person_id').value = person_id;
|
||||
document.getElementById('menulist-mitarbeiter-email-name').value = typ;
|
||||
document.getElementById('textbox-mitarbeiter-email-email').value = email;
|
||||
if(zustelladresse == 'Ja')
|
||||
document.getElementById('checkbox-mitarbeiter-email-zustelladresse').checked = true;
|
||||
else
|
||||
document.getElementById('checkbox-mitarbeiter-email-zustelladresse').checked = false;
|
||||
}
|
||||
|
||||
function MitarbeiterEmailValueChange()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert die eingegebene Email
|
||||
*/
|
||||
function MitarbeiterEmailSave()
|
||||
{
|
||||
//Daten aus den Felder holen
|
||||
person_id = document.getElementById('textbox-mitarbeiter-email-person_id').value;
|
||||
name = document.getElementById('menulist-mitarbeiter-email-name').label;
|
||||
typ = document.getElementById('menulist-mitarbeiter-email-name').value;
|
||||
email = document.getElementById('textbox-mitarbeiter-email-email').value;
|
||||
zustelladresse = document.getElementById('checkbox-mitarbeiter-email-zustelladresse').checked;
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
var url = "<?php echo APP_ROOT; ?>rdf/fas/db_dml.rdf.php";
|
||||
|
||||
httpRequest.open("POST", url, false, '','');
|
||||
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
var param = "type=email";
|
||||
if(MitarbeiterDetailEmail_id!=null)
|
||||
param = param + "&new=false";
|
||||
else
|
||||
param = param + "&new=true";
|
||||
|
||||
param = param + "&email_id="+encodeURIComponent(MitarbeiterDetailEmail_id);
|
||||
param = param + "&person_id="+encodeURIComponent(person_id);
|
||||
param = param + "&name="+encodeURIComponent(name);
|
||||
param = param + "&typ="+encodeURIComponent(typ);
|
||||
param = param + "&email="+encodeURIComponent(email);
|
||||
param = param + "&zustelladresse="+encodeURIComponent(zustelladresse);
|
||||
|
||||
//Parameter schicken
|
||||
httpRequest.send(param);
|
||||
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status);
|
||||
return false;
|
||||
break;
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Returnwerte aus RDF abfragen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/dbdml');
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/dbdml/0");
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/dbdml/rdf";
|
||||
|
||||
var dbdml_return = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
var dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
|
||||
|
||||
if(dbdml_return=='true')
|
||||
{
|
||||
//AdressenTree aktualisieren
|
||||
|
||||
//Statusbar setzen
|
||||
window.opener.setStatusBarText("Email erfolgreich gespeichert");
|
||||
window.opener.document.getElementById("tree-liste-email").builder.refresh();
|
||||
window.setTimeout('window.opener.document.getElementById("tree-liste-email").builder.rebuild()',window.opener.sleep_time);
|
||||
|
||||
//Fenster schliessen
|
||||
window.setTimeout('window.close()',window.opener.sleep_time);
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Fehler beim Speichern der Daten: "+dbdml_errormsg);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
|
||||
if(isset($_GET['person_id']))
|
||||
$person_id = $_GET['person_id'];
|
||||
else
|
||||
$person_id=null;
|
||||
|
||||
if(isset($_GET['email_id']))
|
||||
$email_id=$_GET['email_id'];
|
||||
else
|
||||
$email_id=null;
|
||||
|
||||
// rdf:null
|
||||
?>
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
|
||||
|
||||
<window id="mitarbeiter-email-dialog" title="Email"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/mitarbeiteremaildialog.js.php?email_id=<?php echo $email_id;?>" />
|
||||
|
||||
|
||||
<textbox id="textbox-mitarbeiter-email-person_id" value="<?php echo $person_id;?>" hidden="true"/>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true" style="margin:0px;"
|
||||
>
|
||||
<columns>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<label align="end" control="menulist-mitarbeiter-email-name" value="Art:"/>
|
||||
<menulist id="menulist-mitarbeiter-email-name"
|
||||
oncommand="MitarbeiterEmailValueChange();">
|
||||
<menupopup>
|
||||
<menuitem label="Private Emailadresse" value="1" selected="true"/>
|
||||
<menuitem label="Emailadresse in der Firma" value="2"/>
|
||||
<menuitem label="Emailadresse an der Fachhochschule" value="3"/>
|
||||
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-email-email" value="Emailadresse:"/>
|
||||
<textbox id="textbox-mitarbeiter-email-email" maxlength="255" oninput="MitarbeiterEmailValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<spacer />
|
||||
<checkbox label="Zustelladresse" id="checkbox-mitarbeiter-email-zustelladresse" checked="true" onclick="MitarbeiterEmailValueChange()"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true" style="margin:0px;"
|
||||
>
|
||||
<columns>
|
||||
<column flex="5"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<spacer />
|
||||
<button label="OK" oncommand="MitarbeiterEmailSave()"/>
|
||||
<button label="Abbrechen" oncommand="window.close()"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</window>
|
||||
@@ -0,0 +1,285 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
include("../vilesci/config.inc.php");
|
||||
|
||||
if(isset($_GET['funktion_id']) && $_GET['funktion_id']!='' && is_numeric($_GET['funktion_id']))
|
||||
echo "var MitarbeiterDetailFunktion_id=".$_GET['funktion_id'].";";
|
||||
else
|
||||
echo "var MitarbeiterDetailFunktion_id=null;";
|
||||
?>
|
||||
|
||||
function Check()
|
||||
{
|
||||
if(MitarbeiterDetailFunktion_id!=null)
|
||||
window.setTimeout("MitarbeiterFunktionBearbeiten()",window.opener.sleep_time);
|
||||
else
|
||||
window.setTimeout("MitarbeiterFunktionDefault()",window.opener.sleep_time);
|
||||
}
|
||||
|
||||
/**
|
||||
* Setzt die Defaultwerte
|
||||
*/
|
||||
function MitarbeiterFunktionDefault()
|
||||
{
|
||||
MitarbeiterDetailStudiensemester_id = document.getElementById('textbox-mitarbeiter-funktion-stsem_id').value;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-fachbereich').value = 2;
|
||||
document.getElementById('textbox-mitarbeiter-funktion-beschreibung').value = '';
|
||||
document.getElementById('menulist-mitarbeiter-funktion-funktion').value = 0;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-beschart1').value = 3;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-beschart2').value = 2;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-verwendung').value = 0;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-hauptberuf').value = 0;
|
||||
document.getElementById('checkbox-mitarbeiter-funktion-hauptberuflich').checked = false;
|
||||
document.getElementById('checkbox-mitarbeiter-funktion-entwicklungsteam').checked = false;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-qualifikation').disabled = true;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-qualifikation').value = 0;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-ausmass').value = 1;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-studiensemester').value = MitarbeiterDetailStudiensemester_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den zu bearbeitenden Datensatz
|
||||
*/
|
||||
function MitarbeiterFunktionBearbeiten()
|
||||
{
|
||||
// RDF vom Server holen
|
||||
|
||||
// Url zum RDF
|
||||
var url="<?php echo APP_ROOT; ?>rdf/fas/funktionen.rdf.php?funktion_id="+MitarbeiterDetailFunktion_id+'&'+window.opener.gettimestamp();
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
httpRequest.open("GET", url, false, '','');
|
||||
httpRequest.send('');
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status); //404 ErrorCodes etc
|
||||
return false;
|
||||
break;
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// XML in Datasource parsen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/funktionen/alle');
|
||||
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Daten aus RDF auslesen
|
||||
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/funktionen/" + MitarbeiterDetailFunktion_id);
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/funktionen/rdf";
|
||||
|
||||
//Felder befuellen
|
||||
mitarbeiter_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#mitarbeiter_id" ));
|
||||
studiensemester_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#studiensemester_id" ));
|
||||
erhalter_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#erhalter_id" ));
|
||||
studiengang_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#studiengang_id" ));
|
||||
fachbereich_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#fachbereich_id" ));
|
||||
name = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#name" ));
|
||||
funktion = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#funktion" ));
|
||||
beschart1 = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#beschart1" ));
|
||||
beschart2 = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#beschart2" ));
|
||||
verwendung = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#verwendung" ));
|
||||
hauptberuf = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#hauptberuf" ));
|
||||
hauptberuflich = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#hauptberuflich" ));
|
||||
entwicklungsteam = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#entwicklungsteam" ));
|
||||
qualifikation = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#besonderequalifikation" ));
|
||||
ausmass = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#ausmass" ));
|
||||
|
||||
document.getElementById('textbox-mitarbeiter-funktion-mitarbeiter_id').value = mitarbeiter_id;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-studiensemester').value = studiensemester_id;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-erhalter').value = erhalter_id;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-studiengang').value = studiengang_id;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-fachbereich').value = fachbereich_id;
|
||||
document.getElementById('textbox-mitarbeiter-funktion-beschreibung').value = name;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-funktion').value = funktion;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-beschart1').value = beschart1;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-beschart2').value = beschart2;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-verwendung').value = verwendung;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-hauptberuf').value = hauptberuf;
|
||||
if(hauptberuflich=='Ja')
|
||||
{
|
||||
document.getElementById('checkbox-mitarbeiter-funktion-hauptberuflich').checked = true;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-hauptberuf').disabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById('checkbox-mitarbeiter-funktion-hauptberuflich').checked = false;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-hauptberuf').disabled = false;
|
||||
}
|
||||
if(entwicklungsteam=='Ja')
|
||||
{
|
||||
document.getElementById('checkbox-mitarbeiter-funktion-entwicklungsteam').checked = true;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-qualifikation').disabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById('checkbox-mitarbeiter-funktion-entwicklungsteam').checked = false;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-qualifikation').disabled = true;
|
||||
}
|
||||
document.getElementById('menulist-mitarbeiter-funktion-qualifikation').value = qualifikation;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-ausmass').value = ausmass;
|
||||
}
|
||||
|
||||
function MitarbeiterFunktionValueChange()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert die eingegebene Funktion
|
||||
*/
|
||||
function MitarbeiterFunktionSave()
|
||||
{
|
||||
//Daten aus den Feldern holen
|
||||
mitarbeiter_id = document.getElementById('textbox-mitarbeiter-funktion-mitarbeiter_id').value;
|
||||
studiensemester_id = document.getElementById('menulist-mitarbeiter-funktion-studiensemester').value;
|
||||
erhalter_id = document.getElementById('menulist-mitarbeiter-funktion-erhalter').value;
|
||||
studiengang_id = document.getElementById('menulist-mitarbeiter-funktion-studiengang').value;
|
||||
fachbereich_id = document.getElementById('menulist-mitarbeiter-funktion-fachbereich').value;
|
||||
name = document.getElementById('textbox-mitarbeiter-funktion-beschreibung').value;
|
||||
funktion = document.getElementById('menulist-mitarbeiter-funktion-funktion').value;
|
||||
beschart1 = document.getElementById('menulist-mitarbeiter-funktion-beschart1').value;
|
||||
beschart2 = document.getElementById('menulist-mitarbeiter-funktion-beschart2').value;
|
||||
verwendung = document.getElementById('menulist-mitarbeiter-funktion-verwendung').value;
|
||||
hauptberuf = document.getElementById('menulist-mitarbeiter-funktion-hauptberuf').value;
|
||||
hauptberuflich = document.getElementById('checkbox-mitarbeiter-funktion-hauptberuflich').checked;
|
||||
entwicklungsteam = document.getElementById('checkbox-mitarbeiter-funktion-entwicklungsteam').checked;
|
||||
qualifikation = document.getElementById('menulist-mitarbeiter-funktion-qualifikation').value;
|
||||
ausmass = document.getElementById('menulist-mitarbeiter-funktion-ausmass').value;
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
var url = "<?php echo APP_ROOT; ?>rdf/fas/db_dml.rdf.php";
|
||||
|
||||
httpRequest.open("POST", url, false, '','');
|
||||
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
var param = "type=funktion";
|
||||
if(MitarbeiterDetailFunktion_id!=null)
|
||||
param = param + "&new=false";
|
||||
else
|
||||
param = param + "&new=true";
|
||||
|
||||
param = param + "&funktion_id="+encodeURIComponent(MitarbeiterDetailFunktion_id);
|
||||
param = param + "&mitarbeiter_id="+encodeURIComponent(mitarbeiter_id);
|
||||
param = param + "&studiensemester_id="+encodeURIComponent(studiensemester_id);
|
||||
param = param + "&erhalter_id="+encodeURIComponent(erhalter_id);
|
||||
param = param + "&studiengang_id="+encodeURIComponent(studiengang_id);
|
||||
param = param + "&fachbereich_id="+encodeURIComponent(fachbereich_id);
|
||||
param = param + "&name="+encodeURIComponent(name);
|
||||
param = param + "&funktion="+encodeURIComponent(funktion);
|
||||
param = param + "&beschart1="+encodeURIComponent(beschart1);
|
||||
param = param + "&beschart2="+encodeURIComponent(beschart2);
|
||||
param = param + "&verwendung="+encodeURIComponent(verwendung);
|
||||
param = param + "&hauptberuf="+encodeURIComponent(hauptberuf);
|
||||
param = param + "&hauptberuflich="+encodeURIComponent(hauptberuflich);
|
||||
param = param + "&entwicklungsteam="+encodeURIComponent(entwicklungsteam);
|
||||
param = param + "&qualifikation="+encodeURIComponent(qualifikation);
|
||||
param = param + "&ausmass="+encodeURIComponent(ausmass);
|
||||
|
||||
//Parameter schicken
|
||||
httpRequest.send(param);
|
||||
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status);
|
||||
return false;
|
||||
break;
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Returnwerte aus RDF abfragen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/dbdml');
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/dbdml/0");
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/dbdml/rdf";
|
||||
|
||||
var dbdml_return = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
var dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
|
||||
|
||||
if(dbdml_return=='true')
|
||||
{
|
||||
//Statusbar setzen
|
||||
window.opener.setStatusBarText("Funktion erfolgreich gespeichert");
|
||||
window.opener.document.getElementById("tree-liste-funktionen").builder.refresh();
|
||||
window.opener.document.getElementById("textbox-mitarbeiter-detail-aktstatus").value = dbdml_errormsg;
|
||||
//window.opener.refreshtree(true);
|
||||
//Fenster schliessen
|
||||
window.close();
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Fehler beim Speichern der Daten: "+dbdml_errormsg);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
function MitarbeiterFunktionHauptberuflichChange()
|
||||
{
|
||||
hauptberuflich = document.getElementById("checkbox-mitarbeiter-funktion-hauptberuflich").checked;
|
||||
if(hauptberuflich)
|
||||
{
|
||||
document.getElementById("menulist-mitarbeiter-funktion-hauptberuf").disabled=false;
|
||||
document.getElementById("menulist-mitarbeiter-funktion-hauptberuf").value=0;
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById("menulist-mitarbeiter-funktion-hauptberuf").value='';
|
||||
document.getElementById("menulist-mitarbeiter-funktion-hauptberuf").disabled=true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function MitarbeiterFunktionEntwicklungsteamChange()
|
||||
{
|
||||
entwicklungsteam = document.getElementById("checkbox-mitarbeiter-funktion-entwicklungsteam").checked;
|
||||
if(entwicklungsteam)
|
||||
{
|
||||
document.getElementById("menulist-mitarbeiter-funktion-qualifikation").disabled=true;
|
||||
document.getElementById('menulist-mitarbeiter-funktion-qualifikation').value = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById("menulist-mitarbeiter-funktion-qualifikation").value='';
|
||||
document.getElementById("menulist-mitarbeiter-funktion-qualifikation").disabled=false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,214 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
|
||||
if(isset($_GET['mitarbeiter_id']))
|
||||
$mitarbeiter_id = $_GET['mitarbeiter_id'];
|
||||
else
|
||||
$mitarbeiter_id=null;
|
||||
|
||||
if(isset($_GET['funktion_id']))
|
||||
$funktion_id=$_GET['funktion_id'];
|
||||
else
|
||||
$funktion_id=null;
|
||||
if(isset($_GET['MitarbeiterDetailStudiensemester_id']))
|
||||
$stsem_id=$_GET['MitarbeiterDetailStudiensemester_id'];
|
||||
else
|
||||
$stsem_id=null;
|
||||
// rdf:null
|
||||
?>
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
|
||||
|
||||
<window id="mitarbeiter-funktion-dialog" title="Email"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="Check()">
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/mitarbeiterfunktiondialog.js.php?funktion_id=<?php echo $funktion_id;?>" />
|
||||
|
||||
|
||||
<textbox id="textbox-mitarbeiter-funktion-mitarbeiter_id" value="<?php echo $mitarbeiter_id;?>" hidden="true"/>
|
||||
<textbox id="textbox-mitarbeiter-funktion-stsem_id" value="<?php echo $stsem_id;?>" hidden="true"/>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true" style="margin:0px;"
|
||||
>
|
||||
<columns>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<label align="end" control="menulist-mitarbeiter-funktion-erhalter" value="Erhalter:"/>
|
||||
<menulist id="menulist-mitarbeiter-funktion-erhalter"
|
||||
oncommand="treeFunktionValueChange();">
|
||||
<menupopup>
|
||||
<menuitem label="Technikum Wien" value="1"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label control="menulist-mitarbeiter-funktion-studiensemester" value="Studiensemester:"/>
|
||||
<menulist id="menulist-mitarbeiter-funktion-studiensemester" oncommand="MitarbeiterFunktionValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/studiensemester.rdf.php"
|
||||
ref="http://www.technikum-wien.at/studiensemester/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/studiensemester/rdf#kurzbz"
|
||||
value="rdf:http://www.technikum-wien.at/studiensemester/rdf#studiensemester_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label control="menulist-mitarbeiter-funktion-funktion" value="Funktion:"/>
|
||||
<menulist id="menulist-mitarbeiter-funktion-funktion" oncommand="MitarbeiterFunktionValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/funktion_id.rdf.php"
|
||||
ref="http://www.technikum-wien.at/funktion_id/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/funktion_id/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/funktion_id/rdf#funktion"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label control="menulist-mitarbeiter-funktion-studiengang" value="Studiengang:"/>
|
||||
<menulist id="menulist-mitarbeiter-funktion-studiengang" oncommand="MitarbeiterFunktionValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/studiengang.rdf.php"
|
||||
ref="http://www.technikum-wien.at/studiengang/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/studiengang/rdf#name"
|
||||
value="rdf:http://www.technikum-wien.at/studiengang/rdf#studiengang_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label control="menulist-mitarbeiter-funktion-fachbereich" value="Fachbereich:"/>
|
||||
<menulist id="menulist-mitarbeiter-funktion-fachbereich" oncommand="MitarbeiterFunktionValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/fachbereich.rdf.php"
|
||||
ref="http://www.technikum-wien.at/fachbereich/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/fachbereich/rdf#name"
|
||||
value="rdf:http://www.technikum-wien.at/fachbereich/rdf#fachbereich_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label control="menulist-mitarbeiter-funktion-beschart1" value="Beschäftigungsart 1:"/>
|
||||
<menulist id="menulist-mitarbeiter-funktion-beschart1" oncommand="MitarbeiterFunktionValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/beschaeftigungsart1.rdf.php"
|
||||
ref="http://www.technikum-wien.at/beschaeftigungsart1/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/beschaeftigungsart1/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/beschaeftigungsart1/rdf#ba1code"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label control="menulist-mitarbeiter-funktion-beschart2" value="Beschäftigungsart 2:"/>
|
||||
<menulist id="menulist-mitarbeiter-funktion-beschart2"
|
||||
oncommand="treeFunktionValueChange();">
|
||||
<menupopup>
|
||||
<menuitem label="befristet" value="1"/>
|
||||
<menuitem label="unbefristet" value="2" selected="true"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="menulist-mitarbeiter-funktion-ausmass" value="Ausmass:"/>
|
||||
<menulist id="menulist-mitarbeiter-funktion-ausmass" oncommand="MitarbeiterFunktionValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/ausmass.rdf.php"
|
||||
ref="http://www.technikum-wien.at/ausmass/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/ausmass/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/ausmass/rdf#id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label control="menulist-mitarbeiter-funktion-verwendung" value="Verwendung:"/>
|
||||
<menulist id="menulist-mitarbeiter-funktion-verwendung" oncommand="MitarbeiterFunktionValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/verwendung.rdf.php"
|
||||
ref="http://www.technikum-wien.at/verwendung/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/verwendung/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/verwendung/rdf#verwendungcode"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<checkbox label="hauptberuflich" id="checkbox-mitarbeiter-funktion-hauptberuflich" checked="false" onclick="MitarbeiterFunktionHauptberuflichChange()"/>
|
||||
<hbox flex="1">
|
||||
<label control="menulist-mitarbeiter-funktion-hauptberuf" value="Hauptberuf: "/>
|
||||
<menulist id="menulist-mitarbeiter-funktion-hauptberuf" oncommand="MitarbeiterFunktionValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/hauptberuf.rdf.php"
|
||||
ref="http://www.technikum-wien.at/hauptberuf/alle" flex="1" disabled="false">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/hauptberuf/rdf#bezeichnung"
|
||||
value ="rdf:http://www.technikum-wien.at/hauptberuf/rdf#hauptberuf_id" />
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<checkbox label="Entwicklungsteam" id="checkbox-mitarbeiter-funktion-entwicklungsteam" checked="false" onclick="MitarbeiterFunktionEntwicklungsteamChange()"/>
|
||||
<hbox flex="1">
|
||||
<label control="menulist-mitarbeiter-funktion-qualifikation" value="Qualifikation:"/>
|
||||
<menulist id="menulist-mitarbeiter-funktion-qualifikation" oncommand="MitarbeiterFunktionValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/qualifikation.rdf.php"
|
||||
ref="http://www.technikum-wien.at/qualifikation/alle" flex="1" disabled="true">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/qualifikation/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/qualifikation/rdf#qualifikation_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-funktion-beschreibung" value="Beschreibung:"/>
|
||||
<textbox id="textbox-mitarbeiter-funktion-beschreibung" maxlength="255" oninput="MitarbeiterFunktionValueChange()"/>
|
||||
</row>
|
||||
|
||||
</rows>
|
||||
</grid>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true" style="margin:0px;"
|
||||
>
|
||||
<columns>
|
||||
<column flex="5"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<spacer />
|
||||
<button label="OK" oncommand="MitarbeiterFunktionSave()"/>
|
||||
<button label="Abbrechen" oncommand="window.close()"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</window>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,262 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiterdetailoverlay.xul.php"?>';
|
||||
// rdf:null
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay>
|
||||
|
||||
<overlay id="MitarbeiterOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/mitarbeiteroverlay.js.php" />
|
||||
<!--
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
|
||||
-->
|
||||
|
||||
<vbox id="MitarbeiterEditor" flex="1">
|
||||
<keyset>
|
||||
<key id="delete-key" keycode="VK_DELETE" oncommand="MitarbeiterDelete();"/>
|
||||
<key id="delete-key" modifiers="control" key="N" oncommand="MitarbeiterNeu();"/>
|
||||
</keyset>
|
||||
|
||||
<toolbox>
|
||||
<toolbar id="toolbar-MitarbeiterEditor">
|
||||
<toolbarbutton id="toolbar-MitarbeiterEditor-neu" label=" Neu" oncommand="MitarbeiterNeu();" image="../skin/images/NeuDokument.png" tooltiptext="Neuen Mitarbeiter anlegen" />
|
||||
<toolbarbutton id='toolbar-MitarbeiterEditor-loeschen' label=" Löschen" key="delete-key" oncommand="MitarbeiterDelete();" image="../skin/images/DeleteIcon.png" tooltiptext="Mitarbeiter löschen" />
|
||||
<toolbarbutton label=" Excel" oncommand="MitarbeiterExcelExport();" image="../skin/images/ExcelIcon.png" tooltiptext="Excel-Export" />
|
||||
<toolbarbutton label=" Neu Laden" oncommand="refreshtree(true);" image="../skin/images/refresh.png" tooltiptext="Liste neu laden" />
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
<popupset>
|
||||
<popup id="tree-liste-mitarbeiter-popup">
|
||||
<menuitem label="EMail versenden" oncommand="TreeListeMitarbeiter_sendmail();" />
|
||||
</popup>
|
||||
</popupset>
|
||||
<tree id="tree-liste-mitarbeiter" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/mitarbeiter/alle"
|
||||
onselect="TreeListeMitarbeiterAuswahl();" flags="dont-build-content"
|
||||
enableColumnDrag="true" style="margin:0px;"
|
||||
persist="height"
|
||||
context="tree-liste-mitarbeiter-popup"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="tree-liste-mitarbeiter-col-anrede" label="Anrede" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#anrede" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-titelpre" label="Titel(Pre)" flex="2" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-vorname" label="Vorname" flex="2" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-vornamen" label="Vornamen" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-nachname" label="Nachname" flex="2" hidden="false" primary="true"
|
||||
class="sortDirectionIndicator" sortActive="true" sortDirection="ascending"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-titelpost" label="Titel(Post)" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-personal_nr" label="PNr" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#personal_nr" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-geburtsdatum" label="Geburtsdatum" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum_iso" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-geburtsdatum_iso" label="Geburtsdatum_ISO" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum_iso" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-svnr" label="SVNR" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#svnr" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-ersatzkennzeichen" label="Ersatzkennzeichen" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ersatzkennzeichen" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-uid" label="UID" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-kurzbezeichnung" label="Kuerzel" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#kurzbezeichnung" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-geschlecht" label="Geschlecht" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geschlecht" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-staatsbuergerschaft" label="Staatsb." flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#staatsbuergerschaft" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-aktstatus" label="Status" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktstatus_bezeichnung" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-akademischergrad" label="Akademischergrad" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#akademischergrad" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-familienstand" label="Familienstand" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#familienstand_bezeichnung" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-anzahlderkinder" label="Anzahlderkinder" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#anzahlderkinder" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-geburtsnation" label="Geburtsnation" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsnation" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-beginndatum" label="Beginndatum" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#beginndatum" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-bemerkung" label="Bemerkung" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#bemerkung" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-habilitation" label="Habilitation" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#habilitation" onclick="TreeMitarbeiterSort()"/>
|
||||
<!-- in tabelle funktion
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-mitgliedentwicklungsteam" label="MitgliedEntwicklungsteam" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#mitgliedentwicklungsteam" onclick="TreeMitarbeiterSort()"/>
|
||||
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-qualifikation" label="Qualifikation" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#qualifikation" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-hauptberuflich" label="Hauptberuflich" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#hauptberuflich" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-hauptberuf" label="Hauptberuf" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#hauptberuf" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-sws" label="SWS" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#sws" onclick="TreeMitarbeiterSort()"/>
|
||||
-->
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-ausgeschieden" label="Ausgeschieden" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ausgeschieden" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-beendigungsdatum" label="Beendigungsdatum" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#beendigungsdatum" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-ausbildung" label="Ausbildung" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ausbildung_bezeichnung" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-stundensatz" label="Stundensatz" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#stundensatz" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-bismelden" label="BIS" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#bismelden" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-aktiv" label="Aktiv" flex="1" hidden="false" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-mitarbeiter_id" label="mitarbeiter_id" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#mitarbeiter_id" onclick="TreeMitarbeiterSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-liste-mitarbeiter-col-person_id" label="person_id" flex="1" hidden="true" persist="hidden"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#person_id" onclick="TreeMitarbeiterSort()"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#anrede" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#personal_nr" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum_iso" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#svnr" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ersatzkennzeichen" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#kurzbezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geschlecht" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#staatsbuergerschaft" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktstatus_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#akademischergrad" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#familienstand_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#anzahlderkinder" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsnation" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#beginndatum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#bemerkung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#habilitation" />
|
||||
<!-- in tabelle funktion
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#mitgliedentwicklungsteam" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#qualifikation" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#hauptberuflich" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#hauptberuf" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#sws" />
|
||||
-->
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ausgeschieden" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#beendigungsdatum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ausbildung_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#stundensatz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#bismelden" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#mitarbeiter_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#person_id" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
|
||||
</tree>
|
||||
|
||||
<splitter id="mitarbeiter-overlay-splitter" collapse="after" persist="state">
|
||||
<grippy />
|
||||
</splitter>
|
||||
|
||||
<vbox id="MitarbeiterDetailEditor" persist="height"/>
|
||||
|
||||
|
||||
</vbox>
|
||||
|
||||
</overlay>
|
||||
@@ -0,0 +1,159 @@
|
||||
<?php
|
||||
include('../vilesci/config.inc.php');
|
||||
if(isset($_GET['telefonnummer_id']) && $_GET['telefonnummer_id']!='')
|
||||
echo "var MitarbeiterDetailTelefonnummer_id=".$_GET['telefonnummer_id'];
|
||||
else
|
||||
echo "var MitarbeiterDetailTelefonnummer_id=null";
|
||||
?>
|
||||
|
||||
function Check()
|
||||
{
|
||||
if(MitarbeiterDetailTelefonnummer_id!=null)
|
||||
window.setTimeout("MitarbeiterTelefonnummerBearbeiten()",window.opener.sleep_time);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den zu bearbeitenden Datensatz
|
||||
*/
|
||||
function MitarbeiterTelefonnummerBearbeiten()
|
||||
{
|
||||
// RDF vom Server holen
|
||||
|
||||
// Url zum RDF
|
||||
var url="<?php echo APP_ROOT; ?>rdf/fas/telefonnummern.rdf.php?telefonnummer_id="+MitarbeiterDetailTelefonnummer_id;
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
httpRequest.open("GET", url, false, '','');
|
||||
httpRequest.send('');
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status); //404 ErrorCodes etc
|
||||
return false;
|
||||
break;
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// XML in Datasource parsen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/telefonnummern/alle');
|
||||
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Daten aus RDF auslesen
|
||||
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/telefonnummern/" + MitarbeiterDetailTelefonnummer_id);
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/telefonnummern/rdf";
|
||||
|
||||
//Felder befuellen
|
||||
|
||||
person_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#person_id" ));
|
||||
typ = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#typ" ));
|
||||
nummer = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#nummer" ));
|
||||
|
||||
document.getElementById('textbox-mitarbeiter-telefonnummer-person_id').value = person_id;
|
||||
document.getElementById('menulist-mitarbeiter-telefonnummer-typ').value = typ;
|
||||
document.getElementById('textbox-mitarbeiter-telefonnummer-nummer').value = nummer;
|
||||
}
|
||||
|
||||
function MitarbeiterTelefonnummerValueChange()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert die eingegebene Telefonnummer
|
||||
*/
|
||||
function MitarbeiterTelefonnummerSave()
|
||||
{
|
||||
//Daten aus den Felder holen
|
||||
person_id = document.getElementById('textbox-mitarbeiter-telefonnummer-person_id').value;
|
||||
typ = document.getElementById('menulist-mitarbeiter-telefonnummer-typ').value;
|
||||
name = document.getElementById('menulist-mitarbeiter-telefonnummer-typ').label;
|
||||
nummer = document.getElementById('textbox-mitarbeiter-telefonnummer-nummer').value;
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
var url = "<?php echo APP_ROOT; ?>rdf/fas/db_dml.rdf.php";
|
||||
|
||||
httpRequest.open("POST", url, false, '','');
|
||||
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
var param = "type=telefonnummer";
|
||||
if(MitarbeiterDetailTelefonnummer_id!=null)
|
||||
param = param + "&new=false";
|
||||
else
|
||||
param = param + "&new=true";
|
||||
|
||||
param = param + "&telefonnummer_id="+encodeURIComponent(MitarbeiterDetailTelefonnummer_id);
|
||||
param = param + "&person_id="+encodeURIComponent(person_id);
|
||||
param = param + "&name="+encodeURIComponent(name);
|
||||
param = param + "&typ="+encodeURIComponent(typ);
|
||||
param = param + "&nummer="+encodeURIComponent(nummer);
|
||||
|
||||
//Parameter schicken
|
||||
httpRequest.send(param);
|
||||
debug('telefon save param:'+param);
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status);
|
||||
return false;
|
||||
break;
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Returnwerte aus RDF abfragen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/dbdml');
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/dbdml/0");
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/dbdml/rdf";
|
||||
|
||||
var dbdml_return = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
var dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
|
||||
|
||||
if(dbdml_return=='true')
|
||||
{
|
||||
//Statusbar setzen
|
||||
window.opener.setStatusBarText("Telefonnummer erfolgreich gespeichert");
|
||||
window.opener.document.getElementById("tree-liste-telefonnummern").builder.refresh();
|
||||
//Fenster schliessen
|
||||
window.close();
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Fehler beim Speichern der Daten: "+dbdml_errormsg);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
|
||||
if(isset($_GET['person_id']))
|
||||
$person_id = $_GET['person_id'];
|
||||
else
|
||||
$person_id=null;
|
||||
|
||||
if(isset($_GET['telefonnummer_id']))
|
||||
$telefonnummer_id=$_GET['telefonnummer_id'];
|
||||
else
|
||||
$telefonnummer_id=null;
|
||||
|
||||
// rdf:null
|
||||
?>
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
|
||||
|
||||
<window id="mitarbeiter-email-dialog" title="Email"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="Check()" >
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/mitarbeitertelefonnummerdialog.js.php?telefonnummer_id=<?php echo $telefonnummer_id;?>" />
|
||||
|
||||
|
||||
<textbox id="textbox-mitarbeiter-telefonnummer-person_id" value="<?php echo $person_id;?>" hidden="true"/>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true" style="margin:0px;"
|
||||
>
|
||||
<columns>
|
||||
<column />
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<label control="menulist-mitarbeiter-telefonnummer-typ" value="Typ:"/>
|
||||
<menulist id="menulist-mitarbeiter-telefonnummer-typ" oncommand="MitarbeiterTelefonnummerValueChange();"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/fas/telefonnummerntyp.rdf.php"
|
||||
ref="http://www.technikum-wien.at/telefonnummerntyp/alle">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/telefonnummerntyp/rdf#name"
|
||||
value="rdf:http://www.technikum-wien.at/telefonnummerntyp/rdf#typ"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="textbox-mitarbeiter-telefonnummer-nummer" value="Telefonnummer:"/>
|
||||
<textbox id="textbox-mitarbeiter-telefonnummer-nummer" maxlength="255" oninput="MitarbeiterTelefonnummerValueChange()" value="+43-"/>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" value="Eingabeformat:"/>
|
||||
<label align="end" value="+43-01-123456"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true" style="margin:0px;"
|
||||
>
|
||||
<columns>
|
||||
<column flex="5"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<spacer />
|
||||
<button label="OK" oncommand="MitarbeiterTelefonnummerSave()"/>
|
||||
<button label="Abbrechen" oncommand="window.close()"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</window>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
// *****************************
|
||||
// Vorschlag fuer UNR liefern
|
||||
// *****************************
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
|
||||
$conn = @pg_pconnect(CONN_STRING))
|
||||
if ($conn) {
|
||||
$sql="select max(unr) as max_unr from tbl_lehrveranstaltung";
|
||||
|
||||
|
||||
|
||||
if(!($erg=pg_exec($conn, $sql_query))) {
|
||||
$this->errormsg=pg_errormessage($conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
$result=array();
|
||||
for($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($erg,$i);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} else {
|
||||
echo 'no connection';
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
*/
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
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');
|
||||
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
// Orte holen
|
||||
$sql_query="SELECT * FROM (tbl_ort NATURAL JOIN tbl_ortraumtyp) JOIN tbl_raumtyp USING (raumtyp_kurzbz)
|
||||
WHERE aktiv AND raumtyp_kurzbz!='LM' ORDER BY raumtyp_kurzbz, hierarchie,ort_kurzbz";
|
||||
if(!$result=pg_query($conn, $sql_query))
|
||||
$error_msg.=pg_errormessage($conn);
|
||||
else
|
||||
$num_rows=@pg_numrows($result);
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/ort';
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:ORT="<?php echo $rdf_url; ?>/rdf#"
|
||||
>
|
||||
|
||||
<?php
|
||||
$descr='';
|
||||
$sequenz='';
|
||||
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$ortLAST=($i>0?pg_fetch_object($result,$i-1):null);
|
||||
$ort=pg_fetch_object($result,$i);
|
||||
$ortNEXT=(($i<$num_rows-1)?pg_fetch_object($result,$i+1):null);
|
||||
$currentTYP=$ort->raumtyp_kurzbz;
|
||||
$lastTYP=$ortLAST->raumtyp_kurzbz;
|
||||
$nextTYP=$ortNEXT->raumtyp_kurzbz;
|
||||
//echo "current:$currentTYP last:$lastTYP next:$nextTYP";
|
||||
if ($lastTYP!=$currentTYP || $i==0)
|
||||
$descr.='<RDF:Description RDF:about="'.$rdf_url.'/'.$ort->raumtyp_kurzbz.'" >
|
||||
<ORT:raumtyp>'.$ort->raumtyp_kurzbz.'</ORT:raumtyp>
|
||||
<ORT:hierarchie></ORT:hierarchie>
|
||||
<ORT:ort_kurzbz></ORT:ort_kurzbz>
|
||||
<ORT:ort_bezeichnung></ORT:ort_bezeichnung>
|
||||
<ORT:max_person></ORT:max_person>
|
||||
</RDF:Description>';
|
||||
$descr.='<RDF:Description RDF:about="'.$rdf_url.'/'.$ort->raumtyp_kurzbz.'/'.$ort->ort_kurzbz.'" >
|
||||
<ORT:raumtyp>'.$ort->ort_kurzbz."</ORT:raumtyp>
|
||||
<ORT:hierarchie>".$ort->hierarchie."</ORT:hierarchie>
|
||||
<ORT:ort_kurzbz>".$ort->ort_kurzbz."</ORT:ort_kurzbz>
|
||||
<ORT:ort_bezeichnung>".$ort->bezeichnung."</ORT:ort_bezeichnung>
|
||||
<ORT:max_person>".$ort->max_person.'</ORT:max_person>
|
||||
</RDF:Description>'."\n";
|
||||
|
||||
if ($lastTYP!=$currentTYP)
|
||||
$sequenz.='<RDF:li RDF:resource="'.$rdf_url.'/'.$ort->raumtyp_kurzbz.'" />
|
||||
<RDF:li>
|
||||
<RDF:Seq RDF:about="'.$rdf_url.'/'.$ort->raumtyp_kurzbz.'" >'."\n";
|
||||
if ($nextTYP!=$currentTYP || $i==$num_rows-1)
|
||||
$sequenz.='<RDF:li RDF:resource="'.$rdf_url.'/'.$ort->raumtyp_kurzbz.'/'.$ort->ort_kurzbz.'" />
|
||||
</RDF:Seq>
|
||||
</RDF:li>'."\n";
|
||||
elseif ($lastTYP==$currentTYP || $nextTYP==$currentTYP || $num_rows==1)
|
||||
$sequenz.='<RDF:li RDF:resource="'.$rdf_url.'/'.$ort->raumtyp_kurzbz.'/'.$ort->ort_kurzbz.'" />'."\n";
|
||||
}
|
||||
$sequenz='<RDF:Seq about="'.$rdf_url.'/alle-orte">'."\n".$sequenz.'
|
||||
</RDF:Seq>';
|
||||
echo $descr;
|
||||
echo $sequenz;
|
||||
?>
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
* To change the template for this generated file go to
|
||||
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||||
*/
|
||||
// header f?r 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");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
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');
|
||||
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
// ORT holen
|
||||
if(!($result=pg_query($conn, 'SELECT * FROM (tbl_ort NATURAL JOIN tbl_ortraumtyp)
|
||||
JOIN tbl_raumtyp USING (raumtyp_kurzbz) WHERE aktiv
|
||||
ORDER BY raumtyp_kurzbz, hierarchie,ort_kurzbz')))
|
||||
$error_msg.=pg_errormessage($conn);
|
||||
else
|
||||
$num_rows=@pg_numrows($result);
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/ort';
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:ORT="<?php echo $rdf_url; ?>/rdf#"
|
||||
>
|
||||
|
||||
<?php
|
||||
$descr='';
|
||||
$sequenz='';
|
||||
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$ortLAST=($i>0?pg_fetch_object($result,$i-1):null);
|
||||
$ort=pg_fetch_object($result,$i);
|
||||
$ortNEXT=(($i<$num_rows-1)?pg_fetch_object($result,$i+1):null);
|
||||
$currentTYP=$ort->raumtyp_kurzbz;
|
||||
$lastTYP=$ortLAST->raumtyp_kurzbz;
|
||||
$nextTYP=$ortNEXT->raumtyp_kurzbz;
|
||||
//echo "current:$currentTYP last:$lastTYP next:$nextTYP";
|
||||
$descr.='
|
||||
<RDF:Description about="'.$rdf_url.'/'.$ort->raumtyp_kurzbz.'/'.$ort->ort_kurzbz.'" >
|
||||
<ORT:raumtyp>'.$ort->raumtyp_kurzbz."</ORT:raumtyp>
|
||||
<ORT:hierarchie>".$ort->hierarchie."</ORT:hierarchie>
|
||||
<ORT:ort_kurzbz>".$ort->ort_kurzbz."</ORT:ort_kurzbz>
|
||||
<ORT:ort_bezeichnung>".$ort->bezeichnung."</ORT:ort_bezeichnung>
|
||||
<ORT:max_person>".$ort->max_person.'</ORT:max_person>
|
||||
</RDF:Description>';
|
||||
|
||||
if ($lastTYP!=$currentTYP)
|
||||
$sequenz.='<RDF:li>
|
||||
<RDF:Seq about="'.$rdf_url.'/'.$ort->raumtyp_kurzbz.'" >';
|
||||
if ($nextTYP!=$currentTYP || $i==$num_rows-1)
|
||||
$sequenz.='<RDF:li resource="'.$rdf_url.'/'.$ort->raumtyp_kurzbz.'/'.$ort->ort_kurzbz.'" />
|
||||
</RDF:Seq>
|
||||
</RDF:li>';
|
||||
if ($lastTYP==$currentTYP || $nextTYP==$currentTYP || $num_rows==1)
|
||||
$sequenz.='<RDF:li resource="'.$rdf_url.'/'.$ort->raumtyp_kurzbz.'/'.$ort->ort_kurzbz.'" />';
|
||||
}
|
||||
$sequenz='<RDF:Seq about="'.$rdf_url.'/alle-orte">'.$sequenz.'
|
||||
</RDF:Seq>';
|
||||
echo $descr;
|
||||
echo $sequenz;
|
||||
?>
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
* To change the template for this generated file go to
|
||||
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||||
*/
|
||||
// header f?r 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");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
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');
|
||||
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
// ORT holen
|
||||
if(!($result=pg_query($conn, 'SELECT * FROM (tbl_ort NATURAL JOIN tbl_ortraumtyp)
|
||||
JOIN tbl_raumtyp USING (raumtyp_kurzbz) WHERE aktiv
|
||||
ORDER BY raumtyp_kurzbz, hierarchie,ort_kurzbz')))
|
||||
$error_msg.=pg_errormessage($conn);
|
||||
else
|
||||
$num_rows=@pg_numrows($result);
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/ort/';
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:ORT="<?php echo $rdf_url; ?>rdf#"
|
||||
>
|
||||
|
||||
<RDF:Seq about="<?php echo $rdf_url ?>alle">
|
||||
|
||||
<?php
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$ort=pg_fetch_object($result,$i);
|
||||
?>
|
||||
<RDF:li>
|
||||
<RDF:Description about="<?php echo $rdf_url.$ort->raumtyp_kurzbz.'/'.$ort->ort_kurzbz; ?>" >
|
||||
<ORT:raumtyp><?php echo $ort->raumtyp_kurzbz; ?></ORT:raumtyp>
|
||||
<ORT:hierarchie><?php echo $ort->hierarchie; ?></ORT:hierarchie>
|
||||
<ORT:ort_kurzbz><?php echo $ort->ort_kurzbz; ?></ORT:ort_kurzbz>
|
||||
<ORT:ort_bezeichnung><?php echo $ort->bezeichnung; ?></ORT:ort_bezeichnung>
|
||||
<ORT:max_person><?php echo $ort->max_person; ?></ORT:max_person>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</RDF:Seq>
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,94 @@
|
||||
/**
|
||||
*
|
||||
* HTTP Request Klasse
|
||||
* stammt aus Artikel von phpPatterns (http://www.phppatterns.com/index.php/article/articleview/82/1/2/)
|
||||
* leicht modifiziert
|
||||
*/
|
||||
|
||||
//Configuration Details
|
||||
//const SERVER_URL = "/xul/server.php";
|
||||
// wir uebergeben das als Parameter
|
||||
//End Configuration
|
||||
|
||||
function doLogin() {
|
||||
var username = document.getElementById('loginUser').value;
|
||||
var password = document.getElementById('loginPass').value;
|
||||
|
||||
req = new phpRequest();
|
||||
req.add('username',username);
|
||||
req.add('password',password);
|
||||
|
||||
var response = req.execute();
|
||||
alert(response);
|
||||
}
|
||||
|
||||
//Start phpRequest Object
|
||||
function phpRequest(server_url,uname,passw) {
|
||||
this.parms = new Array();
|
||||
this.parmsIndex = 0;
|
||||
this.execute = phpRequestExecute;
|
||||
this.add = phpRequestAdd;
|
||||
this.server = server_url;
|
||||
this.uname = uname;
|
||||
this.passw = passw;
|
||||
}
|
||||
|
||||
function phpRequestAdd(name,value) {
|
||||
this.parms[this.parmsIndex] = new Pair(name,value);
|
||||
this.parmsIndex++;
|
||||
}
|
||||
|
||||
function phpRequestExecute() {
|
||||
var targetURL = this.server;
|
||||
|
||||
try {
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
}catch (e){
|
||||
alert('Error creating the connection!');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
var txt = "?";
|
||||
for(var i in this.parms) {
|
||||
txt = txt+'&'+this.parms[i].name+'='+this.parms[i].value;
|
||||
}
|
||||
//alert('sende '+txt);
|
||||
//Two options here, only uncomment one of these
|
||||
//GET REQUEST
|
||||
httpRequest.open("GET", targetURL+txt, false, '<?php echo $_SERVER['PHP_AUTH_USER'] ?>','<?php echo $_SERVER['PHP_AUTH_PASSW'] ?>');
|
||||
|
||||
//POST REQUEST EXAMPLE
|
||||
/*
|
||||
httpRequest.open("POST", targetURL+txt, false, null, null);
|
||||
httpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
|
||||
*/
|
||||
httpRequest.send('');
|
||||
|
||||
}catch (e){
|
||||
alert('An error has occured calling the external site: '+e);
|
||||
return false;
|
||||
}
|
||||
|
||||
switch(httpRequest.readyState) {
|
||||
case 1,2,3:
|
||||
alert('Bad Ready State: '+httpRequest.status);
|
||||
return false;
|
||||
break;
|
||||
case 4:
|
||||
if(httpRequest.status !=200) {
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
} else {
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
function Pair(name,value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
* To change the template for this generated file go to
|
||||
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||||
*/
|
||||
// header für 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");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
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/raumtyp.class.php');
|
||||
|
||||
// Datenbank Verbindung
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
|
||||
// raumtypen holen
|
||||
$raumtypDAO=new raumtyp($conn);
|
||||
$raumtypen=$raumtypDAO->getAll();
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/raumtyp';
|
||||
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:RAUMTYP="<?php echo $rdf_url; ?>/rdf#"
|
||||
>
|
||||
|
||||
<RDF:Seq about="<?php echo $rdf_url ?>/liste">
|
||||
|
||||
<?php
|
||||
if (is_array($raumtypen)) {
|
||||
|
||||
foreach ($raumtypen as $rt)
|
||||
{
|
||||
?>
|
||||
<RDF:li>
|
||||
<RDF:Description id="<?php echo $rt->kurzbz; ?>" about="<?php echo $rdf_url.'/'.$rt->kurzbz; ?>" >
|
||||
<RAUMTYP:kurzbz><?php echo $rt->kurzbz ?></RAUMTYP:kurzbz>
|
||||
<RAUMTYP:beschreibung><?php echo $rt->beschreibung ?></RAUMTYP:beschreibung>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
<?php
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
</RDF:Seq>
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,162 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>';
|
||||
echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?>";
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay [
|
||||
<?php require("../locale/tempus.dtd"); ?>
|
||||
]>
|
||||
|
||||
<overlay id="STPLDetailsOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/studenten.js" />
|
||||
|
||||
|
||||
|
||||
<!-- ************************* -->
|
||||
<!-- * Stundenplan Details * -->
|
||||
<!-- ************************* -->
|
||||
<vbox id="vboxSTPLDetailsListe">
|
||||
|
||||
|
||||
<!-- ************* -->
|
||||
<!-- * Auswahl * -->
|
||||
<!-- ************* -->
|
||||
<tree id="treeStplDetails" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="" ref="http://www.technikum-wien.at/tempus/lehrstunde/liste"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
style="margin:0px;"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="stplUNR" label="UNR" flex="2" primary="false"
|
||||
class="sortDirectionIndicator"
|
||||
sortActive="true"
|
||||
sortDirection="ascending"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#unr" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplLektor" label="Lektor" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#lektor" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplLehrfachKurzbz" label="Fach" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#lehrfach" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplLehrform" label="Form" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#lehrform" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplLehrfachBezeichnung" label="Lehrfach" flex="20" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#lehrfach_bez" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl_studiengang" label="Studiengang" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#studiengang" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplSemester" label="S" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#semester" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplVerband" label="V" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#verband" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="gruppe" label="G" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#gruppe" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl_einheit" label="Einheit" flex="3" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#einheit" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplOrt" label="Ort" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#ort_kurzbz" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl_datum" label="Datum" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#datum" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl_stunde" label="Std" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#stunde" />
|
||||
<splitter class="tree-splitter"/>
|
||||
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#unr" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#lektor" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#lehrfach" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#lehrform" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#lehrfach_bez" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#studiengang" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#semester" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#verband" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#gruppe" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#einheit" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#ort_kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#datum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/lehrstunde/rdf#stunde" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
|
||||
<!--
|
||||
<template>
|
||||
<rule>
|
||||
<conditions>
|
||||
<content uri="?uri" />
|
||||
<member container="?uri" child="?student" />
|
||||
</conditions>
|
||||
<bindings>
|
||||
<binding subject="?student" predicate="http://www.technikum-wien.at/tempus/studenten/rdf#uid" object="?uid" />
|
||||
<binding subject="?student" predicate="http://www.technikum-wien.at/tempus/studenten/rdf#titel" object="?titel" />
|
||||
<binding subject="?student" predicate="http://www.technikum-wien.at/tempus/studenten/rdf#vornamen" object="?vornamen" />
|
||||
<binding subject="?student" predicate="http://www.technikum-wien.at/tempus/studenten/rdf#nachname" object="?nachname" />
|
||||
<binding subject="?student" predicate="http://www.technikum-wien.at/tempus/studenten/rdf#geburtsdatum" object="?geburtsdatum" />
|
||||
<binding subject="?student" predicate="http://www.technikum-wien.at/tempus/studenten/rdf#aktiv" object="?aktiv" />
|
||||
</bindings>
|
||||
<action>
|
||||
<treechildren>
|
||||
<treeitem uri="?student">
|
||||
<treerow>
|
||||
<treecell label="?uid" />
|
||||
<treecell label="?titel" />
|
||||
<treecell label="?vornamen" />
|
||||
<treecell label="?nachname" />
|
||||
<treecell label="?geburtsdatum" />
|
||||
<treecell label="?aktiv" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</action>
|
||||
</rule>
|
||||
</template>
|
||||
-->
|
||||
|
||||
</tree>
|
||||
|
||||
|
||||
</vbox>
|
||||
</overlay>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
include('../vilesci/config.inc.php');
|
||||
?>
|
||||
|
||||
// SemesterPlan aktualisieren
|
||||
function onSTPLSemesterRefresh()
|
||||
{
|
||||
// Welche Ansicht ist aktiv?
|
||||
var semesterplan=document.getElementById('tabpanels-left');
|
||||
var panelIndex=semesterplan.getAttribute("selectedIndex");
|
||||
if (panelIndex==0)
|
||||
onVerbandSelect();
|
||||
else if (panelIndex==1)
|
||||
onOrtSelect();
|
||||
else if (panelIndex==2)
|
||||
onLektorSelect();
|
||||
}
|
||||
|
||||
// SemesterPlan drucken
|
||||
function onSTPLSemesterPrint()
|
||||
{
|
||||
// Wie ist gerade die Source vom iFrame
|
||||
var iframeTimeTableSemester=document.getElementById('iframeTimeTableSemester');
|
||||
var iframeTimeTableSemesterSource=iframeTimeTableSemester.getAttribute("src");
|
||||
var src=iframeTimeTableSemesterSource.replace("content/timetable-week.xul.php","stdplan/stpl_kalender.php");
|
||||
var newWindow=window.open(src, "subWindowTimeTableSemester","");
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
include('../vilesci/config.inc.php');
|
||||
include('../include/functions.inc.php');
|
||||
echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>';
|
||||
/*echo '<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>';
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';*/
|
||||
|
||||
// Testumgebung
|
||||
if (!isset($REMOTE_USER))
|
||||
$REMOTE_USER='pam';
|
||||
|
||||
$uid=$REMOTE_USER;
|
||||
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Fehler: Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
//$error_msg.=loadVariables($conn,$REMOTE_USER);
|
||||
// Stundentafel abfragen
|
||||
$sql_query="SET datestyle TO ISO;SELECT * FROM tbl_stunde ORDER BY stunde";
|
||||
if(!$result_stunde=pg_exec($conn, $sql_query))
|
||||
die(pg_last_error($this->conn));
|
||||
$num_rows_stunde=pg_numrows($result_stunde);
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay [
|
||||
<?php require("../locale/tempus.dtd"); ?>
|
||||
]>
|
||||
|
||||
<overlay id="TempusOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/DragAndDrop.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/dragboard.js.php"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/stpl-semester-overlay.js.php"/>
|
||||
|
||||
<vbox id="vboxTimeTableSemester" flex="1">
|
||||
<toolbox>
|
||||
<toolbar id="toolbarTimeTableSemesterWeek" tbautostretch="always" persist="collapsed">
|
||||
<separator orient="horizontal" class="thin" />
|
||||
<toolbarbutton id="toolbarbuttonStplSemesterRefresh"
|
||||
image="../skin/images/refresh.png"
|
||||
oncommand="onSTPLSemesterRefresh();"
|
||||
tooltiptext="Neu Laden"
|
||||
/>
|
||||
<toolbarbutton id="toolbarbuttonStplSemesterPrint"
|
||||
image="../skin/images/drucken.png"
|
||||
oncommand="onSTPLSemesterPrint();"
|
||||
tooltiptext="Drucken"
|
||||
/>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
|
||||
<iframe id="iframeTimeTableSemester" name="TimeTableSemester" flex="1"
|
||||
src="<?php echo APP_ROOT; ?>content/timetable-week.xul.php?semesterplan=true" />
|
||||
</vbox>
|
||||
</overlay>
|
||||
@@ -0,0 +1,203 @@
|
||||
<?php
|
||||
include('../vilesci/config.inc.php');
|
||||
?>
|
||||
|
||||
// LVA-Panel aktualisieren
|
||||
function onLVARefresh()
|
||||
{
|
||||
// LVAs
|
||||
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
|
||||
var datasources=vboxLehrveranstalungPlanung.getAttribute('datasources');
|
||||
//alert (datasources);
|
||||
vboxLehrveranstalungPlanung.setAttribute('datasources',datasources+"&bla=");
|
||||
}
|
||||
|
||||
function onJumpNow()
|
||||
{
|
||||
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
||||
var daten=window.TimeTableWeek.document.getElementById('TimeTableWeekData');
|
||||
var datum=parseInt(daten.getAttribute("datum"));
|
||||
var type=daten.getAttribute("stpl_type");
|
||||
var stg_kz=daten.getAttribute("stg_kz");
|
||||
var sem=daten.getAttribute("sem");
|
||||
var ver=daten.getAttribute("ver");
|
||||
var grp=daten.getAttribute("grp");
|
||||
var einheit=daten.getAttribute("einheit");
|
||||
var ort=daten.getAttribute("ort");
|
||||
var pers_uid=daten.getAttribute("pers_uid");
|
||||
|
||||
var d = new Date();
|
||||
var datum=0;
|
||||
//Aktuelles Datum ermitteln
|
||||
datum = ((d.getDate()+3)*60*60*24)+((d.getMonth())*31*24*60*60)+((d.getFullYear()-1970)*365*24*60*60);
|
||||
//alert(datum);
|
||||
var attributes="?type="+type+"&datum="+datum+"&ort="+ort+"&pers_uid="+pers_uid+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit;
|
||||
var url = "<?php echo APP_ROOT; ?>content/timetable-week.xul.php";
|
||||
url+=attributes;
|
||||
if (url)
|
||||
contentFrame.setAttribute('src', url);
|
||||
}
|
||||
|
||||
function onJumpDate(wochen)
|
||||
{
|
||||
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
||||
var daten=window.TimeTableWeek.document.getElementById('TimeTableWeekData');
|
||||
var datum=parseInt(daten.getAttribute("datum"));
|
||||
var type=daten.getAttribute("stpl_type");
|
||||
var stg_kz=daten.getAttribute("stg_kz");
|
||||
var sem=daten.getAttribute("sem");
|
||||
var ver=daten.getAttribute("ver");
|
||||
var grp=daten.getAttribute("grp");
|
||||
var einheit=daten.getAttribute("einheit");
|
||||
var ort=daten.getAttribute("ort");
|
||||
var pers_uid=daten.getAttribute("pers_uid");
|
||||
|
||||
// neues Datum berechnen. Eine Woche sind 604800 Sekunden.
|
||||
datum+=(604800*wochen)+1;
|
||||
|
||||
var attributes="?type="+type+"&datum="+datum+"&ort="+ort+"&pers_uid="+pers_uid+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit;
|
||||
var url = "<?php echo APP_ROOT; ?>content/timetable-week.xul.php";
|
||||
url+=attributes;
|
||||
if (url)
|
||||
contentFrame.setAttribute('src', url);
|
||||
}
|
||||
|
||||
function onJumpDateRel(evt)
|
||||
{
|
||||
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
||||
var daten=window.TimeTableWeek.document.getElementById('TimeTableWeekData');
|
||||
var datum=parseInt(daten.getAttribute("datum"));
|
||||
var type=daten.getAttribute("stpl_type");
|
||||
var stg_kz=daten.getAttribute("stg_kz");
|
||||
var sem=daten.getAttribute("sem");
|
||||
var ver=daten.getAttribute("ver");
|
||||
var grp=daten.getAttribute("grp");
|
||||
var einheit=daten.getAttribute("einheit");
|
||||
var ort=daten.getAttribute("ort");
|
||||
var pers_uid=daten.getAttribute("pers_uid");
|
||||
var kw=daten.getAttribute("kw");
|
||||
var KWZiel=evt.target.getAttribute("kw");
|
||||
var wochen=KWZiel-kw;
|
||||
|
||||
// neues Datum berechnen. Eine Woche sind 604800 Sekunden.
|
||||
datum+=(604800*wochen)+1;
|
||||
|
||||
var attributes="?type="+type+"&datum="+datum+"&ort="+ort+"&pers_uid="+pers_uid+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit;
|
||||
var url = "<?php echo APP_ROOT; ?>content/timetable-week.xul.php";
|
||||
url+=attributes;
|
||||
if (url)
|
||||
contentFrame.setAttribute('src', url);
|
||||
}
|
||||
|
||||
function onLVAdoStpl(evt)
|
||||
{
|
||||
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
||||
var daten=window.TimeTableWeek.document.getElementById('TimeTableWeekData');
|
||||
var datum=parseInt(daten.getAttribute("datum"));
|
||||
var type=daten.getAttribute("stpl_type");
|
||||
var stg_kz=daten.getAttribute("stg_kz");
|
||||
var sem=daten.getAttribute("sem");
|
||||
var ver=daten.getAttribute("ver");
|
||||
var grp=daten.getAttribute("grp");
|
||||
var einheit=daten.getAttribute("einheit");
|
||||
var ort=daten.getAttribute("ort");
|
||||
var pers_uid=daten.getAttribute("pers_uid");
|
||||
var aktion=evt.target.getAttribute("aktion");
|
||||
var doIt=true;
|
||||
var oneDate=new Date();
|
||||
if (aktion=='lva_stpl_del_single')
|
||||
doIt=confirm('Es werden alle Lehrveranstaltungen aus dem Stundenplan dieser Woche geloescht!\nSind Sie sicher?')
|
||||
else
|
||||
if (aktion=='lva_stpl_del_multi')
|
||||
doIt=confirm('Es werden alle Lehrveranstaltungen aus dem Stundenplan ab dieser Woche geloescht!\nSind Sie sicher?')
|
||||
else
|
||||
aktion+="_search";
|
||||
var idList=evt.target.getAttribute("idList");
|
||||
|
||||
var attributes="?type="+type+"&datum="+datum+"&ort="+ort+"&pers_uid="+pers_uid+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit;
|
||||
attributes+=idList+"&aktion="+aktion+"&time="+oneDate.getTime();
|
||||
var url = "<?php echo APP_ROOT; ?>content/timetable-week.xul.php";
|
||||
url+=attributes+"&bla=";
|
||||
//dump(url);
|
||||
if (url && doIt)
|
||||
contentFrame.setAttribute('src', url);
|
||||
}
|
||||
|
||||
function onStplSearchRoom(event)
|
||||
{
|
||||
//alert ("clickCount="+event.clickCount+" button="+event.button);
|
||||
if (event.button == 1)
|
||||
{
|
||||
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
||||
var daten=document.getElementById('TimeTableWeekData');
|
||||
var datum=parseInt(daten.getAttribute("datum"));
|
||||
var type=daten.getAttribute("stpl_type");
|
||||
var stg_kz=daten.getAttribute("stg_kz");
|
||||
var sem=daten.getAttribute("sem");
|
||||
var ver=daten.getAttribute("ver");
|
||||
var grp=daten.getAttribute("grp");
|
||||
var einheit=daten.getAttribute("einheit");
|
||||
var ort=daten.getAttribute("ort");
|
||||
var pers_uid=daten.getAttribute("pers_uid");
|
||||
var aktion=event.target.getAttribute("aktion");
|
||||
aktion+="_single_search";
|
||||
var idList=event.target.getAttribute("idList");
|
||||
|
||||
var attributes="\n?type="+type+"&datum="+datum+"&ort="+ort+"&pers_uid="+pers_uid+"\n&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"\n&einheit="+einheit;
|
||||
attributes+=idList+"&aktion="+aktion;
|
||||
var url = "<?php echo APP_ROOT; ?>content/timetable-week.xul.php";
|
||||
url+=attributes;
|
||||
//alert(url);
|
||||
if (url)
|
||||
location.href=url;
|
||||
}
|
||||
}
|
||||
|
||||
function onStplDelete(aktion)
|
||||
{
|
||||
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
||||
var daten=document.getElementById('TimeTableWeekData');
|
||||
var datum=parseInt(daten.getAttribute("datum"));
|
||||
var type=daten.getAttribute("stpl_type");
|
||||
var stg_kz=daten.getAttribute("stg_kz");
|
||||
var sem=daten.getAttribute("sem");
|
||||
var ver=daten.getAttribute("ver");
|
||||
var grp=daten.getAttribute("grp");
|
||||
var einheit=daten.getAttribute("einheit");
|
||||
var ort=daten.getAttribute("ort");
|
||||
var pers_uid=daten.getAttribute("pers_uid");
|
||||
var idList=document.popupNode.getAttribute("idList");
|
||||
var doIt=true;
|
||||
doIt=confirm('Es werden die gewaehlten Eintraege aus dem Stundenplan geloescht!\nSind Sie sicher?')
|
||||
|
||||
var attributes="\n?type="+type+"&datum="+datum+"&ort="+ort+"&pers_uid="+pers_uid+"\n&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"\n&einheit="+einheit;
|
||||
attributes+=idList+"&aktion="+aktion;
|
||||
var url = "<?php echo APP_ROOT; ?>content/timetable-week.xul.php";
|
||||
url+=attributes;
|
||||
//alert(url);
|
||||
if (url && doIt)
|
||||
location.href=url;
|
||||
}
|
||||
|
||||
function onStplDetail(event)
|
||||
{
|
||||
var idList=event.target.getAttribute("idList");
|
||||
var type=event.target.getAttribute("stpltype");
|
||||
var stg_kz=event.target.getAttribute("stg_kz");
|
||||
var sem=event.target.getAttribute("sem");
|
||||
var ver=event.target.getAttribute("ver");
|
||||
var grp=event.target.getAttribute("grp");
|
||||
var einheit=event.target.getAttribute("einheit");
|
||||
var datum=event.target.getAttribute("datum");
|
||||
var stunde=event.target.getAttribute("stunde");
|
||||
var pers_uid=event.target.getAttribute("pers_uid");
|
||||
var ort_kurzbz=event.target.getAttribute("ort_kurzbz");
|
||||
|
||||
var attributes="?type="+type+"&datum="+datum+"&stunde="+stunde+"&ort_kurzbz="+ort_kurzbz+"&pers_uid="+pers_uid+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit+"&ort_kurzbz="+ort_kurzbz;
|
||||
attributes+=idList;
|
||||
var url = "<?php echo APP_ROOT; ?>content/lehrstunde.rdf.php";
|
||||
url+=attributes;
|
||||
//alert(url);
|
||||
var treeStplDetails=parent.document.getElementById('treeStplDetails');
|
||||
treeStplDetails.setAttribute('datasources',url);
|
||||
}
|
||||
@@ -0,0 +1,191 @@
|
||||
<?php
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
include('../vilesci/config.inc.php');
|
||||
include('../include/functions.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/stpl-details-overlay.xul.php"?>';
|
||||
/*echo '<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>';
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';*/
|
||||
|
||||
// Testumgebung
|
||||
if (!isset($REMOTE_USER))
|
||||
$REMOTE_USER='pam';
|
||||
|
||||
$uid=$REMOTE_USER;
|
||||
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Fehler: Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
//$error_msg.=loadVariables($conn,$REMOTE_USER);
|
||||
// Stundentafel abfragen
|
||||
$sql_query="SET datestyle TO ISO;SELECT * FROM tbl_stunde ORDER BY stunde";
|
||||
if(!$result_stunde=pg_exec($conn, $sql_query))
|
||||
die(pg_last_error($this->conn));
|
||||
$num_rows_stunde=pg_numrows($result_stunde);
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay [
|
||||
<?php require("../locale/tempus.dtd"); ?>
|
||||
]>
|
||||
|
||||
<overlay id="TempusOverlaySTPLWeek"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/DragAndDrop.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/dragboard.js.php"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/stpl-week-overlay.js.php"/>
|
||||
|
||||
<hbox id="hboxTimeTableWeek">
|
||||
<vbox id="vboxTimeTableWeek" flex="30">
|
||||
<toolbox>
|
||||
<toolbar id="toolbarTimeTableJumpWeek" tbautostretch="always" persist="collapsed">
|
||||
<toolbarbutton id="toolbarbuttonJumpWeekMoreLeft"
|
||||
tooltiptext="16 Wochen zur??ck"
|
||||
image="../skin/images/moremoreleft.png"
|
||||
oncommand="onJumpDate(-16);"
|
||||
/>
|
||||
<toolbarbutton id="toolbarbuttonJumpWeekMoreLeft"
|
||||
tooltiptext="4 Wochen zur??ck"
|
||||
image="../skin/images/moreleft.png"
|
||||
oncommand="onJumpDate(-4);"
|
||||
/>
|
||||
<toolbarbutton id="toolbarbuttonJumpWeekLeft"
|
||||
tooltiptext="1 Woche zur??ck"
|
||||
image="../skin/images/left.png"
|
||||
oncommand="onJumpDate(-1);"
|
||||
/>
|
||||
<toolbarbutton id="toolbarbuttonJumpWeekNow"
|
||||
tooltiptext="zur aktuellen KW"
|
||||
label="KW"
|
||||
oncommand="onJumpNow();"
|
||||
/>
|
||||
<toolbarbutton id="toolbarbuttonJumpWeekRight"
|
||||
tooltiptext="1 Woche vor"
|
||||
image="../skin/images/right.png"
|
||||
oncommand="onJumpDate(+1);"
|
||||
/>
|
||||
<toolbarbutton id="toolbarbuttonJumpWeekMoreRight"
|
||||
tooltiptext="4 Wochen vor"
|
||||
image="../skin/images/moreright.png"
|
||||
oncommand="onJumpDate(+4);"
|
||||
/>
|
||||
<toolbarbutton id="toolbarbuttonJumpWeekMoreRight"
|
||||
tooltiptext="16 Wochen vor"
|
||||
image="../skin/images/moremoreright.png"
|
||||
oncommand="onJumpDate(+16);"
|
||||
/>
|
||||
<separator orient="horizontal" class="thin" />
|
||||
<toolbarbutton id="toolbarbuttonStplWeekRefresh"
|
||||
tooltiptext="Neu laden"
|
||||
image="../skin/images/refresh.png"
|
||||
oncommand="onJumpDate(0);"
|
||||
/>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
<iframe id="iframeTimeTableWeek" name="TimeTableWeek" flex="5"
|
||||
src="<?php echo APP_ROOT; ?>content/timetable-week.xul.php" />
|
||||
<splitter collapse="after" persist="state">
|
||||
<grippy />
|
||||
</splitter>
|
||||
|
||||
<vbox id="vboxSTPLDetailsListe" flex="2" />
|
||||
|
||||
</vbox>
|
||||
|
||||
<splitter collapse="after" persist="state">
|
||||
<grippy />
|
||||
</splitter>
|
||||
|
||||
<vbox style="margin:0px;" flex="1">
|
||||
<toolbox>
|
||||
<toolbar id="toolbarTimeTableLeftWeek" tbautostretch="always" persist="collapsed">
|
||||
<toolbarbutton id="toolbarbuttonStplWeekRefresh"
|
||||
image="../skin/images/refresh.png"
|
||||
oncommand="onLVARefresh();"
|
||||
tooltiptext="Neu laden"
|
||||
/>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
<vbox id="vboxLehrveranstalungPlanung" style="overflow:auto;margin:0px;" flex="1"
|
||||
datasources="lehrveranstaltung.rdf.php"
|
||||
ref="http://www.technikum-wien.at/tempus/lehrveranstaltung/alle">
|
||||
<template>
|
||||
<rule>
|
||||
<grid uri="rdf:*" class="lvaStundenplan">
|
||||
<columns>
|
||||
<column style="background-color:lightblue; border:1px solid black" />
|
||||
<column style="background-color:lightblue; border:1px solid black" />
|
||||
</columns>
|
||||
<rows>
|
||||
<row style="background-color:lightgreen; border:1px solid black">
|
||||
<hbox>
|
||||
<toolbarbutton
|
||||
image="../skin/images/lvaSingle.png"
|
||||
ondraggesture="nsDragAndDrop.startDrag(event,lvaObserver);"
|
||||
oncommand="onLVAdoStpl(event);"
|
||||
idList="rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#lva_ids"
|
||||
aktion="lva_single"
|
||||
tooltiptext="Vorschlag/Setzen Block"
|
||||
/>
|
||||
<toolbarbutton
|
||||
image="../skin/images/lvaMulti.png"
|
||||
onclick="onLVAdoStpl(event);"
|
||||
idList="rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#lva_ids"
|
||||
aktion="lva_multi"
|
||||
ondraggesture="nsDragAndDrop.startDrag(event,lvaObserver)"
|
||||
tooltiptext="Vorschlag/Setzen MultiWeek"
|
||||
/>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<toolbarbutton
|
||||
image="../skin/images/lvaSingleDel.png"
|
||||
onclick="onLVAdoStpl(event);"
|
||||
idList="rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#lva_ids"
|
||||
aktion="lva_stpl_del_single"
|
||||
tooltiptext="Löschen SingleWeek"
|
||||
/>
|
||||
<toolbarbutton
|
||||
image="../skin/images/lvaMultiDel.png"
|
||||
onclick="onLVAdoStpl(event);"
|
||||
idList="rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#lva_ids"
|
||||
aktion="lva_stpl_del_multi"
|
||||
tooltiptext="Löschen MultiWeek"
|
||||
/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row style="background-color^: rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#lehrfach_farbe^;">
|
||||
<label value="rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#lehrfach rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#lehrform"
|
||||
tooltiptext="rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#lehrfach_bez" />
|
||||
<label align="right" value="rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#raumtyp"
|
||||
tooltiptext="rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#raumtypalternativ" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#lehrverband"
|
||||
tooltiptext="rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#anmerkung" />
|
||||
<toolbarbutton
|
||||
label="KW: rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#start_kw "
|
||||
tooltiptext="Zu KW rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#start_kw springen"
|
||||
onclick="onJumpDateRel(event);"
|
||||
kw="rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#start_kw"
|
||||
/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#lektor" />
|
||||
<label value="WR: rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#wochenrythmus"
|
||||
tooltiptext="Wochenrythmus"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Offen: rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#offenestunden h"
|
||||
tooltiptext="Stunden: rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#verplant / rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#semesterstunden" />
|
||||
<label value="Block: rdf:http://www.technikum-wien.at/tempus/lehrveranstaltung/rdf#stundenblockung"
|
||||
tooltiptext="Stundenblockung" />
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</rule>
|
||||
</template>
|
||||
</vbox>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</overlay>
|
||||
@@ -0,0 +1,200 @@
|
||||
<?php
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>';
|
||||
include('../vilesci/config.inc.php');
|
||||
include('../include/berechtigung.class.php');
|
||||
|
||||
$rdf_url='http://www.tempus-student-verbaende.at/';
|
||||
|
||||
if (!isset($REMOTE_USER))
|
||||
$REMOTE_USER='pam';
|
||||
$uid=$REMOTE_USER;
|
||||
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
// Berechtigungen ermitteln
|
||||
$berechtigung=new berechtigung($conn);
|
||||
$berechtigung->getBerechtigungen($uid);
|
||||
$berechtigt_studiengang=$berechtigung->getStgKz();
|
||||
$stg_kz_query='';
|
||||
if ($berechtigt_studiengang[0]!=0 && count($berechtigt_studiengang)>0)
|
||||
{
|
||||
foreach ($berechtigt_studiengang as $b_stg)
|
||||
$stg_kz_query.=' OR studiengang_kz='.$b_stg;
|
||||
$stg_kz_query='AND ('.substr($stg_kz_query,3).')';
|
||||
}
|
||||
|
||||
$sql_query="SELECT studiengang_kz, bezeichnung, kurzbz FROM tbl_studiengang WHERE studiengang_kz>=0 $stg_kz_query ORDER BY bezeichnung";
|
||||
//echo $sql_query;
|
||||
if(!$result_stg=pg_query($conn, $sql_query))
|
||||
$error_msg.=pg_errormessage($conn);
|
||||
else
|
||||
$num_rows_stg=@pg_numrows($result_stg);
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:VERBAND="<?php echo $rdf_url; ?>rdf#"
|
||||
>
|
||||
|
||||
<?php
|
||||
for ($i=0;$i<$num_rows_stg;$i++)
|
||||
{
|
||||
$row_stg=@pg_fetch_object($result_stg, $i);
|
||||
?>
|
||||
<RDF:Description RDF:about="<?php echo $rdf_url.$row_stg->kurzbz; ?>" >
|
||||
<VERBAND:name><?php echo $row_stg->kurzbz.' - '.$row_stg->bezeichnung; ?></VERBAND:name>
|
||||
<VERBAND:stg><?php echo $row_stg->kurzbz; ?></VERBAND:stg>
|
||||
<VERBAND:stg_kz><?php echo $row_stg->studiengang_kz; ?></VERBAND:stg_kz>
|
||||
</RDF:Description>
|
||||
<?php
|
||||
$sql_query="SELECT DISTINCT semester FROM tbl_student WHERE studiengang_kz=$row_stg->studiengang_kz ORDER BY semester";
|
||||
if(!($result_sem=pg_query($conn, $sql_query)))
|
||||
die(pg_errormessage($conn));
|
||||
$num_rows_sem=pg_numrows($result_sem);
|
||||
for ($j=0; $j<$num_rows_sem; $j++)
|
||||
{
|
||||
$row_sem=pg_fetch_object($result_sem, $j);
|
||||
?>
|
||||
<RDF:Description RDF:about="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester; ?>">
|
||||
<VERBAND:name><?php echo $row_stg->kurzbz.'-'.$row_sem->semester; ?></VERBAND:name>
|
||||
<VERBAND:stg><?php echo $row_stg->kurzbz; ?></VERBAND:stg>
|
||||
<VERBAND:stg_kz><?php echo $row_stg->studiengang_kz; ?></VERBAND:stg_kz>
|
||||
<VERBAND:sem><?php echo $row_sem->semester; ?></VERBAND:sem>
|
||||
</RDF:Description>
|
||||
<?php
|
||||
$sql_query="SELECT DISTINCT verband FROM tbl_student WHERE verband!=' ' AND studiengang_kz=$row_stg->studiengang_kz AND semester=$row_sem->semester ORDER BY verband";
|
||||
if(!($result_ver=pg_exec($conn, $sql_query)))
|
||||
die(pg_errormessage($conn));
|
||||
$num_rows_ver=pg_numrows($result_ver);
|
||||
for ($k=0; $k<$num_rows_ver; $k++)
|
||||
{
|
||||
$row_ver=pg_fetch_object($result_ver, $k);
|
||||
?>
|
||||
<RDF:Description RDF:about="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester.'/'.$row_ver->verband; ?>">
|
||||
<VERBAND:name><?php echo $row_stg->kurzbz.'-'.$row_sem->semester.$row_ver->verband; ?></VERBAND:name>
|
||||
<VERBAND:stg><?php echo $row_stg->kurzbz; ?></VERBAND:stg>
|
||||
<VERBAND:stg_kz><?php echo $row_stg->studiengang_kz; ?></VERBAND:stg_kz>
|
||||
<VERBAND:sem><?php echo $row_sem->semester; ?></VERBAND:sem>
|
||||
<VERBAND:ver><?php echo $row_ver->verband; ?></VERBAND:ver>
|
||||
</RDF:Description>
|
||||
<?php
|
||||
$sql_query="SELECT DISTINCT gruppe FROM tbl_student WHERE studiengang_kz=$row_stg->studiengang_kz AND semester=$row_sem->semester AND verband='$row_ver->verband' ORDER BY gruppe";
|
||||
if(!($result_grp=pg_exec($conn, $sql_query))) die(pg_errormessage($conn));
|
||||
$num_rows_grp=pg_numrows($result_grp);
|
||||
for ($l=0; $l<$num_rows_grp; $l++)
|
||||
{
|
||||
$row_grp=pg_fetch_object($result_grp, $l);
|
||||
?>
|
||||
<RDF:Description RDF:about="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester.'/'.$row_ver->verband.'/'.$row_grp->gruppe; ?>">
|
||||
<VERBAND:name><?php echo $row_stg->kurzbz.'-'.$row_sem->semester.$row_ver->verband.$row_grp->gruppe; ?></VERBAND:name>
|
||||
<VERBAND:stg><?php echo $row_stg->kurzbz; ?></VERBAND:stg>
|
||||
<VERBAND:stg_kz><?php echo $row_stg->studiengang_kz; ?></VERBAND:stg_kz>
|
||||
<VERBAND:sem><?php echo $row_sem->semester; ?></VERBAND:sem>
|
||||
<VERBAND:ver><?php echo $row_ver->verband; ?></VERBAND:ver>
|
||||
<VERBAND:grp><?php echo $row_grp->gruppe; ?></VERBAND:grp>
|
||||
</RDF:Description>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
$sql_query="SELECT bezeichnung, einheit_kurzbz FROM tbl_einheit WHERE studiengang_kz=$row_stg->studiengang_kz AND semester=$row_sem->semester ORDER BY bezeichnung";
|
||||
//echo $sql_query;
|
||||
if(!($result_einh=pg_exec($conn, $sql_query)))
|
||||
die(pg_errormessage($conn));
|
||||
$num_rows_einh=pg_numrows($result_einh);
|
||||
for ($m=0; $m<$num_rows_einh; $m++)
|
||||
{
|
||||
$row_einh=pg_fetch_object($result_einh, $m);
|
||||
?>
|
||||
<RDF:Description RDF:about="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester.'/'.$row_einh->einheit_kurzbz; ?>">
|
||||
<VERBAND:name><?php echo $row_einh->einheit_kurzbz.'-'.$row_einh->bezeichnung; ?></VERBAND:name>
|
||||
<VERBAND:stg><?php echo $row_stg->kurzbz; ?></VERBAND:stg>
|
||||
<VERBAND:stg_kz><?php echo $row_stg->studiengang_kz; ?></VERBAND:stg_kz>
|
||||
<VERBAND:sem><?php echo $row_sem->semester; ?></VERBAND:sem>
|
||||
<VERBAND:einheit><?php echo $row_einh->einheit_kurzbz; ?></VERBAND:einheit>
|
||||
</RDF:Description>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<RDF:Seq RDF:about="<?php echo $rdf_url.'alle-verbaende'; ?>">
|
||||
<?php
|
||||
for ($i=0;$i<$num_rows_stg;$i++)
|
||||
{
|
||||
$row_stg=@pg_fetch_object($result_stg, $i);
|
||||
?>
|
||||
<RDF:li RDF:resource="<?php echo $rdf_url.$row_stg->kurzbz; ?>" />
|
||||
<RDF:li>
|
||||
<RDF:Seq RDF:about="<?php echo $rdf_url.$row_stg->kurzbz; ?>">
|
||||
<?php
|
||||
$sql_query="SELECT DISTINCT semester FROM tbl_student WHERE studiengang_kz=$row_stg->studiengang_kz ORDER BY semester";
|
||||
if(!($result_sem=pg_query($conn, $sql_query)))
|
||||
die(pg_errormessage($conn));
|
||||
$num_rows_sem=pg_numrows($result_sem);
|
||||
for ($j=0; $j<$num_rows_sem; $j++)
|
||||
{
|
||||
$row_sem=pg_fetch_object($result_sem, $j);
|
||||
?>
|
||||
<RDF:li RDF:resource="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester; ?>" />
|
||||
<RDF:li>
|
||||
<RDF:Seq RDF:about="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester; ?>">
|
||||
<?php
|
||||
$sql_query="SELECT DISTINCT verband FROM tbl_student WHERE verband!=' ' AND studiengang_kz=$row_stg->studiengang_kz AND semester=$row_sem->semester ORDER BY verband";
|
||||
if(!($result_ver=pg_exec($conn, $sql_query)))
|
||||
die(pg_errormessage($conn));
|
||||
$num_rows_ver=pg_numrows($result_ver);
|
||||
for ($k=0; $k<$num_rows_ver; $k++)
|
||||
{
|
||||
$row_ver=pg_fetch_object($result_ver, $k);
|
||||
?>
|
||||
<RDF:li RDF:resource="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester.'/'.$row_ver->verband; ?>" />
|
||||
<RDF:li>
|
||||
<RDF:Seq RDF:about="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester.'/'.$row_ver->verband; ?>">
|
||||
<?php
|
||||
$sql_query="SELECT DISTINCT gruppe FROM tbl_student WHERE studiengang_kz=$row_stg->studiengang_kz AND semester=$row_sem->semester AND verband='$row_ver->verband' ORDER BY gruppe";
|
||||
if(!($result_grp=pg_exec($conn, $sql_query)))
|
||||
die(pg_errormessage($conn));
|
||||
$num_rows_grp=pg_numrows($result_grp);
|
||||
for ($l=0; $l<$num_rows_grp; $l++)
|
||||
{
|
||||
$row_grp=pg_fetch_object($result_grp, $l);
|
||||
?>
|
||||
<RDF:li RDF:resource="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester.'/'.$row_ver->verband.'/'.$row_grp->gruppe; ?>" />
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</RDF:Seq>
|
||||
</RDF:li>
|
||||
<?php
|
||||
}
|
||||
|
||||
$sql_query="SELECT bezeichnung, einheit_kurzbz FROM tbl_einheit WHERE studiengang_kz=$row_stg->studiengang_kz AND semester=$row_sem->semester ORDER BY bezeichnung";
|
||||
//echo $sql_query;
|
||||
if(!($result_einh=pg_exec($conn, $sql_query)))
|
||||
die(pg_errormessage($conn));
|
||||
$num_rows_einh=pg_numrows($result_einh);
|
||||
for ($m=0; $m<$num_rows_einh; $m++)
|
||||
{
|
||||
$row_einh=pg_fetch_object($result_einh, $m);
|
||||
?>
|
||||
<RDF:li RDF:resource="<?php echo $rdf_url.$row_stg->kurzbz.'/'.$row_sem->semester.'/'.$row_einh->einheit_kurzbz; ?>" />
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</RDF:Seq>
|
||||
</RDF:li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</RDF:Seq>
|
||||
</RDF:li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</RDF:Seq>
|
||||
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,205 @@
|
||||
// aktueller Student, der angezeigt wird
|
||||
var currentStudent;
|
||||
|
||||
function studentAuswahl() {
|
||||
var tree = document.getElementById('treeStudenten');
|
||||
var items = tree.selectedItems;
|
||||
|
||||
//alert(tree.view.getCellText(tree.currentIndex,"uid"));
|
||||
// Datasource holen
|
||||
var dsource;
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return;
|
||||
}
|
||||
var sources=tree.database.GetDataSources();
|
||||
if (sources.hasMoreElements()){
|
||||
dsource=sources.getNext();
|
||||
}
|
||||
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/tempus/studenten/" + tree.view.getCellText(tree.currentIndex,"uid"));
|
||||
|
||||
// zum debuggen; zeigt predicates an, die in resource zu finden sind
|
||||
/*
|
||||
var targets = dsource.ArcLabelsOut(subject);
|
||||
while (targets.hasMoreElements()){
|
||||
var predicate = targets.getNext();
|
||||
if (predicate instanceof Components.interfaces.nsIRDFResource){
|
||||
var target = dsource.GetTarget(subject, predicate, true);
|
||||
|
||||
if (target instanceof Components.interfaces.nsIRDFResource){
|
||||
alert("Resource is: " + target.Value);
|
||||
}
|
||||
else if (target instanceof Components.interfaces.nsIRDFLiteral){
|
||||
alert("Literal is: " + target.Value + " predi="+ predicate.Value+ "subject="+subject.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
//
|
||||
var predicateNS = "http://www.technikum-wien.at/tempus/studenten/rdf";
|
||||
//var predicate = rdfService.GetResource( predicateNS + "#vornamen" );
|
||||
//var target = dsource.GetTarget(subject, predicate, true);
|
||||
var student = new Student();
|
||||
|
||||
student.uid = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#uid" ));
|
||||
student.titel = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titel" ));
|
||||
student.vornamen = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vornamen" ));
|
||||
student.nachname = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nachname" ));
|
||||
student.geburtsdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#geburtsdatum" ));
|
||||
student.geburtsort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#geburtsort" ));
|
||||
student.geburtszeit = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#geburtszeit" ));
|
||||
student.homepage = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#homepage" ));
|
||||
student.email = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#email" ));
|
||||
student.matrikelnummer = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#matrikelnummer" ));
|
||||
student.semester = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#semester" ));
|
||||
student.verband = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#verband" ));
|
||||
student.gruppe = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gruppe" ));
|
||||
student.studiengang_kz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studiengang_kz" ));
|
||||
student.stg_bezeichnung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#stg_bezeichnung" ));
|
||||
student.aktiv = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#aktiv" ));
|
||||
|
||||
student.show();
|
||||
currentStudent = student;
|
||||
|
||||
/*
|
||||
if (dsource.hasArcOut(subject, predicate)) {
|
||||
if (target instanceof Components.interfaces.nsIRDFLiteral) {
|
||||
alert("Literal is: " + target.Value + " predi="+ predicate.Value+ "subject="+subject.Value);
|
||||
student.vornamen = target.Value;
|
||||
student.show();
|
||||
}
|
||||
} */
|
||||
document.getElementById('std-label-anzahl').value="Anzahl: "+tree.view.rowCount;
|
||||
}
|
||||
|
||||
function getTargetHelper(dsource,subj,predi) {
|
||||
if (dsource.hasArcOut(subj, predi)) {
|
||||
var target = dsource.GetTarget(subj, predi, true);
|
||||
if (target instanceof Components.interfaces.nsIRDFLiteral) {
|
||||
return target.Value;
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Student Value Object
|
||||
*/
|
||||
function Student() {
|
||||
this.uid=null;
|
||||
this.matrikelnummer=null;
|
||||
this.titel=null;
|
||||
this.vornamen=null;
|
||||
this.nachname=null;
|
||||
this.geburtsdatum=null;
|
||||
this.geburtsort=null;
|
||||
this.geburtszeit=null;
|
||||
this.homepage=null;
|
||||
this.email=null;
|
||||
this.semester=null;
|
||||
this.verband=null;
|
||||
this.gruppe=null;
|
||||
this.stg_bezeichnung=null;
|
||||
this.studiengang_kz=null;
|
||||
this.aktiv=null;
|
||||
// flag, welches angibt, ob Daten verändert wurden
|
||||
this.dataChanged=false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Daten aus Formular holen und evt. speichern
|
||||
*/
|
||||
Student.prototype.updateData = function() {
|
||||
if (document.getElementById('gridStudentenUID').value!=this.uid) {
|
||||
this.uid = document.getElementById('gridStudentenUID').value;
|
||||
this.dataChanged = true;
|
||||
};
|
||||
if (document.getElementById('gridStudentenTitel').value!=this.titel) {
|
||||
this.titel = document.getElementById('gridStudentenTitel').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenVornamen').value!=this.vornamen) {
|
||||
this.vornamen = document.getElementById('gridStudentenVornamen').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenNachname').value!=this.nachname) {
|
||||
this.nachname = document.getElementById('gridStudentenNachname').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenMatrikelnummer').value!=this.matrikelnummer) {
|
||||
this.matrikelnummer = document.getElementById('gridStudentenMatrikelnummer').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
//alert(document.getElementById('gridStudentenMatrikelnummer').value);
|
||||
if (document.getElementById('gridStudentenGeburtsdatum').value!=this.geburtsdatum) {
|
||||
// todo validation
|
||||
this.geburtsdatum = document.getElementById('gridStudentenGeburtsdatum').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenGeburtsort').value!=this.geburtsort) {
|
||||
this.geburtsort = document.getElementById('gridStudentenGeburtsort').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenGeburtszeit').value!=this.geburtszeit) {
|
||||
// todo validation
|
||||
this.geburtszeit = document.getElementById('gridStudentenGeburtszeit').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenHomepage').value!=this.homepage) {
|
||||
this.homepage = document.getElementById('gridStudentenHomepage').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenEmail').value!=this.email) {
|
||||
this.email = document.getElementById('gridStudentenEmail').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenSemester').value!=this.semester) {
|
||||
this.semester = document.getElementById('gridStudentenSemester').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenVerband').value!=this.verband) {
|
||||
this.verband = document.getElementById('gridStudentenVerband').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (document.getElementById('gridStudentenGruppe').value!=this.gruppe) {
|
||||
this.gruppe = document.getElementById('gridStudentenGruppe').value;
|
||||
this.dataChanged = true;
|
||||
}
|
||||
if (!((document.getElementById('gridStudentenAktiv').checked && this.aktiv=='True') ||
|
||||
(!document.getElementById('gridStudentenAktiv').checked && this.aktiv=='False'))) {
|
||||
this.aktiv = document.getElementById('gridStudentenAktiv').checked?'True':'False';
|
||||
this.dataChanged = true;
|
||||
}
|
||||
alert(this.dataChanged?'dataChanged':'nix changed');
|
||||
}
|
||||
|
||||
/**
|
||||
* Student anzeigen
|
||||
*/
|
||||
Student.prototype.show = function() {
|
||||
document.getElementById('gridStudentenUID').value = this.uid;
|
||||
document.getElementById('gridStudentenTitel').value = this.titel;
|
||||
document.getElementById('gridStudentenVornamen').value = this.vornamen;
|
||||
document.getElementById('gridStudentenNachname').value = this.nachname;
|
||||
document.getElementById('gridStudentenMatrikelnummer').value = this.matrikelnummer;
|
||||
document.getElementById('gridStudentenGeburtsdatum').value = this.geburtsdatum;
|
||||
document.getElementById('gridStudentenGeburtsort').value = this.geburtsort;
|
||||
document.getElementById('gridStudentenGeburtszeit').value = this.geburtszeit;
|
||||
document.getElementById('gridStudentenHomepage').value = this.homepage;
|
||||
document.getElementById('gridStudentenEmail').value = this.email;
|
||||
document.getElementById('gridStudentenSemester').value = this.semester;
|
||||
document.getElementById('gridStudentenVerband').value = this.verband;
|
||||
document.getElementById('gridStudentenGruppe').value = this.gruppe;
|
||||
document.getElementById('gridStudentenStgBezeichnung').value = this.stg_bezeichnung;
|
||||
document.getElementById('gridStudentenAktiv').checked = (this.aktiv=='True'?true:false);
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
* To change the template for this generated file go to
|
||||
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||||
*/
|
||||
// header für 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");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
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/person.class.php');
|
||||
include_once('../include/student.class.php');
|
||||
|
||||
// Datenbank Verbindung
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
// test
|
||||
/*
|
||||
$einheit_kurzbz='';
|
||||
$grp='1';
|
||||
$ver='A';
|
||||
$sem=3;
|
||||
$stg_kz=145;
|
||||
*/
|
||||
|
||||
$einheit_kurzbz=$_GET['einheit'];
|
||||
$grp=$_GET['grp'];
|
||||
$ver=$_GET['ver'];
|
||||
$sem=$_GET['sem'];
|
||||
$stg_kz=$_GET['stg_kz'];
|
||||
|
||||
// Studenten holen
|
||||
$studentenDAO=new student($conn);
|
||||
$studenten=$studentenDAO->getStudents($einheit_kurzbz, $grp, $ver, $sem,$stg_kz);
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/studenten';
|
||||
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:STUDENT="<?php echo $rdf_url; ?>/rdf#"
|
||||
>
|
||||
|
||||
|
||||
<RDF:Seq about="<?php echo $rdf_url ?>/liste">
|
||||
|
||||
<?php
|
||||
foreach ($studenten as $student)
|
||||
{
|
||||
?>
|
||||
<RDF:li>
|
||||
<RDF:Description id="<?php echo $student->uid; ?>" about="<?php echo $rdf_url.'/'.$student->uid; ?>" >
|
||||
<STUDENT:uid><?php echo $student->uid ?></STUDENT:uid>
|
||||
<STUDENT:titel><?php echo $student->titel ?></STUDENT:titel>
|
||||
<STUDENT:vornamen><?php echo $student->vornamen ?></STUDENT:vornamen>
|
||||
<STUDENT:nachname><?php echo $student->nachname ?></STUDENT:nachname>
|
||||
<STUDENT:matrikelnummer><?php echo $student->matrikelnr ?></STUDENT:matrikelnummer>
|
||||
<STUDENT:geburtsdatum><?php echo $student->gebdatum ?></STUDENT:geburtsdatum>
|
||||
<STUDENT:email><?php echo $student->email ?></STUDENT:email>
|
||||
<STUDENT:homepage><?php echo $student->homepage ?></STUDENT:homepage>
|
||||
<STUDENT:aktiv><?php echo ($student->aktiv?'True':'False') ?></STUDENT:aktiv>
|
||||
<STUDENT:gebort><?php echo $student->gebort ?></STUDENT:gebort>
|
||||
<STUDENT:gebzeit><?php echo $student->gebzeit ?></STUDENT:gebzeit>
|
||||
<STUDENT:foto><?php echo $student->foto ?></STUDENT:foto>
|
||||
<STUDENT:anmerkungen><?php echo $student->anmerkungen ?></STUDENT:anmerkungen>
|
||||
<STUDENT:updateamum><?php echo $student->updateamum ?></STUDENT:updateamum>
|
||||
<STUDENT:updatevon><?php echo $student->updatevon ?></STUDENT:updatevon>
|
||||
<STUDENT:gruppe><?php echo $student->gruppe ?></STUDENT:gruppe>
|
||||
<STUDENT:verband><?php echo $student->verband ?></STUDENT:verband>
|
||||
<STUDENT:semester><?php echo $student->semester ?></STUDENT:semester>
|
||||
<STUDENT:studiengang_kz><?php echo $student->studiengang_kz ?></STUDENT:studiengang_kz>
|
||||
<STUDENT:stg_bezeichnung><?php echo $student->stg_bezeichnung ?></STUDENT:stg_bezeichnung>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</RDF:Seq>
|
||||
|
||||
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,166 @@
|
||||
<?php
|
||||
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");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>';
|
||||
echo "<?xml-stylesheet href=\"".APP_ROOT."content/lfvt.css\" type=\"text/css\" ?>";
|
||||
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay >
|
||||
|
||||
<overlay id="StudentenOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/studenten.js" />
|
||||
|
||||
|
||||
|
||||
<!-- *************** -->
|
||||
<!-- * Studenten * -->
|
||||
<!-- *************** -->
|
||||
<vbox id="studentenEditor">
|
||||
<hbox>
|
||||
<toolbox>
|
||||
<toolbar id="studentenToolbar">
|
||||
<toolbarbutton label="Neu"/>
|
||||
<toolbarbutton label="Speichern"/>
|
||||
<toolbarbutton label="Löschen"/>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
<spacer flex="1"/>
|
||||
<label id="std-label-anzahl" />
|
||||
</hbox>
|
||||
|
||||
<!-- ************* -->
|
||||
<!-- * Auswahl * -->
|
||||
<!-- ************* -->
|
||||
<tree id="treeStudenten" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/tempus/studenten/liste"
|
||||
onselect="studentAuswahl();"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
style="margin:0px;"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="uid" label="UID" flex="1" primary="false"
|
||||
class="sortDirectionIndicator"
|
||||
sortActive="true"
|
||||
sortDirection="ascending"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#uid" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="titel" label="Titel" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#titel" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="vornamen" label="Vornamen" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#vornamen" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="nachname" label="Nachname" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#nachname" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="geburtsdatum" label="Geburtsdatum" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#geburtsdatum" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="semester" label="Sem." flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#semester" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="verband" label="Verb." flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#verband" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="gruppe" label="Grp." flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#gruppe" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stg_bezeichnung" label="Studiengang" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#stg_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="matrikelnummer" label="Matrikelnummer" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#matrikelnummer" />
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#uid" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#titel" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#vornamen" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#nachname" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#geburtsdatum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#semester" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#verband" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#gruppe" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#stg_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/studenten/rdf#matrikelnummer" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
|
||||
<!--
|
||||
<template>
|
||||
<rule>
|
||||
<conditions>
|
||||
<content uri="?uri" />
|
||||
<member container="?uri" child="?student" />
|
||||
</conditions>
|
||||
<bindings>
|
||||
<binding subject="?student" predicate="http://www.technikum-wien.at/tempus/studenten/rdf#uid" object="?uid" />
|
||||
<binding subject="?student" predicate="http://www.technikum-wien.at/tempus/studenten/rdf#titel" object="?titel" />
|
||||
<binding subject="?student" predicate="http://www.technikum-wien.at/tempus/studenten/rdf#vornamen" object="?vornamen" />
|
||||
<binding subject="?student" predicate="http://www.technikum-wien.at/tempus/studenten/rdf#nachname" object="?nachname" />
|
||||
<binding subject="?student" predicate="http://www.technikum-wien.at/tempus/studenten/rdf#geburtsdatum" object="?geburtsdatum" />
|
||||
<binding subject="?student" predicate="http://www.technikum-wien.at/tempus/studenten/rdf#aktiv" object="?aktiv" />
|
||||
</bindings>
|
||||
<action>
|
||||
<treechildren>
|
||||
<treeitem uri="?student">
|
||||
<treerow>
|
||||
<treecell label="?uid" />
|
||||
<treecell label="?titel" />
|
||||
<treecell label="?vornamen" />
|
||||
<treecell label="?nachname" />
|
||||
<treecell label="?geburtsdatum" />
|
||||
<treecell label="?aktiv" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</action>
|
||||
</rule>
|
||||
</template>
|
||||
-->
|
||||
|
||||
</tree>
|
||||
|
||||
<splitter collapse="after" persist="state">
|
||||
<grippy />
|
||||
</splitter>
|
||||
|
||||
<!-- ************ -->
|
||||
<!-- * Detail * -->
|
||||
<!-- ************ -->
|
||||
<vbox flex="1" style="overflow:auto;margin:0px;">
|
||||
<label value="Details" style="font-size:12pt;font-weight:bold;background:#eeeeee;margin:0px;padding:5px;" />
|
||||
|
||||
<box class="studentDetail" style="margin-top:10px;" />
|
||||
</vbox>
|
||||
</vbox>
|
||||
</overlay>
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
* To change the template for this generated file go to
|
||||
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||||
*/
|
||||
// header für 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");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
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/studiengang.class.php');
|
||||
|
||||
// Datenbank Verbindung
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
// raumtypen holen
|
||||
$studiengangDAO=new studiengang($conn);
|
||||
$studiengaenge=$studiengangDAO->getAll();
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/studiengang';
|
||||
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:STUDIENGANG="<?php echo $rdf_url; ?>/rdf#"
|
||||
>
|
||||
|
||||
<RDF:Seq about="<?php echo $rdf_url ?>/liste">
|
||||
|
||||
<?php
|
||||
if (is_array($studiengaenge)) {
|
||||
|
||||
foreach ($studiengaenge as $sg)
|
||||
{
|
||||
?>
|
||||
<RDF:li>
|
||||
<RDF:Description id="<?php echo $sg->studiengang_kz; ?>" about="<?php echo $rdf_url.'/'.$sg->studiengang_kz; ?>" >
|
||||
<STUDIENGANG:studiengang_kz><?php echo $sg->studiengang_kz ?></STUDIENGANG:studiengang_kz>
|
||||
<STUDIENGANG:kurzbz><?php echo $sg->kurzbz ?></STUDIENGANG:kurzbz>
|
||||
<STUDIENGANG:kurzbzlang><?php echo $sg->kurzbzlang ?></STUDIENGANG:kurzbzlang>
|
||||
<STUDIENGANG:bezeichnung><?php echo $sg->bezeichnung ?></STUDIENGANG:bezeichnung>
|
||||
<STUDIENGANG:max_semester><?php echo $sg->max_semester ?></STUDIENGANG:max_semester>
|
||||
<STUDIENGANG:typ><?php echo $sg->typ ?></STUDIENGANG:typ>
|
||||
<STUDIENGANG:farbe><?php echo $sg->farbe ?></STUDIENGANG:farbe>
|
||||
<STUDIENGANG:email><?php echo $sg->email ?></STUDIENGANG:email>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
<?php
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
</RDF:Seq>
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
/*
|
||||
* Created on 02.12.2004
|
||||
*
|
||||
* To change the template for this generated file go to
|
||||
* Window - Preferences - PHPeclipse - PHP - Code Templates
|
||||
*/
|
||||
// header für 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");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
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/studiensemester.class.php');
|
||||
|
||||
// Datenbank Verbindung
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
|
||||
// studiensemester holen
|
||||
$studiensemesterDAO=new studiensemester($conn);
|
||||
$studiensemesterAll=$studiensemesterDAO->getAll();
|
||||
|
||||
$rdf_url='http://www.technikum-wien.at/tempus/studiensemester';
|
||||
|
||||
?>
|
||||
|
||||
<RDF:RDF
|
||||
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:STUDIENSEMESTER="<?php echo $rdf_url; ?>/rdf#"
|
||||
>
|
||||
|
||||
|
||||
<RDF:Seq about="<?php echo $rdf_url ?>/liste">
|
||||
|
||||
|
||||
<?php
|
||||
foreach ($studiensemesterAll as $ss)
|
||||
{
|
||||
?>
|
||||
<RDF:li>
|
||||
<RDF:Description id="<?php echo $ss->kurzbz; ?>" about="<?php echo $rdf_url.'/'.$ss->kurzbz; ?>" >
|
||||
<STUDIENSEMESTER:kurzbz><?php echo $ss->kurzbz ?></STUDIENSEMESTER:kurzbz>
|
||||
<STUDIENSEMESTER:start><![CDATA[ <?php echo $ss->start ?> ]]></STUDIENSEMESTER:start>
|
||||
<STUDIENSEMESTER:ende><?php echo $ss->ende ?></STUDIENSEMESTER:ende>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</RDF:Seq>
|
||||
|
||||
|
||||
</RDF:RDF>
|
||||
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
include('../vilesci/config.inc.php');
|
||||
?>
|
||||
|
||||
function closeWindow()
|
||||
{
|
||||
window.close();
|
||||
}
|
||||
|
||||
function onLoad()
|
||||
{
|
||||
//window.close();
|
||||
}
|
||||
|
||||
function loadRightFrame()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
function loadURL(event)
|
||||
{
|
||||
var contentFrame = document.getElementById('contentFrame');
|
||||
var url = event.target.getAttribute('value');
|
||||
|
||||
if (url) contentFrame.setAttribute('src', url);
|
||||
}
|
||||
function stpltableChange(db_stpl_table)
|
||||
{
|
||||
//alert(db_stpl_table);
|
||||
}
|
||||
function studiensemesterChange()
|
||||
{
|
||||
var items = document.getElementsByTagName('menuitem');
|
||||
var stsem='';
|
||||
for(i in items)
|
||||
{
|
||||
if(items[i].id=='menu-properies-studiensemester-name' && items[i].getAttribute("checked")=='true')
|
||||
stsem = items[i].label;
|
||||
}
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Request absetzen
|
||||
var httpRequest = new XMLHttpRequest();
|
||||
var url = "<?php echo APP_ROOT; ?>rdf/fas/db_dml.rdf.php";
|
||||
|
||||
httpRequest.open("POST", url, false, '','');
|
||||
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
var param = "type=variablechange";
|
||||
param = param + "&stsem="+stsem;
|
||||
|
||||
//Parameter schicken
|
||||
httpRequest.send(param);
|
||||
|
||||
// Bei status 4 ist sendung Ok
|
||||
switch(httpRequest.readyState)
|
||||
{
|
||||
case 1,2,3: alert('Bad Ready State: '+httpRequest.status);
|
||||
return false;
|
||||
break;
|
||||
|
||||
case 4: if(httpRequest.status !=200)
|
||||
{
|
||||
alert('The server respond with a bad status code: '+httpRequest.status);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = httpRequest.responseText;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Returnwerte aus RDF abfragen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/dbdml');
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/dbdml/0");
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/dbdml/rdf";
|
||||
|
||||
var dbdml_return = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
|
||||
var dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
|
||||
|
||||
if(dbdml_return=='true')
|
||||
{
|
||||
//Statusbar setzen
|
||||
document.getElementById("statusbarpanel-text").label = "Studiensemester erfolgreich geändert";
|
||||
document.getElementById("statusbarpanel-semester").label = stsem;
|
||||
//MitarbeiterDetailStudiensemester_id = dbdml_errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Fehler beim Speichern der Daten: "+dbdml_errormsg);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,158 @@
|
||||
<?php
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
include('../vilesci/config.inc.php');
|
||||
include('../include/functions.inc.php');
|
||||
include('../include/fas/benutzer.class.php');
|
||||
|
||||
// Testumgebung
|
||||
if (!isset($REMOTE_USER))
|
||||
$REMOTE_USER='pam';
|
||||
|
||||
$uid=$REMOTE_USER;
|
||||
$error_msg='';
|
||||
|
||||
//Variablen laden
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
$error_msg.=loadVariables($conn,$REMOTE_USER);
|
||||
|
||||
$benutzer = new benutzer($conn);
|
||||
if(!$benutzer->loadVariables($uid))
|
||||
$error_msg = $benutzer->errormsg;
|
||||
/*echo '<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>';*/
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/tempusoverlay.xul.php"?>';
|
||||
?>
|
||||
|
||||
<!DOCTYPE window [
|
||||
<?php require("../locale/de-AT/tempus.dtd"); ?>
|
||||
]>
|
||||
|
||||
<window
|
||||
id="tempus"
|
||||
title="&window.title; &window.version;"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
orient="vertical"
|
||||
width="800"
|
||||
height="600"
|
||||
persist="screenX screenY width height sizemode"
|
||||
onload="onLoad()"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/tempus.js.php" />
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/DragAndDrop.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/dragboard.js"/>
|
||||
|
||||
|
||||
<commandset id="maincommands">
|
||||
<command id="menu-file-close:command" oncommand="closeWindow();"/>
|
||||
<command id="menu-properties-studiensemester:command" oncommand="studiensemesterChange();"/>
|
||||
<command id="menu-prefs-stpltable-stundenplan:command" oncommand="stpltableChange('stundenplan');"/>
|
||||
<command id="menu-prefs-stpltable-stundenplandev:command" oncommand="stpltableChange('stundenplandev');"/>
|
||||
</commandset>
|
||||
|
||||
<keyset id="mainkeys">
|
||||
<key
|
||||
id = "menu-file-close:key"
|
||||
key = "&menu-file-close:key;"
|
||||
observes = "menu-file-close:command"
|
||||
modifiers = "accel" />
|
||||
</keyset>
|
||||
|
||||
<toolbox id="main-toolbox">
|
||||
<menubar id="menu">
|
||||
<menu id="menu-file" label="&menu-file:label;" accesskey="&menu-file:accesskey;">
|
||||
<menupopup id="menu-file-popup">
|
||||
<menuitem
|
||||
id = "menu-file-close"
|
||||
key = "menu-file-close:key"
|
||||
label = "&menu-file-close:label;"
|
||||
command = "menu-file-close:command"
|
||||
accesskey = "&menu-file-close:accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu-prefs" label="&menu-prefs:label;" accesskey="&menu-prefs:accesskey;">
|
||||
<menupopup id="menu-prefs-popup">
|
||||
<menu id="menu-prefs-stpltable" label="&menu-prefs-stpltable:label;" accesskey="&menu-prefs-stpltable:accesskey;">
|
||||
<menupopup id="menu-prefs-stpltable-popup">
|
||||
<menuitem
|
||||
id ="menu-prefs-stpltable-stundenplan"
|
||||
type ="radio"
|
||||
key ="menu-prefs-stpltable-stundenplan:key"
|
||||
label ="&menu-prefs-stpltable-stundenplan:label;"
|
||||
command ="menu-prefs-stpltable-stundenplan:command"
|
||||
accesskey ="&menu-prefs-stpltable-stundenplan:accesskey;"/>
|
||||
<menuitem
|
||||
id ="menu-prefs-stpltable-stundenplandev"
|
||||
type ="radio"
|
||||
key ="menu-prefs-stpltable-stundenplandev:key"
|
||||
label ="&menu-prefs-stpltable-stundenplandev:label;"
|
||||
command ="menu-prefs-stpltable-stundenplandev:command"
|
||||
accesskey ="&menu-prefs-stpltable-stundenplandev:accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu
|
||||
id = "menu-properies-studiensemester"
|
||||
label = "Studiensemester">
|
||||
<menupopup id="menu-properties-popup">
|
||||
<?php
|
||||
$stsem_arr = $benutzer->getpossibilities('semester_aktuell');
|
||||
foreach ($stsem_arr as $stsem)
|
||||
{
|
||||
echo "
|
||||
<menuitem
|
||||
id = 'menu-properies-studiensemester-name'
|
||||
label = '$stsem'
|
||||
type = 'radio'
|
||||
command = 'menu-properties-studiensemester:command'
|
||||
checked = ".($benutzer->variable->semester_aktuell==$stsem?"'true' ":"'false'")." />";
|
||||
}
|
||||
?>
|
||||
|
||||
</menupopup>
|
||||
</menu>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu-help" label="&menu-help:label;" accesskey="&menu-help:accesskey;">
|
||||
<menupopup id="menu-about-popup">
|
||||
<menuitem
|
||||
id = "menu-help-close"
|
||||
key = "menu-help-close:key"
|
||||
label = "&menu-help-close:label;"
|
||||
command = "menu-help-close:command"
|
||||
accesskey = "&menu-help-close:accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
</menubar>
|
||||
</toolbox>
|
||||
|
||||
<hbox flex="1">
|
||||
<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-lektor" label="Lektor" />
|
||||
</tabs>
|
||||
<tabpanels id="tabpanels-left" flex="1">
|
||||
<tree id="tree-verband" />
|
||||
<tree id="tree-ort" />
|
||||
<tree id="tree-lektor" />
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
<splitter collapse="before" persist="state">
|
||||
<grippy />
|
||||
</splitter>
|
||||
<vbox id="vbox-main" flex="15" />
|
||||
</hbox>
|
||||
|
||||
<statusbar id="status-bar" persist="collapsed">
|
||||
<statusbarpanel class="statusbarpanel-iconic" id="logo-icon" />
|
||||
<statusbarpanel id="statusbarpanel-semester" label="<?php echo $semester_aktuell; ?>"/>
|
||||
<statusbarpanel id="statusbarpanel-db_table" label="<?php echo $db_stpl_table; ?>"/>
|
||||
<statusbarpanel id="statusbarpanel-text" label="<?php echo htmlspecialchars($error_msg); ?>" flex="4" crop="right" />
|
||||
<statusbarpanel class="statusbarpanel-iconic" id="example-status" flex="1" />
|
||||
</statusbar>
|
||||
</window>
|
||||
@@ -0,0 +1,207 @@
|
||||
<?php
|
||||
include('../vilesci/config.inc.php');
|
||||
?>
|
||||
|
||||
var currentAuswahl=new auswahlValues();
|
||||
|
||||
function auswahlValues()
|
||||
{
|
||||
this.stg_kz=null;
|
||||
this.sem=null;
|
||||
this.ver=null;
|
||||
this.grp=null;
|
||||
this.einheit=null;
|
||||
this.lektor_uid=null;
|
||||
}
|
||||
|
||||
function onVerbandSelect()
|
||||
{
|
||||
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
||||
var tree=document.getElementById('tree-verband');
|
||||
var stg_kz=tree.view.getCellText(tree.currentIndex,"stg_kz");
|
||||
var sem=tree.view.getCellText(tree.currentIndex,"sem");
|
||||
var ver=tree.view.getCellText(tree.currentIndex,"ver");
|
||||
var grp=tree.view.getCellText(tree.currentIndex,"grp");
|
||||
var einheit=tree.view.getCellText(tree.currentIndex,"einheit");
|
||||
var daten=window.TimeTableWeek.document.getElementById('TimeTableWeekData');
|
||||
var datum=parseInt(daten.getAttribute("datum"));
|
||||
var attributes="&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit;
|
||||
var url = "<?php echo APP_ROOT; ?>content/timetable-week.xul.php";
|
||||
if (einheit!=null && einheit!=0 &einheit!='')
|
||||
var type="?type=einheit";
|
||||
else
|
||||
var type="?type=verband";
|
||||
url+=type+attributes+"&datum="+datum;
|
||||
if (url)
|
||||
contentFrame.setAttribute('src', url);
|
||||
|
||||
currentAuswahl.stg_kz=stg_kz;
|
||||
currentAuswahl.sem=sem;
|
||||
currentAuswahl.ver=ver;
|
||||
currentAuswahl.grp=grp;
|
||||
currentAuswahl.einheit=einheit;
|
||||
|
||||
// Semesterplan
|
||||
var semesterplan=document.getElementById('tabpanels-main');
|
||||
var panelIndex=semesterplan.getAttribute("selectedIndex");
|
||||
if (panelIndex==1)
|
||||
{
|
||||
var contentFrame=document.getElementById('iframeTimeTableSemester');
|
||||
var url = "<?php echo APP_ROOT; ?>content/timetable-week.xul.php";
|
||||
if (einheit!=null && einheit!=0 &einheit!='')
|
||||
var type="?type=einheit";
|
||||
else
|
||||
var type="?type=verband";
|
||||
url+=type+attributes+"&semesterplan=true";
|
||||
if (url)
|
||||
contentFrame.setAttribute('src', url);
|
||||
}
|
||||
|
||||
|
||||
// LVAs
|
||||
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
|
||||
var attribute='lehrveranstaltung.rdf.php'+type+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit;
|
||||
vboxLehrveranstalungPlanung.setAttribute('datasources',attribute);
|
||||
|
||||
// Studenten
|
||||
var treeStudenten=document.getElementById('treeStudenten');
|
||||
attribute="<?php echo APP_ROOT; ?>rdf/student.rdf.php?"+"stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit;
|
||||
treeStudenten.setAttribute('datasources',attribute);
|
||||
|
||||
// LFVT
|
||||
var req = new phpRequest('lfvt.rdf.php','pam','pam');
|
||||
req.add('stg_kz',stg_kz);
|
||||
req.add('sem',sem);
|
||||
req.add('ver',ver);
|
||||
req.add('grp',grp);
|
||||
req.add('einheit',einheit);
|
||||
|
||||
var response = req.execute();
|
||||
|
||||
// http error handling ist in phpRequest
|
||||
// SQL-Error werden derzeit noch nicht behandelt!
|
||||
//if (response!='ok') alert(response);
|
||||
|
||||
// XML in Datasource parsen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/tempus/lva/liste');
|
||||
|
||||
var treeLFVT=document.getElementById('treeLFVT');
|
||||
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return;
|
||||
}
|
||||
|
||||
// alte datenquellen entfernen
|
||||
var sources=treeLFVT.database.GetDataSources();
|
||||
while (sources.hasMoreElements()){
|
||||
treeLFVT.database.RemoveDataSource(sources.getNext());
|
||||
}
|
||||
|
||||
// neue Datenquelle setzen
|
||||
treeLFVT.database.AddDataSource(dsource);
|
||||
treeLFVT.builder.rebuild();
|
||||
|
||||
//treeLFVT.setAttribute('datasources','lfvt.rdf.php?'+"stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit);
|
||||
//alert('lfvt.rdf.php?'+"stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit);
|
||||
}
|
||||
|
||||
function onOrtSelect()
|
||||
{
|
||||
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
||||
var treeOrt=document.getElementById('tree-ort');
|
||||
var ort=treeOrt.view.getCellText(treeOrt.currentIndex,"ort_kurzbz");
|
||||
var daten=window.TimeTableWeek.document.getElementById('TimeTableWeekData');
|
||||
var datum=parseInt(daten.getAttribute("datum"));
|
||||
|
||||
var attributes="?type=ort&ort="+ort+"&datum="+datum;
|
||||
var url = "<?php echo APP_ROOT; ?>content/timetable-week.xul.php";
|
||||
url+=attributes;
|
||||
if (url)
|
||||
contentFrame.setAttribute('src', url);
|
||||
}
|
||||
|
||||
function onLektorSelect()
|
||||
{
|
||||
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
||||
var treeLektor=document.getElementById('tree-lektor');
|
||||
var uid=treeLektor.view.getCellText(treeLektor.currentIndex,"uid");
|
||||
//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','lehrveranstaltung.rdf.php?'+"type=lektor&lektor="+uid);
|
||||
|
||||
// LFVT
|
||||
var req = new phpRequest('lfvt.rdf.php','pam','pam');
|
||||
req.add('lektor',uid);
|
||||
|
||||
var response = req.execute();
|
||||
|
||||
// http error handling ist in phpRequest
|
||||
// SQL-Error werden derzeit noch nicht behandelt!
|
||||
//if (response!='ok') alert(response);
|
||||
|
||||
// XML in Datasource parsen
|
||||
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/tempus/lva/liste');
|
||||
|
||||
var treeLFVT=document.getElementById('treeLFVT');
|
||||
|
||||
// Trick 17 (sonst gibt's ein Permission denied)
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return;
|
||||
}
|
||||
|
||||
// alte datenquellen entfernen
|
||||
var sources=treeLFVT.database.GetDataSources();
|
||||
while (sources.hasMoreElements()){
|
||||
treeLFVT.database.RemoveDataSource(sources.getNext());
|
||||
}
|
||||
|
||||
// neue Datenquelle setzen
|
||||
treeLFVT.database.AddDataSource(dsource);
|
||||
treeLFVT.builder.rebuild();
|
||||
}
|
||||
|
||||
function loadURL(event)
|
||||
{
|
||||
var contentFrame = document.getElementById('contentFrame');
|
||||
var url = event.target.getAttribute('value');
|
||||
|
||||
if (url) contentFrame.setAttribute('src', url);
|
||||
};
|
||||
|
||||
function parseRDFString(str, url)
|
||||
{
|
||||
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return;
|
||||
}
|
||||
|
||||
var memoryDS = Components.classes["@mozilla.org/rdf/datasource;1?name=in-memory-datasource"].createInstance(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
var ios=Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
|
||||
baseUri=ios.newURI(url,null,null);
|
||||
|
||||
var parser=Components.classes["@mozilla.org/rdf/xml-parser;1"].createInstance(Components.interfaces.nsIRDFXMLParser);
|
||||
parser.parseString(memoryDS,baseUri,str);
|
||||
|
||||
return memoryDS;
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
<?php
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>';
|
||||
|
||||
include('../vilesci/config.inc.php');
|
||||
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/studentenoverlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/lfvtoverlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/stpl-week-overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/stpl-semester-overlay.xul.php"?>';
|
||||
/*echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';*/
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay [
|
||||
<?php require("../locale/tempus.dtd"); ?>
|
||||
]>
|
||||
|
||||
<overlay id="TempusOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/tempusoverlay.js.php" />
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/DragAndDrop.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/dragboard.js"/>
|
||||
|
||||
<tree id="tree-verband" onselect="onVerbandSelect();"
|
||||
seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="student-verbaende.rdf.php" ref="http://www.tempus-student-verbaende.at/alle-verbaende"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="bez" label="Bezeichnung" flex="15" primary="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stg" label="STG" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stg_kz" label="KZ" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="sem" label="Sem" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="ver" label="Ver" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="grp" label="Grp" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="einheit" label="Einheit" flex="1" hidden="true"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.tempus-student-verbaende.at/rdf#name"/>
|
||||
<treecell label="rdf:http://www.tempus-student-verbaende.at/rdf#stg"/>
|
||||
<treecell label="rdf:http://www.tempus-student-verbaende.at/rdf#stg_kz"/>
|
||||
<treecell label="rdf:http://www.tempus-student-verbaende.at/rdf#sem"/>
|
||||
<treecell label="rdf:http://www.tempus-student-verbaende.at/rdf#ver"/>
|
||||
<treecell label="rdf:http://www.tempus-student-verbaende.at/rdf#grp"/>
|
||||
<treecell label="rdf:http://www.tempus-student-verbaende.at/rdf#einheit"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
|
||||
<tree id="tree-ort" onselect="onOrtSelect();"
|
||||
seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="../rdf/ort.rdf.php" ref="http://www.technikum-wien.at/tempus/ort/alle-orte">
|
||||
<treecols>
|
||||
<treecol id="raumtyp" label="Raumtyp" flex="2" primary="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="ort_kurzbz" label="Raum" flex="4" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="hierarchie" label="HI" 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"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/ort/rdf#raumtyp"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/ort/rdf#ort_kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/ort/rdf#hierarchie"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/ort/rdf#ort_bezeichnung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/ort/rdf#max_person"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
|
||||
<tree id="tree-lektor" onselect="onLektorSelect();"
|
||||
seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="mitarbeiter.rdf.php" ref="http://www.technikum-wien.at/tempus/mitarbeiter/alle">
|
||||
<treecols>
|
||||
<treecol id="kurzbz" label="Kuerzel" flex="2" primary="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="nachname" label="Nachname" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="vornamen" label="Vornamen" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="titel" label="Titel" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="uid" label="UID" flex="1" hidden="true"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/mitarbeiter/rdf#kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/mitarbeiter/rdf#nachname"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/mitarbeiter/rdf#vornamen"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/mitarbeiter/rdf#titel"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/tempus/mitarbeiter/rdf#uid"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
|
||||
<vbox id="vbox-main">
|
||||
<tabbox id="tabbox-main" flex="3" orient="vertical">
|
||||
<tabs orient="horizontal">
|
||||
<tab id="tab-week" label="Wochenplan" />
|
||||
<tab id="tab-semester" label="Semesterplan" />
|
||||
<tab id="tab-studenten" label="Studenten" />
|
||||
<tab id="tab-lfvt" label="Lehrveranstaltung" />
|
||||
</tabs>
|
||||
<tabpanels id="tabpanels-main" flex="1">
|
||||
<!-- Wochenplan -->
|
||||
<hbox id="hboxTimeTableWeek" />
|
||||
<!-- Semesterplan -->
|
||||
<vbox id="vboxTimeTableSemester" />
|
||||
<!-- Studenten -->
|
||||
<vbox id="studentenEditor" />
|
||||
<!-- Lehrfachverteilung -->
|
||||
<vbox id="lfvtEditor" />
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
|
||||
</overlay>
|
||||
@@ -0,0 +1,462 @@
|
||||
<?php
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
echo '<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>';
|
||||
include('../vilesci/config.inc.php');
|
||||
include('../include/globals.inc.php');
|
||||
include('../include/functions.inc.php');
|
||||
include('../include/berechtigung.class.php');
|
||||
include('../include/lehrveranstaltung.class.php');
|
||||
include('../include/zeitwunsch.class.php');
|
||||
include('../include/stundenplan.class.php');
|
||||
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
|
||||
//echo $_SERVER[REQUEST_URI];
|
||||
|
||||
if (!isset($REMOTE_USER))
|
||||
$REMOTE_USER='pam';
|
||||
$uid=$REMOTE_USER;
|
||||
|
||||
$error_msg='';
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg.='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
// Benutzerdefinierte Variablen laden
|
||||
$error_msg.=loadVariables($conn,$uid);
|
||||
if (!isset($ignore_kollision))
|
||||
$ignore_kollision=(boolean)false;
|
||||
elseif ($ignore_kollision=='false')
|
||||
$ignore_kollision=(boolean)false;
|
||||
else
|
||||
$ignore_kollision=(boolean)true;
|
||||
//var_dump($ignore_kollision);
|
||||
|
||||
// Bezeichnungen fuer Tabellen und Views
|
||||
$lva_stpl_view=VIEW_BEGIN.'lva_'.$db_stpl_table;
|
||||
|
||||
|
||||
// Variablen uebernehmen
|
||||
if (isset($_GET[aktion]))
|
||||
$aktion=$_GET[aktion];
|
||||
if (isset($_GET[semesterplan]))
|
||||
$semesterplan=$_GET[semesterplan];
|
||||
else
|
||||
$semesterplan=false;
|
||||
if (isset($_GET[new_stunde]))
|
||||
$new_stunde=$_GET[new_stunde];
|
||||
if (isset($_GET[new_datum]))
|
||||
$new_datum=$_GET[new_datum];
|
||||
if (isset($_GET[old_ort]))
|
||||
$old_ort=$_GET[old_ort];
|
||||
if (isset($_GET[new_ort]))
|
||||
$new_ort=$_GET[new_ort];
|
||||
if (isset($_GET[ort]))
|
||||
$ort=$_GET[ort];
|
||||
if (isset($_GET[datum]))
|
||||
$datum=$_GET[datum];
|
||||
if (isset($_GET[type]))
|
||||
$type=$_GET[type];
|
||||
if (isset($_GET[stg_kz]))
|
||||
$stg_kz=$_GET[stg_kz];
|
||||
if (isset($_GET[sem]))
|
||||
$sem=$_GET[sem];
|
||||
if (isset($_GET[ver]))
|
||||
$ver=$_GET[ver];
|
||||
if (isset($_GET[grp]))
|
||||
$grp=$_GET[grp];
|
||||
if (isset($_GET[pers_uid]))
|
||||
$pers_uid=$_GET[pers_uid];
|
||||
if (isset($_GET[einheit]))
|
||||
$einheit_kurzbz=$_GET[einheit];
|
||||
if (isset($_GET[semester_aktuell]))
|
||||
$semester_aktuell=$_GET[semester_aktuell];
|
||||
|
||||
if (!isset($semester_aktuell) && $semesterplan)
|
||||
$error_msg.='Studien-Semester ist nicht gesetzt!';
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE page SYSTEM "chrome://tempus/locale/tempus.dtd">
|
||||
<window id="windowTimeTableWeek"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/DragAndDrop.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/dragboard.js.php"/>
|
||||
<?php
|
||||
if (isset($semesterplan) && $semesterplan)
|
||||
echo '<script type="application/x-javascript" src="'.APP_ROOT.'content/stpl-semester-overlay.js.php"/>';
|
||||
else
|
||||
echo '<script type="application/x-javascript" src="'.APP_ROOT.'content/stpl-week-overlay.js.php"/>';
|
||||
?>
|
||||
<vbox id="boxTimeTableWeek" flex="5" style="overflow:auto;">
|
||||
<?php
|
||||
// Authentifizierung
|
||||
/*if ($uid=check_student($REMOTE_USER, $conn))
|
||||
$user='student';
|
||||
elseif ($uid=check_lektor($REMOTE_USER, $conn))
|
||||
$user='lektor';
|
||||
else
|
||||
die("Cannot set usertype!");*/
|
||||
|
||||
// User bestimmen
|
||||
if (!isset($type))
|
||||
$type='lektor';
|
||||
if (!isset($pers_uid))
|
||||
$pers_uid=$uid;
|
||||
|
||||
// Datums Format
|
||||
if(!$result=pg_query($conn, "SET datestyle TO ISO;"))
|
||||
$error_msg=pg_last_error($conn);
|
||||
|
||||
// ****************************************************************************
|
||||
// Variablen fuer Aktionen setzen
|
||||
if ($aktion=='lva_single_search' || $aktion=='lva_single_set'
|
||||
|| $aktion=='lva_multi_search' || $aktion=='lva_multi_set'
|
||||
|| $aktion=='lva_stpl_del_multi' || $aktion=='lva_stpl_del_single')
|
||||
{
|
||||
$i=0;
|
||||
$name_lva_id='lva_id'.$i;
|
||||
while ($i<100 && isset($_GET[$name_lva_id]))
|
||||
{
|
||||
$lva_id[$i]=$_GET[$name_lva_id];
|
||||
//$error_msg.=$lva_id[$i];
|
||||
$name_lva_id='lva_id'.++$i;
|
||||
}
|
||||
}
|
||||
if ($aktion=='stpl_move' || $aktion=='stpl_single_search' || $aktion=='stpl_set' || $aktion=='stpl_delete_single')
|
||||
{
|
||||
$i=0;
|
||||
$name_stpl_id='stundenplan_id'.$i;
|
||||
while ($i<100 && isset($_GET[$name_stpl_id]))
|
||||
{
|
||||
$stpl_id[]=$_GET[$name_stpl_id];
|
||||
//echo $stpl_id[$i];
|
||||
$name_stpl_id='stundenplan_id'.++$i;
|
||||
}
|
||||
// Mehrfachauswahl uebernehmen
|
||||
$j=0;
|
||||
$name_stpl_idx='x'.$j.'stundenplan_id0';
|
||||
while ($j<100 && isset($_GET[$name_stpl_idx]))
|
||||
{
|
||||
$i=0;
|
||||
$name_stpl_id='x'.$j.'stundenplan_id'.$i;
|
||||
while ($i<100 && isset($_GET[$name_stpl_id]))
|
||||
{
|
||||
$stpl_idx[]=$_GET[$name_stpl_id];
|
||||
$name_stpl_id='x'.$j.'stundenplan_id'.++$i;
|
||||
}
|
||||
$name_stpl_idx='x'.++$j.'stundenplan_id0';
|
||||
}
|
||||
}
|
||||
|
||||
// ****************************************************************************
|
||||
// Aktionen durchfuehren
|
||||
$error_msg.=db_query($conn,'BEGIN;');
|
||||
// *************** Stunden verschieben ****************************************
|
||||
if ($aktion=='stpl_move' || $aktion=='stpl_set')
|
||||
{
|
||||
foreach ($stpl_id as $stundenplan_id)
|
||||
{
|
||||
$lehrstunde=new lehrstunde($conn);
|
||||
$lehrstunde->load($stundenplan_id,$db_stpl_table);
|
||||
$diffStunde=$new_stunde-$lehrstunde->stunde;
|
||||
$lehrstunde->datum=$new_datum;
|
||||
$lehrstunde->stunde=$new_stunde;
|
||||
if ($ort!=$old_ort)
|
||||
$lehrstunde->ort_kurzbz=$ort;
|
||||
if ($aktion=='stpl_set')
|
||||
$lehrstunde->ort_kurzbz=$new_ort;
|
||||
$kollision=$lehrstunde->kollision($db_stpl_table);
|
||||
if ($kollision)
|
||||
$error_msg.=$lehrstunde->errormsg;
|
||||
if (!$kollision || $ignore_kollision)
|
||||
{
|
||||
$lehrstunde->save($uid,$db_stpl_table);
|
||||
$error_msg.=$lehrstunde->errormsg;
|
||||
}
|
||||
}
|
||||
// Mehrfachauswahl
|
||||
if (isset($stpl_idx))
|
||||
foreach ($stpl_idx as $stundenplan_id)
|
||||
{
|
||||
$lehrstunde=new lehrstunde($conn);
|
||||
$lehrstunde->load($stundenplan_id,$db_stpl_table);
|
||||
$lehrstunde->datum=$new_datum;
|
||||
$lehrstunde->stunde+=$diffStunde;
|
||||
if ($ort!=$old_ort)
|
||||
$lehrstunde->ort_kurzbz=$ort;
|
||||
if ($aktion=='stpl_set')
|
||||
$lehrstunde->ort_kurzbz=$new_ort;
|
||||
$kollision=$lehrstunde->kollision($db_stpl_table);
|
||||
if ($kollision)
|
||||
$error_msg.=$lehrstunde->errormsg;
|
||||
if (!$kollision || $ignore_kollision)
|
||||
{
|
||||
$lehrstunde->save($uid,$db_stpl_table);
|
||||
$error_msg.=$lehrstunde->errormsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
// ****************** STPL Delete *******************************
|
||||
elseif ($aktion=='stpl_delete_single' || $aktion=='stpl_delete_block')
|
||||
{
|
||||
$lehrstunde=new lehrstunde($conn);
|
||||
foreach ($stpl_id as $stundenplan_id)
|
||||
{
|
||||
$lehrstunde->delete($stundenplan_id,$db_stpl_table);
|
||||
$error_msg.=$lehrstunde->errormsg;
|
||||
}
|
||||
}
|
||||
// ******************** Lehrveranstaltung setzen ******************************
|
||||
elseif ($aktion=='lva_single_set')
|
||||
{
|
||||
$anz_lvas=count($lva_id);
|
||||
for ($i=0;$i<$anz_lvas;$i++)
|
||||
{
|
||||
$lva[$i]=new lehrveranstaltung($conn,$lva_id[$i]);
|
||||
//$error_msg.='test'.$lva_id[$i].($lva[$i]->errormsg).($lva[$i]->stundenblockung);
|
||||
for ($j=0;$j<$lva[$i]->stundenblockung && $error_msg=='';$j++)
|
||||
if (!$lva[$i]->check_lva($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table) && !$ignore_kollision)
|
||||
$error_msg.=$lva[$i]->errormsg;
|
||||
}
|
||||
for ($i=0;$i<$anz_lvas && $error_msg=='';$i++)
|
||||
{
|
||||
//$lva[$i]=new lehrveranstaltung($lva_id[$i]);
|
||||
//$error_msg.='Blockung'.$lva[$i]->stundenblockung.var_dump($lva);
|
||||
//$error_msg.='Datum:'.$new_datum.' Std:'.($new_stunde+$j).$new_ort.$db_stpl_table.$uid;
|
||||
for ($j=0;$j<$lva[$i]->stundenblockung;$j++)
|
||||
if (!$lva[$i]->save_stpl($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table,$uid))
|
||||
$error_msg.='fehler'.$lva[$i]->errormsg;
|
||||
//else
|
||||
// $error_msg.='test'.$anz_lvas;
|
||||
}
|
||||
//$error_msg.='test';
|
||||
}
|
||||
//******************* Multi Verplanung ***************
|
||||
elseif ($aktion=='lva_multi_set')
|
||||
{
|
||||
// Ferien holen
|
||||
$ferien=new ferien($conn);
|
||||
if ($type=='verband')
|
||||
$ferien->getAll($stg_kz);
|
||||
else
|
||||
$ferien->getAll(0);
|
||||
|
||||
// Ende holen
|
||||
$result_semester=@pg_query($conn,"SELECT start,ende FROM tbl_studiensemester WHERE studiensemester_kurzbz='$semester_aktuell';");
|
||||
if (pg_numrows($result_semester)>0)
|
||||
$ende=pg_result($result_semester,0,'ende');
|
||||
else
|
||||
$error_msg.='Fatal Error: Ende Datum ist nicht gesetzt!';
|
||||
//echo '<label>'.$ende.'</label>';
|
||||
$ende=mktime(0,0,1,substr($ende,5,2),substr($ende,8,2),substr($ende,0,4));
|
||||
$anz_lvas=count($lva_id);
|
||||
// Arrays intitialisieren
|
||||
$wochenrythmus=array();
|
||||
$verplant=array();
|
||||
$block=array();
|
||||
$wochenrythmus=array();
|
||||
$semesterstunden=array();
|
||||
$offenestunden=array();
|
||||
// LVAs holen
|
||||
$sql_query='SELECT * FROM '.$lva_stpl_view.' WHERE';
|
||||
$lvas='';
|
||||
foreach ($lva_id as $id)
|
||||
$lvas.=' OR lehrveranstaltung_id='.$id;
|
||||
$lvas=substr($lvas,3);
|
||||
$sql_query.=$lvas;
|
||||
if(!$result_lva=pg_exec($conn, $sql_query))
|
||||
$error_msg.=pg_last_error($conn);
|
||||
$num_rows_lva=pg_numrows($result_lva);
|
||||
// Daten aufbereiten
|
||||
for ($i=0;$i<$num_rows_lva;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($result_lva,$i);
|
||||
$verplant[]=$row->verplant;
|
||||
$block[]=$row->stundenblockung;
|
||||
$wochenrythmus[]=$row->wochenrythmus;
|
||||
$semesterstunden[]=$row->semesterstunden;
|
||||
$offenestunden[]=$row->semesterstunden-$row->verplant;
|
||||
}
|
||||
// Variablen eindeutig?
|
||||
// Offene Stunden
|
||||
$os=$offenestunden[0];
|
||||
$offenestunden=array_unique($offenestunden);
|
||||
if (count($offenestunden)==1)
|
||||
$offenestunden=$os;
|
||||
else
|
||||
$error_msg.='Offene Stunden sind nicht eindeutig!';
|
||||
//$error_msg.='Offene Stunden='.$offenestunden;
|
||||
/*// Verplante Stunden
|
||||
$verplant=array_unique($verplant);
|
||||
if (count($verplant)==1)
|
||||
$verplant=$verplant[0];
|
||||
else
|
||||
$error_msg.='Verplante Stunden sind nicht eindeutig!';
|
||||
//Semesterstunden
|
||||
$semesterstunden=array_unique($semesterstunden);
|
||||
if (count($semesterstunden)==1)
|
||||
$semesterstunden=$semesterstunden[0];
|
||||
else
|
||||
$error_msg.='Semesterstunden sind nicht eindeutig!';*/
|
||||
//Blockung
|
||||
$blk=$block[0];
|
||||
$block=array_unique($block);
|
||||
if (count($block)==1)
|
||||
$block=$blk;
|
||||
else
|
||||
$error_msg.='Blockung ist nicht eindeutig!';
|
||||
//Wochenrythmus
|
||||
$wr=$wochenrythmus[0];
|
||||
$wochenrythmus=array_unique($wochenrythmus);
|
||||
if (count($wochenrythmus)==1)
|
||||
$wochenrythmus=$wr;
|
||||
else
|
||||
$error_msg.='Wochenrythmus ist nicht eindeutig!';
|
||||
$count=0;
|
||||
$rest=$offenestunden;
|
||||
if ($rest<=0)
|
||||
$error_msg.='Es sind bereits alle Stunden verplant!'.$rest;
|
||||
if ($error_msg=='')
|
||||
{
|
||||
$d=mktime(0,0,1,substr($new_datum,5,2),substr($new_datum,8),substr($new_datum,0,4));
|
||||
while ($rest>0 && $d<$ende)
|
||||
{
|
||||
if ($rest<$block && $rest>0)
|
||||
$block=$rest;
|
||||
//LVAs holen und pruefen ob moeglich
|
||||
for ($i=0;$i<$anz_lvas;$i++)
|
||||
{
|
||||
$lva[$i]=new lehrveranstaltung($conn,$lva_id[$i]);
|
||||
for ($j=0;$j<$block;$j++)
|
||||
if (!$lva[$i]->check_lva($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table) && !$ignore_kollision)
|
||||
$error_msg.=$lva[$i]->errormsg;
|
||||
}
|
||||
// LVAs setzen
|
||||
for ($i=0;$i<$anz_lvas && $error_msg=='';$i++)
|
||||
for ($j=0;$j<$block;$j++)
|
||||
if (!$lva[$i]->save_stpl($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table,$uid))
|
||||
$error_msg.=$lva[$i]->errormsg;
|
||||
$d=jump_week($d,$wochenrythmus);
|
||||
while ($ferien->isferien($d))
|
||||
$d=jump_week($d,$wochenrythmus);
|
||||
// Es kann sein, dass die Zeitumstellung (1 Stunde) Probleme macht
|
||||
// Falls 23 Uhr eine Stunde nach vor
|
||||
$new_datum=date('Y-m-d',$d);
|
||||
$rest-=$block;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Lehrveranstaltungen aus dem Stundenplan loeschen
|
||||
elseif ($aktion=='lva_stpl_del_multi' || $aktion=='lva_stpl_del_single')
|
||||
{
|
||||
$result_semester=@pg_query($conn,"SELECT start,ende FROM tbl_studiensemester WHERE studiensemester_kurzbz='$semester_aktuell';");
|
||||
if (pg_numrows($result_semester)>0)
|
||||
{
|
||||
$start=date('Y-m-d',$datum);
|
||||
if ($aktion=='lva_stpl_del_multi')
|
||||
$ende=pg_result($result_semester,0,'ende');
|
||||
else
|
||||
$ende=date('Y-m-d',jump_week($datum,1));
|
||||
$anz_lvas=count($lva_id);
|
||||
$sql_query_lvaid='';
|
||||
$sql_query='DELETE FROM '.TABLE_BEGIN.$db_stpl_table.' WHERE (';
|
||||
for ($i=0;$i<$anz_lvas;$i++)
|
||||
$sql_query_lvaid.=' OR lehrveranstaltung_id='.$lva_id[$i];
|
||||
$sql_query_lvaid=substr($sql_query_lvaid,3);
|
||||
$sql_query.=$sql_query_lvaid;
|
||||
$sql_query.=") AND datum>='$start' AND datum<'$ende'";
|
||||
if(!$result_lva_del=pg_query($conn, $sql_query))
|
||||
$error_msg.=pg_last_error($conn);
|
||||
}
|
||||
else
|
||||
$error_msg.='Studiensemester '.$semester_aktuell.' konnte nicht gefunden werden!';
|
||||
}
|
||||
|
||||
if ($error_msg=='')
|
||||
$error_msg.=@db_query($conn,'COMMIT;');
|
||||
else
|
||||
$error_msg.=@db_query($conn,'ROLLBACK;');
|
||||
|
||||
// Stundenplan erstellen
|
||||
$stdplan=new stundenplan($type,$conn);
|
||||
if (!isset($datum))
|
||||
$datum=mktime();
|
||||
if (!isset($semesterplan) || !$semesterplan)
|
||||
$begin=$ende=$datum;
|
||||
else
|
||||
{
|
||||
$result_semester=@pg_query($conn,"SELECT start,ende FROM tbl_studiensemester WHERE studiensemester_kurzbz='$semester_aktuell';");
|
||||
if (pg_numrows($result_semester)>0)
|
||||
{
|
||||
$begin=strtotime(pg_result($result_semester,0,'start'));
|
||||
$ende=strtotime(pg_result($result_semester,0,'ende'));
|
||||
}
|
||||
else
|
||||
$error_msg.='Studiensemester '.$semester_aktuell.' konnte nicht gefunden werden!';
|
||||
}
|
||||
// Benutzergruppe
|
||||
$stdplan->user=$user;
|
||||
// aktueller Benutzer
|
||||
$stdplan->user_uid=$uid;
|
||||
|
||||
// Zeitwuensche laden falls benoetigt
|
||||
$zeitwunsch=null;
|
||||
if ($type=='lektor' || $aktion=='lva_single_search' || $aktion=='lva_multi_search')
|
||||
{
|
||||
$wunsch=new zeitwunsch($conn);
|
||||
if ($type=='lektor')
|
||||
if ($wunsch->loadPerson($pers_uid))
|
||||
$zeitwunsch=$wunsch->zeitwunsch;
|
||||
if ($aktion=='lva_single_search' || $aktion=='lva_multi_search')
|
||||
if ($wunsch->loadLVA($lva_id))
|
||||
$zeitwunsch=$wunsch->zeitwunsch;
|
||||
}
|
||||
|
||||
// Zusaetzliche Daten laden
|
||||
if (! $stdplan->load_data($type,$pers_uid,$ort,$stg_kz,$sem,$ver,$grp,$einheit_kurzbz) && $error_msg!='')
|
||||
$error_msg.=$stdplan->errormsg;
|
||||
//echo 'load_data'.$error_msg;
|
||||
// Stundenplan einer Woche laden
|
||||
if (! $stdplan->load_week($datum,$db_stpl_table))
|
||||
$error_msg.=$stdplan->errormsg;
|
||||
while ($begin<=$ende)
|
||||
{
|
||||
$stdplan->init_stdplan();
|
||||
$datum=$begin;
|
||||
$begin+=604800; // eine Woche
|
||||
//echo '<label>'.date("Y-m-d - D",$datum).$datum.'</label>';
|
||||
// Stundenplan einer Woche laden
|
||||
if (! $stdplan->load_week($datum,$db_stpl_table))
|
||||
$error_msg.=$stdplan->errormsg;
|
||||
//echo 'load_week'.$error_msg;
|
||||
if ($aktion=='lva_single_search' || $aktion=='lva_multi_search')
|
||||
if (! $stdplan->load_lva_search($datum,$lva_id,$db_stpl_table, $aktion))
|
||||
$error_msg.=$stdplan->errormsg;
|
||||
else
|
||||
$error_msg.=$stdplan->errormsg;
|
||||
//echo 'load_lva_search'.$error_msg;
|
||||
if ($aktion=='stpl_single_search')
|
||||
if (! $stdplan->load_stpl_search($datum,$stpl_id,$db_stpl_table))
|
||||
$error_msg.=$stdplan->errormsg;
|
||||
//echo 'load_stpl_search'.$error_msg;
|
||||
|
||||
// Stundenplan der Woche drucken
|
||||
$stdplan->draw_week_xul($semesterplan,$uid,$zeitwunsch);
|
||||
}
|
||||
//echo $error_msg;.$_SERVER["REQUEST_URI"]
|
||||
?>
|
||||
|
||||
</vbox>
|
||||
<label id="TimeTableWeekErrors"><?php echo htmlspecialchars($error_msg); ?></label>
|
||||
|
||||
<script type="application/x-javascript">
|
||||
<?php
|
||||
if ($error_msg!='')
|
||||
echo "alert('$error_msg');";
|
||||
?>
|
||||
top.document.getElementById("statusbarpanel-text").setAttribute("label","<?php echo htmlspecialchars($PHP_SELF.$error_msg); ?>");
|
||||
</script>
|
||||
</window>
|
||||
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
// header f?r 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");
|
||||
header("Pragma: no-cache");
|
||||
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>';
|
||||
//echo '<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>';
|
||||
include('../vilesci/config.inc.php');
|
||||
include('../include/functions.inc.php');
|
||||
include('../include/lehrstunde.class.php');
|
||||
include('../include/stundenplan.class.php');
|
||||
|
||||
// Testumgebung
|
||||
if (!isset($REMOTE_USER))
|
||||
$REMOTE_USER='pam';
|
||||
|
||||
$uid=$REMOTE_USER;
|
||||
|
||||
// Variablen uebernehmen
|
||||
if (isset($_GET[aktion]))
|
||||
$aktion=$_GET[aktion];
|
||||
if (isset($_GET[new_stunde]))
|
||||
$new_stunde=$_GET[new_stunde];
|
||||
if (isset($_GET[new_datum]))
|
||||
$new_datum=$_GET[new_datum];
|
||||
if (isset($_GET[type]))
|
||||
$type=$_GET[type];
|
||||
if (isset($_GET[ort_kurzbz]))
|
||||
$ort_kurzbz=$_GET[ort_kurzbz];
|
||||
else
|
||||
$ort_kurzbz='EDV6.08';
|
||||
$i=0;
|
||||
$name_stpl_id='stundenplan_id'.$i;
|
||||
while ($i<100 && isset($_GET[$name_stpl_id]))
|
||||
{
|
||||
$stpl_id[]=$_GET[$name_stpl_id];
|
||||
//echo $stpl_id[$i];
|
||||
$name_stpl_id='stundenplan_id'.++$i;
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
|
||||
$error_msg.=loadVariables($conn,$REMOTE_USER);
|
||||
|
||||
// Authentifizierung
|
||||
if ($uid=check_student($REMOTE_USER, $conn))
|
||||
$user='student';
|
||||
elseif ($uid=check_lektor($REMOTE_USER, $conn))
|
||||
$user='lektor';
|
||||
else
|
||||
die("Cannot set usertype!");
|
||||
|
||||
// User bestimmen
|
||||
if (!isset($type))
|
||||
$type=$user;
|
||||
if (!isset($pers_uid))
|
||||
$pers_uid=$uid;
|
||||
|
||||
// Datums Format
|
||||
$erg_std=pg_query($conn, "SET datestyle TO ISO;")
|
||||
or die(pg_last_error($conn));
|
||||
|
||||
|
||||
// Aktionen durchfuehren
|
||||
if ($aktion=='stplverschieben')
|
||||
{
|
||||
foreach ($stpl_id as $stundenplan_id)
|
||||
{
|
||||
$lehrstunde=new lehrstunde($conn);
|
||||
$lehrstunde->load($stundenplan_id,$db_stpl_table);
|
||||
$lehrstunde->datum=$new_datum;
|
||||
$lehrstunde->stunde=$new_stunde;
|
||||
$lehrstunde->save($db_stpl_table);
|
||||
}
|
||||
}
|
||||
// Stundenplan abfragen
|
||||
$stdplan=new stundenplan($type,$conn);
|
||||
if (!isset($datum))
|
||||
$datum=mktime();
|
||||
|
||||
// Benutzergruppe
|
||||
$stdplan->user=$user;
|
||||
// aktueller Benutzer
|
||||
$stdplan->user_uid=$uid;
|
||||
|
||||
// Zusaetzliche Daten laden
|
||||
if (! $stdplan->load_data($type,$pers_uid,$ort_kurzbz,$stg_kz,$sem,$ver,$grp,$einheit_kurzbz,$db_table) )
|
||||
die($stdplan->errormsg);
|
||||
// Stundenplan einer Woche laden
|
||||
if (! $stdplan->load_week($datum,$db_stpl_table))
|
||||
die($stdplan->errormsg);
|
||||
// Kopfbereich drucken
|
||||
|
||||
// Stundenplan der Woche in RDF drucken
|
||||
$stdplan->draw_week_rdf();
|
||||
?>
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
/**
|
||||
* author: maximilian schremser <max@technikum-wien.at>
|
||||
* date:
|
||||
* title: Authorization.class.php
|
||||
* manual: $auth = new Authorization($uid, $course_id, $semester, $lesson);
|
||||
*
|
||||
* Tries to login a user as a student, if fails, it tries
|
||||
* to login as a teacher.
|
||||
* returns 0 for student
|
||||
* 1 for teacher
|
||||
* -1 on error
|
||||
* holt den firstname, lastname, uid und id des Benutzers
|
||||
*/
|
||||
class Authorization
|
||||
{
|
||||
var $firstname;
|
||||
var $lastname;
|
||||
var $id;
|
||||
var $uid;
|
||||
var $stg_id;
|
||||
var $semester;
|
||||
var $verband;
|
||||
var $gruppe;
|
||||
var $isLector;
|
||||
var $module;
|
||||
var $lehrfach;
|
||||
var $date;
|
||||
var $session;
|
||||
var $birthday;
|
||||
|
||||
function Authorization($uid ="", $course_id = 0, $semester = 0, $lesson = "",$conn="")
|
||||
{
|
||||
$this->isLector = -1;
|
||||
$this->module = 0;
|
||||
|
||||
if ($uid == "oesi" || $uid == "kates")
|
||||
{
|
||||
$this->uid = $uid;
|
||||
$this->stg_id = $course_id;
|
||||
$this->lehrfach = $lesson;
|
||||
$this->semester = $semester;
|
||||
$this->isLector = 1;
|
||||
return $this->isLector;
|
||||
}
|
||||
|
||||
// try to looon as a student
|
||||
$sql = "SELECT * ".
|
||||
"FROM tbl_student JOIN tbl_person USING (uid) WHERE
|
||||
uid = '$uid' AND studiengang_kz = $course_id
|
||||
AND semester >= $semester";
|
||||
|
||||
$rs = new pgRS($conn,$sql);
|
||||
|
||||
if ($rs->num > 0)
|
||||
{
|
||||
$this->firstname = $rs->arr[0]["vornamen"];
|
||||
$this->lastname = $rs->arr[0]["nachname"];
|
||||
//$this->id = $rs->arr[0]["id"];
|
||||
$this->uid = $uid;
|
||||
$this->stg_id = $rs->arr[0]["studiengang_kz"];
|
||||
$this->semester = $rs->arr[0]["semester"];
|
||||
$this->verband = $rs->arr[0]["verband"];
|
||||
$this->gruppe = $rs->arr[0]["gruppe"];
|
||||
$this->birthday = $rs->arr[0]["gebdatum"];
|
||||
$this->isLector = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* oesi 17-01-2005
|
||||
$sql = "SELECT * FROM lehre.tbl_lehrfachzuteilung JOIN tbl_person ON
|
||||
(lektor_uid = uid) WHERE lektor_uid = '$uid' AND
|
||||
lehrfachzuteilung_kurzbz = '$lesson' AND
|
||||
semester = $semester AND studiengang_kz = $course_id LIMIT 1";
|
||||
*/
|
||||
$sql = "SELECT * FROM tbl_lehrveranstaltung, tbl_lehrfach, tbl_person WHERE
|
||||
tbl_lehrveranstaltung.lehrfach_nr=tbl_lehrfach.lehrfach_nr AND
|
||||
tbl_person.uid=lektor AND lektor='$uid' AND
|
||||
tbl_lehrfach.studiengang_kz=$course_id AND
|
||||
tbl_lehrfach.semester=$semester AND lehrevz='$lesson' LIMIT 1";
|
||||
|
||||
$rs = new pgRS($conn,$sql);
|
||||
if ($rs->num > 0)
|
||||
{
|
||||
$this->firstname = $rs->arr[0]["vornamen"];
|
||||
$this->lastname = $rs->arr[0]["nachname"];
|
||||
$this->birthday = $rs->arr[0]["gebdatum"];
|
||||
$this->uid = $uid;
|
||||
$this->stg_id = $course_id;
|
||||
$this->lehrfach = $lesson;
|
||||
$this->semester = $semester;
|
||||
$this->isLector = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
//$sql = "SELECT DISTINCT tbl_person.uid FROM public.tbl_person, lehre.tbl_lehrfachzuteilung WHERE tbl_person.uid='$uid' AND tbl_lehrfachzuteilung.lektor_uid=tbl_person.uid AND studiengang_kz='$course_id' UNION SELECT DISTINCT tbl_person.uid FROM public.tbl_person, public.tbl_personfunktion WHERE tbl_person.uid='$uid' AND tbl_personfunktion.uid=tbl_person.uid AND studiengang_kz='$course_id' LIMIT 1";
|
||||
$sql = "SELECT vornamen, nachname, gebdatum FROM public.tbl_person, tbl_lehrveranstaltung
|
||||
WHERE tbl_person.uid='$uid' AND tbl_lehrveranstaltung.lektor=tbl_person.uid AND
|
||||
studiengang_kz='$course_id'
|
||||
UNION
|
||||
SELECT vornamen, nachname, gebdatum FROM public.tbl_person, public.tbl_personfunktion
|
||||
WHERE tbl_person.uid='$uid' AND tbl_personfunktion.uid=tbl_person.uid AND
|
||||
studiengang_kz='$course_id' LIMIT 1";
|
||||
|
||||
$rs = new pgRS($conn,$sql);
|
||||
|
||||
if ($rs->num > 0)
|
||||
{
|
||||
$this->firstname = $rs->arr[0]["vornamen"];
|
||||
$this->lastname = $rs->arr[0]["nachname"];
|
||||
$this->birthday = $rs->arr[0]["gebdatum"];
|
||||
$this->uid = $uid;
|
||||
$this->stg_id = $course_id;
|
||||
$this->lehrfach = $lesson;
|
||||
$this->semester = $semester;
|
||||
$this->isLector = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $this->isLector;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,237 @@
|
||||
<?php
|
||||
/*
|
||||
* Module written/ported by Xavier Noguer <xnoguer@php.net>
|
||||
*
|
||||
* The majority of this is _NOT_ my code. I simply ported it from the
|
||||
* PERL Spreadsheet::WriteExcel module.
|
||||
*
|
||||
* The author of the Spreadsheet::WriteExcel module is John McNamara
|
||||
* <jmcnamara@cpan.org>
|
||||
*
|
||||
* I _DO_ maintain this code, and John McNamara has nothing to do with the
|
||||
* porting of this code to PHP. Any questions directly related to this
|
||||
* class library should be directed to me.
|
||||
*
|
||||
* License Information:
|
||||
*
|
||||
* Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets
|
||||
* Copyright (c) 2002-2003 Xavier Noguer xnoguer@php.net
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Class for writing Excel BIFF records.
|
||||
*
|
||||
* From "MICROSOFT EXCEL BINARY FILE FORMAT" by Mark O'Brien (Microsoft Corporation):
|
||||
*
|
||||
* BIFF (BInary File Format) is the file format in which Excel documents are
|
||||
* saved on disk. A BIFF file is a complete description of an Excel document.
|
||||
* BIFF files consist of sequences of variable-length records. There are many
|
||||
* different types of BIFF records. For example, one record type describes a
|
||||
* formula entered into a cell; one describes the size and location of a
|
||||
* window into a document; another describes a picture format.
|
||||
*
|
||||
* @author Xavier Noguer <xnoguer@php.net>
|
||||
* @category FileFormats
|
||||
* @package Spreadsheet_Excel_Writer
|
||||
*/
|
||||
|
||||
class Spreadsheet_Excel_Writer_BIFFwriter extends PEAR
|
||||
{
|
||||
/**
|
||||
* The BIFF/Excel version (5).
|
||||
* @var integer
|
||||
*/
|
||||
var $_BIFF_version = 0x0500;
|
||||
|
||||
/**
|
||||
* The byte order of this architecture. 0 => little endian, 1 => big endian
|
||||
* @var integer
|
||||
*/
|
||||
var $_byte_order;
|
||||
|
||||
/**
|
||||
* The string containing the data of the BIFF stream
|
||||
* @var string
|
||||
*/
|
||||
var $_data;
|
||||
|
||||
/**
|
||||
* The size of the data in bytes. Should be the same as strlen($this->_data)
|
||||
* @var integer
|
||||
*/
|
||||
var $_datasize;
|
||||
|
||||
/**
|
||||
* The maximun length for a BIFF record. See _addContinue()
|
||||
* @var integer
|
||||
* @see _addContinue()
|
||||
*/
|
||||
var $_limit;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
function Spreadsheet_Excel_Writer_BIFFwriter()
|
||||
{
|
||||
$this->_byte_order = '';
|
||||
$this->_data = '';
|
||||
$this->_datasize = 0;
|
||||
$this->_limit = 2080;
|
||||
// Set the byte order
|
||||
$this->_setByteOrder();
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine the byte order and store it as class data to avoid
|
||||
* recalculating it for each call to new().
|
||||
*
|
||||
* @access private
|
||||
*/
|
||||
function _setByteOrder()
|
||||
{
|
||||
// Check if "pack" gives the required IEEE 64bit float
|
||||
$teststr = pack("d", 1.2345);
|
||||
$number = pack("C8", 0x8D, 0x97, 0x6E, 0x12, 0x83, 0xC0, 0xF3, 0x3F);
|
||||
if ($number == $teststr) {
|
||||
$byte_order = 0; // Little Endian
|
||||
} elseif ($number == strrev($teststr)){
|
||||
$byte_order = 1; // Big Endian
|
||||
} else {
|
||||
// Give up. I'll fix this in a later version.
|
||||
return $this->raiseError("Required floating point format ".
|
||||
"not supported on this platform.");
|
||||
}
|
||||
$this->_byte_order = $byte_order;
|
||||
}
|
||||
|
||||
/**
|
||||
* General storage function
|
||||
*
|
||||
* @param string $data binary data to prepend
|
||||
* @access private
|
||||
*/
|
||||
function _prepend($data)
|
||||
{
|
||||
if (strlen($data) > $this->_limit) {
|
||||
$data = $this->_addContinue($data);
|
||||
}
|
||||
$this->_data = $data.$this->_data;
|
||||
$this->_datasize += strlen($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* General storage function
|
||||
*
|
||||
* @param string $data binary data to append
|
||||
* @access private
|
||||
*/
|
||||
function _append($data)
|
||||
{
|
||||
if (strlen($data) > $this->_limit) {
|
||||
$data = $this->_addContinue($data);
|
||||
}
|
||||
$this->_data = $this->_data.$data;
|
||||
$this->_datasize += strlen($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes Excel BOF record to indicate the beginning of a stream or
|
||||
* sub-stream in the BIFF file.
|
||||
*
|
||||
* @param integer $type Type of BIFF file to write: 0x0005 Workbook,
|
||||
* 0x0010 Worksheet.
|
||||
* @access private
|
||||
*/
|
||||
function _storeBof($type)
|
||||
{
|
||||
$record = 0x0809; // Record identifier
|
||||
|
||||
// According to the SDK $build and $year should be set to zero.
|
||||
// However, this throws a warning in Excel 5. So, use magic numbers.
|
||||
if ($this->_BIFF_version == 0x0500) {
|
||||
$length = 0x0008;
|
||||
$unknown = '';
|
||||
$build = 0x096C;
|
||||
$year = 0x07C9;
|
||||
} elseif ($this->_BIFF_version == 0x0600) {
|
||||
$length = 0x0010;
|
||||
$unknown = pack("VV", 0x00000041, 0x00000006); //unknown last 8 bytes for BIFF8
|
||||
$build = 0x0DBB;
|
||||
$year = 0x07CC;
|
||||
}
|
||||
$version = $this->_BIFF_version;
|
||||
|
||||
$header = pack("vv", $record, $length);
|
||||
$data = pack("vvvv", $version, $type, $build, $year);
|
||||
$this->_prepend($header . $data . $unknown);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes Excel EOF record to indicate the end of a BIFF stream.
|
||||
*
|
||||
* @access private
|
||||
*/
|
||||
function _storeEof()
|
||||
{
|
||||
$record = 0x000A; // Record identifier
|
||||
$length = 0x0000; // Number of bytes to follow
|
||||
$header = pack("vv", $record, $length);
|
||||
$this->_append($header);
|
||||
}
|
||||
|
||||
/**
|
||||
* Excel limits the size of BIFF records. In Excel 5 the limit is 2084 bytes. In
|
||||
* Excel 97 the limit is 8228 bytes. Records that are longer than these limits
|
||||
* must be split up into CONTINUE blocks.
|
||||
*
|
||||
* This function takes a long BIFF record and inserts CONTINUE records as
|
||||
* necessary.
|
||||
*
|
||||
* @param string $data The original binary data to be written
|
||||
* @return string A very convenient string of continue blocks
|
||||
* @access private
|
||||
*/
|
||||
function _addContinue($data)
|
||||
{
|
||||
$limit = $this->_limit;
|
||||
$record = 0x003C; // Record identifier
|
||||
|
||||
// The first 2080/8224 bytes remain intact. However, we have to change
|
||||
// the length field of the record.
|
||||
$tmp = substr($data, 0, 2).pack("v", $limit-4).substr($data, 4, $limit - 4);
|
||||
|
||||
$header = pack("vv", $record, $limit); // Headers for continue records
|
||||
|
||||
// Retrieve chunks of 2080/8224 bytes +4 for the header.
|
||||
$data_length = strlen($data);
|
||||
for ($i = $limit; $i < ($data_length - $limit); $i += $limit) {
|
||||
$tmp .= $header;
|
||||
$tmp .= substr($data, $i, $limit);
|
||||
}
|
||||
|
||||
// Retrieve the last chunk of data
|
||||
$header = pack("vv", $record, strlen($data) - $i);
|
||||
$tmp .= $header;
|
||||
$tmp .= substr($data, $i, strlen($data) - $i);
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,113 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
||||
// +----------------------------------------------------------------------+
|
||||
// | PHP Version 4 |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Copyright (c) 1997-2002 The PHP Group |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | This source file is subject to version 2.02 of the PHP license, |
|
||||
// | that is bundled with this package in the file LICENSE, and is |
|
||||
// | available at through the world-wide-web at |
|
||||
// | http://www.php.net/license/2_02.txt. |
|
||||
// | If you did not receive a copy of the PHP license and are unable to |
|
||||
// | obtain it through the world-wide-web, please send a note to |
|
||||
// | license@php.net so we can mail you a copy immediately. |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Author: Xavier Noguer <xnoguer@php.net> |
|
||||
// | Based on OLE::Storage_Lite by Kawai, Takanori |
|
||||
// +----------------------------------------------------------------------+
|
||||
//
|
||||
// $Id: File.php,v 1.8 2003/12/12 21:10:10 xnoguer Exp $
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Class for creating File PPS's for OLE containers
|
||||
*
|
||||
* @author Xavier Noguer <xnoguer@php.net>
|
||||
* @category Structures
|
||||
* @package OLE
|
||||
*/
|
||||
class OLE_PPS_File extends OLE_PPS
|
||||
{
|
||||
/**
|
||||
* The temporary dir for storing the OLE file
|
||||
* @var string
|
||||
*/
|
||||
var $_tmp_dir;
|
||||
|
||||
/**
|
||||
* The constructor
|
||||
*
|
||||
* @access public
|
||||
* @param string $name The name of the file (in Unicode)
|
||||
* @see OLE::Asc2Ucs()
|
||||
*/
|
||||
function OLE_PPS_File($name)
|
||||
{
|
||||
$this->_tmp_dir = '';
|
||||
$this->OLE_PPS(
|
||||
null,
|
||||
$name,
|
||||
OLE_PPS_TYPE_FILE,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
'',
|
||||
array());
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the temp dir used for storing the OLE file
|
||||
*
|
||||
* @access public
|
||||
* @param string $dir The dir to be used as temp dir
|
||||
* @return true if given dir is valid, false otherwise
|
||||
*/
|
||||
function setTempDir($dir)
|
||||
{
|
||||
if (is_dir($dir)) {
|
||||
$this->_tmp_dir = $dir;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialization method. Has to be called right after OLE_PPS_File().
|
||||
*
|
||||
* @access public
|
||||
* @return mixed true on success. PEAR_Error on failure
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
$this->_tmp_filename = tempnam($this->_tmp_dir, "OLE_PPS_File");
|
||||
$fh = @fopen($this->_tmp_filename, "w+b");
|
||||
if ($fh == false) {
|
||||
return $this->raiseError("Can't create temporary file");
|
||||
}
|
||||
$this->_PPS_FILE = $fh;
|
||||
if ($this->_PPS_FILE) {
|
||||
fseek($this->_PPS_FILE, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Append data to PPS
|
||||
*
|
||||
* @access public
|
||||
* @param string $data The data to append
|
||||
*/
|
||||
function append($data)
|
||||
{
|
||||
if ($this->_PPS_FILE) {
|
||||
fwrite($this->_PPS_FILE, $data);
|
||||
}
|
||||
else {
|
||||
$this->_data .= $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,408 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
||||
// +----------------------------------------------------------------------+
|
||||
// | PHP Version 4 |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Copyright (c) 1997-2002 The PHP Group |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | This source file is subject to version 2.02 of the PHP license, |
|
||||
// | that is bundled with this package in the file LICENSE, and is |
|
||||
// | available at through the world-wide-web at |
|
||||
// | http://www.php.net/license/2_02.txt. |
|
||||
// | If you did not receive a copy of the PHP license and are unable to |
|
||||
// | obtain it through the world-wide-web, please send a note to |
|
||||
// | license@php.net so we can mail you a copy immediately. |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Author: Xavier Noguer <xnoguer@php.net> |
|
||||
// | Based on OLE::Storage_Lite by Kawai, Takanori |
|
||||
// +----------------------------------------------------------------------+
|
||||
//
|
||||
// $Id: OLE.php,v 1.7 2003/08/21 15:15:40 xnoguer Exp $
|
||||
|
||||
|
||||
/**
|
||||
* Constants for OLE package
|
||||
*/
|
||||
define('OLE_PPS_TYPE_ROOT', 5);
|
||||
define('OLE_PPS_TYPE_DIR', 1);
|
||||
define('OLE_PPS_TYPE_FILE', 2);
|
||||
define('OLE_DATA_SIZE_SMALL', 0x1000);
|
||||
define('OLE_LONG_INT_SIZE', 4);
|
||||
define('OLE_PPS_SIZE', 0x80);
|
||||
|
||||
|
||||
/**
|
||||
* OLE package base class.
|
||||
*
|
||||
* @author Xavier Noguer <xnoguer@php.net>
|
||||
* @category Structures
|
||||
* @package OLE
|
||||
*/
|
||||
class OLE extends PEAR
|
||||
{
|
||||
/**
|
||||
* The file handle for reading an OLE container
|
||||
* @var resource
|
||||
*/
|
||||
var $_file_handle;
|
||||
|
||||
/**
|
||||
* Array of PPS's found on the OLE container
|
||||
* @var array
|
||||
*/
|
||||
var $_list;
|
||||
|
||||
/**
|
||||
* Creates a new OLE object
|
||||
* Remember to use ampersand when creating an OLE object ($my_ole =& new OLE();)
|
||||
* @access public
|
||||
*/
|
||||
function OLE()
|
||||
{
|
||||
$this->_list = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads an OLE container from the contents of the file given.
|
||||
*
|
||||
* @acces public
|
||||
* @param string $file
|
||||
* @return mixed true on success, PEAR_Error on failure
|
||||
*/
|
||||
function read($file)
|
||||
{
|
||||
/* consider storing offsets as constants */
|
||||
$big_block_size_offset = 30;
|
||||
$iBdbCnt_offset = 44;
|
||||
$bd_start_offset = 68;
|
||||
|
||||
$fh = @fopen($file, "r");
|
||||
if ($fh == false) {
|
||||
return $this->raiseError("Can't open file $file");
|
||||
}
|
||||
$this->_file_handle = $fh;
|
||||
|
||||
/* begin reading OLE attributes */
|
||||
fseek($fh, 0);
|
||||
$signature = fread($fh, 8);
|
||||
if ("\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1" != $signature) {
|
||||
return $this->raiseError("File doesn't seem to be an OLE container.");
|
||||
}
|
||||
fseek($fh, $big_block_size_offset);
|
||||
$packed_array = unpack("v", fread($fh, 2));
|
||||
$big_block_size = pow(2, $packed_array['']);
|
||||
|
||||
$packed_array = unpack("v", fread($fh, 2));
|
||||
$small_block_size = pow(2, $packed_array['']);
|
||||
$i1stBdL = ($big_block_size - 0x4C) / OLE_LONG_INT_SIZE;
|
||||
|
||||
fseek($fh, $iBdbCnt_offset);
|
||||
$packed_array = unpack("V", fread($fh, 4));
|
||||
$iBdbCnt = $packed_array[''];
|
||||
|
||||
$packed_array = unpack("V", fread($fh, 4));
|
||||
$pps_wk_start = $packed_array[''];
|
||||
|
||||
fseek($fh, $bd_start_offset);
|
||||
$packed_array = unpack("V", fread($fh, 4));
|
||||
$bd_start = $packed_array[''];
|
||||
$packed_array = unpack("V", fread($fh, 4));
|
||||
$bd_count = $packed_array[''];
|
||||
$packed_array = unpack("V", fread($fh, 4));
|
||||
$iAll = $packed_array['']; // this may be wrong
|
||||
/* create OLE_PPS objects from */
|
||||
$ret = $this->_readPpsWks($pps_wk_start, $big_block_size);
|
||||
if (PEAR::isError($ret)) {
|
||||
return $ret;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Destructor (using PEAR)
|
||||
* Just closes the file handle on the OLE file.
|
||||
*
|
||||
* @access private
|
||||
*/
|
||||
function _OLE()
|
||||
{
|
||||
fclose($this->_file_handle);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets information about all PPS's on the OLE container from the PPS WK's
|
||||
* creates an OLE_PPS object for each one.
|
||||
*
|
||||
* @access private
|
||||
* @param integer $pps_wk_start Position inside the OLE file where PPS WK's start
|
||||
* @param integer $big_block_size Size of big blobks in the OLE file
|
||||
* @return mixed true on success, PEAR_Error on failure
|
||||
*/
|
||||
function _readPpsWks($pps_wk_start, $big_block_size)
|
||||
{
|
||||
$pointer = ($pps_wk_start + 1) * $big_block_size;
|
||||
while (1)
|
||||
{
|
||||
fseek($this->_file_handle, $pointer);
|
||||
$pps_wk = fread($this->_file_handle, OLE_PPS_SIZE);
|
||||
if (strlen($pps_wk) != OLE_PPS_SIZE) {
|
||||
break; // Excel likes to add a trailing byte sometimes
|
||||
//return $this->raiseError("PPS at $pointer seems too short: ".strlen($pps_wk));
|
||||
}
|
||||
$name_length = unpack("c", substr($pps_wk, 64, 2)); // FIXME (2 bytes??)
|
||||
$name_length = $name_length[''] - 2;
|
||||
$name = substr($pps_wk, 0, $name_length);
|
||||
$type = unpack("c", substr($pps_wk, 66, 1));
|
||||
if (($type[''] != OLE_PPS_TYPE_ROOT) and
|
||||
($type[''] != OLE_PPS_TYPE_DIR) and
|
||||
($type[''] != OLE_PPS_TYPE_FILE))
|
||||
{
|
||||
return $this->raiseError("PPS at $pointer has unknown type: {$type['']}");
|
||||
}
|
||||
$prev = unpack("V", substr($pps_wk, 68, 4));
|
||||
$next = unpack("V", substr($pps_wk, 72, 4));
|
||||
$dir = unpack("V", substr($pps_wk, 76, 4));
|
||||
// there is no magic number, it can take different values.
|
||||
//$magic = unpack("V", strrev(substr($pps_wk, 92, 4)));
|
||||
$time_1st = substr($pps_wk, 100, 8);
|
||||
$time_2nd = substr($pps_wk, 108, 8);
|
||||
$start_block = unpack("V", substr($pps_wk, 116, 4));
|
||||
$size = unpack("V", substr($pps_wk, 120, 4));
|
||||
// _data member will point to position in file!!
|
||||
// OLE_PPS object is created with an empty children array!!
|
||||
$this->_list[] = new OLE_PPS(null, '', $type[''], $prev[''], $next[''],
|
||||
$dir[''], OLE::OLE2LocalDate($time_1st),
|
||||
OLE::OLE2LocalDate($time_2nd),
|
||||
($start_block[''] + 1) * $big_block_size, array());
|
||||
// give it a size
|
||||
$this->_list[count($this->_list) - 1]->Size = $size[''];
|
||||
// check if the PPS tree (starting from root) is complete
|
||||
if ($this->_ppsTreeComplete(0)) {
|
||||
break;
|
||||
}
|
||||
$pointer += OLE_PPS_SIZE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* It checks whether the PPS tree is complete (all PPS's read)
|
||||
* starting with the given PPS (not necessarily root)
|
||||
*
|
||||
* @access private
|
||||
* @param integer $index The index of the PPS from which we are checking
|
||||
* @return boolean Whether the PPS tree for the given PPS is complete
|
||||
*/
|
||||
function _ppsTreeComplete($index)
|
||||
{
|
||||
if ($this->_list[$index]->NextPps != -1) {
|
||||
if (!isset($this->_list[$this->_list[$index]->NextPps])) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
return $this->_ppsTreeComplete($this->_list[$index]->NextPps);
|
||||
}
|
||||
}
|
||||
if ($this->_list[$index]->DirPps != -1) {
|
||||
if (!isset($this->_list[$this->_list[$index]->DirPps])) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
return $this->_ppsTreeComplete($this->_list[$index]->DirPps);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether a PPS is a File PPS or not.
|
||||
* If there is no PPS for the index given, it will return false.
|
||||
*
|
||||
* @access public
|
||||
* @param integer $index The index for the PPS
|
||||
* @return bool true if it's a File PPS, false otherwise
|
||||
*/
|
||||
function isFile($index)
|
||||
{
|
||||
if (isset($this->_list[$index])) {
|
||||
return ($this->_list[$index]->Type == OLE_PPS_TYPE_FILE);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether a PPS is a Root PPS or not.
|
||||
* If there is no PPS for the index given, it will return false.
|
||||
*
|
||||
* @access public
|
||||
* @param integer $index The index for the PPS.
|
||||
* @return bool true if it's a Root PPS, false otherwise
|
||||
*/
|
||||
function isRoot($index)
|
||||
{
|
||||
if (isset($this->_list[$index])) {
|
||||
return ($this->_list[$index]->Type == OLE_PPS_TYPE_ROOT);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gives the total number of PPS's found in the OLE container.
|
||||
*
|
||||
* @access public
|
||||
* @return integer The total number of PPS's found in the OLE container
|
||||
*/
|
||||
function ppsTotal()
|
||||
{
|
||||
return count($this->_list);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets data from a PPS
|
||||
* If there is no PPS for the index given, it will return an empty string.
|
||||
*
|
||||
* @access public
|
||||
* @param integer $index The index for the PPS
|
||||
* @param integer $position The position from which to start reading
|
||||
* (relative to the PPS)
|
||||
* @param integer $length The amount of bytes to read (at most)
|
||||
* @return string The binary string containing the data requested
|
||||
*/
|
||||
function getData($index, $position, $length)
|
||||
{
|
||||
// if position is not valid return empty string
|
||||
if (!isset($this->_list[$index]) or ($position >= $this->_list[$index]->Size) or ($position < 0)) {
|
||||
return '';
|
||||
}
|
||||
// Beware!!! _data member is actually a position
|
||||
fseek($this->_file_handle, $this->_list[$index]->_data + $position);
|
||||
return fread($this->_file_handle, $length);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the data length from a PPS
|
||||
* If there is no PPS for the index given, it will return 0.
|
||||
*
|
||||
* @access public
|
||||
* @param integer $index The index for the PPS
|
||||
* @return integer The amount of bytes in data the PPS has
|
||||
*/
|
||||
function getDataLength($index)
|
||||
{
|
||||
if (isset($this->_list[$index])) {
|
||||
return $this->_list[$index]->Size;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility function to transform ASCII text to Unicode
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
* @param string $ascii The ASCII string to transform
|
||||
* @return string The string in Unicode
|
||||
*/
|
||||
function Asc2Ucs($ascii)
|
||||
{
|
||||
$rawname = '';
|
||||
for ($i = 0; $i < strlen($ascii); $i++) {
|
||||
$rawname .= $ascii{$i}."\x00";
|
||||
}
|
||||
return $rawname;
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility function
|
||||
* Returns a string for the OLE container with the date given
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
* @param integer $date A timestamp
|
||||
* @return string The string for the OLE container
|
||||
*/
|
||||
function LocalDate2OLE($date = null)
|
||||
{
|
||||
if (!isset($date)) {
|
||||
return "\x00\x00\x00\x00\x00\x00\x00\x00";
|
||||
}
|
||||
|
||||
// factor used for separating numbers into 4 bytes parts
|
||||
$factor = pow(2,32);
|
||||
|
||||
// days from 1-1-1601 until the beggining of UNIX era
|
||||
$days = 134774;
|
||||
// calculate seconds
|
||||
$big_date = $days*24*3600 + gmmktime(date("H",$date),date("i",$date),date("s",$date),
|
||||
date("m",$date),date("d",$date),date("Y",$date));
|
||||
// multiply just to make MS happy
|
||||
$big_date *= 10000000;
|
||||
|
||||
$high_part = floor($big_date/$factor);
|
||||
// lower 4 bytes
|
||||
$low_part = floor((($big_date/$factor) - $high_part)*$factor);
|
||||
|
||||
// Make HEX string
|
||||
$res = '';
|
||||
|
||||
for ($i=0; $i<4; $i++)
|
||||
{
|
||||
$hex = $low_part % 0x100;
|
||||
$res .= pack('c', $hex);
|
||||
$low_part /= 0x100;
|
||||
}
|
||||
for ($i=0; $i<4; $i++)
|
||||
{
|
||||
$hex = $high_part % 0x100;
|
||||
$res .= pack('c', $hex);
|
||||
$high_part /= 0x100;
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a timestamp from an OLE container's date
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
* @param integer $string A binary string with the encoded date
|
||||
* @return string The timestamp corresponding to the string
|
||||
*/
|
||||
function OLE2LocalDate($string)
|
||||
{
|
||||
if (strlen($string) != 8) {
|
||||
return new PEAR_Error("Expecting 8 byte string");
|
||||
}
|
||||
|
||||
// factor used for separating numbers into 4 bytes parts
|
||||
$factor = pow(2,32);
|
||||
$high_part = 0;
|
||||
for ($i=0; $i<4; $i++)
|
||||
{
|
||||
$al = unpack('C', $string{(7 - $i)});
|
||||
$high_part += $al[''];
|
||||
if ($i < 3) {
|
||||
$high_part *= 0x100;
|
||||
}
|
||||
}
|
||||
$low_part = 0;
|
||||
for ($i=4; $i<8; $i++)
|
||||
{
|
||||
$al = unpack('C', $string{(7 - $i)});
|
||||
$low_part += $al[''];
|
||||
if ($i < 7) {
|
||||
$low_part *= 0x100;
|
||||
}
|
||||
}
|
||||
$big_date = ($high_part*$factor) + $low_part;
|
||||
// translate to seconds
|
||||
$big_date /= 10000000;
|
||||
|
||||
// days from 1-1-1601 until the beggining of UNIX era
|
||||
$days = 134774;
|
||||
|
||||
// translate to seconds from beggining of UNIX era
|
||||
$big_date -= $days*24*3600;
|
||||
return floor($big_date);
|
||||
}
|
||||
}
|
||||
?>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,217 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
||||
// +----------------------------------------------------------------------+
|
||||
// | PHP Version 4 |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Copyright (c) 1997-2002 The PHP Group |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | This source file is subject to version 2.02 of the PHP license, |
|
||||
// | that is bundled with this package in the file LICENSE, and is |
|
||||
// | available at through the world-wide-web at |
|
||||
// | http://www.php.net/license/2_02.txt. |
|
||||
// | If you did not receive a copy of the PHP license and are unable to |
|
||||
// | obtain it through the world-wide-web, please send a note to |
|
||||
// | license@php.net so we can mail you a copy immediately. |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Author: Xavier Noguer <xnoguer@php.net> |
|
||||
// | Based on OLE::Storage_Lite by Kawai, Takanori |
|
||||
// +----------------------------------------------------------------------+
|
||||
//
|
||||
// $Id: PPS.php,v 1.5 2003/12/14 18:12:28 xnoguer Exp $
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Class for creating PPS's for OLE containers
|
||||
*
|
||||
* @author Xavier Noguer <xnoguer@php.net>
|
||||
* @category Structures
|
||||
* @package OLE
|
||||
*/
|
||||
class OLE_PPS extends PEAR
|
||||
{
|
||||
/**
|
||||
* The PPS index
|
||||
* @var integer
|
||||
*/
|
||||
var $No;
|
||||
|
||||
/**
|
||||
* The PPS name (in Unicode)
|
||||
* @var string
|
||||
*/
|
||||
var $Name;
|
||||
|
||||
/**
|
||||
* The PPS type. Dir, Root or File
|
||||
* @var integer
|
||||
*/
|
||||
var $Type;
|
||||
|
||||
/**
|
||||
* The index of the previous PPS
|
||||
* @var integer
|
||||
*/
|
||||
var $PrevPps;
|
||||
|
||||
/**
|
||||
* The index of the next PPS
|
||||
* @var integer
|
||||
*/
|
||||
var $NextPps;
|
||||
|
||||
/**
|
||||
* The index of it's first child if this is a Dir or Root PPS
|
||||
* @var integer
|
||||
*/
|
||||
var $DirPps;
|
||||
|
||||
/**
|
||||
* A timestamp
|
||||
* @var integer
|
||||
*/
|
||||
var $Time1st;
|
||||
|
||||
/**
|
||||
* A timestamp
|
||||
* @var integer
|
||||
*/
|
||||
var $Time2nd;
|
||||
|
||||
/**
|
||||
* Starting block (small or big) for this PPS's data inside the container
|
||||
* @var integer
|
||||
*/
|
||||
var $_StartBlock;
|
||||
|
||||
/**
|
||||
* The size of the PPS's data (in bytes)
|
||||
* @var integer
|
||||
*/
|
||||
var $Size;
|
||||
|
||||
/**
|
||||
* The PPS's data (only used if it's not using a temporary file)
|
||||
* @var string
|
||||
*/
|
||||
var $_data;
|
||||
|
||||
/**
|
||||
* Array of child PPS's (only used by Root and Dir PPS's)
|
||||
* @var array
|
||||
*/
|
||||
var $children = array();
|
||||
|
||||
/**
|
||||
* The constructor
|
||||
*
|
||||
* @access public
|
||||
* @param integer $No The PPS index
|
||||
* @param string $name The PPS name (in Unicode)
|
||||
* @param integer $type The PPS type. Dir, Root or File
|
||||
* @param integer $prev The index of the previous PPS
|
||||
* @param integer $next The index of the next PPS
|
||||
* @param integer $dir The index of it's first child if this is a Dir or Root PPS
|
||||
* @param integer $time_1st A timestamp
|
||||
* @param integer $time_2nd A timestamp
|
||||
* @param array $children Array containing children PPS for this PPS
|
||||
*/
|
||||
function OLE_PPS($No, $name, $type, $prev, $next, $dir, $time_1st, $time_2nd, $data, $children)
|
||||
{
|
||||
$this->No = $No;
|
||||
$this->Name = $name;
|
||||
$this->Type = $type;
|
||||
$this->PrevPps = $prev;
|
||||
$this->NextPps = $next;
|
||||
$this->DirPps = $dir;
|
||||
$this->Time1st = $time_1st;
|
||||
$this->Time2nd = $time_2nd;
|
||||
$this->_data = $data;
|
||||
$this->children = $children;
|
||||
if ($data != '') {
|
||||
$this->Size = strlen($data);
|
||||
}
|
||||
else {
|
||||
$this->Size = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the amount of data saved for this PPS
|
||||
*
|
||||
* @access private
|
||||
* @return integer The amount of data (in bytes)
|
||||
*/
|
||||
function _DataLen()
|
||||
{
|
||||
if (!isset($this->_data)) {
|
||||
return 0;
|
||||
}
|
||||
if (isset($this->_PPS_FILE))
|
||||
{
|
||||
fseek($this->_PPS_FILE, 0);
|
||||
$stats = fstat($this->_PPS_FILE);
|
||||
return $stats[7];
|
||||
}
|
||||
else {
|
||||
return strlen($this->_data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string with the PPS's WK (What is a WK?)
|
||||
*
|
||||
* @access private
|
||||
* @return string The binary string
|
||||
*/
|
||||
function _getPpsWk()
|
||||
{
|
||||
$ret = $this->Name;
|
||||
for ($i = 0; $i < (64 - strlen($this->Name)); $i++) {
|
||||
$ret .= "\x00";
|
||||
}
|
||||
$ret .= pack("v", strlen($this->Name) + 2) // 66
|
||||
. pack("c", $this->Type) // 67
|
||||
. pack("c", 0x00) //UK // 68
|
||||
. pack("V", $this->PrevPps) //Prev // 72
|
||||
. pack("V", $this->NextPps) //Next // 76
|
||||
. pack("V", $this->DirPps) //Dir // 80
|
||||
. "\x00\x09\x02\x00" // 84
|
||||
. "\x00\x00\x00\x00" // 88
|
||||
. "\xc0\x00\x00\x00" // 92
|
||||
. "\x00\x00\x00\x46" // 96 // Seems to be ok only for Root
|
||||
. "\x00\x00\x00\x00" // 100
|
||||
. OLE::LocalDate2OLE($this->Time1st) // 108
|
||||
. OLE::LocalDate2OLE($this->Time2nd) // 116
|
||||
. pack("V", isset($this->_StartBlock)?
|
||||
$this->_StartBlock:0) // 120
|
||||
. pack("V", $this->Size) // 124
|
||||
. pack("V", 0); // 128
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates index and pointers to previous, next and children PPS's for this
|
||||
* PPS. I don't think it'll work with Dir PPS's.
|
||||
*
|
||||
* @access private
|
||||
* @param array &$pps_array Reference to the array of PPS's for the whole OLE
|
||||
* container
|
||||
* @return integer The index for this PPS
|
||||
*/
|
||||
function _savePpsSetPnt(&$pps_array)
|
||||
{
|
||||
$pps_array[count($pps_array)] = &$this;
|
||||
$this->No = count($pps_array) - 1;
|
||||
$this->PrevPps = 0xFFFFFFFF;
|
||||
$this->NextPps = 0xFFFFFFFF;
|
||||
if (count($this->children) > 0) {
|
||||
$this->DirPps = $this->children[0]->_savePpsSetPnt($pps_array);
|
||||
}
|
||||
else {
|
||||
$this->DirPps = 0xFFFFFFFF;
|
||||
}
|
||||
return $this->No;
|
||||
}
|
||||
}
|
||||
?>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,518 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
||||
// +----------------------------------------------------------------------+
|
||||
// | PHP Version 4 |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Copyright (c) 1997-2002 The PHP Group |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | This source file is subject to version 2.02 of the PHP license, |
|
||||
// | that is bundled with this package in the file LICENSE, and is |
|
||||
// | available at through the world-wide-web at |
|
||||
// | http://www.php.net/license/2_02.txt. |
|
||||
// | If you did not receive a copy of the PHP license and are unable to |
|
||||
// | obtain it through the world-wide-web, please send a note to |
|
||||
// | license@php.net so we can mail you a copy immediately. |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Author: Xavier Noguer <xnoguer@php.net> |
|
||||
// | Based on OLE::Storage_Lite by Kawai, Takanori |
|
||||
// +----------------------------------------------------------------------+
|
||||
//
|
||||
// $Id: Root.php,v 1.7 2003/12/12 21:10:10 xnoguer Exp $
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Class for creating Root PPS's for OLE containers
|
||||
*
|
||||
* @author Xavier Noguer <xnoguer@php.net>
|
||||
* @category Structures
|
||||
* @package OLE
|
||||
*/
|
||||
class OLE_PPS_Root extends OLE_PPS
|
||||
{
|
||||
/**
|
||||
* The temporary dir for storing the OLE file
|
||||
* @var string
|
||||
*/
|
||||
var $_tmp_dir;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @access public
|
||||
* @param integer $time_1st A timestamp
|
||||
* @param integer $time_2nd A timestamp
|
||||
*/
|
||||
function OLE_PPS_Root($time_1st, $time_2nd, $raChild)
|
||||
{
|
||||
$this->_tmp_dir = '';
|
||||
$this->OLE_PPS(
|
||||
null,
|
||||
OLE::Asc2Ucs('Root Entry'),
|
||||
OLE_PPS_TYPE_ROOT,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$time_1st,
|
||||
$time_2nd,
|
||||
null,
|
||||
$raChild);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the temp dir used for storing the OLE file
|
||||
*
|
||||
* @access public
|
||||
* @param string $dir The dir to be used as temp dir
|
||||
* @return true if given dir is valid, false otherwise
|
||||
*/
|
||||
function setTempDir($dir)
|
||||
{
|
||||
if (is_dir($dir)) {
|
||||
$this->_tmp_dir = $dir;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method for saving the whole OLE container (including files).
|
||||
* In fact, if called with an empty argument (or '-'), it saves to a
|
||||
* temporary file and then outputs it's contents to stdout.
|
||||
*
|
||||
* @param string $filename The name of the file where to save the OLE container
|
||||
* @access public
|
||||
* @return mixed true on success, PEAR_Error on failure
|
||||
*/
|
||||
function save($filename)
|
||||
{
|
||||
// Initial Setting for saving
|
||||
$this->_BIG_BLOCK_SIZE = pow(2,
|
||||
((isset($this->_BIG_BLOCK_SIZE))? $this->_adjust2($this->_BIG_BLOCK_SIZE) : 9));
|
||||
$this->_SMALL_BLOCK_SIZE= pow(2,
|
||||
((isset($this->_SMALL_BLOCK_SIZE))? $this->_adjust2($this->_SMALL_BLOCK_SIZE): 6));
|
||||
|
||||
// Open temp file if we are sending output to stdout
|
||||
if (($filename == '-') or ($filename == ''))
|
||||
{
|
||||
$this->_tmp_filename = tempnam($this->_tmp_dir, "OLE_PPS_Root");
|
||||
$this->_FILEH_ = @fopen($this->_tmp_filename,"w+b");
|
||||
if ($this->_FILEH_ == false) {
|
||||
return $this->raiseError("Can't create temporary file.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->_FILEH_ = @fopen($filename, "wb");
|
||||
if ($this->_FILEH_ == false) {
|
||||
return $this->raiseError("Can't open $filename. It may be in use or protected.");
|
||||
}
|
||||
}
|
||||
// Make an array of PPS's (for Save)
|
||||
$aList = array();
|
||||
$this->_savePpsSetPnt($aList);
|
||||
// calculate values for header
|
||||
list($iSBDcnt, $iBBcnt, $iPPScnt) = $this->_calcSize($aList); //, $rhInfo);
|
||||
// Save Header
|
||||
$this->_saveHeader($iSBDcnt, $iBBcnt, $iPPScnt);
|
||||
|
||||
// Make Small Data string (write SBD)
|
||||
$this->_data = $this->_makeSmallData($aList);
|
||||
|
||||
// Write BB
|
||||
$this->_saveBigData($iSBDcnt, $aList);
|
||||
// Write PPS
|
||||
$this->_savePps($aList);
|
||||
// Write Big Block Depot and BDList and Adding Header informations
|
||||
$this->_saveBbd($iSBDcnt, $iBBcnt, $iPPScnt);
|
||||
// Close File, send it to stdout if necessary
|
||||
if(($filename == '-') or ($filename == ''))
|
||||
{
|
||||
fseek($this->_FILEH_, 0);
|
||||
fpassthru($this->_FILEH_);
|
||||
@fclose($this->_FILEH_);
|
||||
// Delete the temporary file.
|
||||
@unlink($this->_tmp_filename);
|
||||
}
|
||||
else {
|
||||
@fclose($this->_FILEH_);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate some numbers
|
||||
*
|
||||
* @access private
|
||||
* @param array $raList Reference to an array of PPS's
|
||||
* @return array The array of numbers
|
||||
*/
|
||||
function _calcSize(&$raList)
|
||||
{
|
||||
// Calculate Basic Setting
|
||||
list($iSBDcnt, $iBBcnt, $iPPScnt) = array(0,0,0);
|
||||
$iSmallLen = 0;
|
||||
$iSBcnt = 0;
|
||||
for ($i = 0; $i < count($raList); $i++) {
|
||||
if($raList[$i]->Type == OLE_PPS_TYPE_FILE) {
|
||||
$raList[$i]->Size = $raList[$i]->_DataLen();
|
||||
if($raList[$i]->Size < OLE_DATA_SIZE_SMALL) {
|
||||
$iSBcnt += floor($raList[$i]->Size / $this->_SMALL_BLOCK_SIZE)
|
||||
+ (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)? 1: 0);
|
||||
}
|
||||
else {
|
||||
$iBBcnt += (floor($raList[$i]->Size / $this->_BIG_BLOCK_SIZE) +
|
||||
(($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)? 1: 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
$iSmallLen = $iSBcnt * $this->_SMALL_BLOCK_SIZE;
|
||||
$iSlCnt = floor($this->_BIG_BLOCK_SIZE / OLE_LONG_INT_SIZE);
|
||||
$iSBDcnt = floor($iSBcnt / $iSlCnt) + (($iSBcnt % $iSlCnt)? 1:0);
|
||||
$iBBcnt += (floor($iSmallLen / $this->_BIG_BLOCK_SIZE) +
|
||||
(( $iSmallLen % $this->_BIG_BLOCK_SIZE)? 1: 0));
|
||||
$iCnt = count($raList);
|
||||
$iBdCnt = $this->_BIG_BLOCK_SIZE / OLE_PPS_SIZE;
|
||||
$iPPScnt = (floor($iCnt/$iBdCnt) + (($iCnt % $iBdCnt)? 1: 0));
|
||||
|
||||
return array($iSBDcnt, $iBBcnt, $iPPScnt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function for caculating a magic value for block sizes
|
||||
*
|
||||
* @access private
|
||||
* @param integer $i2 The argument
|
||||
* @see save()
|
||||
* @return integer
|
||||
*/
|
||||
function _adjust2($i2)
|
||||
{
|
||||
$iWk = log($i2)/log(2);
|
||||
return ($iWk > floor($iWk))? floor($iWk)+1:$iWk;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save OLE header
|
||||
*
|
||||
* @access private
|
||||
* @param integer $iSBDcnt
|
||||
* @param integer $iBBcnt
|
||||
* @param integer $iPPScnt
|
||||
*/
|
||||
function _saveHeader($iSBDcnt, $iBBcnt, $iPPScnt)
|
||||
{
|
||||
$FILE = $this->_FILEH_;
|
||||
|
||||
// Calculate Basic Setting
|
||||
$iBlCnt = $this->_BIG_BLOCK_SIZE / OLE_LONG_INT_SIZE;
|
||||
$i1stBdL = ($this->_BIG_BLOCK_SIZE - 0x4C) / OLE_LONG_INT_SIZE;
|
||||
|
||||
$iBdExL = 0;
|
||||
$iAll = $iBBcnt + $iPPScnt + $iSBDcnt;
|
||||
$iAllW = $iAll;
|
||||
$iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt)? 1: 0);
|
||||
$iBdCnt = floor(($iAll + $iBdCntW) / $iBlCnt) + ((($iAllW+$iBdCntW) % $iBlCnt)? 1: 0);
|
||||
|
||||
// Calculate BD count
|
||||
if ($iBdCnt >$i1stBdL)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
$iBdExL++;
|
||||
$iAllW++;
|
||||
$iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt)? 1: 0);
|
||||
$iBdCnt = floor(($iAllW + $iBdCntW) / $iBlCnt) + ((($iAllW+$iBdCntW) % $iBlCnt)? 1: 0);
|
||||
if ($iBdCnt <= ($iBdExL*$iBlCnt+ $i1stBdL)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Save Header
|
||||
fwrite($FILE,
|
||||
"\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1"
|
||||
. "\x00\x00\x00\x00"
|
||||
. "\x00\x00\x00\x00"
|
||||
. "\x00\x00\x00\x00"
|
||||
. "\x00\x00\x00\x00"
|
||||
. pack("v", 0x3b)
|
||||
. pack("v", 0x03)
|
||||
. pack("v", -2)
|
||||
. pack("v", 9)
|
||||
. pack("v", 6)
|
||||
. pack("v", 0)
|
||||
. "\x00\x00\x00\x00"
|
||||
. "\x00\x00\x00\x00"
|
||||
. pack("V", $iBdCnt)
|
||||
. pack("V", $iBBcnt+$iSBDcnt) //ROOT START
|
||||
. pack("V", 0)
|
||||
. pack("V", 0x1000)
|
||||
. pack("V", 0) //Small Block Depot
|
||||
. pack("V", 1)
|
||||
);
|
||||
// Extra BDList Start, Count
|
||||
if ($iBdCnt < $i1stBdL)
|
||||
{
|
||||
fwrite($FILE,
|
||||
pack("V", -2). // Extra BDList Start
|
||||
pack("V", 0) // Extra BDList Count
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
fwrite($FILE, pack("V", $iAll+$iBdCnt) . pack("V", $iBdExL));
|
||||
}
|
||||
|
||||
// BDList
|
||||
for ($i=0; $i<$i1stBdL and $i < $iBdCnt; $i++) {
|
||||
fwrite($FILE, pack("V", $iAll+$i));
|
||||
}
|
||||
if ($i < $i1stBdL)
|
||||
{
|
||||
for ($j = 0; $j < ($i1stBdL-$i); $j++) {
|
||||
fwrite($FILE, (pack("V", -1)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Saving big data (PPS's with data bigger than OLE_DATA_SIZE_SMALL)
|
||||
*
|
||||
* @access private
|
||||
* @param integer $iStBlk
|
||||
* @param array &$raList Reference to array of PPS's
|
||||
*/
|
||||
function _saveBigData($iStBlk, &$raList)
|
||||
{
|
||||
$FILE = $this->_FILEH_;
|
||||
|
||||
// cycle through PPS's
|
||||
for ($i = 0; $i < count($raList); $i++)
|
||||
{
|
||||
if($raList[$i]->Type != OLE_PPS_TYPE_DIR)
|
||||
{
|
||||
$raList[$i]->Size = $raList[$i]->_DataLen();
|
||||
if(($raList[$i]->Size >= OLE_DATA_SIZE_SMALL) or
|
||||
(($raList[$i]->Type == OLE_PPS_TYPE_ROOT) and isset($raList[$i]->_data)))
|
||||
{
|
||||
// Write Data
|
||||
if(isset($raList[$i]->_PPS_FILE))
|
||||
{
|
||||
$iLen = 0;
|
||||
fseek($raList[$i]->_PPS_FILE, 0); // To The Top
|
||||
while($sBuff = fread($raList[$i]->_PPS_FILE, 4096))
|
||||
{
|
||||
$iLen += strlen($sBuff);
|
||||
fwrite($FILE, $sBuff);
|
||||
}
|
||||
}
|
||||
else {
|
||||
fwrite($FILE, $raList[$i]->_data);
|
||||
}
|
||||
|
||||
if ($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)
|
||||
{
|
||||
for ($j = 0; $j < ($this->_BIG_BLOCK_SIZE - ($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)); $j++) {
|
||||
fwrite($FILE, "\x00");
|
||||
}
|
||||
}
|
||||
// Set For PPS
|
||||
$raList[$i]->_StartBlock = $iStBlk;
|
||||
$iStBlk +=
|
||||
(floor($raList[$i]->Size / $this->_BIG_BLOCK_SIZE) +
|
||||
(($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)? 1: 0));
|
||||
}
|
||||
// Close file for each PPS, and unlink it
|
||||
if (isset($raList[$i]->_PPS_FILE))
|
||||
{
|
||||
@fclose($raList[$i]->_PPS_FILE);
|
||||
$raList[$i]->_PPS_FILE = null;
|
||||
@unlink($raList[$i]->_tmp_filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* get small data (PPS's with data smaller than OLE_DATA_SIZE_SMALL)
|
||||
*
|
||||
* @access private
|
||||
* @param array &$raList Reference to array of PPS's
|
||||
*/
|
||||
function _makeSmallData(&$raList)
|
||||
{
|
||||
$sRes = '';
|
||||
$FILE = $this->_FILEH_;
|
||||
$iSmBlk = 0;
|
||||
|
||||
for ($i = 0; $i < count($raList); $i++)
|
||||
{
|
||||
// Make SBD, small data string
|
||||
if ($raList[$i]->Type == OLE_PPS_TYPE_FILE)
|
||||
{
|
||||
if ($raList[$i]->Size <= 0) {
|
||||
continue;
|
||||
}
|
||||
if ($raList[$i]->Size < OLE_DATA_SIZE_SMALL)
|
||||
{
|
||||
$iSmbCnt = floor($raList[$i]->Size / $this->_SMALL_BLOCK_SIZE)
|
||||
+ (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)? 1: 0);
|
||||
// Add to SBD
|
||||
for ($j = 0; $j < ($iSmbCnt-1); $j++) {
|
||||
fwrite($FILE, pack("V", $j+$iSmBlk+1));
|
||||
}
|
||||
fwrite($FILE, pack("V", -2));
|
||||
|
||||
// Add to Data String(this will be written for RootEntry)
|
||||
if ($raList[$i]->_PPS_FILE)
|
||||
{
|
||||
fseek($raList[$i]->_PPS_FILE, 0); // To The Top
|
||||
while ($sBuff = fread($raList[$i]->_PPS_FILE, 4096)) {
|
||||
$sRes .= $sBuff;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$sRes .= $raList[$i]->_data;
|
||||
}
|
||||
if($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)
|
||||
{
|
||||
for ($j = 0; $j < ($this->_SMALL_BLOCK_SIZE - ($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)); $j++) {
|
||||
$sRes .= "\x00";
|
||||
}
|
||||
}
|
||||
// Set for PPS
|
||||
$raList[$i]->_StartBlock = $iSmBlk;
|
||||
$iSmBlk += $iSmbCnt;
|
||||
}
|
||||
}
|
||||
}
|
||||
$iSbCnt = floor($this->_BIG_BLOCK_SIZE / OLE_LONG_INT_SIZE);
|
||||
if($iSmBlk % $iSbCnt)
|
||||
{
|
||||
for ($i = 0; $i < ($iSbCnt - ($iSmBlk % $iSbCnt)); $i++) {
|
||||
fwrite($FILE, pack("V", -1));
|
||||
}
|
||||
}
|
||||
return $sRes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves all the PPS's WKs
|
||||
*
|
||||
* @access private
|
||||
* @param array $raList Reference to an array with all PPS's
|
||||
*/
|
||||
function _savePps(&$raList)
|
||||
{
|
||||
// Save each PPS WK
|
||||
for ($i = 0; $i < count($raList); $i++) {
|
||||
fwrite($this->_FILEH_, $raList[$i]->_getPpsWk());
|
||||
}
|
||||
// Adjust for Block
|
||||
$iCnt = count($raList);
|
||||
$iBCnt = $this->_BIG_BLOCK_SIZE / OLE_PPS_SIZE;
|
||||
if ($iCnt % $iBCnt)
|
||||
{
|
||||
for ($i = 0; $i < (($iBCnt - ($iCnt % $iBCnt)) * OLE_PPS_SIZE); $i++) {
|
||||
fwrite($this->_FILEH_, "\x00");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Saving Big Block Depot
|
||||
*
|
||||
* @access private
|
||||
* @param integer $iSbdSize
|
||||
* @param integer $iBsize
|
||||
* @param integer $iPpsCnt
|
||||
*/
|
||||
function _saveBbd($iSbdSize, $iBsize, $iPpsCnt)
|
||||
{
|
||||
$FILE = $this->_FILEH_;
|
||||
// Calculate Basic Setting
|
||||
$iBbCnt = $this->_BIG_BLOCK_SIZE / OLE_LONG_INT_SIZE;
|
||||
$i1stBdL = ($this->_BIG_BLOCK_SIZE - 0x4C) / OLE_LONG_INT_SIZE;
|
||||
|
||||
$iBdExL = 0;
|
||||
$iAll = $iBsize + $iPpsCnt + $iSbdSize;
|
||||
$iAllW = $iAll;
|
||||
$iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt)? 1: 0);
|
||||
$iBdCnt = floor(($iAll + $iBdCntW) / $iBbCnt) + ((($iAllW+$iBdCntW) % $iBbCnt)? 1: 0);
|
||||
// Calculate BD count
|
||||
if ($iBdCnt >$i1stBdL)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
$iBdExL++;
|
||||
$iAllW++;
|
||||
$iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt)? 1: 0);
|
||||
$iBdCnt = floor(($iAllW + $iBdCntW) / $iBbCnt) + ((($iAllW+$iBdCntW) % $iBbCnt)? 1: 0);
|
||||
if ($iBdCnt <= ($iBdExL*$iBbCnt+ $i1stBdL)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Making BD
|
||||
// Set for SBD
|
||||
if ($iSbdSize > 0)
|
||||
{
|
||||
for ($i = 0; $i<($iSbdSize-1); $i++) {
|
||||
fwrite($FILE, pack("V", $i+1));
|
||||
}
|
||||
fwrite($FILE, pack("V", -2));
|
||||
}
|
||||
// Set for B
|
||||
for ($i = 0; $i<($iBsize-1); $i++) {
|
||||
fwrite($FILE, pack("V", $i+$iSbdSize+1));
|
||||
}
|
||||
fwrite($FILE, pack("V", -2));
|
||||
|
||||
// Set for PPS
|
||||
for ($i = 0; $i<($iPpsCnt-1); $i++) {
|
||||
fwrite($FILE, pack("V", $i+$iSbdSize+$iBsize+1));
|
||||
}
|
||||
fwrite($FILE, pack("V", -2));
|
||||
// Set for BBD itself ( 0xFFFFFFFD : BBD)
|
||||
for ($i=0; $i<$iBdCnt;$i++) {
|
||||
fwrite($FILE, pack("V", 0xFFFFFFFD));
|
||||
}
|
||||
// Set for ExtraBDList
|
||||
for ($i=0; $i<$iBdExL;$i++) {
|
||||
fwrite($FILE, pack("V", 0xFFFFFFFC));
|
||||
}
|
||||
// Adjust for Block
|
||||
if (($iAllW + $iBdCnt) % $iBbCnt)
|
||||
{
|
||||
for ($i = 0; $i < ($iBbCnt - (($iAllW + $iBdCnt) % $iBbCnt)); $i++) {
|
||||
fwrite($FILE, pack("V", -1));
|
||||
}
|
||||
}
|
||||
// Extra BDList
|
||||
if ($iBdCnt > $i1stBdL)
|
||||
{
|
||||
$iN=0;
|
||||
$iNb=0;
|
||||
for ($i=$i1stBdL;$i<$iBdCnt; $i++, $iN++)
|
||||
{
|
||||
if ($iN>=($iBbCnt-1))
|
||||
{
|
||||
$iN = 0;
|
||||
$iNb++;
|
||||
fwrite($FILE, pack("V", $iAll+$iBdCnt+$iNb));
|
||||
}
|
||||
fwrite($FILE, pack("V", $iBsize+$iSbdSize+$iPpsCnt+$i));
|
||||
}
|
||||
if (($iBdCnt-$i1stBdL) % ($iBbCnt-1))
|
||||
{
|
||||
for ($i = 0; $i < (($iBbCnt-1) - (($iBdCnt-$i1stBdL) % ($iBbCnt-1))); $i++) {
|
||||
fwrite($FILE, pack("V", -1));
|
||||
}
|
||||
}
|
||||
fwrite($FILE, pack("V", -2));
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,229 @@
|
||||
<?php
|
||||
/*
|
||||
* Module written by Herman Kuiper <herman@ozuzo.net>
|
||||
*
|
||||
* License Information:
|
||||
*
|
||||
* Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets
|
||||
* Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
|
||||
// Possible operator types
|
||||
|
||||
/*
|
||||
FIXME: change prefixes
|
||||
*/
|
||||
define("OP_BETWEEN", 0x00);
|
||||
define("OP_NOTBETWEEN", 0x01);
|
||||
define("OP_EQUAL", 0x02);
|
||||
define("OP_NOTEQUAL", 0x03);
|
||||
define("OP_GT", 0x04);
|
||||
define("OP_LT", 0x05);
|
||||
define("OP_GTE", 0x06);
|
||||
define("OP_LTE", 0x07);
|
||||
|
||||
/**
|
||||
* Baseclass for generating Excel DV records (validations)
|
||||
*
|
||||
* @author Herman Kuiper
|
||||
* @category FileFormats
|
||||
* @package Spreadsheet_Excel_Writer
|
||||
*/
|
||||
class Spreadsheet_Excel_Writer_Validator
|
||||
{
|
||||
var $_type;
|
||||
var $_style;
|
||||
var $_fixedList;
|
||||
var $_blank;
|
||||
var $_incell;
|
||||
var $_showprompt;
|
||||
var $_showerror;
|
||||
var $_title_prompt;
|
||||
var $_descr_prompt;
|
||||
var $_title_error;
|
||||
var $_descr_error;
|
||||
var $_operator;
|
||||
var $_formula1;
|
||||
var $_formula2;
|
||||
/**
|
||||
* The parser from the workbook. Used to parse validation formulas also
|
||||
* @var Spreadsheet_Excel_Writer_Parser
|
||||
*/
|
||||
var $_parser;
|
||||
|
||||
function Spreadsheet_Excel_Writer_Validator(&$parser)
|
||||
{
|
||||
$this->_parser = $parser;
|
||||
$this->_type = 0x01; // FIXME: add method for setting datatype
|
||||
$this->_style = 0x00;
|
||||
$this->_fixedList = false;
|
||||
$this->_blank = false;
|
||||
$this->_incell = false;
|
||||
$this->_showprompt = false;
|
||||
$this->_showerror = true;
|
||||
$this->_title_prompt = "\x00";
|
||||
$this->_descr_prompt = "\x00";
|
||||
$this->_title_error = "\x00";
|
||||
$this->_descr_error = "\x00";
|
||||
$this->_operator = 0x00; // default is equal
|
||||
$this->_formula1 = '';
|
||||
$this->_formula2 = '';
|
||||
}
|
||||
|
||||
function setPrompt($promptTitle = "\x00", $promptDescription = "\x00", $showPrompt = true)
|
||||
{
|
||||
$this->_showprompt = $showPrompt;
|
||||
$this->_title_prompt = $promptTitle;
|
||||
$this->_descr_prompt = $promptDescription;
|
||||
}
|
||||
|
||||
function setError($errorTitle = "\x00", $errorDescription = "\x00", $showError = true)
|
||||
{
|
||||
$this->_showerror = $showError;
|
||||
$this->_title_error = $errorTitle;
|
||||
$this->_descr_error = $errorDescription;
|
||||
}
|
||||
|
||||
function allowBlank()
|
||||
{
|
||||
$this->_blank = true;
|
||||
}
|
||||
|
||||
function onInvalidStop()
|
||||
{
|
||||
$this->_style = 0x00;
|
||||
}
|
||||
|
||||
function onInvalidWarn()
|
||||
{
|
||||
$this->_style = 0x01;
|
||||
}
|
||||
|
||||
function onInvalidInfo()
|
||||
{
|
||||
$this->_style = 0x02;
|
||||
}
|
||||
|
||||
function setFormula1($formula)
|
||||
{
|
||||
// Parse the formula using the parser in Parser.php
|
||||
$error = $this->_parser->parse($formula);
|
||||
if (PEAR::isError($error)) {
|
||||
return $this->_formula1;
|
||||
}
|
||||
|
||||
$this->_formula1 = $this->_parser->toReversePolish();
|
||||
if (PEAR::isError($this->_formula1)) {
|
||||
return $this->_formula1;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function setFormula2($formula)
|
||||
{
|
||||
// Parse the formula using the parser in Parser.php
|
||||
$error = $this->_parser->parse($formula);
|
||||
if (PEAR::isError($error)) {
|
||||
return $this->_formula2;
|
||||
}
|
||||
|
||||
$this->_formula2 = $this->_parser->toReversePolish();
|
||||
if (PEAR::isError($this->_formula2)) {
|
||||
return $this->_formula2;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function _getOptions()
|
||||
{
|
||||
$options = $this->_type;
|
||||
$options |= $this->_style << 3;
|
||||
if ($this->_fixedList) {
|
||||
$options |= 0x80;
|
||||
}
|
||||
if ($this->_blank) {
|
||||
$options |= 0x100;
|
||||
}
|
||||
if (!$this->_incell) {
|
||||
$options |= 0x200;
|
||||
}
|
||||
if ($this->_showprompt) {
|
||||
$options |= 0x40000;
|
||||
}
|
||||
if ($this->_showerror) {
|
||||
$options |= 0x80000;
|
||||
}
|
||||
$options |= $this->_operator << 20;
|
||||
|
||||
return $options;
|
||||
}
|
||||
|
||||
function _getData()
|
||||
{
|
||||
$title_prompt_len = strlen($this->_title_prompt);
|
||||
$descr_prompt_len = strlen($this->_descr_prompt);
|
||||
$title_error_len = strlen($this->_title_error);
|
||||
$descr_error_len = strlen($this->_descr_error);
|
||||
|
||||
$formula1_size = strlen($this->_formula1);
|
||||
$formula2_size = strlen($this->_formula2);
|
||||
|
||||
$data = pack("V", $this->_getOptions());
|
||||
$data .= pack("vC", $title_prompt_len, 0x00) . $this->_title_prompt;
|
||||
$data .= pack("vC", $title_error_len, 0x00) . $this->_title_error;
|
||||
$data .= pack("vC", $descr_prompt_len, 0x00) . $this->_descr_prompt;
|
||||
$data .= pack("vC", $descr_error_len, 0x00) . $this->_descr_error;
|
||||
|
||||
$data .= pack("vv", $formula1_size, 0x0000) . $this->_formula1;
|
||||
$data .= pack("vv", $formula2_size, 0x0000) . $this->_formula2;
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
/*class Spreadsheet_Excel_Writer_Validation_List extends Spreadsheet_Excel_Writer_Validation
|
||||
{
|
||||
function Spreadsheet_Excel_Writer_Validation_list()
|
||||
{
|
||||
parent::Spreadsheet_Excel_Writer_Validation();
|
||||
$this->_type = 0x03;
|
||||
}
|
||||
|
||||
function setList($source, $incell = true)
|
||||
{
|
||||
$this->_incell = $incell;
|
||||
$this->_fixedList = true;
|
||||
|
||||
$source = implode("\x00", $source);
|
||||
$this->_formula1 = pack("CCC", 0x17, strlen($source), 0x0c) . $source;
|
||||
}
|
||||
|
||||
function setRow($row, $col1, $col2, $incell = true)
|
||||
{
|
||||
$this->_incell = $incell;
|
||||
//$this->_formula1 = ...;
|
||||
}
|
||||
|
||||
function setCol($col, $row1, $row2, $incell = true)
|
||||
{
|
||||
$this->_incell = $incell;
|
||||
//$this->_formula1 = ...;
|
||||
}
|
||||
}*/
|
||||
|
||||
?>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
/*
|
||||
* Module written/ported by Xavier Noguer <xnoguer@rezebra.com>
|
||||
*
|
||||
* PERL Spreadsheet::WriteExcel module.
|
||||
*
|
||||
* The author of the Spreadsheet::WriteExcel module is John McNamara
|
||||
* <jmcnamara@cpan.org>
|
||||
*
|
||||
* I _DO_ maintain this code, and John McNamara has nothing to do with the
|
||||
* porting of this code to PHP. Any questions directly related to this
|
||||
* class library should be directed to me.
|
||||
*
|
||||
* License Information:
|
||||
*
|
||||
* Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets
|
||||
* Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Class for writing Excel Spreadsheets. This class should change COMPLETELY.
|
||||
*
|
||||
* @author Xavier Noguer <xnoguer@rezebra.com>
|
||||
* @category FileFormats
|
||||
* @package Spreadsheet_Excel_Writer
|
||||
*/
|
||||
|
||||
class Spreadsheet_Excel_Writer extends Spreadsheet_Excel_Writer_Workbook
|
||||
{
|
||||
/**
|
||||
* The constructor. It just creates a Workbook
|
||||
*
|
||||
* @param string $filename The optional filename for the Workbook.
|
||||
* @return Spreadsheet_Excel_Writer_Workbook The Workbook created
|
||||
*/
|
||||
function Spreadsheet_Excel_Writer($filename = '')
|
||||
{
|
||||
$this->_filename = $filename;
|
||||
$this->Spreadsheet_Excel_Writer_Workbook($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send HTTP headers for the Excel file.
|
||||
*
|
||||
* @param string $filename The filename to use for HTTP headers
|
||||
* @access public
|
||||
*/
|
||||
function send($filename)
|
||||
{
|
||||
header("Content-type: application/vnd.ms-excel");
|
||||
header("Content-Disposition: attachment; filename=\"$filename\"");
|
||||
header("Expires: 0");
|
||||
header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
|
||||
header("Pragma: public");
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility function for writing formulas
|
||||
* Converts a cell's coordinates to the A1 format.
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
* @param integer $row Row for the cell to convert (0-indexed).
|
||||
* @param integer $col Column for the cell to convert (0-indexed).
|
||||
* @return string The cell identifier in A1 format
|
||||
*/
|
||||
function rowcolToCell($row, $col)
|
||||
{
|
||||
if ($col > 255) { //maximum column value exceeded
|
||||
return new PEAR_Error("Maximum column value exceeded: $col");
|
||||
}
|
||||
|
||||
$int = (int)($col / 26);
|
||||
$frac = $col % 26;
|
||||
$chr1 = '';
|
||||
|
||||
if ($int > 0) {
|
||||
$chr1 = chr(ord('A') + $int - 1);
|
||||
}
|
||||
|
||||
$chr2 = chr(ord('A') + $frac);
|
||||
$row++;
|
||||
|
||||
return $chr1 . $chr2 . $row;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,321 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse fuer Berechtigungen der User
|
||||
* @author Christian Paminger
|
||||
* @version 1.0
|
||||
* @updated 11-Feb-2004
|
||||
*/
|
||||
class berechtigung
|
||||
{
|
||||
/**
|
||||
* interne userberechtigung_id (Zaehler aus DB)
|
||||
* @var integer
|
||||
*/
|
||||
var $userberechtigung_id;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $studiengang_kz;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $fachbereich_id;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $berechtigung_kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $uid;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $studiensemester_kurzbz;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $start;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $ende;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $starttimestamp;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $endetimestamp;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $art;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
var $berechtigungen=array();
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
|
||||
var $conn;
|
||||
/**
|
||||
* @var boolean
|
||||
*/
|
||||
var $new;
|
||||
|
||||
function berechtigung($conn)
|
||||
{
|
||||
$this->conn=$conn;
|
||||
$this->new=true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ladet die Attribute der Berechtigung aus der Datenbank. Bei Fehler ist der
|
||||
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function load($id)
|
||||
{
|
||||
// Berechtigung holen
|
||||
$sql_query="SELECT * FROM tbl_userberechtigung WHERE userberechtigung_id=$id";
|
||||
//echo $sql_query;
|
||||
if(!($erg=pg_exec($this->conn, $sql_query)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
if($num_rows!=1)
|
||||
{
|
||||
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
|
||||
return false;
|
||||
}
|
||||
$row=pg_fetch_object($erg,0);
|
||||
|
||||
$this->userberechtigung_id=$row->userberechtigung_id;
|
||||
$this->studiengang_kz=$row->studiengang_kz;
|
||||
$this->fachbereich_id=$row->fachbereich_id;
|
||||
$this->berechtigung_kurzbz=$row->berechtigung_kurzbz;
|
||||
$this->uid=$row->uid;
|
||||
$this->studiensemester_kurzbz=$row->studiensemester_kurzbz;
|
||||
$this->start=$row->start;
|
||||
$this->ende=$row->ende;
|
||||
$this->art=$row->art;
|
||||
$this->new=false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
// Connection holen
|
||||
if (is_null($conn=$this->getConnection()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// Daten zur Person speichern
|
||||
|
||||
if (!person::save()) {
|
||||
$this->errormsg.="Daten zur LVA konnten nicht gespeichert werden.";
|
||||
return false;
|
||||
}
|
||||
if ($this->new) {
|
||||
$qry="INSERT INTO tbl_lehrveranstaltung(lvnr,unr,einheit_kurzbz,".
|
||||
"lektor,lehrfach_nr,studiengang_kz,fachbereich_id,semester,verband,".
|
||||
"gruppe,raumtyp,raumtypalternativ,semesterstunden,stundenblockung,".
|
||||
"wochenrythmus,start_kw,anmerkung)".
|
||||
"values(".
|
||||
"'".$this->lvnr."',".
|
||||
"'".$this->unr."',".
|
||||
"'".$this->einheit_kurzbz."',".
|
||||
"'".$this->lektor."',".
|
||||
(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
|
||||
(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
|
||||
(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
|
||||
(strlen($this->semester)>0?$this->semester:NULL).",".
|
||||
"'".$this->verband."',".
|
||||
"'".$this->gruppe."',".
|
||||
(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
|
||||
(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
|
||||
(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
|
||||
(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
|
||||
(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
|
||||
(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
|
||||
(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).",".
|
||||
")";
|
||||
} else
|
||||
{
|
||||
$qry="UPDATE tbl_lehrveranstaltung ".
|
||||
"SET lvnr='".$this->lvnr."',".
|
||||
"unr='".$this->unr."',".
|
||||
"einheit_kurzbz='".$this->einheit_kurzbz."',".
|
||||
"lektor='".$this->lehrfach_nr."',".
|
||||
"lehrfach_nr=".(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
|
||||
"studiengang_kz=".(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
|
||||
"fachbereich_id=".(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
|
||||
"semester=".(strlen($this->semester)>0?$this->semester:NULL).",".
|
||||
"verband='".$this->verband."',".
|
||||
"gruppe='".$this->gruppe."',".
|
||||
"raumtyp=".(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
|
||||
"raumtypalternativ=".(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
|
||||
"semesterstunden=".(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
|
||||
"stundenblockung=".(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
|
||||
"wochenrythmus=".(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
|
||||
"start_kw=".(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
|
||||
"anmerkung=".(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).
|
||||
" WHERE lehrveranstaltung_id='".$this->lehrveranstaltung_id."'";
|
||||
}
|
||||
//echo "<br>".$qry;
|
||||
if(!@pg_query($conn, $qry))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Rueckgabewert ist ein Array mit den Ergebnissen. Bei Fehler false und die
|
||||
* Fehlermeldung liegt in errormsg.
|
||||
* Wenn der Parameter stg_kz NULL ist tritt einheit_kurzbzb in Kraft.
|
||||
* @param string $uid UserID
|
||||
* @return variabel Array mit LVA; <b>false</b> bei Fehler
|
||||
*/
|
||||
function getBerechtigungen($uid)
|
||||
{
|
||||
// Berechtigungen holen
|
||||
$sql_query="SELECT * FROM tbl_userberechtigung WHERE uid='$uid' AND (start<now() OR start IS NULL) AND (ende>now() OR ende IS NULL)";
|
||||
//echo $sql_query;
|
||||
if(!$erg=@pg_query($this->conn, $sql_query))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
//$num_rows=pg_numrows($erg);
|
||||
while($row=pg_fetch_object($erg))
|
||||
{
|
||||
$b=new berechtigung($this->conn);
|
||||
$b->userberechtigung_id=$row->userberechtigung_id;
|
||||
$b->studiengang_kz=$row->studiengang_kz;
|
||||
$b->fachbereich_id=$row->fachbereich_id;
|
||||
$b->berechtigung_kurzbz=$row->berechtigung_kurzbz;
|
||||
$b->uid=$row->uid;
|
||||
$b->studiensemester_kurzbz=$row->studiensemester_kurzbz;
|
||||
$b->start=$row->start;
|
||||
if ($row->start!=null)
|
||||
$b->starttimestamp=mktime(0,0,0,substr($row->start,5,2),substr($row->start,8),substr($row->start,0,4));
|
||||
else
|
||||
$b->starttimestamp=null;
|
||||
$b->ende=$row->ende;
|
||||
if ($row->ende!=null)
|
||||
$b->endetimestamp=mktime(23,59,59,substr($row->ende,5,2),substr($row->ende,8),substr($row->ende,0,4));
|
||||
else
|
||||
$b->endetimestamp=null;
|
||||
$b->art=$row->art;
|
||||
$this->berechtigungen[]=$b;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function isBerechtigt($berechtigung,$studiengang_kz=null,$art=null, $fachbereich_id=null)
|
||||
{
|
||||
$timestamp=time();
|
||||
foreach ($this->berechtigungen as $b)
|
||||
{
|
||||
//Fachbereichsberechtigung
|
||||
if($fachbereich_id!=null)
|
||||
{
|
||||
//Wenn Fachbereichs oder Adminberechtigung
|
||||
if(($berechtigung == $b->berechtigung_kurzbz || $b->berechtigung_kurzbz == 'admin') && ($b->fachbereich_id==$fachbereich_id || $b->fachbereich_id=='0'))
|
||||
{
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
//Wenn Berechtigung fuer Bestimmte Klasse vorhanden ist
|
||||
if($berechtigung == $b->berechtigung_kurzbz && $studiengang_kz==null && $art==null && $fachbereich_id==null)
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
//Wenn Berechtigung fuer Bestimmten Studiengang vorhanden ist
|
||||
if ($berechtigung==$b->berechtigung_kurzbz
|
||||
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0) && $art==null && $b->fachbereich_id==null)
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
//Wenn Berechtigung mit Studiengang und der richtigen BerechtigungsArt (suid) vorhanden ist
|
||||
if ($berechtigung==$b->berechtigung_kurzbz
|
||||
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0)
|
||||
&& strstr($b->art,$art))
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt Array mit Kennzahlen der Studiengaenge sortiert zurueck.
|
||||
* Optional wird auf Berechtigung eingeschraenkt.
|
||||
* Wenn Berechtigung ueber alle Studiengaenge steht im ersten Feld 0.
|
||||
*/
|
||||
function getStgKz($berechtigung=null)
|
||||
{
|
||||
$studiengang_kz=array();
|
||||
$timestamp=time();
|
||||
|
||||
foreach ($this->berechtigungen as $b)
|
||||
if ($berechtigung==$b->berechtigung_kurzbz || $berechtigung==null)
|
||||
if($b->fachbereich_id==null)
|
||||
$studiengang_kz[]=$b->studiengang_kz;
|
||||
$studiengang_kz=array_unique($studiengang_kz);
|
||||
sort($studiengang_kz);
|
||||
return $studiengang_kz;
|
||||
}
|
||||
|
||||
function getFbKz($berechtigung=null)
|
||||
{
|
||||
$fachbereichs_kz=array();
|
||||
$timestamp=time();
|
||||
|
||||
foreach($this->berechtigungen as $b)
|
||||
{
|
||||
if(($berechtigung==$b->berechtigung_kurzbz || $berechtigung==null)
|
||||
&& (($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp) || ($b->starttimestamp==null && $b->endetimestamp==null)))
|
||||
{
|
||||
if($b->fachbereich_id!='' && !in_array($b->fachbereich_id,$fachbereichs_kz))
|
||||
$fachbereichs_kz[] = $b->fachbereich_id;
|
||||
}
|
||||
}
|
||||
sort($fachbereichs_kz);
|
||||
return $fachbereichs_kz;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,515 @@
|
||||
<?php
|
||||
/**
|
||||
* @author: maximilian schremser
|
||||
* @date: 2004-10-24
|
||||
* globale funktionen für verschiedene anwendungen auf der cis.technikum-wien.at
|
||||
*/
|
||||
|
||||
function get_active_status($auth) {
|
||||
$course_id = $auth->stg_id;
|
||||
$term_id = $auth->semester;
|
||||
|
||||
$sql = "SELECT distinct verband, gruppe FROM tbl_student WHERE (studiengang_kz = $course_id) AND (semester = $term_id) ORDER BY verband,gruppe";
|
||||
$rs = new pgRS($sql);
|
||||
$count_verband = $rs->num;
|
||||
$verbands = $rs->arr;
|
||||
for ($rt = $count_verband-1; $rt >= 0; $rt--) {
|
||||
$verband = $verbands[$rt]["verband"] . $verbands[$rt]["gruppe"];
|
||||
if ($verbands[$rt]["verband"] == $auth->verband &&
|
||||
$verbands[$rt]["gruppe"] == $auth->gruppe)
|
||||
return pow(2,$rt);
|
||||
}
|
||||
return 0;
|
||||
} // eof function get_active_status
|
||||
|
||||
//get_lf_bezeichnung holt die Studiengang Bezeichnung und die Lehrfach
|
||||
// bezeichnung für das aktuelle Lehrfach.
|
||||
function get_lf_bezeichnung($course_id, $term_id, $lesson)
|
||||
{
|
||||
$sql = "SELECT lf.bezeichnung, kurzbzlang FROM lehre.tbl_lehrfachzuteilung lf
|
||||
JOIN tbl_studiengang USING(studiengang_kz) WHERE lf.studiengang_kz = $course_id
|
||||
AND lf.lehrfachzuteilung_kurzbz = '$lesson' AND lf.semester = $term_id LIMIT 1";
|
||||
$rs = new pgRS($sql);
|
||||
$ret[0] = $rs->arr[0]["kurzbzlang"];
|
||||
$ret[1] = $rs->arr[0]["bezeichnung"];
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
// Die Freigabe für die Verbände für den Studienbrief berechnen
|
||||
// Um die Freigeschaltenen Studienbriefe zu berechnen.
|
||||
function sum($points = array()) {
|
||||
$p = 0;
|
||||
for ($i = 0; $i < count($points); $i++)
|
||||
{
|
||||
$p+= $points[$i];
|
||||
}
|
||||
return $p;
|
||||
} /* eof sum() */
|
||||
|
||||
// erstellen des aktuellen studienjahres
|
||||
function get_studienjahr($i = -1) {
|
||||
if ($i != -1) {
|
||||
$stj = date("Y")+$i;
|
||||
$stj .= "/";
|
||||
$stj .= sprintf("%02d", date("y")+$i+1);
|
||||
} else if ( date("n") >= 7)
|
||||
$stj = date("Y") . "/" . date("y", mktime(0,0,0,1,1,date("Y")+1));
|
||||
else
|
||||
$stj = date("Y")-1 . "/" . date("y");
|
||||
return $stj;
|
||||
}
|
||||
|
||||
function get_needed_term_id($term_id = 0, $stj = "") {
|
||||
if ($stj == "")
|
||||
$stj = get_studienjahr();
|
||||
$needed_term_id = $term_id + ((date("Y") - substr($stj,0,4))*2);
|
||||
|
||||
if ((date("n") >= 8 || date("n") < 3))
|
||||
if ($term_id%2==0)
|
||||
$needed_term_id--;
|
||||
else
|
||||
$needed_term_id++;
|
||||
|
||||
if ((date("n") < 8 || date("n") >= 3))
|
||||
if ($term_id%2!= 0)
|
||||
$needed_term_id--;
|
||||
return $needed_term_id;
|
||||
}
|
||||
|
||||
|
||||
// berechnet die notwendige Semester_ID zum Anzeigen der
|
||||
// Studenten im Kreuzerltool
|
||||
function get_needed_term_id2($term_id = 0, $stj = "") {
|
||||
// im WS sollen noch Studenten vom letzten SS sichtbar sein
|
||||
if ((date("n") >= 8 || date("n") < 2)) {
|
||||
if ($term_id%2==0)
|
||||
$term_id++;
|
||||
}
|
||||
// im SS sollen noch die Studenten vom WS sichtbar sein
|
||||
else {
|
||||
if ($term_id%2==1) {
|
||||
$term_id++;
|
||||
}
|
||||
}
|
||||
return $term_id;
|
||||
}
|
||||
|
||||
|
||||
// zurückrechnen auf die studenten im jetzigen semester
|
||||
// studienpunkte sind nur für die eigene person sichtbar
|
||||
function get_old_studienjahr() {
|
||||
if (date("n") >= 7 && $term_id%2 == 1) {
|
||||
$studienjahr = date("Y") - intval(($auth->semester - $term_id)/2);
|
||||
}
|
||||
else if (date("n") >= 7 && $term_id%2 == 0) {
|
||||
$studienjahr = date("Y") - intval(($auth->semester - $term_id)/2)-1;
|
||||
}
|
||||
else if (date("n") < 7 && $term_id%2 == 1) {
|
||||
$studienjahr = date("Y") - intval(($auth->semester - $term_id)/2);
|
||||
}
|
||||
else {
|
||||
$studienjahr = date("Y") - intval(($auth->semester - $term_id)/2);
|
||||
}
|
||||
|
||||
$studienjahr .= "/" . date("y", mktime(0,0,0,1,1,$studienjahr+1));
|
||||
}
|
||||
// write out the menu for kreuzerltool (campus/lehre/effort
|
||||
function write_menu($menu, $course_id, $lesson, $term_id, $module = "", $stj = 0) {
|
||||
if ($stj == 0)
|
||||
$stj = get_studienjahr();
|
||||
print "
|
||||
<form method=\"post\" action=\"#page\">
|
||||
<table border=0 cellpadding=1 cellspacing=0 width=600>
|
||||
<tr>
|
||||
<td>
|
||||
<table border=0 width=100% cellpadding=0 cellspacing=0 width=600>
|
||||
<tr>
|
||||
<td width=50%>
|
||||
<li type=square><a href=\"result_effort.php?course_id=$course_id&short=$lesson&term_id=$term_id&stj=$stj&module=$module#page\">Kreuzerlliste Statistik</a></li>
|
||||
</td>
|
||||
<td>
|
||||
<li type=square><a href=\"show_list.php?course_id=$course_id&short=$lesson&term_id=$term_id&stj=$stj&module=$module#page\">Anwesenheits-
|
||||
und <br> Übersichtstabelle</a></li></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<li type=square><a href=\"create_stb.php?course_id=$course_id&short=$lesson&term_id=$term_id&stj=$stj&module=$module#page\">Kreuzerllisten anlegen <br> und verwalten</a></li></td>
|
||||
<td>
|
||||
<li type=square><a href=\"edit_list.php?course_id=$course_id&short=$lesson&term_id=$term_id&stj=$stj&module=$module#page\">Studentenpunkte <br> verwalten</a></li></td></tr>
|
||||
<tr>
|
||||
<td colspan=2> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=200 class=light valign=middle height=19>
|
||||
$menu</td>
|
||||
<td align=right class=light>Studienjahr: <select name=stj size=1 onChange=document.location.href='$PHP_SELF?course_id=$course_id&short=$lesson&term_id=$term_id&module=$module&stj='+document.forms[0].stj.options[document.forms[0].stj.options.selectedIndex].value;>";
|
||||
$k = 0;
|
||||
// einfügen eines neuen Studienjahres ab 1.Juli bis 31.Dezember
|
||||
if (date("n") >= 7) {
|
||||
$d = date("Y") . "/" . date("y", mktime(0,0,0,1,1,date("Y")+1));
|
||||
|
||||
echo "<option value='$d'";
|
||||
if ($d == $stj)
|
||||
echo "selected";
|
||||
echo ">$d</option>";
|
||||
}
|
||||
|
||||
// vergangene Studienjahre seit 2003/04
|
||||
for ($i = date("y")+0, $j = date("Y")-1; $i >= 3, $j >= 2002; $i--,$j--)
|
||||
{
|
||||
$nextYear = $i;
|
||||
$year = $j;
|
||||
// add a spacing 0
|
||||
if ($nextYear < 10)
|
||||
$nextYear = "0$nextYear";
|
||||
echo "<option value=\"$year/$nextYear\"";
|
||||
echo ($stj == ($year."/".$nextYear))?"selected":"";
|
||||
echo ">$year/$nextYear</option>";
|
||||
}
|
||||
print <<<EOF
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2> </td>
|
||||
</tr>
|
||||
</table></td></tr>
|
||||
</table></td>
|
||||
</tr></table>
|
||||
</form>
|
||||
|
||||
EOF;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @params inputString - the String to be formatted
|
||||
* @return the formatted String
|
||||
*/
|
||||
function format($inputString) {
|
||||
$inputString = stripslashes($inputString);
|
||||
return str_replace("\n", "<br>",$inputString);
|
||||
}
|
||||
|
||||
|
||||
function get_lectors($course_id, $term_id, $short) {
|
||||
if ($course_id && $term_id && $short) {
|
||||
$sql = "SELECT DISTINCT on (bezeichnung,nachname) bezeichnung, studiengang_kz, semester, vornamen, nachname, email, uid FROM lehre.tbl_lehrfachzuteilung JOIN tbl_person ON uid = lektor_uid WHERE studiengang_kz='$course_id' AND semester='$term_id' AND lehrfachzuteilung_kurzbz = '$short' AND tbl_person.aktiv=TRUE ORDER BY bezeichnung, nachname";
|
||||
//$sql_query = "SELECT DISTINCT ON(uid), vornamen, nachname,
|
||||
// titel FROM lehre.tbl_lehrfachzuteilung, tbl_person,
|
||||
//tbl_mitarbeiter WHERE tbl_person.uid =
|
||||
//lehre.tbl_lehrfachzuteilung.lektor_uid AND
|
||||
//lehre.tbl_lehrfachzuteilung.studiengang_kz='$course_id'
|
||||
//AND lehre.tbl_lehrfachzuteilung.semester='$term_id'
|
||||
//AND LOWER(lehre.tbl_lehrfachzuteilung.lehrfachzuteilung_kurzbz)='$short'
|
||||
//AND lehre.tbl_lehrfachzuteilung.aktiv = true
|
||||
//ORDER BY nachname";
|
||||
|
||||
$result_lectors = new pgRS($sql);
|
||||
}
|
||||
$num_rows_lectors = $result_lectors->num;
|
||||
$row_email = array();
|
||||
$row_vornamen = array();
|
||||
$row_nachname = array();
|
||||
$row_titel = array();
|
||||
for($i = 0; $i < $num_rows_lectors; $i++)
|
||||
{
|
||||
$row_email[] = $result_lectors->arr[$i]["emailtw"];
|
||||
$row_vornamen[] = $result_lectors->arr[$i]["vornamen"];
|
||||
$row_nachname[] = $result_lectors->arr[$i]["nachname"];
|
||||
$row_titel[] = $result_lectors->arr[$i]["titel"];
|
||||
|
||||
}
|
||||
$ret = "";
|
||||
for ($i = 0; $i < count($row_email); $i++)
|
||||
{
|
||||
$ret .= "$row_titel[$i] $row_vornamen[$i] $row_nachname[$i]";
|
||||
if ($i < count($row_email)-1)
|
||||
$ret .= ", ";
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function get_person($bezeichnung, $course_id) {
|
||||
$sql = "SELECT titel, vornamen, nachname, bezeichnung FROM tbl_funktion, public.tbl_person JOIN tbl_personfunktion ON (tbl_personfunktion.uid = tbl_person.uid) WHERE tbl_personfunktion.funktion_kurzbz = tbl_funktion.funktion_kurzbz AND bezeichnung='$bezeichnung' AND tbl_personfunktion.studiengang_kz='$course_id'";
|
||||
$rs = new pgRS($sql);
|
||||
$arr = $rs->arr[0];
|
||||
$ret = $arr["titel"]." " . $arr["vornamen"]." " . $arr["nachname"];
|
||||
return $ret;
|
||||
}
|
||||
function create_version($user, $info_data) {
|
||||
$id = 0;
|
||||
$info_id = 0;
|
||||
$version_id = 0;
|
||||
|
||||
$ects_points = $info_data["ects_credits"];
|
||||
$learning_language = $info_data["sprache"];
|
||||
$wochenstunden = $info_data["hours"];
|
||||
$course_id = $info_data["course_id"];
|
||||
$term_id = $info_data["term_id"];
|
||||
$short = $info_data["short"];
|
||||
$studienjahr = $info_data["studienjahr"];
|
||||
$fachbereich = $info_data["fachbereich"];
|
||||
$fachbereichsleiter = $info_data["fachbereichsleiter"];
|
||||
$fachbereichskoordinator = $info_data["fachbereichskoordinator"];
|
||||
$lehrender = $info_data["lehrender"];
|
||||
|
||||
$sql = "INSERT INTO lv_infos (ects_credits,
|
||||
sprache, hours, studienjahr, fachbereich,
|
||||
fachbereichsleiter, fachbereichskoordinator, lehrender) VALUES
|
||||
($ects_points, $learning_language,
|
||||
$wochenstunden, '$studienjahr',
|
||||
'$fachbereich', '$fachbereichsleiter',
|
||||
'$fachbereichskoordinator', '$lehrender')";
|
||||
$rs = new myRS($sql);
|
||||
$info_id = $rs->iid;
|
||||
if ($info_id) {
|
||||
$sql = "SELECT max(version) as version FROM lv_versions
|
||||
WHERE studiengang_kz = $course_id AND
|
||||
short = '$short' AND term_id = $term_id";
|
||||
$rs = new myRS($sql);
|
||||
$max_version = $rs->arr[0]["version"];
|
||||
$sql ="INSERT INTO lv_versions (studiengang_kz, term_id,
|
||||
short, lector_uid, version,
|
||||
status, info_id, date_created, date_modified)
|
||||
VALUES ($course_id, $term_id, '$short',
|
||||
'$user', " . ($max_version +1).", 0,$info_id," .time() .", " . time().")";
|
||||
$rs = new myRS($sql);
|
||||
$version_id = $rs->iid;
|
||||
}
|
||||
return array($version_id, $info_id);
|
||||
} // eof create_version
|
||||
|
||||
function get_version($version_id) {
|
||||
$sql = "SELECT * FROM lv_versions v, lv_infos i
|
||||
WHERE v.id = $version_id AND v.info_id = i.id";
|
||||
$rs = new myRS($sql);
|
||||
return array(
|
||||
$rs->arr[0]["ects_credits"]/10,
|
||||
$rs->arr[0]["sprache"],
|
||||
$rs->arr[0]["hours"]/10,
|
||||
$rs->arr[0]["info_id"],
|
||||
$rs->arr[0]["content_de_id"],
|
||||
$rs->arr[0]["content_en_id"],
|
||||
$rs->arr[0]["date_created"],
|
||||
$rs->arr[0]["date_modified"],
|
||||
$rs->arr[0]["studienjahr"],
|
||||
$rs->arr[0]["fachbereich"],
|
||||
$rs->arr[0]["fachbereichsleiter"],
|
||||
$rs->arr[0]["fachbereichskoordinator"],
|
||||
$rs->arr[0]["lehrender"],
|
||||
$rs->arr[0]["studiengang_kz"],
|
||||
$rs->arr[0]["term_id"],
|
||||
$rs->arr[0]["short"]
|
||||
);
|
||||
|
||||
} // eof get_version
|
||||
|
||||
|
||||
// updates the record with info_id in lv_infos
|
||||
function update_version($user, $info_data) {
|
||||
$id = 0;
|
||||
$version_id = 0;
|
||||
$ects_points = $info_data["ects_credits"];
|
||||
$learning_language = $info_data["sprache"];
|
||||
$wochenstunden = $info_data["hours"];
|
||||
$info_id = $info_data["info_id"];
|
||||
$studienjahr = $info_data["studienjahr"];
|
||||
$fachbereich = $info_data["fachbereich"];
|
||||
$fachbereichsleiter = $info_data["fachbereichsleiter"];
|
||||
$fachbereichskoordinator = $info_data["fachbereichskoordinator"];
|
||||
$lehrender = $info_data["lehrender"];
|
||||
$version_id = $info_data["version_id"];
|
||||
|
||||
$sql = "UPDATE lv_infos SET ects_credits = $ects_points,
|
||||
sprache = $learning_language,
|
||||
hours = $wochenstunden,
|
||||
studienjahr = '$studienjahr',
|
||||
fachbereich = '$fachbereich',
|
||||
fachbereichsleiter = '$fachbereichsleiter',
|
||||
fachbereichskoordinator = '$fachbereichskoordinator',
|
||||
lehrender = '$lehrender'
|
||||
WHERE id = $info_id";
|
||||
$rs = new myRS($sql);
|
||||
$sql = "UPDATE lv_versions SET date_modified = " .time() .
|
||||
" WHERE id = $version_id";
|
||||
$rs = new myRS($sql);
|
||||
} // eof update_version
|
||||
|
||||
|
||||
// saves a version to be displayed in LV infos freigeben
|
||||
function save_version($version_id) {
|
||||
$sql = "UPDATE lv_versions SET status = 1 WHERE id = $version_id";
|
||||
$rs = new myRS($sql);
|
||||
}
|
||||
|
||||
// inserts a record into lv_content_$lang and
|
||||
// update lv_versions.content_$lang_id
|
||||
function create_content($lang, $version_id, $info_data) {
|
||||
$arr_values = array_values($info_data);
|
||||
$keys = join(", ", array_keys($info_data));
|
||||
|
||||
for ($i = 0; $i < count($arr_values)-1;$i++) {
|
||||
$values .= "'" . $arr_values[$i] . "', ";
|
||||
}
|
||||
$values .= "'" . $arr_values[count($arr_values)-1] ."'";
|
||||
$sql = "INSERT INTO lv_content_$lang ($keys) VALUES ($values)";
|
||||
$rs = new myRS($sql);
|
||||
$content_id = $rs->iid;
|
||||
|
||||
$sql = "UPDATE lv_versions SET content_" . $lang . "_id =
|
||||
$content_id WHERE id = $version_id";
|
||||
$rs = new myRS($sql);
|
||||
|
||||
return $content_id;
|
||||
} // eof create_content
|
||||
|
||||
// update_content updates the table lv_content_$lang
|
||||
function update_content($lang, $id, $info_data) {
|
||||
$sql = "UPDATE lv_content_$lang SET ";
|
||||
|
||||
$keys = array_keys($info_data);
|
||||
$values = array_values($info_data);
|
||||
|
||||
for ($i = 0; $i < count($values); $i++) {
|
||||
$sql .= $keys[$i] ." = '" . $values[$i] . "'";
|
||||
if ($i < count($values)-1) $sql .= ", ";
|
||||
}
|
||||
$sql .= " WHERE id = $id";
|
||||
$rs = new myRS($sql);
|
||||
} // eof update_content
|
||||
function get_content($lang, $content_id, $fields) {
|
||||
$sql = "SELECT " . join (", ", $fields) . " FROM
|
||||
lv_content_$lang WHERE id = $content_id";
|
||||
$rs = new myRS($sql);
|
||||
return $rs->arr[0];
|
||||
} // eof get_content
|
||||
|
||||
function write_log($lektor_uid, $action) {
|
||||
$sql = "INSERT INTO lv_log (lektor_uid, action, datum)" .
|
||||
" VALUES ('$lektor_uid', '$action', " . time() .")";
|
||||
$rs = new myRS($sql);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* function write_ects_menu($menu = 0, $course_id, $term_id, $short, $lang) {
|
||||
*
|
||||
* if ($menu == 1) $menu_name = "LV-Infos anzeigen";
|
||||
*
|
||||
* print <<<EOF
|
||||
* <form method="get" action="view_$lang.php?menu=$menu" name="foo">
|
||||
<input type="hidden" name="course_id" value="$course_id" />
|
||||
<input type="hidden" name="term_id" value="$term_id" />
|
||||
<input type="hidden" name="menu" value="$menu" />
|
||||
<table border="0" width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width=20> </td>
|
||||
<td width="357"><li><font size="2" face="Arial, Helvetica, sans-serif"><a class=Item2 href="view_$lang.php?menu=1&course_id=$course_id&short=$short&term_id=$term_id">LV-Infos - anzeigen</a>
|
||||
|
||||
</font></td>
|
||||
<td width="396"><li><font size="2" face="Arial, Helvetica, sans-serif"><a class=Item2 href="edit.php?menu=2&course_id=$course_id&short=$short&term_id=$term_id">LV-Infos - erstellen / bearbeiten</a>
|
||||
|
||||
</font></td>
|
||||
<td width="280"><li><font size="2" face="Arial, Helvetica, sans-serif"><a class=Item2 href="publish.php?course_id=$course_id&short=$short&term_id=$term_id">LV-Infos - freigeben</a></td>
|
||||
<td width="280"><li><font size="2" face="Arial, Helvetica, sans-serif"><a class=Item2 href="index.php?menu=5&course_id=$course_id&short=$short&term_id=$term_id">LV-Infos - Feedback</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=20> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
EOF;
|
||||
|
||||
if ($menu_name) {
|
||||
print <<<EOF
|
||||
<tr>
|
||||
<td width="100%" class="inner"><a name="page"></a>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0 width="100%">
|
||||
<tr>
|
||||
<td width=400><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">
|
||||
$menu_name
|
||||
</font></td>
|
||||
<td width="50%" align="center">
|
||||
Lehrfach: <select name="short" size="1" onChange="document.foo.submit();" >
|
||||
<option value="">Bitte Lehrfach auswählen</option>
|
||||
EOF;
|
||||
if ($course_id && $term_id) {
|
||||
$sql = "SELECT DISTINCT bezeichnung, lehrfachzuteilung_kurzbz FROM lehre.tbl_lehrfachzuteilung WHERE studiengang_kz=$course_id AND semester=$term_id ORDER BY bezeichnung";
|
||||
$rs = new pgRS($sql);
|
||||
for ($i = 0; $i < $rs->num; $i++) {
|
||||
echo "<option value='" . $rs->arr[$i]["lehrfachzuteilung_kurzbz"] .
|
||||
"' ";
|
||||
if ($short==$rs->arr[$i]["lehrfachzuteilung_kurzbz"])
|
||||
echo " selected";
|
||||
echo ">";
|
||||
echo $rs->arr[$i]["bezeichnung"];
|
||||
echo "</option>";
|
||||
}
|
||||
|
||||
}
|
||||
echo '</select></td>
|
||||
<td align="right" class="inner" valign="middle" width=300>';
|
||||
if ($menu != 2) {
|
||||
if ($lang == "" || $lang!="en") {
|
||||
* echo "[Deutsch]";
|
||||
* } else {
|
||||
* echo "<a class=Item2 href='view_de.php?course_id=$course_id&short=$short&term_id=$term_id&menu=$menu&lang=de'>[Deutsch]</a>";
|
||||
* }
|
||||
* if ($lang == "en") {
|
||||
* echo "[English]";
|
||||
* } else {
|
||||
* echo "<a class=Item2 href='view_en.php?course_id=$course_id&short=$short&term_id=$term_id&menu=$menu&lang=en'>[English]</a>";
|
||||
* }
|
||||
* } // eof menu=2
|
||||
* echo '</td>
|
||||
* </tr></table></td>
|
||||
* </tr>';
|
||||
* }
|
||||
* echo '<tr>
|
||||
* <td width="100%" align="center"> </td></tr></table></form>';
|
||||
* }
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
// write a menu for a quicker navigation in the ects - course contents program
|
||||
function write_ects_quick_menu($course_id, $term_id, $short, $p, $version_id = 0, $info_id = 0, $content_de_id = 0, $content_en_id = 0) {
|
||||
if ($p > 0) {
|
||||
print '<table style="border:1px solid black"><tr><th>Schnellnavigation</th></tr><tr><td valign=top>
|
||||
<!-- MENU FUER NAVIGATION //-->';
|
||||
static $headlines = array("", "Allgemeine Infos", "Inhalte DE", "Prüfung DE", "Inhalte EN", "Prüfung EN", "Beenden");
|
||||
for ($i = 1; $i < count($headlines); $i++) {
|
||||
echo "
|
||||
$i <a href=\"edit_$i.php?menu=2&course_id=$course_id&term_id=$term_id&short=$short&version_id=$version_id&info_id=$info_id&content_de_id=$content_de_id&content_en_id=$content_en_id&quick=1\">";
|
||||
if ($i==$p) echo "<b>";
|
||||
echo $headlines[$i];
|
||||
if ($i==$p) echo "</b>";
|
||||
echo "</a><br>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// this function returns the dictionary entry for the keyword in the
|
||||
// given language
|
||||
function dict($lang = "de", $key = "") {
|
||||
static $dictionary = array (
|
||||
"back" => array("de" => "Zurück", "en" => "Back"),
|
||||
"LVInfos" => array("de" => "LV - Informationen", "en" => "Course Description"),
|
||||
"allCourses" => array("de" => "Alle Studiengänge", "en" => "All Courses"),
|
||||
"availCourses" => array("de" => "Vorhandene Lehrfächer in ", "en" => "Available Courses in "),
|
||||
"term" => array("de" => "Semester", "en" => "term"),
|
||||
"noinfo" => array("de" => "Keine Informationenen verfügbar", "en" => "No course information available")
|
||||
|
||||
);
|
||||
|
||||
return $dictionary[$key][$lang];
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,110 @@
|
||||
<?php
|
||||
/*
|
||||
$Header: /Pfad/Kodierrichtlinien.tex,v 1.2 2004/02/29 17:05:38 pam Exp $
|
||||
$Log: Kodierrichtlinien.tex,v $
|
||||
Revision 1.2 2004/02/29 17:05:38 pam
|
||||
Fehler in Umlauten beseitigt.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class ects_sync
|
||||
*
|
||||
* @author Andreas Österreicher
|
||||
*
|
||||
* @date 30.9.2005
|
||||
*
|
||||
* @version $Revision: 1.2 $
|
||||
*
|
||||
* @brief Enthält Methoden für die ECTS Syncronisation
|
||||
*/
|
||||
|
||||
|
||||
class ects_sync
|
||||
{
|
||||
var $erg;
|
||||
var $connection;
|
||||
|
||||
/********************************************************************
|
||||
* @brief Konstruktor
|
||||
*
|
||||
* @param $conn Connection zur DB
|
||||
********************************************************************/
|
||||
function ects_sync($conn)
|
||||
{
|
||||
$this->connection=$conn;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Überprüft ob der Fachbereich existiert
|
||||
*
|
||||
* @param $fachb Fachbereichsbezeichnung
|
||||
********************************************************************/
|
||||
function check_fachbereich($fachb)
|
||||
{
|
||||
$sql_query = "SELECT * FROM tbl_fachbereich where bezeichnung='$fachb' OR kurzbz='$fachb'";
|
||||
|
||||
$result = pg_exec($this->connection, $sql_query);
|
||||
|
||||
if($row=pg_fetch_object($result))
|
||||
$this->erg = $row->fachbereich_id;
|
||||
else
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Überprüft ob der Studiengang existiert
|
||||
*
|
||||
* @param $stg Studiengangs Kurzzeichen
|
||||
********************************************************************/
|
||||
function check_studiengang($stg)
|
||||
{
|
||||
$sql_query = "SELECT * FROM tbl_studiengang where studiengang_kz = $stg";
|
||||
|
||||
$result = pg_exec($this->connection, $sql_query);
|
||||
|
||||
if(pg_numrows($result)>0)
|
||||
$this->erg = $stg;
|
||||
else
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
/********************************************************************
|
||||
* @brief Überprüft ob das Lehrfach existiert
|
||||
*
|
||||
* @param $lehrf LehrfachsKurzbz
|
||||
* $stg Studiengang
|
||||
* $sem Semester
|
||||
********************************************************************/
|
||||
function check_lehrfach($lehrf, $stg, $sem)
|
||||
{
|
||||
$sql_query = "SELECT * FROM tbl_lehrfach where kurzbz = upper('$lehrf') AND studiengang_kz=$stg AND semester=$sem";
|
||||
|
||||
$result = pg_exec($this->connection, $sql_query);
|
||||
|
||||
if($row=pg_fetch_object($result))
|
||||
$this->erg = $row->lehrfach_nr;
|
||||
else
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
* @brief Überprüft das Semester
|
||||
*
|
||||
* @param $sem Semster
|
||||
********************************************************************/
|
||||
function check_semester($sem)
|
||||
{
|
||||
if(is_numeric($sem) AND $sem<10)
|
||||
$this->erg = $sem;
|
||||
else
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,315 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Eine Einheit fasst mehrere Studenten zusammen. Die Besonderheit ist,
|
||||
* dass die Studenten aus unterschiedlichen Studiengaengen stammen koennen.
|
||||
* Das wird z.B. für die Freifaecher benoetigt.
|
||||
* @author Christian Paminger, Werner Masik (werner@gefi.at)
|
||||
* @version 1.0
|
||||
* @created 22-Okt-2004 11:50:18
|
||||
* @updated 28.10.2004 (WM)
|
||||
*/
|
||||
class einheit
|
||||
{
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $kurzbz;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $stg_kz;
|
||||
/**
|
||||
* @var string nur zur info beim Suchergebnis, wird nicht gespeichert
|
||||
*/
|
||||
var $stg_kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $bezeichnung;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $semester;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $typ;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $mailgrp_kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $errormsg;
|
||||
|
||||
/**
|
||||
* @var DB-Resource
|
||||
*/
|
||||
var $conn;
|
||||
|
||||
function einheit($conn,$kurzbz='')
|
||||
{
|
||||
$this->conn = $conn;
|
||||
|
||||
if (strlen($kurzbz)>0)
|
||||
{
|
||||
$this->kurzbz=$kurzbz;
|
||||
$this->load();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Speichert die Einheit in der Datenbank. Bei Fehler ist der Rueckgabewert
|
||||
* 'false' und die Fehlermeldung steht in 'errormsg'. INSERT oder DELETE wird
|
||||
* durch 'new' bestimmt.
|
||||
* @param string $kurzbz_new Kurzbezeichnung ist optional
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function save($kurzbz_new='')
|
||||
{
|
||||
if (is_null($this->conn))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (strlen($this->kurzbz)==0)
|
||||
{
|
||||
$this->errormsg="<i>kurzbz</i> nicht gesetzt";
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->new)
|
||||
{
|
||||
if (is_numeric($this->semester)) $semester=$this->semester;
|
||||
else $semester='NULL';
|
||||
if (is_numeric($this->typ)) $typ=$this->typ;
|
||||
else $typ='NULL';
|
||||
if(!strlen($this->mailgrp_kurzbz)>0)
|
||||
$this->mailgrp_kurzbz='NULL';
|
||||
$qry="insert into tbl_einheit(einheit_kurzbz,studiengang_kz,bezeichnung,semester,typ,mailgrp_kurzbz) ".
|
||||
"values('".$this->kurzbz."','".$this->stg_kz."','".$this->bezeichnung."',$semester,$typ,$this->mailgrp_kurzbz)";
|
||||
} else
|
||||
{
|
||||
if (is_numeric($this->semester)) $semester='semester='.$this->semester;
|
||||
else $semester='semester=NULL';
|
||||
if (is_numeric($this->typ)) $typ='typ='.$this->typ;
|
||||
else $typ='NULL';
|
||||
if(!strlen($this->mailgrp_kurzbz)>0)
|
||||
$this->mailgrp_kurzbz='mailgrp_kurzbz=NULL';
|
||||
else
|
||||
$this->mailgrp_kurzbz="mailgrp_kurzbz='$this->mailgrp_kurzbz'";
|
||||
|
||||
$qry="update tbl_einheit set studiengang_kz=".$this->stg_kz.",bezeichnung='".$this->bezeichnung."',".
|
||||
"$semester,$typ,".$this->mailgrp_kurzbz.",einheit_kurzbz='".(strlen($kurzbz_new)>0?$kurzbz_new:$this->kurzbz)."' ".
|
||||
"where einheit_kurzbz='".$this->kurzbz."'";
|
||||
|
||||
}
|
||||
//echo $qry;
|
||||
if(!($erg=pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function load($kurzbz='')
|
||||
{
|
||||
// optional: kurzbz setzen
|
||||
if (strlen($uid)>0)
|
||||
$this->kurzbz=$kurzbz;
|
||||
// uid vorhanden?
|
||||
if (strlen($this->kurzbz)==0) {
|
||||
$this->errormsg='<i>einheit_kurzbz</i> nicht gesetzt';
|
||||
return false;
|
||||
}
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
$qry="select einheit_kurzbz,studiengang_kz,bezeichnung,semester,typ, mailgrp_kurzbz ".
|
||||
"from tbl_einheit ".
|
||||
"where einheit_kurzbz='".$this->kurzbz."'";
|
||||
|
||||
if(!($erg=pg_exec($this->conn, $qry))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
if($num_rows!=1) {
|
||||
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
|
||||
return false;
|
||||
}
|
||||
$row=pg_fetch_object($erg,0);
|
||||
|
||||
$this->stg_kz=$row->studiengang_kz;
|
||||
$this->bezeichnung=$row->bezeichnung;
|
||||
$this->semester=$row->semester;
|
||||
$this->typ=$row->typ;
|
||||
$this->mailgrp_kurzbz=$row->mailgrp_kurzbz;
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht die Funktion aus der Datenbank. Bei Fehler ist der Rueckgabewert
|
||||
* 'false' und die Fehlermeldung steht in 'errormsg'.
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function delete()
|
||||
{
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
$qry="delete from tbl_einheit where einheit_kurzbz='".$this->kurzbz."'";
|
||||
|
||||
if(!($erg=pg_exec($this->conn, $qry))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function addStudent($uid) {
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
$qry="insert into tbl_einheitstudent(einheit_kurzbz,uid,updateamum,updatevon) ".
|
||||
"values('".$this->kurzbz."','".$uid."',now(),'".$_SERVER['PHP_AUTH_USER']."')";
|
||||
|
||||
if(!($erg=pg_exec($this->conn, $qry))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function deleteStudent($uid) {
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
$qry="delete from tbl_einheitstudent ".
|
||||
"where einheit_kurzbz='".$this->kurzbz."' and uid='$uid'";
|
||||
|
||||
if(!($erg=pg_exec($this->conn, $qry))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Alle Einheiten zurueckgeben
|
||||
* @return array Array der einheiten
|
||||
*/
|
||||
function getAll($studiengang_kz='')
|
||||
{
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
if (strlen($studiengang_kz)>0)
|
||||
{
|
||||
$where=" where tbl_einheit.studiengang_kz='".$studiengang_kz."' ";
|
||||
} else
|
||||
{
|
||||
$where="";
|
||||
}
|
||||
$qry="select tbl_einheit.*,tbl_studiengang.kurzbz from tbl_einheit join tbl_studiengang using(studiengang_kz) ".
|
||||
"$where order by einheit_kurzbz;";
|
||||
if(!($erg=pg_exec($this->conn, $qry))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
$result=array();
|
||||
for($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($erg,$i);
|
||||
$l=new einheit($this->conn);
|
||||
$l->kurzbz=$row->einheit_kurzbz;
|
||||
$l->stg_kz=$row->studiengang_kz;
|
||||
$l->stg_kurzbz=$row->kurzbz;
|
||||
$l->bezeichnung=$row->bezeichnung;
|
||||
$l->semester=$row->semester;
|
||||
$l->typ=$row->typ;
|
||||
$l->mailgrp_kurzbz=$row->mailgrp_kurzbz;
|
||||
$result[]=$l;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liste aller Studenten zurueckgeben
|
||||
* @param string $studiengang_kz optional
|
||||
* @return array Array mit allen Studenten, false bei fehler
|
||||
*/
|
||||
function getStudenten($studiengang_kz='')
|
||||
{
|
||||
if (is_null($this->conn)) {
|
||||
return false;
|
||||
}
|
||||
if (strlen($studiengang_kz)>0)
|
||||
{
|
||||
$where=" and tbl_einheit.studiengang_kz='".$studiengang_kz."' ";
|
||||
} else
|
||||
{
|
||||
$where="";
|
||||
}
|
||||
$qry="select einheit_kurzbz,uid ".
|
||||
"from tbl_einheitstudent join tbl_student using(uid) join tbl_person using(uid) ".
|
||||
" join tbl_einheit using (einheit_kurzbz) ".
|
||||
"where einheit_kurzbz='".$this->kurzbz."' $where ".
|
||||
"order by upper(tbl_person.nachname),upper(tbl_person.vornamen)";
|
||||
|
||||
if(!($erg=pg_exec($this->conn, $qry))) {
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
$result=array();
|
||||
for($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=pg_fetch_object($erg,$i);
|
||||
$l=new student($this->conn,$row->uid);
|
||||
$result[]=$l;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert die Anzahl der Studenten in einer Einheit
|
||||
* @param string kurzbzlang
|
||||
* @return anzahl der Studenten
|
||||
*/
|
||||
function countStudenten($einheit_kurzbz)
|
||||
{
|
||||
$qry = "Select count(*) as anzahl from tbl_einheitstudent where einheit_kurzbz='$einheit_kurzbz'";
|
||||
if($result=pg_query($this->conn,$qry))
|
||||
{
|
||||
if($row=pg_fetch_object($result))
|
||||
return $row->anzahl;
|
||||
else
|
||||
{
|
||||
$this->errormsg = pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
|
||||
class fachbereich
|
||||
{
|
||||
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $id;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $bezeichnung;
|
||||
/**
|
||||
* @var string;
|
||||
*/
|
||||
var $farbe;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $studiengang_kz;
|
||||
/**
|
||||
* @var boolean default true
|
||||
*/
|
||||
var $boolean = true;
|
||||
/**
|
||||
*
|
||||
* @var studiengang_kurzbz
|
||||
*/
|
||||
var $studiengang_kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $errormsg;
|
||||
/**
|
||||
* @var resource
|
||||
*/
|
||||
var $conn;
|
||||
|
||||
|
||||
function fachbereich($conn)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Alle Fachbereiche zurückgeben
|
||||
* @return array mit Fachbereichen oder false=fehler
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
if (is_null($this->conn))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
$qry = "select fachbereich_id,tbl_fachbereich.kurzbz,tbl_fachbereich.bezeichnung,tbl_fachbereich.farbe,tbl_fachbereich.studiengang_kz,".
|
||||
"tbl_studiengang.kurzbz as studiengang_kurzbz ".
|
||||
"from tbl_fachbereich join tbl_studiengang using(studiengang_kz) ".
|
||||
"order by tbl_Fachbereich.kurzbz";
|
||||
//echo $qry;
|
||||
if (!($erg = pg_exec($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$result = array();
|
||||
$num_rows = pg_numrows($erg);
|
||||
for ($i = 0; $i < $num_rows; $i ++)
|
||||
{
|
||||
// Record holen
|
||||
$row = pg_fetch_object($erg, $i);
|
||||
// Instanz erzeugen
|
||||
$fb = new fachbereich($this->conn);
|
||||
$fb->id = $row->fachbereich_id;
|
||||
$fb->kurzbz = $row->kurzbz;
|
||||
$fb->bezeichnung = $row->bezeichnung;
|
||||
$fb->farbe = $row->farbe;
|
||||
$fb->studiengang_kz = $row->studiengang_kz;
|
||||
$fb->studiengang_kurzbz = $row->studiengang_kurzbz;
|
||||
// in array speichern
|
||||
$result[] = $fb;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,355 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse Adresse (FAS-Online)
|
||||
* @create 13-03-2006
|
||||
*/
|
||||
|
||||
class adresse
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var adresse Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
var $adresse_id; // @var integer
|
||||
var $bismeldeadresse; // @var boolean
|
||||
var $gemeinde; // @var string
|
||||
var $name; // @var string
|
||||
var $nation; // @var string
|
||||
var $ort; // @var string
|
||||
var $person_id; // @var integer
|
||||
var $plz; // @var string
|
||||
var $strasse; // @var string
|
||||
var $typ; // @var integer
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon=0; // @var string
|
||||
var $zustelladresse; // @var boolean
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Connection
|
||||
* $adress_id ID der Adresse die geladen werden soll (Default=null)
|
||||
*/
|
||||
function adresse($conn,$adress_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($adress_id != null)
|
||||
$this->load($adress_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Funktion mit der ID $adress_id
|
||||
* @param $adress_id ID der zu ladenden Funktion
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($adress_id)
|
||||
{
|
||||
|
||||
//Pruefen ob adress_id eine gueltige Zahl ist
|
||||
if(!is_numeric($adress_id) || $adress_id == '')
|
||||
{
|
||||
$this->errormsg = 'Adress_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Daten aus der Datenbank lesen
|
||||
$qry = "SELECT * FROM adresse WHERE adresse_pk=$adress_id";
|
||||
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->adresse_id = $row->adresse_pk;
|
||||
$this->bismeldeadresse = ($row->bismeldeadresse=='J'?true:false);
|
||||
$this->gemeinde = $row->gemeinde;
|
||||
$this->name = $row->name;
|
||||
$this->nation = $row->nation;
|
||||
$this->ort = $row->ort;
|
||||
$this->person_id = $row->person_fk;
|
||||
$this->plz = $row->plz;
|
||||
$this->strasse = $row->strasse;
|
||||
$this->typ = $row->typ;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
$this->zustelladresse = ($row->zustelladresse=='J'?true:false);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle adressen zu der Person die uebergeben wird
|
||||
* @param $pers_id ID der Person zu der die Adressen geladen werden sollen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load_pers($pers_id)
|
||||
{
|
||||
//Pruefen ob pers_id eine gueltige Zahl ist
|
||||
if(!is_numeric($pers_id) || $pers_id == '')
|
||||
{
|
||||
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Lesen der Daten aus der Datenbank
|
||||
$qry = "SELECT * FROM adresse WHERE person_fk=$pers_id";
|
||||
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$adr_obj = new adresse($this->conn);
|
||||
|
||||
$adr_obj->adresse_id = $row->adresse_pk;
|
||||
$adr_obj->bismeldeadresse = ($row->bismeldeadresse=='J'?true:false);
|
||||
$adr_obj->gemeinde = $row->gemeinde;
|
||||
$adr_obj->name = $row->name;
|
||||
$adr_obj->nation = $row->nation;
|
||||
$adr_obj->ort = $row->ort;
|
||||
$adr_obj->person_id = $row->person_fk;
|
||||
$adr_obj->plz = $row->plz;
|
||||
$adr_obj->strasse = $row->strasse;
|
||||
$adr_obj->typ = $row->typ;
|
||||
$adr_obj->updateamum = $row->creationdate;
|
||||
$adr_obj->updatevon = $row->creationuser;
|
||||
$adr_obj->zustelladresse = ($row->zustelladresse=='J'?true:false);
|
||||
|
||||
$this->result[] = $adr_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Adressen aus der Datenbank
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM adresse";
|
||||
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$adr_obj = new adresse($this->conn);
|
||||
|
||||
$adr_obj->adresse_id = $row->adresse_pk;
|
||||
$adr_obj->bismeldeadresse = ($row->bismeldeadresse=='J'?true:false);
|
||||
$adr_obj->gemeinde = $row->gemeinde;
|
||||
$adr_obj->name = $row->name;
|
||||
$adr_obj->nation = $row->nation;
|
||||
$adr_obj->ort = $row->ort;
|
||||
$adr_obj->person_id = $row->person_fk;
|
||||
$adr_obj->plz = $row->plz;
|
||||
$adr_obj->strasse = $row->strasse;
|
||||
$adr_obj->typ = $row->typ;
|
||||
$adr_obj->updateamum = $row->creationdate;
|
||||
$adr_obj->updatevon = $row->creationuser;
|
||||
$adr_obj->zustelladresse = ($row->zustelladresse=='J'?true:false);
|
||||
|
||||
$this->result[] = $adr_obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Variablen auf gueltigkeit
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function checkvars()
|
||||
{
|
||||
//Zahlenfelder pruefen
|
||||
$this->errormsg='Ein Zahlenfeld enthaelt ungueltige Zeichen';
|
||||
if(!is_numeric($this->person_id))
|
||||
{
|
||||
$this->errormsg='Person_id enthaelt ungueltige Zeichen:'.$this->person_id;
|
||||
return false;
|
||||
}
|
||||
if(!is_numeric($this->typ))
|
||||
{
|
||||
$this->errormsg='Typ enthaelt ungueltige Zeichen';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Gesamtlaenge pruefen
|
||||
$this->errormsg='Eine der Gesamtlaengen wurde ueberschritten';
|
||||
if(strlen($this->name)>255)
|
||||
{
|
||||
$this->errormsg = 'Name darf nicht länger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->strasse)>255)
|
||||
{
|
||||
$this->errormsg = 'Strasse darf nicht länger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->plz)>10)
|
||||
{
|
||||
$this->errormsg = 'Plz darf nicht länger als 10 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->ort)>255)
|
||||
{
|
||||
$this->errormsg = 'Ort darf nicht länger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->nation)>3)
|
||||
{
|
||||
$this->errormsg = 'Nation darf nicht länger als 3 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->gemeinde)>255)
|
||||
{
|
||||
$this->errormsg = 'Gemeinde darf nicht länger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz in die Datenbank
|
||||
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
|
||||
* andernfalls wird der Datensatz mit der ID in $adresse_id aktualisiert
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
//Variablen pruefen
|
||||
if(!$this->checkvars())
|
||||
return false;
|
||||
|
||||
if($this->new)
|
||||
{
|
||||
//Neuen Datensatz einfuegen
|
||||
|
||||
//naechste ID aus der Sequence holen
|
||||
$qry="SELECT nextval('adresse_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn,$qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
$this->adresse_id = $row->id;
|
||||
|
||||
$qry="INSERT INTO adresse (adresse_pk, person_fk, name, strasse, plz, typ, ort, nation, creationdate, creationuser,".
|
||||
" gemeinde, bismeldeadresse, zustelladresse) VALUES(".
|
||||
" $this->adresse_id, $this->person_id, '$this->name', '$this->strasse', '$this->plz', $this->typ, '$this->ort',".
|
||||
" '$this->nation', now(), $this->updatevon, '$this->gemeinde', '".($this->bismeldeadresse?'J':'N')."',".
|
||||
" '".($this->zustelladresse?'J':'N')."');";
|
||||
}
|
||||
else
|
||||
{
|
||||
//Updaten des bestehenden Datensatzes
|
||||
|
||||
//Pruefen ob adresse_id eine gueltige Zahl ist
|
||||
if(!is_numeric($this->adresse_id))
|
||||
{
|
||||
$this->errormsg = 'adresse_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry="UPDATE adresse SET person_fk='$this->person_id', name='$this->name', strasse='$this->strasse', plz='$this->plz',".
|
||||
" typ='$this->typ', ort='$this->ort', nation='$this->nation', gemeinde='$this->gemeinde',".
|
||||
" bismeldeadresse='".($this->bismeldeadresse?'J':'N')."', zustelladresse='".($this->zustelladresse?'J':'N')."'".
|
||||
" WHERE adresse_pk='$this->adresse_id'";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht den Datenensatz mit der ID die uebergeben wird
|
||||
* @param $adress_id ID die geloescht werden soll
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($adress_id)
|
||||
{
|
||||
//Pruefen ob adresse_id eine gueltige Zahl ist
|
||||
if(!is_numeric($adress_id) || $adress_id == '')
|
||||
{
|
||||
$this->errormsg = 'adresse_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//loeschen des Datensatzes
|
||||
$qry="DELETE FROM adresse WHERE adresse_pk=$adress_id;";
|
||||
|
||||
if(pg_query($this->conn,$qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim loeschen der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,182 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse ausbildungssemester (FAS-Online)
|
||||
* @create 15-03-2006
|
||||
*/
|
||||
class ausbildungssemester
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var ausbildungssemester Objekt
|
||||
|
||||
var $ausbildungssemester_id; // @var integer
|
||||
var $studiengang_id; // @var integer
|
||||
var $name; // @var string
|
||||
var $personenstatus; // @var integer
|
||||
var $semester; // @var integer
|
||||
var $updatevon=0; // @var timestamp
|
||||
var $updateamum; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Connection zur Datenbank
|
||||
* $ausbildungssemester_id ID des zu ladenden Datensatzes
|
||||
*/
|
||||
function ausbildungssemester($conn, $ausbildungssemester_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($ausbildungssemester_id != null)
|
||||
$this->load($ausbildungssemester_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Datensatz aus der Datenbank
|
||||
* @param $ausbildungssemester_id ID des zu ladenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($ausbildungssemester_id)
|
||||
{
|
||||
if(!is_numeric($ausbildungssemester_id) || $ausbildungssemester_id == '')
|
||||
{
|
||||
$this->errormsg = 'ausbildungssemester_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM ausbildungssemester WHERE ausbildungssemester_pk = '$ausbildungssemester_id';";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row=pg_fetch_object($res))
|
||||
{
|
||||
$this->ausbildungssemester_id = $row->ausbildungssemester_pk;
|
||||
$this->studiengang_id = $row->studiengang_fk;
|
||||
$this->semester = $row->semester;
|
||||
$this->name = $row->name;
|
||||
$this->personenstatus = $row->personenstatus;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle ausbildungssemester zu einem Studiengang
|
||||
* @param $studiengang_id Studiengang_id des Ausbildungssemesters
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load_stg($studiengang_id)
|
||||
{
|
||||
if(!is_numeric($studiengang_id) || $studiengang_id == '')
|
||||
{
|
||||
$this->errormsg = 'studiengang_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM ausbildungssemester WHERE studiengang_fk = '$studiengang_id' order by semester";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$ausb_obj = new ausbildungssemester($this->conn);
|
||||
|
||||
$ausb_obj->ausbildungssemester_id = $row->ausbildungssemester_pk;
|
||||
$ausb_obj->studiengang_id = $row->studiengang_fk;
|
||||
$ausb_obj->semester = $row->semester;
|
||||
$ausb_obj->name = $row->name;
|
||||
$ausb_obj->personenstatus = $row->personenstatus;
|
||||
$ausb_obj->updateamum = $row->creationdate;
|
||||
$ausb_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $ausb_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Ausbildungssemester
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM ausbildungssemester;";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$ausb_obj = new ausbildungssemester($this->conn);
|
||||
|
||||
$ausb_obj->ausbildungssemester_id = $row->ausbildungssemester_pk;
|
||||
$ausb_obj->studiengang_id = $row->studiengang_fk;
|
||||
$ausb_obj->semester = $row->semester;
|
||||
$ausb_obj->name = $row->name;
|
||||
$ausb_obj->personenstatus = $row->personenstatus;
|
||||
$ausb_obj->updateamum = $row->creationdate;
|
||||
$ausb_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $ausb_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checkt die Variablen vor dem Speichern
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function checkvars()
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
if(!checkvars())
|
||||
return false;
|
||||
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht den Datensatz mit der ID die uebergeben wurde
|
||||
* @param $ausbildungssemester_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($ausbildungssemester_id)
|
||||
{
|
||||
$this->errormsg = 'Noch nicht implementiert';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,340 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse bankverbindung (FAS-Online)
|
||||
* @create 07-03-2006
|
||||
*/
|
||||
class bankverbindung
|
||||
{
|
||||
var $conn; // @var resource DB-Handle
|
||||
var $new; // @var boolean
|
||||
var $errormsg; // @var string
|
||||
var $result = array(); // @var bankverbindung Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
var $bankverbindung_id; // @var integer
|
||||
var $person_id; // @var integer
|
||||
var $name; // @var string
|
||||
var $anschrift; // @var string
|
||||
var $blz; // @var string
|
||||
var $bic; // @var string
|
||||
var $kontonr; // @var string
|
||||
var $iban; // @var string
|
||||
var $typ; // @var integer
|
||||
var $updateamum; // @var timestamp
|
||||
var $updatevon=0; // @var string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $conn Connection zur Datenbank
|
||||
* $bank_id Zu ladende ID (Default=null)
|
||||
*/
|
||||
function bankverbindung($conn, $bank_id=null)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
||||
if(!pg_query($conn,$qry))
|
||||
{
|
||||
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
||||
return false;
|
||||
}
|
||||
if($bank_id != null)
|
||||
$this->load($bank_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die gueltigkeit der Variablen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function checkvars()
|
||||
{
|
||||
//Gesamtlaenge pruefen
|
||||
$this->errormsg = 'Eine der Maximiallaengen wurde ueberschritten';
|
||||
if(strlen($this->name)>255)
|
||||
{
|
||||
$this->errormsg = 'Name darf nicht länger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->anschrift)>255)
|
||||
{
|
||||
$this->errormsg = 'Anschrift darf nicht länger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->blz)>15)
|
||||
{
|
||||
$this->errormsg = 'BLZ darf nicht länger als 15 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->bic)>15)
|
||||
{
|
||||
$this->errormsg = 'BIC darf nicht länger als 15 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->kontonr)>25)
|
||||
{
|
||||
$this->errormsg = 'KontoNr darf nicht länger als 25 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(strlen($this->iban)>25)
|
||||
{
|
||||
$this->errormsg = 'IBAN darf nicht länger als 25 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Zahlenwerte ueberpruefen
|
||||
$this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen';
|
||||
if(!is_numeric($this->person_id)) return false;
|
||||
if(!is_numeric($this->typ)) return false;
|
||||
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
|
||||
* andernfalls wird der Datensatz mit der ID in $bankverbindung_id aktualisiert
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
//Gueltigkeit der Variablen pruefen
|
||||
if(!$this->checkvars())
|
||||
return false;
|
||||
|
||||
if($this->new)
|
||||
{
|
||||
//Neuen Datensatz einfuegen
|
||||
|
||||
//Naechste ID aus der Sequence holen
|
||||
$qry = "SELECT nextval('bankverbindung_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
$this->bankverbindung_id = $row->id;
|
||||
|
||||
$qry = "INSERT INTO bankverbindung (bankverbindung_pk, person_fk, name, anschrift, blz, bic,".
|
||||
" kontonr, iban, typ, creationdate, creationuser) VALUES(".
|
||||
" '$this->bankverbindung_id', '$this->person_id', '$this->name', '$this->anschrift',".
|
||||
" '$this->blz', '$this->bic', '$this->kontonr', '$this->iban', '$this->typ', now(), $this->updatevon);";
|
||||
}
|
||||
else
|
||||
{
|
||||
//Datensatz Updaten
|
||||
|
||||
//ID pruefen
|
||||
if(!is_numeric($this->bankverbindung_id))
|
||||
{
|
||||
$this->errormsg = 'bankverbindung_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry="UPDATE bankverbindung SET person_fk='$this->person_id', name='$this->name',".
|
||||
" anschrift='$this->anschrift', blz='$this->blz', bic='$this->bic',".
|
||||
" kontonr='$this->kontonr', iban='$this->iban', typ='$this->typ'".
|
||||
" WHERE bankverbindung_pk=$this->bankverbindung_id";
|
||||
}
|
||||
|
||||
if(pg_query($this->conn, $qry))
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht den Datensatz mit der uebergebenen ID
|
||||
* @param $bank_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function delete($bank_id)
|
||||
{
|
||||
if(!is_numeric($bank_id) || $bank_id == '')
|
||||
{
|
||||
$this->errormsg = 'bank_id muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry="DELETE FROM bankverbindung WHERE bankverbindung_pk=$bank_id";
|
||||
|
||||
if(!pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim loeschen der Daten';
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Log schreiben
|
||||
$sql = $qry;
|
||||
$qry = "SELECT nextval('log_seq') as id;";
|
||||
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
|
||||
if(pg_query($this->conn, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert die Bankverbindung mit der uebergebenen ID
|
||||
* @param $bank_id ID der bankverbindung
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load($bank_id)
|
||||
{
|
||||
if(!is_numeric($bank_id) || $bank_id == '')
|
||||
{
|
||||
$this->errormsg = 'bank_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM bankverbindung WHERE bankverbindung_pk=$bank_id";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = pg_fetch_object($res))
|
||||
{
|
||||
$this->bankverbindung_id = $row->bankverbindung_pk;
|
||||
$this->person_id = $row->person_fk;
|
||||
$this->name = $row->name;
|
||||
$this->anschrift = $row->anschrift;
|
||||
$this->blz = $row->blz;
|
||||
$this->bic = $row->bic;
|
||||
$this->kontonr = $row->kontonr;
|
||||
$this->iban = $row->iban;
|
||||
$this->typ = $row->typ;
|
||||
$this->updateamum = $row->creationdate;
|
||||
$this->updatevon = $row->creationuser;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Bankverbindungen der Person die uebergeben wird
|
||||
* @param $pers_id ID der Person
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function load_pers($pers_id)
|
||||
{
|
||||
if(!is_numeric($pers_id) || $pers_id == '')
|
||||
{
|
||||
$this->errormsg = 'pers_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM bankverbindung WHERE person_fk=$pers_id";
|
||||
|
||||
if(!$res = pg_query($this->conn, $qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$bank_obj = new bankverbindung($this->conn);
|
||||
|
||||
$bank_obj->bankverbindung_id = $row->bankverbindung_pk;
|
||||
$bank_obj->person_id = $row->person_fk;
|
||||
$bank_obj->name = $row->name;
|
||||
$bank_obj->anschrift = $row->anschrift;
|
||||
$bank_obj->blz = $row->blz;
|
||||
$bank_obj->bic = $row->bic;
|
||||
$bank_obj->kontonr = $row->kontonr;
|
||||
$bank_obj->iban = $row->iban;
|
||||
$bank_obj->typ = $row->typ;
|
||||
$bank_obj->updateamum = $row->creationdate;
|
||||
$bank_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $bank_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Bankverbindungen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM bankverbindung";
|
||||
|
||||
if(!$res = pg_query($this->conn,$qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = pg_fetch_object($res))
|
||||
{
|
||||
$bank_obj = new bankverbindung($this->conn);
|
||||
|
||||
$bank_obj->bankverbindung_id = $row->bankverbindung_pk;
|
||||
$bank_obj->person_id = $row->person_fk;
|
||||
$bank_obj->name = $row->name;
|
||||
$bank_obj->anschrift = $row->anschrift;
|
||||
$bank_obj->blz = $row->blz;
|
||||
$bank_obj->bic = $row->bic;
|
||||
$bank_obj->kontonr = $row->kontonr;
|
||||
$bank_obj->iban = $row->iban;
|
||||
$bank_obj->typ = $row->typ;
|
||||
$bank_obj->updateamum = $row->creationdate;
|
||||
$bank_obj->updatevon = $row->creationuser;
|
||||
|
||||
$this->result[] = $bank_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function getTypBezeichnung($id)
|
||||
{
|
||||
switch($id)
|
||||
{
|
||||
case 1: return 'Privatkonto';
|
||||
case 2: return 'Firmenkonto';
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,386 @@
|
||||
<?php
|
||||
/**
|
||||
* Klasse fuer Berechtigungen der User
|
||||
* @author Christian Paminger
|
||||
* @version 1.0
|
||||
* @updated 11-Feb-2004
|
||||
*/
|
||||
class benutzer
|
||||
{
|
||||
/**
|
||||
* interne userberechtigung_id (Zaehler aus DB)
|
||||
* @var integer
|
||||
*/
|
||||
var $userberechtigung_id;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $studiengang_kz;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $fachbereich_id;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $berechtigung_kurzbz;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $uid;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $studiensemester_kurzbz;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $start;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $ende;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $starttimestamp;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
var $endetimestamp;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
var $art;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
var $berechtigungen=array();
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
|
||||
var $variable;
|
||||
|
||||
var $conn; //Vilesci Connection
|
||||
/**
|
||||
* @var boolean
|
||||
*/
|
||||
var $new;
|
||||
var $errormsg;
|
||||
|
||||
function benutzer($conn)
|
||||
{
|
||||
$this->conn=$conn;
|
||||
$this->new=true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ladet die Attribute der Berechtigung aus der Datenbank. Bei Fehler ist der
|
||||
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function load($id)
|
||||
{
|
||||
// Berechtigung holen
|
||||
$sql_query="SELECT * FROM tbl_userberechtigung WHERE userberechtigung_id=$id";
|
||||
//echo $sql_query;
|
||||
if(!($erg=pg_exec($this->conn, $sql_query)))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
$num_rows=pg_numrows($erg);
|
||||
if($num_rows!=1)
|
||||
{
|
||||
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
|
||||
return false;
|
||||
}
|
||||
$row=pg_fetch_object($erg,0);
|
||||
|
||||
$this->userberechtigung_id=$row->userberechtigung_id;
|
||||
$this->studiengang_kz=$row->studiengang_kz;
|
||||
$this->fachbereich_id=$row->fachbereich_id;
|
||||
$this->berechtigung_kurzbz=$row->berechtigung_kurzbz;
|
||||
$this->uid=$row->uid;
|
||||
$this->studiensemester_kurzbz=$row->studiensemester_kurzbz;
|
||||
$this->start=$row->start;
|
||||
$this->ende=$row->ende;
|
||||
$this->art=$row->art;
|
||||
$this->new=false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean true=ok, false=fehler
|
||||
*/
|
||||
function save()
|
||||
{
|
||||
/*
|
||||
// Connection holen
|
||||
if (is_null($conn=$this->getConnection()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// Daten zur Person speichern
|
||||
|
||||
if (!person::save()) {
|
||||
$this->errormsg.="Daten zur LVA konnten nicht gespeichert werden.";
|
||||
return false;
|
||||
}
|
||||
if ($this->new) {
|
||||
$qry="INSERT INTO tbl_lehrveranstaltung(lvnr,unr,einheit_kurzbz,".
|
||||
"lektor,lehrfach_nr,studiengang_kz,fachbereich_id,semester,verband,".
|
||||
"gruppe,raumtyp,raumtypalternativ,semesterstunden,stundenblockung,".
|
||||
"wochenrythmus,start_kw,anmerkung)".
|
||||
"values(".
|
||||
"'".$this->lvnr."',".
|
||||
"'".$this->unr."',".
|
||||
"'".$this->einheit_kurzbz."',".
|
||||
"'".$this->lektor."',".
|
||||
(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
|
||||
(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
|
||||
(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
|
||||
(strlen($this->semester)>0?$this->semester:NULL).",".
|
||||
"'".$this->verband."',".
|
||||
"'".$this->gruppe."',".
|
||||
(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
|
||||
(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
|
||||
(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
|
||||
(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
|
||||
(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
|
||||
(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
|
||||
(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).",".
|
||||
")";
|
||||
} else
|
||||
{
|
||||
$qry="UPDATE tbl_lehrveranstaltung ".
|
||||
"SET lvnr='".$this->lvnr."',".
|
||||
"unr='".$this->unr."',".
|
||||
"einheit_kurzbz='".$this->einheit_kurzbz."',".
|
||||
"lektor='".$this->lehrfach_nr."',".
|
||||
"lehrfach_nr=".(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
|
||||
"studiengang_kz=".(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
|
||||
"fachbereich_id=".(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
|
||||
"semester=".(strlen($this->semester)>0?$this->semester:NULL).",".
|
||||
"verband='".$this->verband."',".
|
||||
"gruppe='".$this->gruppe."',".
|
||||
"raumtyp=".(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
|
||||
"raumtypalternativ=".(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
|
||||
"semesterstunden=".(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
|
||||
"stundenblockung=".(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
|
||||
"wochenrythmus=".(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
|
||||
"start_kw=".(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
|
||||
"anmerkung=".(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).
|
||||
" WHERE lehrveranstaltung_id='".$this->lehrveranstaltung_id."'";
|
||||
}
|
||||
//echo "<br>".$qry;
|
||||
if(!@pg_query($conn, $qry))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($conn);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Rueckgabewert ist ein Array mit den Ergebnissen. Bei Fehler false und die
|
||||
* Fehlermeldung liegt in errormsg.
|
||||
* Wenn der Parameter stg_kz NULL ist tritt einheit_kurzbzb in Kraft.
|
||||
* @param string $uid UserID
|
||||
* @return variabel Array mit LVA; <b>false</b> bei Fehler
|
||||
*/
|
||||
function getBerechtigungen($uid)
|
||||
{
|
||||
// Berechtigungen holen
|
||||
$sql_query="SELECT * FROM tbl_userberechtigung WHERE uid='$uid' AND (start<now() OR start IS NULL) AND (ende>now() OR ende IS NULL)";
|
||||
//echo $sql_query;
|
||||
if(!$erg=@pg_query($this->conn, $sql_query))
|
||||
{
|
||||
$this->errormsg=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
//$num_rows=pg_numrows($erg);
|
||||
while($row=pg_fetch_object($erg))
|
||||
{
|
||||
$b=new berechtigung($this->conn);
|
||||
$b->userberechtigung_id=$row->userberechtigung_id;
|
||||
$b->studiengang_kz=$row->studiengang_kz;
|
||||
$b->fachbereich_id=$row->fachbereich_id;
|
||||
$b->berechtigung_kurzbz=$row->berechtigung_kurzbz;
|
||||
$b->uid=$row->uid;
|
||||
$b->studiensemester_kurzbz=$row->studiensemester_kurzbz;
|
||||
$b->start=$row->start;
|
||||
if ($row->start!=null)
|
||||
$b->starttimestamp=mktime(0,0,0,substr($row->start,5,2),substr($row->start,8),substr($row->start,0,4));
|
||||
else
|
||||
$b->starttimestamp=null;
|
||||
$b->ende=$row->ende;
|
||||
if ($row->ende!=null)
|
||||
$b->endetimestamp=mktime(23,59,59,substr($row->ende,5,2),substr($row->ende,8),substr($row->ende,0,4));
|
||||
else
|
||||
$b->endetimestamp=null;
|
||||
$b->art=$row->art;
|
||||
$this->berechtigungen[]=$b;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
function isBerechtigt($berechtigung,$studiengang_kz=null,$art=null)
|
||||
{
|
||||
$timestamp=time();
|
||||
foreach ($this->berechtigungen as $b)
|
||||
{
|
||||
if($berechtigung == $b->berechtigung_kurzbz && $studiengang_kz==null && $art==null)
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
|
||||
if ($berechtigung==$b->berechtigung_kurzbz
|
||||
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0) && $art==null)
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
|
||||
if ($berechtigung==$b->berechtigung_kurzbz
|
||||
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0)
|
||||
&& strstr($b->art,$art))
|
||||
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
|
||||
{
|
||||
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt Array mit Kennzahlen der Studiengaenge sortiert zurueck.
|
||||
* Optional wird auf Berechtigung eingeschraenkt.
|
||||
* Wenn Berechtigung ueber alle Studiengaenge steht im ersten Feld 0.
|
||||
*/
|
||||
function getStgKz($berechtigung=null)
|
||||
{
|
||||
$studiengang_kz=array();
|
||||
$timestamp=time();
|
||||
|
||||
foreach ($this->berechtigungen as $b)
|
||||
if ($berechtigung==$b->berechtigung_kurzbz || $berechtigung==null)
|
||||
$studiengang_kz[]=$b->studiengang_kz;
|
||||
$studiengang_kz=array_unique($studiengang_kz);
|
||||
sort($studiengang_kz);
|
||||
return $studiengang_kz;
|
||||
}
|
||||
|
||||
/**
|
||||
* Setzt die Studiensemester Variable
|
||||
*/
|
||||
function setVariableStudiensemester($user,$stsem)
|
||||
{
|
||||
//Vorhandende Variable aendern
|
||||
$qry = "Update tbl_variable SET wert='$stsem' WHERE uid='$user' AND name='semester_aktuell'";
|
||||
if($result = pg_query($this->conn,$qry))
|
||||
{
|
||||
if(pg_affected_rows($result)==0)
|
||||
{
|
||||
//Falls Variable nicht vorhanden ist eine neue anlegen
|
||||
$qry = "INSERT INTO tbl_variable(uid, name, wert) values('$user', 'semester_aktuell', '$stsem')";
|
||||
if(pg_query($this->conn,$qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg.=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg.=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function getpossibilities($variable)
|
||||
{
|
||||
$ret = array();
|
||||
|
||||
switch($variable)
|
||||
{
|
||||
case 'semester_aktuell':
|
||||
$qry = "Select * from tbl_studiensemester order by start";
|
||||
if($result = pg_query($this->conn,$qry))
|
||||
{
|
||||
while($row=pg_fetch_object($result))
|
||||
$ret[] = $row->studiensemester_kurzbz;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function loadVariables($user)
|
||||
{
|
||||
if(!($result=@pg_query($this->conn, "SELECT * FROM tbl_variable WHERE uid='$user'")))
|
||||
{
|
||||
$this->errormsg.=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
$num_rows=@pg_numrows($result);
|
||||
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$this->variable->{$row->name}=$row->wert;
|
||||
}
|
||||
|
||||
if (!isset($this->variable->semester_aktuell))
|
||||
{
|
||||
if(!($result=@pg_query($this->conn, 'SELECT * FROM tbl_studiensemester WHERE ende>now() ORDER BY start LIMIT 1')))
|
||||
{
|
||||
$this->errormsg.=pg_errormessage($this->conn);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$num_rows=@pg_numrows($result);
|
||||
if ($num_rows>0)
|
||||
{
|
||||
$row=pg_fetch_object($result);
|
||||
$this->variable->semester_aktuell=$row->studiensemester_kurzbz;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($this->variable->db_stpl_table))
|
||||
$this->variable->db_stpl_table='stundenplan';
|
||||
|
||||
if (!isset($this->variable->fas_id))
|
||||
$this->variable->fas_id=0;
|
||||
|
||||
if (!isset($this->variable->sleep_time))
|
||||
$this->variable->sleep_time=300;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user