- Weiterbildung aktualisiert

- Weiterentwicklung Lehrveranstaltung-Modul
This commit is contained in:
Andreas Österreicher
2007-03-13 16:49:17 +00:00
parent b9b7cc6904
commit 2da4727cfb
12 changed files with 307 additions and 96 deletions
+73
View File
@@ -0,0 +1,73 @@
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;
}
}
};
+9
View File
@@ -93,4 +93,13 @@ function ParseReturnValue(response)
this.dbdml_return = false;
this.dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
this.dbdml_data = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#data" ));
//debug('data:'+this.dbdml_data+' errormsg:'+this.dbdml_errormsg+' return:'+this.dbdml_return );
}
// ****
// * Zeigt einen Text in der Statusbar an
// ****
function SetStatusBarText(text)
{
document.getElementById('statusbarpanel-text').label=text;
}
+6 -8
View File
@@ -49,7 +49,7 @@ if (!$conn = @pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
$return = false;
$errormsg = 'Unknown Error';
$errormsg = 'unknown';
$data = '';
$error = false;
@@ -82,7 +82,7 @@ if(!$error)
if(!$error)
{
$lem = new lehreinheitmitarbeiter($conn);
$lem = new lehreinheitmitarbeiter($conn, null, null, true);
if($_POST['do']=='update')
{
@@ -106,7 +106,7 @@ if(!$error)
$lem->stundensatz = $_POST['stundensatz'];
$lem->faktor = $_POST['faktor'];
$lem->anmerkung = $_POST['anmerkung'];
$lem->bismelden = $_POST['bismelden'];
$lem->bismelden = ($_POST['bismelden']=='true'?true:false);
$lem->updateamum = date('Y-m-d H:i:s');
$lem->updatevon = $user;
@@ -222,7 +222,7 @@ if(!$error)
elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit')
{
//Lehreinheit anlegen/aktualisieren
$leDAO=new lehreinheit($conn);
$leDAO=new lehreinheit($conn, null, true);
if ($_POST['do']=='create' || ($_POST['do']=='update'))
{
if($_POST['do']=='update')
@@ -268,6 +268,7 @@ if(!$error)
}
if ($leDAO->save())
{
$data = $leDAO->lehreinheit_id;
$return = true;
}
else
@@ -305,16 +306,13 @@ if(!$error)
xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:DBDML="http://www.technikum-wien.at/dbdml/rdf#"
>
<RDF:Seq RDF:about="http://www.technikum-wien.at/dbdml/msg">
<RDF:li>
<RDF:Description RDF:about="http://www.technikum-wien.at/dbdml/0" >
<DBDML:return><?php echo ($return?'true':'false'); ?></DBDML:return>
<DBDML:errormsg><![CDATA[<?php echo $errormsg; ?>]]></DBDML:errormsg>
<DBDML:data><!CDATA[<?php echo $data ?>]]></DBDML:data>
<DBDML:data><![CDATA[<?php echo $data ?>]]></DBDML:data>
</RDF:Description>
</RDF:li>
</RDF:Seq>
</RDF:RDF>
+11 -6
View File
@@ -26,7 +26,7 @@ header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
require_once('../vilesci/config.inc.php');
echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>';
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
echo "<?xml-stylesheet href=\"".APP_ROOT."content/lehrveranstaltung.css\" type=\"text/css\" ?>";
?>
@@ -75,6 +75,10 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lehrveranstaltung.css\" type=\
<label value="UNR" />
<textbox id="lehrveranstaltung-detail-textbox-unr" disabled="true"/>
</row>
<row>
<label value="Lehrveranstaltung" />
<textbox id="lehrveranstaltung-detail-textbox-lehrveranstaltung" maxlength="20" disabled="true"/>
</row>
</rows>
</grid>
</vbox>
@@ -102,8 +106,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lehrveranstaltung.css\" type=\
</menupopup>
</template>
</menulist>
<label value="Lehrveranstaltung" />
<textbox id="lehrveranstaltung-detail-textbox-lehrveranstaltung" maxlength="20" disabled="true"/>
</row>
<row>
<label value="Lehrfach" />
@@ -197,7 +200,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lehrveranstaltung.css\" type=\
<label id="lehrveranstaltung-detail-label-lehreinheitgruppe" value="Gruppen" />
<vbox height="150" flex="1">
<hbox flex="1">
<tree id="lehrveranstaltung-detail-tree-lehreinheitgruppe" seltype="single" hidecolumnpicker="false" flex="1" disabled="true"
<tree id="lehrveranstaltung-detail-tree-lehreinheitgruppe" seltype="single" hidecolumnpicker="false" flex="1" disabled="false"
datasources="rdf:null"
ref="http://www.technikum-wien.at/lehreinheitgruppe/liste"
flags="dont-build-content"
@@ -207,6 +210,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lehrveranstaltung.css\" type=\
ondragenter="nsDragAndDrop.dragEnter(event,LeLvbgrpDDObserver)"
ondragexit="nsDragAndDrop.dragExit(event,LeLvbgrpDDObserver)"
context="lehrveranstaltung-detail-gruppe-tree-popup"
onkeypress="LvDetailGruppenTreeKeyPress(event)"
>
<treecols>
<treecol id="lehrveranstaltung-lehreinheitgruppe-treecol-bezeichnung" label="Bezeichnung" flex="2" hidden="false"
@@ -253,6 +257,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lehrveranstaltung.css\" type=\
ondragenter="nsDragAndDrop.dragEnter(event,LeLektorDDObserver)"
ondragexit="nsDragAndDrop.dragExit(event,LeLektorDDObserver)"
context="lehrveranstaltung-lektor-tree-popup"
onkeypress="LvDetailMitarbeiterTreeKeyPress(event)"
>
<treecols>
<treecol id="lehrveranstaltung-lehreinheitmitarbeiter-treecol-nachname" label="Nachname" flex="2" hidden="false"
@@ -347,9 +352,9 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/lehrveranstaltung.css\" type=\
</row>
<row>
<label control="lehrveranstaltung-lehreinheitmitarbeiter-textbox-anmerkung" value="Anmerkung: "/>
<textbox id="lehrveranstaltung-lehreinheitmitarbeiter-textbox-anmerkung" disabled="true" maxlength="256" flex="1" oninput="LeMitarbeiterValueChanged();"/>
<textbox id="lehrveranstaltung-lehreinheitmitarbeiter-textbox-anmerkung" disabled="true" maxlength="256" flex="1" oncommand="LeMitarbeiterValueChanged();"/>
<label control="lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden" value="BIS-Melden: "/>
<checkbox id="lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden" disabled="true" flex="1" oninput="LeMitarbeiterValueChanged();"/>
<checkbox id="lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden" disabled="true" flex="1" oncommand="LeMitarbeiterValueChanged();"/>
</row>
</rows>
</grid>
+85 -8
View File
@@ -32,7 +32,10 @@ var LeDetailLehrfach_id; //Lehrfach_id die nach dem Laden markiert werden soll
var LeDetailGruppeDatasource; //Datasource fuer Gruppen DropDown
var LeDetailLektorDatasource; //Datasource fuer Lektren DropDown
var LvSelectLehreinheit_id; //Lehreinheit_id die nach dem Rebuild des Trees markiert werden soll
var leDetailLektorUid; // UID der Lektorzuordnung die nach dem Rebuild markiert werden soll
var leDetailLektorLehreinheit_id; // Lehreinheit_id der Lektorzuordnung die nach dem Rebuild markiert werden soll
// ********** Observer und Listener ************* //
// ****
// * Observer fuer LV Tree
// * startet Rebuild nachdem das Refresh
@@ -67,6 +70,40 @@ var LvTreeListener =
}
};
// ****
// * Nach dem Rebuild wird die Lektorzuordnung
// * wieder markiert
// ****
var LvLektorTreeListener =
{
willRebuild : function(builder) { },
didRebuild : function(builder)
{
window.setTimeout(LeLektorTreeSelectLektor,10);
}
};
// ***************** KEY Events ************************* //
function LvTreeKeyPress(event)
{
if(event.keyCode==46) // Entf
LeDelete();
else if(event.keyCode==116) // F5
LvTreeRefresh();
}
function LvDetailGruppenTreeKeyPress(event)
{
if(event.keyCode==46) //Entf
LeGruppeDel();
}
function LvDetailMitarbeiterTreeKeyPress(event)
{
if(event.keyCode==46) //Entf
LeMitarbeiterDel();
}
// ****************** FUNCTIONS ************************** //
// ****
// * Asynchroner (Nicht blockierender) Refresh des LV Trees
// ****
@@ -136,6 +173,39 @@ function LeNeu()
document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').value=lehrveranstaltung_id;
document.getElementById('lehrveranstaltung-detail-checkbox-new').checked=true;
}
// ****
// * Selectiert die Lektorzuordnung nachdem der Tree
// * rebuildet wurde.
// ****
function LeLektorTreeSelectLektor()
{
var tree=document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter');
var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
//In der globalen Variable ist die zu selektierende Lehreinheit gespeichert
if(leDetailLektorUid!=null && leDetailLektorLehreinheit_id!=null)
{
for(var i=0;i<items;i++)
{
//Lehreinheit_id der row holen
col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id";
lehreinheit_id=tree.view.getCellText(i,col);
//Uid der row holen
col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid";
uid=tree.view.getCellText(i,col);
//wenn dies die zu selektierende Zeile
if(leDetailLektorUid==uid && leDetailLektorLehreinheit_id==lehreinheit_id)
{
//Zeile markieren
tree.view.selection.select(i);
//Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
tree.treeBoxObject.ensureRowIsVisible(i);
return true;
}
}
}
}
// ****
// * Selectiert die Lehreinheit nachdem der Tree
@@ -153,7 +223,8 @@ function LvTreeSelectLehreinheit()
//Zeilen zurueckliefert
for(var i=items-1;i>=0;i--)
{
tree.view.toggleOpenState(i);
if(!tree.view.isContainerOpen(i))
tree.view.toggleOpenState(i);
}
//Jetzt die wirkliche Anzahl (aller) Zeilen holen
@@ -371,10 +442,13 @@ function LeDetailSave()
alert(val.dbdml_errormsg)
}
else
{
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('lehrveranstaltung-detail-checkbox-new').checked=false;
LvTreeRefresh();
alert('Daten wurden gespeichert');
//LvTreeRefresh();
LvSelectLehreinheit_id=val.dbdml_data;
LvTreeDatasource.Refresh(false); //non blocking
SetStatusBarText('Daten wurden gespeichert');
}
}
@@ -506,7 +580,7 @@ function LeAuswahl()
document.getElementById('lehrveranstaltung-detail-textbox-unr').value=unr;
document.getElementById('lehrveranstaltung-detail-textbox-lvnr').value=lvnr;
document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').value=lehrveranstaltung;
if(lehre='Ja')
if(lehre=='Ja')
document.getElementById('lehrveranstaltung-detail-checkbox-lehre').checked=true;
else
document.getElementById('lehrveranstaltung-detail-checkbox-lehre').checked=false;
@@ -543,6 +617,7 @@ function LeAuswahl()
LeDetailLektorDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
LeDetailLektorDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
lektortree.database.AddDataSource(LeDetailLektorDatasource);
lektortree.builder.addListener(LvLektorTreeListener);
}
catch(e)
{
@@ -624,7 +699,9 @@ function LeMitarbeiterSave()
}
else
{
LeLektorTreeRefresh()
leDetailLektorUid = lektor;
leDetailLektorLehreinheit_id = lehreinheit_id;
LeLektorTreeRefresh();
}
}
@@ -725,7 +802,7 @@ function LeMitarbeiterDisableFields(val)
function LeMitarbeiterAuswahl()
{
tree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter');
document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-save').disabled=true;
//Falls kein Eintrag gewaehlt wurde, den ersten auswaehlen
var idx;
if(tree.currentIndex>=0)
@@ -794,7 +871,7 @@ function LeMitarbeiterAuswahl()
document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-lehreinheit_id').value=lehreinheit_id;
document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-mitarbeiter_uid').value=mitarbeiter_uid;
if(bismelden='Ja')
if(bismelden=='Ja')
document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=true;
else
document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=false;
+14 -20
View File
@@ -27,12 +27,9 @@ header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
require_once('../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\" ?>";
echo '<?xul-overlay href="'.APP_ROOT.'content/lehrveranstaltungdetailoverlay.xul.php"?>';
?>
<overlay id="LehrveranstaltungOverlay"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
@@ -65,19 +62,12 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lehrveranstaltungdetailoverlay.xul
style="margin:0px;"
onselect="LeAuswahl(this);"
persist="height"
onkeypress="LvTreeKeyPress(event)"
>
<treecols>
<treecol id="lehrveranstaltung-treecol-kurzbz" label="Kurzbz" flex="2" hidden="false" primary="true"
class="sortDirectionIndicator"
sortActive="true"
sortDirection="ascending"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#kurzbz"/>
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-treecol-lehrveranstaltung_id" label="Lehrveranstaltung_id" flex="2" hidden="true"
class="sortDirectionIndicator"
sortActive="true"
sortDirection="ascending"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehrveranstaltung_id" />
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-treecol-bezeichnung" label="Bezeichnung" flex="5" hidden="false"
class="sortDirectionIndicator"
@@ -131,22 +121,25 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lehrveranstaltungdetailoverlay.xul
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lektoren"/>
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-treecol-lehreinheit_id" label="Lehreinheit_id" flex="10" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehreinheit_id"/>
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-treecol-anmerkung" label="Anmerkung" flex="5" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#anmerkung"/>
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#anmerkung"/>
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-treecol-lehrveranstaltung_id" label="Lehrveranstaltung_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehrveranstaltung_id" />
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-treecol-lehreinheit_id" label="Lehreinheit_id" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehreinheit_id"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
<treechildren flex="1" >
<treeitem uri="rdf:*">
<treerow dbID="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehrveranstaltung_id">
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehrveranstaltung_id" />
<treerow dbID="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehrveranstaltung_id" >
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#bezeichnung"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#sprache"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#ects"/>
@@ -160,8 +153,9 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lehrveranstaltungdetailoverlay.xul
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#raumtypalternativ"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#gruppen"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lektoren"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehreinheit_id"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#anmerkung"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehrveranstaltung_id" />
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehreinheit_id"/>
</treerow>
</treeitem>
</treechildren>