Merge branch 'feature-245/LvTeilKopieren'

This commit is contained in:
Manfred
2022-04-28 16:16:51 +02:00
6 changed files with 263 additions and 10 deletions
+6 -2
View File
@@ -26,6 +26,7 @@ require_once('../include/benutzerberechtigung.class.php');
require_once('../include/studiensemester.class.php');
require_once('../include/variable.class.php');
require_once('../include/addon.class.php');
require_once('../include/datum.class.php');
$user=get_uid();
@@ -45,6 +46,8 @@ if(!$variable->loadVariables($user))
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
$datum_obj = new datum();
if(!$rechte->isBerechtigt('basis/fas'))
die('Sie haben keine Berechtigung für diese Seite');
@@ -248,6 +251,7 @@ foreach($addon_obj->result as $addon)
label = '$stsem->studiensemester_kurzbz'
type = 'radio'
command = 'menu-properties-studiensemester:command'
tooltiptext = '(".$datum_obj->formatDatum($stsem->start, "d.m.Y")." - ".$datum_obj->formatDatum($stsem->ende, "d.m.Y").")'
checked = ".($variable->variable->semester_aktuell==$stsem->studiensemester_kurzbz?"'true' ":"'false'")." />";
}
?>
@@ -934,8 +938,8 @@ foreach($addon_obj->result as $addon)
oncommand="studiensemesterChange('', 1)"
/>
</statusbarpanel>
<statusbarpanel>
<toolbarbutton id="statusbarpanel-semester-aktuell" label="Aktuelles Studiensemester" oncommand="getStudiensemesterAktuell()"/>
<statusbarpanel id="statusbarpanel-panel-semester-aktuell">
<toolbarbutton id="statusbarpanel-semester-aktuell" label="Aktuelles Studiensemester" oncommand="setStudiensemesterAktuell()"/>
</statusbarpanel>
<statusbarpanel id="statusbarpanel-db_table" label="<?php echo DB_NAME; ?>"/>
<statusbarpanel id="statusbarpanel-text" label="<?php echo htmlspecialchars($error_msg); ?>" flex="4" crop="right" />
+8
View File
@@ -493,6 +493,14 @@ if(!$error)
$variable->name = 'semester_aktuell';
$variable->wert = $studiensemester_kurzbz;
}
elseif(isset($_POST['stsem_aktuell']))
{
$stsem = new studiensemester();
$studiensemester_kurzbz = $stsem->getakt();
$variable->name = 'semester_aktuell';
$variable->wert = $studiensemester_kurzbz;
}
elseif(isset($_POST['kontofilterstg']))
{
$variable->name = 'kontofilterstg';
@@ -1388,6 +1388,118 @@ if(!$error)
}
}
}
else if ($_POST['do']=='copy')
{
if(!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'sui')
&& !$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'sui')
&& !$rechte->isBerechtigtMultipleOe('lv-plan', $lva->getAllOe(), 'sui'))
{
$error = true;
$return = false;
$errormsg = 'Keine Berechtigung';
}
if(!$leDAO->load($_POST['lehreinheit_id']))
{
$return = false;
$error = true;
$errormsg = 'Fehler beim Laden des LV-Teils';
}
if(!$error)
{
// Neue Lehreinheit anlegen
$leDAO->new = true;
$leDAO->unr = '';
$leDAO->updateamum = date('Y-m-d H:i:s');
$leDAO->updatevon = $user;
$leDAO->insertamum = date('Y-m-d H:i:s');
$leDAO->insertvon = $user;
if ($leDAO->save())
{
// Wenn Art "alle" oder "gruppen" ist, werden auch alle Lehreinheitgruppe kopiert
if(isset($_POST['art']) && ($_POST['art'] == 'alle' || $_POST['art'] == 'gruppen'))
{
$legruppe = new lehreinheitgruppe();
$legruppe->getLehreinheitgruppe($_POST['lehreinheit_id']);
if (count($legruppe->lehreinheitgruppe) > 0)
{
foreach ($legruppe->lehreinheitgruppe as $row)
{
$legruppe_new = new lehreinheitgruppe();
$legruppe_new->lehreinheit_id = $leDAO->lehreinheit_id;
$legruppe_new->studiengang_kz = $row->studiengang_kz;
$legruppe_new->semester = $row->semester;
$legruppe_new->verband = $row->verband;
$legruppe_new->gruppe = $row->gruppe;
$legruppe_new->gruppe_kurzbz = $row->gruppe_kurzbz;
$legruppe_new->updateamum = date('Y-m-d H:i:s');
$legruppe_new->updatevon = $user;
$legruppe_new->insertamum = date('Y-m-d H:i:s');
$legruppe_new->insertvon = $user;
if (!$legruppe_new->save(true))
{
$errormsg = 'Fehler beim Kopieren der Gruppe: '.$legruppe_new->errormsg;
$return = false;
}
else
{
$return = true;
}
}
}
}
// Wenn Art "alle" oder "lektoren" ist, werden auch alle Lehreinheitmitarbeiter kopiert
if(isset($_POST['art']) && ($_POST['art'] == 'alle' || $_POST['art'] == 'lektoren'))
{
$lema = new lehreinheitmitarbeiter();
$lema->getLehreinheitmitarbeiter($_POST['lehreinheit_id']);
if (count($lema->lehreinheitmitarbeiter) > 0)
{
foreach ($lema->lehreinheitmitarbeiter as $row)
{
$lema_new = new lehreinheitmitarbeiter();
$lema_new->lehreinheit_id = $leDAO->lehreinheit_id;
$lema_new->mitarbeiter_uid = $row->mitarbeiter_uid;
$lema_new->lehrfunktion_kurzbz = $row->lehrfunktion_kurzbz;
$lema_new->semesterstunden = $row->semesterstunden;
$lema_new->planstunden = $row->planstunden;
$lema_new->stundensatz = $row->stundensatz;
$lema_new->faktor = $row->faktor;
$lema_new->anmerkung = $row->anmerkung;
$lema_new->bismelden = $row->bismelden;
$lema_new->updateamum = date('Y-m-d H:i:s');
$lema_new->updatevon = $user;
$lema_new->insertamum = date('Y-m-d H:i:s');
$lema_new->insertvon = $user;
$lema_new->ext_id = $row->ext_id;
$lema_new->vertrag_id = $row->vertrag_id;
if (!$lema_new->save(true))
{
$errormsg = 'Fehler beim Kopieren der MitarbeiterInnen: '.$lema_new->errormsg;
$return = false;
}
else
{
$return = true;
}
}
}
}
$return = true;
}
else
{
$return = false;
$errormsg = $leDAO->errormsg;
}
}
}
else if ($_POST['do']=='delete') //Lehreinheit loeschen
{
if(!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid') &&
@@ -521,7 +521,7 @@ function LeDelete()
}
//Abfrage ob wirklich geloescht werden soll
if (confirm('Wollen Sie diese Lehreinheit wirklich loeschen?'))
if (confirm('Wollen Sie diesen LV-Teil wirklich loeschen?'))
{
//Script zum loeschen der Lehreinheit aufrufen
var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','','');
@@ -541,6 +541,52 @@ function LeDelete()
}
}
// ****
// * LV-Teile kopieren
// ****
function LeCopy(art)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('lehrveranstaltung-tree');
if (tree.currentIndex==-1)
return;
try
{
//Ausgewaehlte LV-Teile holen
var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehreinheit_id"] : "lehrveranstaltung-treecol-lehreinheit_id";
var lehreinheit_id = tree.view.getCellText(tree.currentIndex,col);
if(lehreinheit_id == '')
{
alert('Lehreinheit_id konnte nicht ermittelt werden');
return false;
}
}
catch(e)
{
alert(e);
return false;
}
//Script zum kopieren des LV-Teils aufrufen
var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','','');
req.add('type','lehreinheit');
req.add('do','copy');
req.add('art',art);
req.add('lehreinheit_id',lehreinheit_id);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if(!val.dbdml_return)
alert(val.dbdml_errormsg)
LvTreeRefresh();
LeDetailReset();
LeDetailDisableFields(true);
}
// ****
// * Leert alle Eingabe- und Auswahlfelder
// ****
@@ -2673,7 +2719,7 @@ function LeMitarbeiterGesamtkosten()
/*
* Oeffnet alle Subtrees
*/
function LvTreeOpenAllSubtrees()
function LvTreeOpenAllSubtrees(art)
{
var tree=document.getElementById('lehrveranstaltung-tree');
@@ -2682,10 +2728,21 @@ function LvTreeOpenAllSubtrees()
else
return false;
for(var i=items-1;i>=0;i--)
if (art == 'aus')
{
if(!tree.view.isContainerOpen(i))
tree.view.toggleOpenState(i);
for(var i=items-1;i>=0;i--)
{
if(!tree.view.isContainerOpen(i))
tree.view.toggleOpenState(i);
}
}
else if (art == 'ein')
{
for(var i=items-1;i>=0;i--)
{
if(tree.view.isContainerOpen(i))
tree.view.toggleOpenState(i);
}
}
}
@@ -54,13 +54,21 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungnotenov
<vbox id="LehrveranstaltungEditor" flex="1" uid="" stg_kz="">
<popupset>
<menupopup id="lehrveranstaltung-tree-popup">
<menu id="lehrveranstaltung-tree-popup-lehreinheit-kopieren" label="LV-Teil kopieren">
<menupopup id="lehrveranstaltung-tree-popup-lehreinheit-kopieren-popup">
<menuitem label="Alles" oncommand="LeCopy('alle');" id="lehrveranstaltung-tree-popup-lehreinheit-kopieren-alle" hidden="false"/>
<menuitem label="Nur LV-Teil" oncommand="LeCopy('lvteil');" id="lehrveranstaltung-tree-popup-lehreinheit-kopieren-lvteil" hidden="false"/>
<menuitem label="Nur mit Gruppen" oncommand="LeCopy('gruppen');" id="lehrveranstaltung-tree-popup-lehreinheit-kopieren-gruppen" hidden="false"/>
<menuitem label="Nur mit Lehrenden" oncommand="LeCopy('lektoren');" id="lehrveranstaltung-tree-popup-lehreinheit-kopieren-lektoren" hidden="false"/>
</menupopup>
</menu>
<menuitem label="Entfernen" oncommand="LeDelete();" id="lehrveranstaltung-tree-popup-entf" disabled="false"/>
</menupopup>
</popupset>
<toolbox>
<toolbar id="lehrveranstaltung-nav-toolbar">
<toolbarbutton id="lehrveranstaltung-toolbar-neu" label="Neuer LV-Teil" oncommand="LeNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neue Lehreinheit anlegen" />
<toolbarbutton id="lehrveranstaltung-toolbar-del" label="Loeschen" oncommand="LeDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Lehreinheiten löschen"/>
<toolbarbutton id="lehrveranstaltung-toolbar-neu" label="Neuer LV-Teil" oncommand="LeNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neuen LV-Teil anlegen" />
<toolbarbutton id="lehrveranstaltung-toolbar-del" label="Loeschen" oncommand="LeDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="LV-Teil löschen"/>
<toolbarbutton id="lehrveranstaltung-toolbar-refresh" label="Aktualisieren" oncommand="LvTreeRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
<toolbarbutton id="lehrveranstaltung-toolbar-lehrauftrag" label="Lehrauftrag" oncommand="LvCreateLehrauftrag()" disabled="false" image="../skin/images/person.gif" tooltiptext="Lehrauftrag ausdrucken" hidden="true"/>
@@ -82,7 +90,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungnotenov
<textbox id="lehrveranstaltung-toolbar-textbox-suche" control="lehrveranstaltung-toolbar-button-search" onkeypress="LehrveranstaltungSearchFieldKeyPress(event)" style="width: 300px" />
<button id="lehrveranstaltung-toolbar-button-search" oncommand="LehrveranstaltungSuche()" label="Suchen"/>
<spacer flex="1" />
<toolbarbutton id="lehrveranstaltung-toolbar-opensubtrees" label="Aufklappen" tooltiptext="Klappt die Untermenüs auf - mehrmaliges klicken möglich um weiter aufzuklappen" oncommand="LvTreeOpenAllSubtrees()" disabled="false" image="../skin/images/tree-diagramm.png" />
<toolbarbutton id="lehrveranstaltung-toolbar-opensubtrees" label="Aufklappen" tooltiptext="Klappt die Untermenüs auf - mehrmaliges klicken möglich um weiter aufzuklappen" oncommand="LvTreeOpenAllSubtrees('aus')" disabled="false" image="../skin/images/tree-diagramm.png" />
<toolbarbutton id="lehrveranstaltung-toolbar-opensubtrees" label="Alles Einklappen" tooltiptext="Klappt alle Untermenüs ein" oncommand="LvTreeOpenAllSubtrees('ein')" disabled="false" image="../skin/images/modul.png" />
</toolbar>
</toolbox>
+63
View File
@@ -375,6 +375,69 @@ function getStudiensemesterVariable()
}
}
// ****
// * Setzt das aktuelle Studiensemester
// ****
function setStudiensemesterAktuell()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
// Request absetzen
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'variablechange');
req.add('stsem_aktuell', 'stsem_aktuell');
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
//Statusbar setzen
document.getElementById("statusbarpanel-text").label = "Studiensemester erfolgreich geaendert";
document.getElementById("statusbarpanel-semester").label = val.dbdml_data;
//Menue setzen
var items = document.getElementsByTagName('menuitem');
for(i in items)
{
if(items[i].label==val.dbdml_data && items[i].id=='menu-properies-studiensemester-name')
{
items[i].setAttribute('checked',true);
break;
}
}
//MitarbeiterDetailStudiensemester_id = dbdml_errormsg;
//Ansichten Refreshen
try
{
StudentTreeRefresh();
}
catch(e)
{}
try
{
LvTreeRefresh();
}
catch(e)
{}
}
return true;
}
// ****
// * Laedt das Undo Menue Neu
// ****