mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-18 12:39:29 +00:00
Zuordnung zu Spezialgruppen per DD und loeschen aus SpezGrp hinzugefügt
This commit is contained in:
@@ -84,6 +84,44 @@ var lvbgrpDDObserver=
|
||||
}
|
||||
};
|
||||
|
||||
/***** Drag Observer fuer Studenten *****/
|
||||
var studentDDObserver=
|
||||
{
|
||||
onDragStart: function (evt,transferData,action)
|
||||
{
|
||||
|
||||
var tree = document.getElementById('student-tree')
|
||||
var row = { }
|
||||
var col = { }
|
||||
var child = { }
|
||||
|
||||
//Index der Quell-Row ermitteln
|
||||
tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child)
|
||||
|
||||
//Beim Scrollen soll kein DnD gemacht werden
|
||||
if(col.value==null)
|
||||
return false;
|
||||
|
||||
var start = new Object();
|
||||
var end = new Object();
|
||||
var numRanges = tree.view.selection.getRangeCount();
|
||||
var paramList= '';
|
||||
|
||||
for (var t = 0; t < numRanges; t++)
|
||||
{
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (var v = start.value; v <= end.value; v++)
|
||||
{
|
||||
col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
|
||||
uid = tree.view.getCellText(v,col);
|
||||
paramList += ';'+uid;
|
||||
}
|
||||
}
|
||||
|
||||
transferData.data=new TransferData();
|
||||
transferData.data.addDataForFlavour("application/tempus-student",paramList);
|
||||
}
|
||||
};
|
||||
|
||||
// ****
|
||||
// * Observer fuer den Gruppen Tree im Lehreinheiten-Modul
|
||||
@@ -496,4 +534,85 @@ var boardObserver=
|
||||
//BoxTimeTableWeek.scrollTo(ScrollX,ScrollY);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// ****
|
||||
// * Observer fuer den Lehrverbandstree
|
||||
// ****
|
||||
var verbandtreeDDObserver=
|
||||
{
|
||||
getSupportedFlavours : function ()
|
||||
{
|
||||
var flavours = new FlavourSet();
|
||||
flavours.appendFlavour("application/tempus-student");
|
||||
return flavours;
|
||||
},
|
||||
onDragEnter: function (evt,flavour,session)
|
||||
{
|
||||
},
|
||||
onDragExit: function (evt,flavour,session)
|
||||
{
|
||||
},
|
||||
onDragOver: function(evt,flavour,session)
|
||||
{
|
||||
},
|
||||
onDrop: function (evt,dropdata,session)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
try
|
||||
{
|
||||
dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
debug('treeDragDrop: e');
|
||||
}
|
||||
|
||||
var ds = dragservice_ds;
|
||||
|
||||
var tree = document.getElementById('tree-verband')
|
||||
var row = { }
|
||||
var col = { }
|
||||
var child = { }
|
||||
|
||||
tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child)
|
||||
|
||||
if(row.value!=-1) //Drop on Row
|
||||
{
|
||||
//Ziel holen
|
||||
col = tree.columns ? tree.columns["gruppe"] : "gruppe";
|
||||
gruppe_kurzbz=tree.view.getCellText(row.value,col);
|
||||
}
|
||||
else
|
||||
return false;
|
||||
|
||||
if(gruppe_kurzbz=='')
|
||||
{
|
||||
alert('Zuteilung derzeit nur zu Spezialgruppen moeglich');
|
||||
return false;
|
||||
}
|
||||
|
||||
uid=dropdata.data;
|
||||
|
||||
var req = new phpRequest('student/studentDBDML.php','','');
|
||||
|
||||
req.add('type','gruppenzuteilung');
|
||||
|
||||
req.add('uid', uid);
|
||||
req.add('gruppe_kurzbz', gruppe_kurzbz);
|
||||
|
||||
var response = req.executePOST();
|
||||
|
||||
var val = new ParseReturnValue(response)
|
||||
|
||||
if (!val.dbdml_return)
|
||||
{
|
||||
alert(val.dbdml_errormsg)
|
||||
}
|
||||
else
|
||||
{
|
||||
StudentTreeRefresh();
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -31,6 +31,10 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';*/
|
||||
enableColumnDrag="true"
|
||||
ondraggesture="nsDragAndDrop.startDrag(event,lvbgrpDDObserver);"
|
||||
datasources="../rdf/lehrverbandsgruppe.rdf.php" ref="http://www.technikum-wien.at/lehrverbandsgruppe/alle-verbaende"
|
||||
ondragdrop="nsDragAndDrop.drop(event,verbandtreeDDObserver)"
|
||||
ondragover="nsDragAndDrop.dragOver(event,verbandtreeDDObserver)"
|
||||
ondragenter="nsDragAndDrop.dragEnter(event,verbandtreeDDObserver)"
|
||||
ondragexit="nsDragAndDrop.dragExit(event,verbandtreeDDObserver)"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="bez" label="Bezeichnung" flex="15" primary="true" />
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
require_once('../../vilesci/config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/benutzergruppe.class.php');
|
||||
require_once('../../include/log.class.php');
|
||||
require_once('../../include/person.class.php');
|
||||
require_once('../../include/benutzer.class.php');
|
||||
@@ -50,6 +51,7 @@ $errormsg = 'unknown';
|
||||
$data = '';
|
||||
$error = false;
|
||||
|
||||
loadVariables($conn, $user);
|
||||
//Berechtigungen laden
|
||||
$rechte = new benutzerberechtigung($conn);
|
||||
$rechte->getBerechtigungen($user);
|
||||
@@ -137,7 +139,7 @@ if(!$error)
|
||||
if(isset($_POST['type']) && $_POST['type']=='savestudent')
|
||||
{
|
||||
//Studentendaten Speichern
|
||||
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
$student = new student($conn, null, true);
|
||||
@@ -184,9 +186,28 @@ if(!$error)
|
||||
{
|
||||
if($student->save())
|
||||
{
|
||||
$return = true;
|
||||
$error=false;
|
||||
$data = $student->uid;
|
||||
$student_lvb = new student($conn);
|
||||
$student_lvb->uid = $_POST['uid'];
|
||||
$student_lvb->studiensemester_kurzbz = $semester_aktuell;
|
||||
$student_lvb->studiengang_kz = $_POST['studiengang_kz'];
|
||||
$student_lvb->semester = $_POST['semester'];
|
||||
$student_lvb->verband = ($_POST['verband']==''?' ':$_POST['verband']);
|
||||
$student_lvb->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']);
|
||||
$student_lvb->updateamum = date('Y-m-d H:i:s');
|
||||
$student_lvb->updatevon = $user;
|
||||
|
||||
if($student_lvb->save_studentlehrverband(false))
|
||||
{
|
||||
$return = true;
|
||||
$error=false;
|
||||
$data = $student->uid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$error = true;
|
||||
$errormsg = $student_lvb->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -198,7 +219,7 @@ if(!$error)
|
||||
}
|
||||
}
|
||||
}
|
||||
if(isset($_POST['type']) && $_POST['type']=='saveperson')
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='saveperson')
|
||||
{
|
||||
//Personendaten Speichern
|
||||
|
||||
@@ -545,10 +566,77 @@ if(!$error)
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='gruppenzuteilung')
|
||||
{
|
||||
if(isset($_POST['uid']) && isset($_POST['gruppe_kurzbz']))
|
||||
{
|
||||
$benutzergruppe = new benutzergruppe($conn);
|
||||
|
||||
$uids = explode(';',$_POST['uid']);
|
||||
$errormsg = '';
|
||||
foreach ($uids as $uid)
|
||||
{
|
||||
if($uid!='')
|
||||
{
|
||||
if(!$benutzergruppe->load($uid, $_POST['gruppe_kurzbz']))
|
||||
{
|
||||
$benutzergruppe->uid = $uid;
|
||||
$benutzergruppe->gruppe_kurzbz = $_POST['gruppe_kurzbz'];
|
||||
$benutzergruppe->studiensemester_kurzbz = $semester_aktuell;
|
||||
$benutzergruppe->insertamum = date('Y-m-d H:i:s');
|
||||
$benutzergruppe->insertvon = $user;
|
||||
$benutzergruppe->new = true;
|
||||
|
||||
if(!$benutzergruppe->save())
|
||||
{
|
||||
$errormsg .= "$uid konnte nicht hinzugefuegt werden\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
$errormsg .= "Der Student $uid ist bereits in dieser Gruppe\n";
|
||||
}
|
||||
}
|
||||
if($errormsg=='')
|
||||
$return = true;
|
||||
else
|
||||
$return = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehlerhafte Parameteruebergabe';
|
||||
}
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='deleteGruppenzuteilung')
|
||||
{
|
||||
if(isset($_POST['uid']) && isset($_POST['gruppe_kurzbz']))
|
||||
{
|
||||
$uids = explode(';',$_POST['uid']);
|
||||
$errormsg = '';
|
||||
foreach ($uids as $uid)
|
||||
{
|
||||
$benutzergruppe = new benutzergruppe($conn);
|
||||
|
||||
if(!$benutzergruppe->delete($uid, $_POST['gruppe_kurzbz']))
|
||||
{
|
||||
$errormsg .= "$uid konnte nicht aus der Gruppe geloescht werden\n";
|
||||
}
|
||||
}
|
||||
if($errormsg=='')
|
||||
$return = true;
|
||||
else
|
||||
$return = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehlerhafte Parameteruebergabe';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Unkown type: '.$_POST['type'];
|
||||
$errormsg = 'Unkown type: "'.$_POST['type'].'"';
|
||||
$data = '';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,11 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentdetailoverlay.xul.p
|
||||
<!-- * Studenten * -->
|
||||
<!-- *************** -->
|
||||
<vbox id="studentenEditor" persist="height">
|
||||
<popupset>
|
||||
<popup id="student-tree-popup">
|
||||
<menuitem label="Student aus dieser Gruppe Entfernen" oncommand="StudentGruppeDel();" id="student-tree-popup-gruppedel" hidden="false"/>
|
||||
</popup>
|
||||
</popupset>
|
||||
<hbox>
|
||||
<toolbox flex="1">
|
||||
<toolbar id="nav-toolbar">
|
||||
@@ -59,13 +64,15 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentdetailoverlay.xul.p
|
||||
<!-- ************* -->
|
||||
<!-- * Auswahl * -->
|
||||
<!-- ************* -->
|
||||
<tree id="student-tree" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
<tree id="student-tree" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/student/alle"
|
||||
onselect="StudentAuswahl();"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
style="margin:0px;"
|
||||
persist="hidden, height"
|
||||
ondraggesture="nsDragAndDrop.startDrag(event,studentDDObserver);"
|
||||
context="student-tree-popup"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="student-treecol-uid" label="UID" flex="1" primary="false"
|
||||
|
||||
@@ -157,7 +157,7 @@ function StudentDelete()
|
||||
|
||||
try
|
||||
{
|
||||
//Ausgewaehlte Lehreinheit holen
|
||||
//Ausgewaehlte UID holen
|
||||
var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
|
||||
var uid=tree.view.getCellText(tree.currentIndex,col);
|
||||
if(uid=='')
|
||||
@@ -189,6 +189,74 @@ function StudentDelete()
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Loescht einen Studenten aus einer Spezialgruppe
|
||||
// ****
|
||||
function StudentGruppeDel()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var tree = document.getElementById('student-tree');
|
||||
var tree_vb = document.getElementById('tree-verband');
|
||||
|
||||
if (tree.currentIndex==-1)
|
||||
return;
|
||||
|
||||
var start = new Object();
|
||||
var end = new Object();
|
||||
var numRanges = tree.view.selection.getRangeCount();
|
||||
var paramList= '';
|
||||
var anzahl=0;
|
||||
for (var t = 0; t < numRanges; t++)
|
||||
{
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (var v = start.value; v <= end.value; v++)
|
||||
{
|
||||
col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
|
||||
uid = ';'+tree.view.getCellText(v,col);
|
||||
uids += uid;
|
||||
anzahl++;
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
//Ausgewaehlte Gruppe holen
|
||||
var col = tree_vb.columns ? tree_vb.columns["gruppe"] : "gruppe";
|
||||
var gruppe_kurzbz=tree_vb.view.getCellText(tree_vb.currentIndex,col);
|
||||
if(gruppe_kurzbz=='')
|
||||
{
|
||||
alert('Studenten koennen nur aus Spezialgruppen entfernt werden');
|
||||
return false
|
||||
}
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
alert(e);
|
||||
return false;
|
||||
}
|
||||
|
||||
//Abfrage ob wirklich geloescht werden soll
|
||||
if (confirm(anzahl+' Student(en) wirklich aus Gruppe '+gruppe_kurzbz+' entfernen?'))
|
||||
{
|
||||
//Script zum loeschen aufrufen
|
||||
var req = new phpRequest('student/studentDBDML.php','','');
|
||||
|
||||
req.add('type','deleteGruppenzuteilung');
|
||||
req.add('uid',uids);
|
||||
req.add('gruppe_kurzbz', gruppe_kurzbz);
|
||||
|
||||
var response = req.executePOST();
|
||||
|
||||
var val = new ParseReturnValue(response)
|
||||
|
||||
if(!val.dbdml_return)
|
||||
alert(val.dbdml_errormsg)
|
||||
|
||||
StudentTreeRefresh();
|
||||
StudentDetailReset();
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Leert alle Eingabe- und Auswahlfelder
|
||||
// ****
|
||||
|
||||
@@ -34,6 +34,7 @@ class benutzergruppe
|
||||
var $updatevon; // varchar(16)
|
||||
var $insertamum; // timestamp
|
||||
var $insertvon; // varchar(16)
|
||||
var $studiensemester_kurzbz; // varchar(16)
|
||||
|
||||
// *************************************************************************
|
||||
// * Konstruktor - Uebergibt die Connection und laedt optional eine BenutzerGruppe
|
||||
@@ -64,12 +65,39 @@ class benutzergruppe
|
||||
|
||||
// *********************************************************
|
||||
// * Laedt die BenutzerGruppe
|
||||
// * @param gruppe_kurzbz
|
||||
// * @param uid, gruppe_kurzbz, studiensemester_kurzbz
|
||||
// * @return true wenn ok, false im Fehlerfall
|
||||
// *********************************************************
|
||||
function load($uid, $gruppe_kurzbz)
|
||||
function load($uid, $gruppe_kurzbz, $studiensemester_kurzbz=null)
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_benutzergruppe WHERE uid='".addslashes($uid)."' AND gruppe_kurzbz='".addslashes($gruppe_kurzbz)."'";
|
||||
if($studiensemester_kurzbz!=null)
|
||||
$qry.=" AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
|
||||
|
||||
return false;
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->uid = $row->uid;
|
||||
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es wurde keine Datensatz gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// *******************************************
|
||||
@@ -131,13 +159,14 @@ class benutzergruppe
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = 'INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, updateamum, updatevon, insertamum, insertvon)
|
||||
$qry = 'INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, updateamum, updatevon, insertamum, insertvon, studiensemester_kurzbz)
|
||||
VALUES('.$this->addslashes($this->uid).','.
|
||||
$this->addslashes($this->gruppe_kurzbz).','.
|
||||
$this->addslashes($this->updateamum).','.
|
||||
$this->addslashes($this->updatevon).','.
|
||||
$this->addslashes($this->insertamum).','.
|
||||
$this->addslashes($this->insertvon).');';
|
||||
$this->addslashes($this->insertvon).','.
|
||||
$this->addslashes($this->studiensemester_kurzbz).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user