- Diverse Bugfixes LVA-Modul

This commit is contained in:
Andreas Österreicher
2007-03-14 16:26:30 +00:00
parent 308fd7af0d
commit 26aa64a22a
11 changed files with 275 additions and 87 deletions
-73
View File
@@ -1,73 +0,0 @@
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);
}
};
/***** Drag Observer fuer Gruppen *****/
var grpObserver=
{
onDragStart: function (evt,transferData,action)
{
var stg_kz=evt.target.getAttribute("stg_kz");
var sem=evt.target.getAttribute("sem");
var ver=evt.target.getAttribute("ver");
var grp=evt.target.getAttribute("grp");
var einheit=evt.target.getAttribute("gruppe");
var paramList= stg_kz+'&'+sem+'&'+ver+'&'+grp+'&'+gruppe;
transferData.data=new TransferData();
transferData.data.addDataForFlavour("gruppe",paramList);
}
};
var boardObserver=
{
/*canHandleMultipleItems : function()
{
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;
}
}
};
+2 -3
View File
@@ -28,8 +28,8 @@ function lehrstunde(id,idList)
}
var lehrstunden=new Array();
/***** Drag Observer fuer Lehrveranstaltungen ****
may not be used?!?
/***** Drag Observer fuer Lehrveranstaltungen *****/
//zum verplanen der LVAs im Stundenplan
var lvaObserver=
{
onDragStart: function (evt,transferData,action)
@@ -43,7 +43,6 @@ var lvaObserver=
//alert("test");
}
};
*/
/***** Drag Observer fuer Gruppen *****/
var lvbgrpDDObserver=
+2
View File
@@ -202,6 +202,8 @@ if(!$error)
$leg->verband = $_POST['verband'];
$leg->gruppe = $_POST['gruppe'];
$leg->gruppe_kurzbz = $_POST['gruppe_kurzbz'];
$leg->insertamum = date('Y-m-d H:i:s');
$leg->insertvon = $user;
if($leg->save(true))
{
+18 -1
View File
@@ -84,6 +84,12 @@ var LvLektorTreeListener =
};
// ***************** KEY Events ************************* //
// ****
// * Wird ausgefuehrt wenn eine Taste gedrueckt wird und der Focus
// * im Lehrveranstaltungs-tree ist
// * Beim Druecken von ENTF wird die markierte Lehreinheit geloescht
// * Beim Druecken von F5 wird der Lehrveranstaltungstree aktualisiert
// ****
function LvTreeKeyPress(event)
{
if(event.keyCode==46) // Entf
@@ -92,17 +98,28 @@ function LvTreeKeyPress(event)
LvTreeRefresh();
}
// ****
// * Wird ausgefuehrt wenn eine Taste gedrueckt wird und der Focus
// * im Gruppen-tree ist
// * Beim Druecken von ENTF wird die markierte Gruppenzuordnung geloescht
// ****
function LvDetailGruppenTreeKeyPress(event)
{
if(event.keyCode==46) //Entf
LeGruppeDel();
}
// ****
// * Wird ausgefuehrt wenn eine Taste gedrueckt wird und der Focus
// * im Mitarbeiter-tree ist
// * Beim Druecken von ENTF wird die markierte Mitarbeiterzuordnung geloescht
// ****
function LvDetailMitarbeiterTreeKeyPress(event)
{
if(event.keyCode==46) //Entf
LeMitarbeiterDel();
}
// ****************** FUNCTIONS ************************** //
// ****
// * Asynchroner (Nicht blockierender) Refresh des LV Trees
@@ -320,7 +337,7 @@ function LeDetailReset()
document.getElementById('lehrveranstaltung-detail-textbox-lvnr').value='';
document.getElementById('lehrveranstaltung-detail-textbox-unr').value='';
document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').value='';
document.getElementById('lehrveranstaltung-detail-checkbox-lehre').checked=false;
document.getElementById('lehrveranstaltung-detail-checkbox-lehre').checked=true;
document.getElementById('lehrveranstaltung-detail-textbox-stundenblockung').value='';
document.getElementById('lehrveranstaltung-detail-textbox-wochenrythmus').value='';
document.getElementById('lehrveranstaltung-detail-textbox-startkw').value='';
-2
View File
@@ -44,8 +44,6 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/tempusoverlay.xul.php"?>';
<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();"/>
+2
View File
@@ -123,6 +123,8 @@ function onLektorSelect()
var contentFrame=document.getElementById('iframeTimeTableWeek');
var treeLektor=document.getElementById('tree-lektor');
var uid=treeLektor.view.getCellText(treeLektor.currentIndex,"uid");
if(uid=='')
return;
//var treeVerband=document.getElementById('tree-verband');
//var stg_kz=treeVerband.view.getCellText(treeVerband.currentIndex,"stg_kz");
var daten=window.TimeTableWeek.document.getElementById('TimeTableWeekData');
+32
View File
@@ -132,6 +132,38 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/stpl-semester-overlay.xul.php"?>';
</template>
</tree>
<!-- testing - Verschachtelte Mitarbeiter Ansicht-->
<tree id="tree-lektor_verschachtelt" onselect="onLektorSelect();"
seltype="single" hidecolumnpicker="false" flex="1"
enableColumnDrag="true"
ondraggesture="nsDragAndDrop.startDrag(event,mitarbeiterDDObserver);"
datasources="../rdf/mitarbeiter_verschachtelt.rdf.php" ref="http://www.technikum-wien.at/ma/liste">
<treecols>
<treecol id="bezeichnung" 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="vorname" label="Vornamen" flex="2" 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/ma/rdf#bezeichnung"/>
<treecell label="rdf:http://www.technikum-wien.at/ma/rdf#nachname"/>
<treecell label="rdf:http://www.technikum-wien.at/ma/rdf#vorname"/>
<treecell label="rdf:http://www.technikum-wien.at/ma/rdf#uid"/>
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
<vbox id="vbox-main">
<tabbox id="tabbox-main" flex="3" orient="vertical">
<tabs orient="horizontal">
+38 -5
View File
@@ -659,14 +659,47 @@ class lehreinheit
$this->errormsg = 'Lehreinheit_id muss eine gueltige Zahl sein';
return false;
}
$qry = "DELETE FROM lehre.tbl_lehreinheit WHERE lehreinheit_id='$lehreinheit_id'";
if(pg_query($this->conn, $qry))
return true;
else
//Pruefen ob schon eine Kreuzerlliste fuer diese Lehreinheit angelegt wurde.
//Falls ja dann wird das loeschen verweigert
$qry = "SELECT count(*) as anzahl FROM campus.tbl_uebung WHERE lehreinheit_id='$lehreinheit_id'";
if($result = pg_query($this->conn, $qry))
{
$this->errormsg = pg_last_error($this->conn);
if($row = pg_fetch_object($result))
{
if($row->anzahl>0)
{
$this->errormsg = 'Zu dieser Lehreinheit wurde bereits eine Kreuzerlliste angelegt. Solange fuer eine Lehreinheit Kreuzerllisten vorhanden sind, kann diese nicht geloescht werden.';
return false;
}
else
{
//Gruppenzuteilung, Mitarbeiterzuteilung und Lehreinheit loeschen
$qry = "BEGIN;
DELETE FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id='$lehreinheit_id';
DELETE FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id='$lehreinheit_id';
DELETE FROM lehre.tbl_lehreinheit WHERE lehreinheit_id='$lehreinheit_id';
COMMIT;";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = pg_last_error($this->conn);
return false;
}
}
}
else
{
$this->errormsg = 'Fehler beim loeschen';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim loeschen';
return false;
}
}
}
+10 -2
View File
@@ -36,6 +36,10 @@ class lehreinheitgruppe
var $gruppe; // char(1)
var $gruppe_kurzbz; // varchar(16)
var $ext_id; // bigint
var $updateamum; // timestamp
var $updatevon; // varchar(16)
var $insertamum; // timestamp
var $insertvon; // varchar(16)
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine LE
@@ -170,14 +174,16 @@ class lehreinheitgruppe
if($new)
{
//ToDo ID entfernen
$qry = 'INSERT INTO lehre.tbl_lehreinheitgruppe (lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, ext_id)
$qry = 'INSERT INTO lehre.tbl_lehreinheitgruppe (lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, ext_id, insertamum, insertvon)
VALUES('.$this->addslashes($this->lehreinheit_id).','.
$this->addslashes($this->studiengang_kz).','.
$this->addslashes($this->semester).','.
$this->addslashes($this->verband).','.
$this->addslashes($this->gruppe).','.
$this->addslashes($this->gruppe_kurzbz).','.
$this->addslashes($this->ext_id).');';
$this->addslashes($this->ext_id).','.
$this->addslashes($this->insertamum).','.
$this->addslashes($this->insertvon).');';
}
else
{
@@ -189,6 +195,8 @@ class lehreinheitgruppe
' gruppe='.$this->addslashes($this->gruppe).','.
' gruppe_kurzbz='.$this->addslashes($this->gruppe_kurzbz).','.
' ext_id='.$this->addslashes($this->ext_id).','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).
" WHERE lehreinheitgruppe_id=".$this->addslashes($this->lehreinheitgruppe_id).";";
}
+20 -1
View File
@@ -1,4 +1,24 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/*
* Created on 02.12.2004
*
@@ -24,7 +44,6 @@ require_once('../include/functions.inc.php');
if (!$conn = @pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
//pg_query($conn, "SET CLIENT_ENCODING to 'UNICODE'");
$user = get_uid();
/*
// test
+151
View File
@@ -0,0 +1,151 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
// header fuer 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
require_once('../vilesci/config.inc.php');
require_once('../include/functions.inc.php');
// Datenbank Verbindung
if (!$conn = @pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
$user = get_uid();
loadVariables($conn, $user);
// LVAs holen
$rdf_url='http://www.technikum-wien.at/ma';
$alle='';
$fix='';
$frei='';
$stgl='';
$fbl='';
pg_query($conn, "SET CLIENT_ENCODING to 'UNICODE'");
$qry = "SELECT * FROM campus.vw_mitarbeiter ORDER BY nachname, vorname";
$result = pg_query($conn, $qry);
?>
<RDF:RDF
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:MA="<?php echo $rdf_url; ?>/rdf#"
>
<RDF:Description id="_alle" about="<?php echo $rdf_url.'/_alle'; ?>" >
<MA:bezeichnung><![CDATA[Alle]]></MA:bezeichnung>
<MA:uid></MA:uid>
<MA:vorname></MA:vorname>
<MA:nachname></MA:nachname>
</RDF:Description>
<RDF:Description id="_fix" about="<?php echo $rdf_url.'/_fix'; ?>" >
<MA:bezeichnung><![CDATA[Fix Angestelte]]></MA:bezeichnung>
<MA:uid></MA:uid>
<MA:vorname></MA:vorname>
<MA:nachname></MA:nachname>
</RDF:Description>
<RDF:Description id="_frei" about="<?php echo $rdf_url.'/_frei'; ?>" >
<MA:bezeichnung><![CDATA[Frei Angestellte]]></MA:bezeichnung>
<MA:uid></MA:uid>
<MA:vorname></MA:vorname>
<MA:nachname></MA:nachname>
</RDF:Description>
<RDF:Description id="_stgl" about="<?php echo $rdf_url.'/_stgl'; ?>" >
<MA:bezeichnung><![CDATA[Studiengangsleiter]]></MA:bezeichnung>
<MA:uid></MA:uid>
<MA:vorname></MA:vorname>
<MA:nachname></MA:nachname>
</RDF:Description>
<RDF:Description id="_fbl" about="<?php echo $rdf_url.'/_fbl'; ?>" >
<MA:bezeichnung><![CDATA[Fachbereichsleiter]]></MA:bezeichnung>
<MA:uid></MA:uid>
<MA:vorname></MA:vorname>
<MA:nachname></MA:nachname>
</RDF:Description>
<?php
//Mitarbeiter
while($row=pg_fetch_object($result))
{
//Lehrveranstaltung
echo "
<RDF:Description id=\"".$row->uid."\" about=\"".$rdf_url.'/'.$row->uid."\" >
<MA:bezeichnung><![CDATA[".$row->kurzbz."]]></MA:bezeichnung>
<MA:uid><![CDATA[".$row->uid."]]></MA:uid>
<MA:vorname><![CDATA[".$row->vorname."]]></MA:vorname>
<MA:nachname><![CDATA[".$row->nachname."]]></MA:nachname>
</RDF:Description>";
//Alle
$alle.="\n\t\t<RDF:li resource=\"".$rdf_url.'/'.$row->uid."\" />";
if($row->fixangestellt=='t')
$fix.="\n\t\t<RDF:li resource=\"".$rdf_url.'/'.$row->uid."\" />"; //Fixangestellte
else
$frei.="\n\t\t<RDF:li resource=\"".$rdf_url.'/'.$row->uid."\" />"; //Freie
}
//Studiengangsleiter
$qry = "SELECT * FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='stgl'";
$result = pg_query($conn, $qry);
while($row = pg_fetch_object($result))
$stgl.= "\n\t\t<RDF:li resource=\"".$rdf_url.'/'.$row->uid."\" />";
//Fachbereichsleiter
$qry = "SELECT * FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='fbl'";
$result = pg_query($conn, $qry);
while($row = pg_fetch_object($result))
$fbl.= "\n\t\t<RDF:li resource=\"".$rdf_url.'/'.$row->uid."\" />";
echo "
<RDF:Seq about=\"".$rdf_url."/liste\" >
<RDF:li>
<RDF:Seq about=\"".$rdf_url."/_alle\" >$alle
</RDF:Seq>
</RDF:li>
<RDF:li>
<RDF:Seq about=\"".$rdf_url."/_fix\" >$fix
</RDF:Seq>
</RDF:li>
<RDF:li>
<RDF:Seq about=\"".$rdf_url."/_frei\" >$frei
</RDF:Seq>
</RDF:li>
<RDF:li>
<RDF:Seq about=\"".$rdf_url."/_stgl\" >$stgl
</RDF:Seq>
</RDF:li>
<RDF:li>
<RDF:Seq about=\"".$rdf_url."/_fbl\" >$fbl
</RDF:Seq>
</RDF:li>
</RDF:Seq>
";
?>
</RDF:RDF>