diff --git a/content/dragboard.js.php b/content/dragboard.js.php
index 385cc6ae7..f01baa18a 100644
--- a/content/dragboard.js.php
+++ b/content/dragboard.js.php
@@ -330,16 +330,8 @@ var LeLektorDDObserver=
req.add('type','lehreinheit_mitarbeiter_add');
- req.add('do', 'create');
req.add('lehreinheit_id', lehreinheit_id);
req.add('mitarbeiter_uid', uid);
- req.add('lehrfunktion_kurzbz', 'lektor');
- req.add('semesterstunden', '0');
- req.add('planstunden', '0');
- req.add('stundensatz', '0');
- req.add('faktor', '1');
- req.add('anmerkung', '');
- req.add('bismelden', 'true');
var response = req.executePOST();
diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php
index 7e5a7ad2b..02a3799ff 100644
--- a/content/fasoverlay.js.php
+++ b/content/fasoverlay.js.php
@@ -152,13 +152,18 @@ function auswahlValues()
this.lektor_uid=null;
}
-function onVerbandSelect()
+function onVerbandSelect(evt)
{
var contentFrame=document.getElementById('iframeTimeTableWeek');
var tree=document.getElementById('tree-verband');
+ //Wenn nichts markiert wurde -> beenden
if(tree.currentIndex==-1)
return;
+ //Wenn nicht auf eine der Zeilen gedrueckt wurde (zb Scrollbar) -> beenden
+ if(evt.target.nodeName!='treechildren')
+ return;
+
var col;
col = tree.columns ? tree.columns["stg_kz"] : "stg_kz";
var stg_kz=tree.view.getCellText(tree.currentIndex,col);
diff --git a/content/fasoverlay.xul.php b/content/fasoverlay.xul.php
index 65c8c4b06..660fd5fbb 100644
--- a/content/fasoverlay.xul.php
+++ b/content/fasoverlay.xul.php
@@ -25,7 +25,7 @@ echo '';*/
-isBerechtigt('admin'))
if(!$error)
{
- if(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_add')
+ if(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_save')
{
//Lehreinheitmitarbeiter Zuteilung
//wenn do=update dann wird aktualisiert
@@ -147,6 +147,75 @@ if(!$error)
}
}
}
+ if(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_add')
+ {
+ //neue Lehreinheitmitarbeiterzuteilung anlegen
+
+ if(isset($_POST['lehreinheit_id']) && isset($_POST['mitarbeiter_uid']))
+ {
+ $lem = new lehreinheitmitarbeiter($conn, null, null, true);
+
+ $lem->lehreinheit_id = $_POST['lehreinheit_id'];
+ $lem->lehrfunktion_kurzbz = 'lektor';
+ $lem->mitarbeiter_uid = $_POST['mitarbeiter_uid'];
+
+ $lem->semesterstunden = '0';
+ $lem->planstunden = '0';
+ $lem->faktor = '1';
+ $lem->anmerkung = '';
+ $lem->bismelden = true;
+ $lem->updateamum = date('Y-m-d H:i:s');
+ $lem->updatevon = $user;
+ $lem->insertamum = date('Y-m-d H:i:s');
+ $lem->insertvon = $user;
+ $lem->new=true;
+
+
+ $qry = "SELECT stundensatz FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='".addslashes($_POST['mitarbeiter_uid'])."'";
+ if($result = pg_query($conn, $qry))
+ {
+ if($row = pg_fetch_object($result))
+ {
+ if($row->stundensatz!='')
+ $lem->stundensatz = $row->stundensatz;
+ else
+ $lem->stundensatz = '0';
+ }
+ else
+ {
+ $error=true;
+ $return=false;
+ $errormsg='Mitarbeiter '.addslashes($_POST['mitarbeiter_uid']).' wurde nicht gefunden';
+ }
+ }
+ else
+ {
+ $error=true;
+ $return=false;
+ $errormsg='Fehler bei einer Datenbankabfrage:'.pg_errormessage($conn);
+ }
+
+ if(!$error)
+ {
+ if($lem->save())
+ {
+ $return = true;
+ $error = false;
+ }
+ else
+ {
+ $return = false;
+ $errormsg = $lem->errormsg;
+ $error = true;
+ }
+ }
+ }
+ else
+ {
+ $return = false;
+ $errormsg = 'Fehlerhafte Parameteruebergabe';
+ }
+ }
elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_del')
{
//Lehreinheitmitarbeiterzuteilung loeschen
diff --git a/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php b/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php
index 53a487d7d..27cbefa04 100644
--- a/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php
+++ b/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php
@@ -215,11 +215,11 @@ echo "
+ sort="rdf:http://www.technikum-wien.at/lehreinheitgruppe/rdf#bezeichnung" />
+ sort="rdf:http://www.technikum-wien.at/lehreinheitgruppe/rdf#lehreinheitgruppe_id" />
@@ -262,19 +262,19 @@ echo "
+ sort="rdf:http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf#nachname"/>
+ sort="rdf:http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf#vorname"/>
+ sort="rdf:http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf#mitarbeiter_uid"/>
+ sort="rdf:http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf#lehreinheit_id"/>
diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php
index 7476c9087..e96df40c0 100644
--- a/content/lvplanung/lehrveranstaltungoverlay.js.php
+++ b/content/lvplanung/lehrveranstaltungoverlay.js.php
@@ -28,7 +28,10 @@ $conn = pg_pconnect(CONN_STRING);
$user = get_uid();
loadVariables($conn, $user);
?>
+// *********** Globale Variablen *****************//
+
var LeDetailLehrfach_id; //Lehrfach_id die nach dem Laden markiert werden soll
+var LeDetailLehrfach_label; //Bezeichnung des Lehrfachs das 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
@@ -36,6 +39,7 @@ var leDetailLektorUid; // UID der Lektorzuordnung die nach dem Rebuild markiert
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
@@ -83,7 +87,53 @@ var LvLektorTreeListener =
}
};
+
+// ****
+// * Observer fuer Lehrfachdropdown
+// ****
+var LeDetailLehrfachSinkObserver =
+{
+ onBeginLoad: function(aSink) { },
+ onInterrupt: function(aSink) { },
+ onResume: function(aSink) { },
+ onEndLoad: function(aSink) {
+ //Das richtige Lehrfach markieren
+ if(LeDetailLehrfach_id!='') //Wenn die Lehrfach_id bekannt ist, dann einfach markieren
+ document.getElementById('lehrveranstaltung-detail-menulist-lehrfach').value=LeDetailLehrfach_id;
+ else
+ {
+ if(LeDetailLehrfach_label!='') //Wenn Name bekannt ist
+ {
+
+ menulist = document.getElementById('lehrveranstaltung-detail-menulist-lehrfach');
+
+ //Alle eintraege aus menulist holen
+ var items = menulist.childNodes[1].childNodes //Anzahl der Zeilen ermitteln
+ found=false;
+ for(i in items)
+ {
+ //Richtigen eintrag suchen
+ if(items[i].label==LeDetailLehrfach_label)
+ {
+ //Eintrag markieren
+ menulist.selectedIndex=i;
+ found=true;
+ break;
+ }
+ }
+ //Wenn nichts gefunden wurde, wird der erste Eintrag markiert
+ if(!found)
+ menulist.selectedIndex=0;
+ }
+ }
+ },
+ onError: function(aSink, aStatus, aErrorMsg) {
+ alert('Bei der Datenuebertragung ist ein Fehler Aufgetreten. Bitte Versuchen Sie es erneut.');
+ }
+};
+
// ***************** KEY Events ************************* //
+
// ****
// * Wird ausgefuehrt wenn eine Taste gedrueckt wird und der Focus
// * im Lehrveranstaltungs-tree ist
@@ -120,7 +170,8 @@ function LvDetailMitarbeiterTreeKeyPress(event)
LeMitarbeiterDel();
}
-// ****************** FUNCTIONS ************************** //
+// ****************** FUNKTIONEN ************************** //
+
// ****
// * Asynchroner (Nicht blockierender) Refresh des LV Trees
// ****
@@ -157,13 +208,12 @@ function LeNeu()
LeDetailReset();
//Detail Tab als aktiv setzen
- document.getElementById('lehrveranstaltung-tab-detail').selected=true;
- document.getElementById('lehrveranstaltung-tabpanels-main').selectedIndex=0;
+ document.getElementById('lehrveranstaltung-tabs').selectedItem = document.getElementById('lehrveranstaltung-tab-detail');
//Lektor-Tab und GruppenTree ausblenden
document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe').hidden=true;
document.getElementById('lehrveranstaltung-detail-label-lehreinheitgruppe').hidden=true;
- document.getElementById('lehrveranstaltung-tab-lektor').hidden=true;
+ document.getElementById('lehrveranstaltung-tab-lektor').collapsed=true;
//Lehrveranstaltungs_id holen
var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id";
@@ -172,8 +222,10 @@ function LeNeu()
//Lehrfach drop down setzen
//ID in globale Variable speichern
- LvDetailLehrfach_id='';
-
+ LeDetailLehrfach_id='';
+ var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-bezeichnung"] : "lehrveranstaltung-treecol-bezeichnung";
+ LeDetailLehrfach_label=tree.view.getCellText(tree.currentIndex,col);
+
lehrfachmenulist = document.getElementById('lehrveranstaltung-detail-menulist-lehrfach');
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
@@ -322,24 +374,6 @@ function LeDelete()
}
}
-// ****
-// * Observer fuer lehrfachdropdown
-// ****
-var LeDetailLehrfachSinkObserver =
-{
- onBeginLoad: function(aSink) { },
- onInterrupt: function(aSink) { },
- onResume: function(aSink) { },
- onEndLoad: function(aSink) {
- //Das richtige Lehrfach markieren
- if(LeDetailLehrfach_id!='')
- document.getElementById('lehrveranstaltung-detail-menulist-lehrfach').value=LeDetailLehrfach_id;
- },
- onError: function(aSink, aStatus, aErrorMsg) {
- alert('Bei der Datenuebertragung ist ein Fehler Aufgetreten. Bitte Versuchen Sie es erneut.');
- }
-};
-
// ****
// * Leert alle Eingabe- und Auswahlfelder
// ****
@@ -497,19 +531,7 @@ function LeAuswahl()
document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe').hidden=false;
document.getElementById('lehrveranstaltung-detail-label-lehreinheitgruppe').hidden=false;
- document.getElementById('lehrveranstaltung-tab-lektor').hidden=false;
-
- //Hack damit der DetailTab als erstes angezeigt wird (sonst wird nach aus- und wieder einblenden
- //der LektorenTab vor dem DetailTab angezeigt)
- document.getElementById('lehrveranstaltung-tab-detail').hidden=true;
- document.getElementById('lehrveranstaltung-tab-detail').hidden=false;
-
- //Wenn jemand neu drueckt und dann ohne speichern auf eine Lehreinheit wechselt, dann
- //sind beide tabs aktiv. darum wird der lektor-tab auf inaktiv gesetzt
- if(document.getElementById('lehrveranstaltung-tab-detail').selected &&
- document.getElementById('lehrveranstaltung-tab-lektor').selected)
- document.getElementById('lehrveranstaltung-tab-lektor').selected=false;
- //endHack
+ document.getElementById('lehrveranstaltung-tab-lektor').collapsed=false;
if (tree.currentIndex==-1) return;
try
@@ -584,7 +606,7 @@ function LeAuswahl()
//ID in globale Variable speichern
LeDetailLehrfach_id=lehrfach;
-
+
lehrfachmenulist = document.getElementById('lehrveranstaltung-detail-menulist-lehrfach');
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
@@ -596,7 +618,7 @@ function LeAuswahl()
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
- lehrfachmenulist.builder.refresh();
+ lehrfachmenulist.builder.rebuild();
//Url zusammenbauen
var url = 'rdf/lehrfach.rdf.php?lehrveranstaltung_id='+lehrveranstaltung+'&'+gettimestamp();
@@ -604,11 +626,11 @@ function LeAuswahl()
//RDF holen
var newDs = rdfService.GetDataSource(url);
lehrfachmenulist.database.AddDataSource(newDs);
-
+
//SinkObserver hinzufuegen
var sink = newDs.QueryInterface(Components.interfaces.nsIRDFXMLSink);
sink.addXMLSinkObserver(LeDetailLehrfachSinkObserver);
-
+
//Daten den Feldern zuweisen
document.getElementById('lehrveranstaltung-detail-textbox-unr').value=unr;
@@ -707,8 +729,7 @@ function LeMitarbeiterSave()
//Request absetzen
var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','','');
- req.add('type','lehreinheit_mitarbeiter_add');
- req.add('do','update');
+ req.add('type','lehreinheit_mitarbeiter_save');
lehreinheit_id = document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-lehreinheit_id').value;
mitarbeiter_uid = document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-mitarbeiter_uid').value;
req.add('lehreinheit_id',lehreinheit_id);
diff --git a/content/lvplanung/lehrveranstaltungoverlay.xul.php b/content/lvplanung/lehrveranstaltungoverlay.xul.php
index 286696d83..8834ba7af 100644
--- a/content/lvplanung/lehrveranstaltungoverlay.xul.php
+++ b/content/lvplanung/lehrveranstaltungoverlay.xul.php
@@ -173,7 +173,7 @@ echo '
-
+