Gruppenverwaltung als Baum mit jsTree

This commit is contained in:
Stefan Puraner
2013-10-16 09:46:45 +00:00
parent 25902a160f
commit 913f374565
4 changed files with 911 additions and 727 deletions
+242
View File
@@ -0,0 +1,242 @@
/* 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: Stefan Puraner < puraner@technikum-wien.at >
*/
$(document).ready(function() {
var stdkz = $('select[name=studiengang_kz]').val();
if (admin)
{
var where = " ";
}
else
{
var where = " AND aktiv=true";
}
$.ajax({
type: "POST",
url: "lvbgruppenverwaltungTree.php",
data: {studiengang_kz: stdkz, where: where}
}).done(function(data) {
if (data === "No Data available!")
{
$("#newDataForm").css("visibility", "visible");
}
else
{
$.cookie("jstree_load", null);
$.cookie("jstree_open", null);
$("#newDataForm").css("visibility", "hidden");
$("#treeContainer").html(data);
$("#treeContainer").jstree({
plugins: ["themes", "html_data", "cookies"]
});
}
});
});
function loadTree() {
var stdkz = $('select[name=studiengang_kz]').val();
$.ajax({
type: "POST",
url: "lvbgruppenverwaltungTree.php",
data: {studiengang_kz: stdkz, where: ""}
}).done(function(data) {
$("#treeContainer").html(data);
$("#treeContainer").jstree({
plugins: ["themes", "html_data", "cookies"]
});
});
}
;
function getGruppenDetails(type, kurzBz, studkz, semester, verband, gruppe, aktiv) {
$.ajax({
type: "POST",
url: "lvbgruppenverwaltungDetail.php",
data: {type: type, gruppe_kurzbz: kurzBz, studiengang_kz: studkz, semester: semester, verband: verband, gruppe: gruppe}
}).done(function(data) {
$("#ajaxData").html("<div class='detailsDiv'>"+data+"</div>");
});
}
;
function changeState(id, studkz, semester, verband, gruppe, aktiv, kurzBz) {
aktiv = $("#" + id).attr('aktiv');
$.ajax({
type: "POST",
url: "lvbgruppenverwaltungDetail.php",
data: {studiengang_kz: studkz, semester: semester, verband: verband, gruppe: gruppe, changeState: aktiv, gruppe_kurzbz: kurzBz}
}).done(function(data) {
if (data === "erfolgreich") {
if (aktiv === "t") {
$("#" + id).attr('src', '../../skin/images/false.png');
$("#" + id).attr('aktiv', 'f');
} else {
$("#" + id).attr('src', '../../skin/images/true.png');
$("#" + id).attr('aktiv', 't');
}
$("#ajaxData").html("<div class='detailsDiv'>Status erfolgreich geändert!</div>");
} else {
$("#ajaxData").html("<div class='detailsDiv'>"+data+"</div>");
}
});
}
;
function newGroup(id) {
var studiengang_kz = $("#newDataForm" + id).children("input[name*='studiengang_kz']").val();
var semester = $("#newDataForm" + id).children("input[name*='semester']").val();
var verband = $("#newDataForm" + id).children("input[name*='verband']").val();
var type = $("#newDataForm" + id).children("input[name*='type']").val();
var gruppe_neu = $("#newDataForm" + id).children("input[name*='gruppe_neu']").val();
$.ajax({
type: "POST",
url: "lvbgruppenverwaltungDetail.php",
data: {studiengang_kz: studiengang_kz, semester: semester, verband: verband, type: type, gruppe_neu: gruppe_neu}
}).done(function(data) {
loadTree();
$("#ajaxData").html("<div class='detailsDiv'>"+data+"</div>");
});
}
;
function newVerband(id) {
var studiengang_kz = $("#newDataForm" + id).children("input[name*='studiengang_kz']").val();
var semester = $("#newDataForm" + id).children("input[name*='semester']").val();
var verband_neu = $("#newDataForm" + id).children("input[name*='verband_neu']").val();
var type = $("#newDataForm" + id).children("input[name*='type']").val();
$.ajax({
type: "POST",
url: "lvbgruppenverwaltungDetail.php",
data: {studiengang_kz: studiengang_kz, semester: semester, type: type, verband_neu: verband_neu}
}).done(function(data) {
loadTree();
$("#ajaxData").html("<div class='detailsDiv'>"+data+"</div>");
});
}
;
function newSemester(id) {
var studiengang_kz = $("#newDataForm" + id).children("input[name*='studiengang_kz']").val();
var semester_neu = $("#newDataForm" + id).children("input[name*='semester_neu']").val();
var type = $("#newDataForm" + id).children("input[name*='type']").val();
$.ajax({
type: "POST",
url: "lvbgruppenverwaltungDetail.php",
data: {studiengang_kz: studiengang_kz, type: type, semester_neu: semester_neu}
}).done(function(data) {
loadTree();
$("#ajaxData").html("<div class='detailsDiv'>"+data+"</div>");
});
}
;
function newSemesterForNewStudiengang(stdkz) {
var studiengang_kz = stdkz;
var semester_neu = $("#newDataForm").children("input[name*='semester_neu']").val();
var type = $("#newDataForm").children("input[name*='type']").val();
$.ajax({
type: "POST",
url: "lvbgruppenverwaltungDetail.php",
data: {studiengang_kz: studiengang_kz, type: type, semester_neu: semester_neu}
}).done(function(data) {
loadTree();
$("#ajaxData").html("<div class='detailsDiv'>"+data+"</div>");
});
}
;
function newSpezGroup(id) {
var studiengang_kz = $("#newSpzDataForm" + id).children("input[name*='studiengang_kz']").val();
var semester = $("#newSpzDataForm" + id).children("input[name*='semester']").val();
var spzgruppe_neu = $("#newSpzDataForm" + id).children("input[name*='spzgruppe_neu']").val();
var type = $("#newSpzDataForm" + id).children("input[name*='type']").val();
$.ajax({
type: "POST",
url: "lvbgruppenverwaltungDetail.php",
data: {studiengang_kz: studiengang_kz, type: type, semester: semester, spzgruppe_neu: spzgruppe_neu}
}).done(function(data) {
loadTree();
$("#ajaxData").html("<div class='detailsDiv'>"+data+"</div>");
});
}
;
function saveGroup(studiengang_kz, semester, verband, gruppe, type) {
var bezeichnung = $("#newBez").val();
if(admin)
{
if (document.getElementById("aktiv").checked)
{
var aktiv = document.getElementById("aktiv").checked;
}
}
$.ajax({
type: "POST",
url: "lvbgruppenverwaltungDetail.php",
data: {studiengang_kz: studiengang_kz, semester: semester, verband: verband, gruppe: gruppe, type: type, bezeichnung: bezeichnung, aktiv: aktiv}
}).done(function(data) {
loadTree();
$("#ajaxData").html("<div class='detailsDiv'>"+data+"</div>");
});
}
function saveSpzGroup(studiengang_kz, kurzBz, type) {
if(admin)
{
var kurzBzNeu = $("#spzKurzBz").val();
var beschreibung = $("#spzBeschreibung").val();
if (document.getElementById("spzSichtbar").checked)
{
var sichtbar = document.getElementById("spzSichtbar").checked;
}
if (document.getElementById("spzLehre").checked) {
var lehre = document.getElementById("spzLehre").checked;
}
if (document.getElementById("spzAktiv").checked)
{
var aktiv = document.getElementById("spzAktiv").checked;
}
if (document.getElementById("spzMailgrp").checked)
{
var mailgrp = document.getElementById("spzMailgrp").checked;
}
if (document.getElementById("spzGeneriert").checked)
{
var generiert = document.getElementById("spzGeneriert").checked;
}
var sort = $("#spzSort").val();
var orgForm = $("#spzOrgform").val();
}
var bezeichnung = $("#spzBezeichnung").val();
$.ajax({
type: "POST",
url: "lvbgruppenverwaltungDetail.php",
data: {studiengang_kz: studiengang_kz, gruppe_kurzbz: kurzBz, bezeichnung: bezeichnung, kurzBzNeu: kurzBzNeu,
beschreibung: beschreibung, sichtbar: sichtbar, lehre: lehre, aktiv: aktiv, sort: sort, mailgrp: mailgrp,
generiert: generiert, orgForm: orgForm, type: type}
}).done(function(data) {
loadTree();
$("#ajaxData").html("<div class='detailsDiv'>"+data+"</div>");
});
$("a").click(function(){
// stuff
return false;
});
}
+101 -727
View File
@@ -19,6 +19,7 @@
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
* Stefan Puraner < puraner@technikum-wien.at >
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
@@ -31,749 +32,122 @@ if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
?>
<html>
<head>
<title>Lehrverbandsgruppen Verwaltung</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<script language="JavaScript" type="text/javascript">
function replicateKurzbz()
{
var kurzbz = document.copygroup.gruppe_kurzbz_copy.value;
document.copygroup.bezeichnung_copy.value = kurzbz;
document.copygroup.beschreibung_copy.value = kurzbz;
}
</script>
</head>
<body class="background_main">
<h2>Gruppen - Verwaltung</h2>
<?php
if(isset($_GET['studiengang_kz']) && is_numeric($_GET['studiengang_kz']))
$studiengang_kz=$_GET['studiengang_kz'];
else
$studiengang_kz='';
$user = get_uid();
$aktiv = (isset($_GET['aktiv'])?$_GET['aktiv']:'');
$type = (isset($_GET['type'])?$_GET['type']:'');
$semester = (isset($_GET['semester'])?$_GET['semester']:'');
$verband = (isset($_GET['verband'])?$_GET['verband']:'');
$gruppe = (isset($_GET['gruppe'])?$_GET['gruppe']:'');
$gruppe_kurzbz = (isset($_GET['gruppe_kurzbz'])?$_GET['gruppe_kurzbz']:'');
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
//Studiengang Drop Down anzeigen
$stud = new studiengang();
if(!$stud->getAll('typ, kurzbzlang'))
echo 'Fehler beim Laden der Studiengaenge:'.$stud->errormsg;
echo '<form accept-charset="UTF-8" name="frm_studiengang" action="'.$_SERVER['PHP_SELF'].'" method="GET">';
echo 'Studiengang: <SELECT name="studiengang_kz" onchange="document.frm_studiengang.submit()">';
foreach($stud->result as $row)
{
if($rechte->isBerechtigt('admin', $row->studiengang_kz, 'suid') ||
$rechte->isBerechtigt('assistenz', $row->studiengang_kz, 'suid'))
{
if($studiengang_kz=='')
$studiengang_kz=$row->studiengang_kz;
<head>
<title>Lehrverbandsgruppen Verwaltung</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<!-- JQuery Script-->
<script type="text/javascript" src="../../include/js/jstree/_lib/jquery.js"></script>
<!-- Script zum erstellen des Trees-->
<script type="text/javascript" src="../../include/js/jstree/jquery.jstree.js"></script>
<!-- Script zum speichern der geöffneten Tree-Nodes-->
<script type="text/javascript" src="../../include/js/jquery.cookie.js"></script>
<!-- Script zum Laden der Baumdaten per AJAX-Request-->
<script type="text/javascript" src="lvbgruppenverwaltung.js"></script>
echo '<OPTION value="'.$row->studiengang_kz.'"'.($studiengang_kz==$row->studiengang_kz?'selected':'').'>'.$row->kuerzel.' - '.$row->kurzbzlang.'</OPTION>';
}
}
echo '</SELECT>';
echo '</form>';
if($rechte->isBerechtigt('admin', $studiengang_kz, 'suid'))
$admin=true;
else
$admin=false;
if($rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid'))
$assistenz=true;
else
$assistenz=false;
if(!$admin && !$assistenz)
die('Sie haben keine Berechtigung für diesen Studiengang');
$studiengang = new studiengang();
$studiengang->load($studiengang_kz);
//Anlegen einer neuen Gruppe
if($type=='neu')
{
if(!$admin)
die('Sie haben keine Berechtigung zum Speichern');
if(isset($_POST['spzgruppe_neu']))
{
//neue Spezialgruppe anlegen
$gruppe_kurzbz=$studiengang->kuerzel.'-'.$semester.strtoupper($_POST['spzgruppe_neu']);
$gruppe = new gruppe();
if(!$gruppe->exists($gruppe_kurzbz))
{
$gruppe->gruppe_kurzbz = $gruppe_kurzbz;
$gruppe->studiengang_kz = $studiengang_kz;
$gruppe->semester = $semester;
$gruppe->bezeichnung = $gruppe_kurzbz;
$gruppe->beschreibung = $gruppe_kurzbz;
$gruppe->aktiv = true;
$gruppe->sichtbar = true;
$gruppe->lehre = true;
$gruppe->sort = '';
$gruppe->mailgrp = true;
$gruppe->generiert = false;
$gruppe->insertamum = date('Y-m-d H:i:s');
$gruppe->insertvon = $user;
<style type="text/css">
/*CSS to remove Folder Icon*/
.jstree li a ins { display:none !important; }
if($gruppe->save(true))
{
echo "Gruppe wurde angelegt";
#ajaxData {
float: left;
}
else
{
echo "<span class='error'>Fehler beim anlegen der Gruppe:$gruppe->errormsg</span>";
}
}
else
{
echo "<span class='error'>Diese Gruppe Existiert bereits: $gruppe_kurzbz</span>";
}
}
else
{
$lvb = new lehrverband();
if(isset($_POST['semester_neu']))
{
//Neues Semester anlegen
$semester = $_POST['semester_neu'];
$verband = ' ';
$gruppe = ' ';
}
elseif(isset($_POST['verband_neu']))
{
//neuen Verband anlegen
$verband = $_POST['verband_neu'];
$gruppe = ' ';
}
elseif(isset($_POST['gruppe_neu']))
{
//neue Gruppe anlegen
$gruppe = $_POST['gruppe_neu'];
}
if(!$lvb->exists($studiengang_kz, $semester, $verband, $gruppe))
{
$lvb->studiengang_kz = $studiengang_kz;
$lvb->semester = $semester;
$lvb->verband = $verband;
$lvb->gruppe = $gruppe;
$lvb->aktiv=true;
$lvb->bezeichnung = '';
if($lvb->save(true))
{
echo 'Gruppe wurde erfolgreich angelegt';
}
else
{
echo "<span class='error'>Fehler beim Anlegen der Gruppe: $lvb->errormsg</span>";
}
}
else
{
echo "<span class='error'>Diese Gruppe Existiert bereits</span>";
}
}
}
// kopieren einer Spez-Gruppe
if($type=='copy')
{
if(!$admin)
die('Sie haben keine Berechtigung zum Speichern');
if(isset($_POST['copynew']))
{
//neue Spezialgruppe anlegen
$bezeichnung = $_POST['bezeichnung_copy'];
$gruppe_kurzbz = $_POST["gruppe_kurzbz_copy"];
$beschreibung = $_POST['beschreibung_copy'];
$sichtbar = isset($_POST['sichtbar_copy']);
$lehre = isset($_POST['sichtbar_copy']);
$aktiv = isset($_POST['aktiv_copy']);
$sort = $_POST['sort_copy'];
$mailgrp = isset($_POST['mailgrp_copy']);
$generiert = isset($_POST['generiert_copy']);
$gruppe = new gruppe();
if(!$gruppe->exists($gruppe_kurzbz))
{
$gruppe->gruppe_kurzbz = $gruppe_kurzbz;
$gruppe->studiengang_kz = $studiengang_kz;
$gruppe->semester = $semester;
$gruppe->bezeichnung = $gruppe_kurzbz;
$gruppe->beschreibung = $gruppe_kurzbz;
$gruppe->aktiv = true;
$gruppe->sichtbar = true;
$gruppe->lehre = true;
$gruppe->sort = '';
$gruppe->mailgrp = true;
$gruppe->generiert = false;
$gruppe->insertamum = date('Y-m-d H:i:s');
$gruppe->insertvon = $user;
if(isset($_POST['orgform_kurzbz_copy']))
$gruppe->orgform_kurzbz = $_POST['orgform_kurzbz_copy'];
if($gruppe->save(true,false))
{
echo "Gruppe wurde angelegt";
}
else
{
echo "<span class='error'>Fehler beim Anlegen der Gruppe:$gruppe->errormsg</span>";
}
}
else
{
echo "<span class='error'>Diese Gruppe Existiert bereits: $gruppe_kurzbz</span>";
}
}
}
//Aenderung des Aktiv Status
if($aktiv!='')
{
if(!$admin)
die('Sie haben keine Berechtigung zum Speichern');
if($gruppe_kurzbz!='')
{
$gruppe = new gruppe();
if($gruppe->load($gruppe_kurzbz))
{
$gruppe->aktiv=!$gruppe->aktiv;
if($gruppe->save(false))
{
echo "Aktiv Status wurde erfolgreich geaendert";
}
else
{
echo "Fehler beim Aendern des Aktiv-Feldes: $gruppe->errormsg";
}
}
else
{
echo "Spezialgruppe wurde nicht gefunden";
}
}
else
{
$lvb = new lehrverband();
if($lvb->load($studiengang_kz, $semester, $verband, $gruppe))
{
$lvb->aktiv = !$lvb->aktiv;
if($lvb->save(false))
{
echo "Aktiv Status wurde erfolgreich geaendert";
}
else
{
echo "Fehler beim Aendern des Aktiv-Feldes: $lvb->errormsg";
}
}
else
{
echo "<span class='error'>Lehrverband wurde nicht gefunden</span>";
}
}
}
//Speichern der geaenderten Gruppendaten
if($type=='save')
{
//Spezialgruppe speichern
if($gruppe_kurzbz!='')
{
$gruppe = new gruppe();
if($gruppe->load($gruppe_kurzbz))
{
$gruppe->bezeichnung = $_POST['bezeichnung'];
if($admin)
{
$gruppe->beschreibung = $_POST['beschreibung'];
$gruppe->sichtbar = isset($_POST['sichtbar']);
$gruppe->lehre = isset($_POST['lehre']);
$gruppe->aktiv = isset($_POST['aktiv']);
$gruppe->sort = $_POST['sort'];
$gruppe->mailgrp = isset($_POST['mailgrp']);
$gruppe->generiert = isset($_POST['generiert']);
if(isset($_POST['orgform_kurzbz']))
$gruppe->orgform_kurzbz = $_POST['orgform_kurzbz'];
}
$gruppe->updateamum = date('Y-m-d H:i:s');
$gruppe->updatevon = $user;
if($gruppe->save(false))
{
echo 'Daten wurden erfolgreich geaendert';
}
else
{
echo "Fehler beim Speichern der Daten: $gruppe->errormsg";
}
$semester = $gruppe->semester;
}
else
echo "Gruppe konnte nicht geladen werden";
}
else
{
//Lehrverbandsgruppe speichern
$lvb = new lehrverband();
if($lvb->load($studiengang_kz, $semester, $verband, $gruppe))
{
$lvb->bezeichnung = $_POST['bezeichnung'];
if($admin)
{
$lvb->aktiv = isset($_POST['aktiv']);
if(isset($_POST['orgform_kurzbz']))
$lvb->orgform_kurzbz = $_POST['orgform_kurzbz'];
#treeContainer {
float: left;
width: 30%;
}
if($lvb->save(false))
{
echo 'Daten wurden erfolgreich geaendert';
#newDataDiv {
float: left;
}
else
{
echo "Fehler beim Speichern der Daten: $lvb->errormsg";
}
}
else
{
echo "Gruppe konnte nicht geladen werden";
}
}
}
//Tree der Gruppen
echo '<table style="font-size:large" width="100%"><tr><td>';
if(!$admin)
$where = ' AND aktiv=true';
else
{
$where = '';
}
if (empty($studiengang_kz))
{
$studiengang_kz=0;
}
$qry = "SELECT * FROM public.tbl_lehrverband WHERE studiengang_kz='$studiengang_kz' $where ORDER BY studiengang_kz, semester, verband, gruppe";
if($result = $db->db_query($qry))
{
$lastsemester='';
$lastverband='';
while($row = $db->db_fetch_object($result))
{
if(trim($row->verband)=='')
{
if($row->semester!=$lastsemester)
{
if($lastsemester!='')
{
if($lastverband!='')
{
if($admin)
{
//Formular zum Anlegen einer neuen Gruppe
echo "<form action='".$_SERVER['PHP_SELF']."?type=neu&studiengang_kz=$row->studiengang_kz&semester=$lastsemester&verband=$lastverband' method='POST'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-<input type='text' name='gruppe_neu' size='1' maxlength='1' /> <input type='submit' value='Neu' /></form>";
}
}
if($admin)
{
//Formular zum Anlegen eines neuen Verbandes
echo "<form action='".$_SERVER['PHP_SELF']."?type=neu&studiengang_kz=$row->studiengang_kz&semester=$lastsemester' method='POST'>&nbsp;&nbsp;&nbsp;&nbsp;|-<input type='text' name='verband_neu' size='1' maxlength='1' /> <input type='submit' value='Neuer Verband' /></form>";
}
if(!$admin)
$where=' AND aktiv AND lehre';
else
{
$where = '';
}
//Spezialgruppen des vorherigen Semesters
$qry_gruppe = "SELECT * FROM public.tbl_gruppe WHERE studiengang_kz='$studiengang_kz' AND semester='$lastsemester' $where ORDER BY sort, gruppe_kurzbz";
if($result_gruppe = $db->db_query($qry_gruppe))
{
while($row_gruppe = $db->db_fetch_object($result_gruppe))
{
echo "&nbsp;&nbsp;&nbsp;&nbsp;|-";
if($admin)
echo " <a href='".$_SERVER['PHP_SELF']."?studiengang_kz=$row->studiengang_kz&gruppe_kurzbz=$row_gruppe->gruppe_kurzbz&aktiv=".($row_gruppe->aktiv=='t'?'false':'true')."' class='Item'><img src='../../skin/images/".($row_gruppe->aktiv=='t'?'true.png':'false.png')."' height='20'></a>";
echo " <a href='".$_SERVER['PHP_SELF']."?studiengang_kz=$row->studiengang_kz&semester=$lastsemester&gruppe_kurzbz=$row_gruppe->gruppe_kurzbz&type=edit' class='Item'>$row_gruppe->gruppe_kurzbz ($row_gruppe->bezeichnung)</a><br>";
}
}
if($admin)
{
//Formular zum Anlegen einer neuen Spezialgruppe
echo "<form action='".$_SERVER['PHP_SELF']."?type=neu&studiengang_kz=$row->studiengang_kz&semester=$lastsemester' method='POST'>&nbsp;&nbsp;&nbsp;&nbsp;|- $studiengang->kuerzel-$lastsemester<input type='text' name='spzgruppe_neu' size='11' maxlength='11' /> <input type='submit' value='Neue SpzGrp' /></form>";
}
}
$lastverband='';
$lastsemester=$row->semester;
.detailsDiv {
background-color: #E0E0E0;
position: fixed;
top: 10em;
float: left;
}
//Semester ausgeben
echo '<a name="'.$row->semester.'" />';
if($admin)
echo "<a href='".$_SERVER['PHP_SELF']."?studiengang_kz=$row->studiengang_kz&semester=$row->semester&verband=$row->verband&gruppe=$row->gruppe&aktiv=".($row->aktiv=='t'?'false':'true')."' class='Item'><img src='../../skin/images/".($row->aktiv=='t'?'true.png':'false.png')."' height='20'></a>";
echo "<b><a href='".$_SERVER['PHP_SELF']."?studiengang_kz=$row->studiengang_kz&semester=$row->semester&verband=$row->verband&gruppe=$row->gruppe&type=edit' class='Item'>$row->semester ($row->bezeichnung)</a></b>";
}
elseif(trim($row->gruppe)=='')
{
if($row->verband!=$lastverband)
{
if($lastverband!='')
{
if($admin)
{
//Formular zum Anlegen einer neuen Gruppe
echo "<form action='".$_SERVER['PHP_SELF']."?type=neu&studiengang_kz=$row->studiengang_kz&semester=$row->semester&verband=$lastverband' method='POST'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-<input type='text' name='gruppe_neu' size='1' maxlength='1' /> <input type='submit' value='Neu' /></form>";
}
}
$lastverband=$row->verband;
li {
margin-top: 0.2em !important;
margin-bottom: 0.2em !important;
}
//Verband
echo "&nbsp;&nbsp;&nbsp;&nbsp;|- ";
if($admin)
echo "<a href='".$_SERVER['PHP_SELF']."?studiengang_kz=$row->studiengang_kz&semester=$row->semester&verband=$row->verband&gruppe=$row->gruppe&aktiv=".($row->aktiv=='t'?'false':'true')."' class='Item'><img src='../../skin/images/".($row->aktiv=='t'?'true.png':'false.png')."' height='20'></a>";
echo "<b><a href='".$_SERVER['PHP_SELF']."?studiengang_kz=$row->studiengang_kz&semester=$row->semester&verband=$row->verband&gruppe=$row->gruppe&type=edit' class='Item'>$row->verband ($row->bezeichnung)</a></b> ";
}
</style>
</head>
<body class="background_main">
<h2>Gruppen - Verwaltung</h2>
<?php
if (isset($_GET['studiengang_kz']) && is_numeric($_GET['studiengang_kz']))
$studiengang_kz = $_GET['studiengang_kz'];
else
{
//Gruppe
echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|- ";
if($admin)
echo "<a href='".$_SERVER['PHP_SELF']."?studiengang_kz=$row->studiengang_kz&semester=$row->semester&verband=$row->verband&gruppe=$row->gruppe&aktiv=".($row->aktiv=='t'?'false':'true')."' class='Item'><img src='../../skin/images/".($row->aktiv=='t'?'true.png':'false.png')."' height='20'></a>";
echo "<b><a href='".$_SERVER['PHP_SELF']."?studiengang_kz=$row->studiengang_kz&semester=$row->semester&verband=$row->verband&gruppe=$row->gruppe&type=edit' class='Item'>$row->gruppe ($row->bezeichnung)</a></b>";
}
echo "<br>";
}
if($lastsemester!='')
{
if($lastverband!='')
{
if($admin)
{
//Formular zum Anlegen einer neuen Gruppe
echo "<form action='".$_SERVER['PHP_SELF']."?type=neu&studiengang_kz=$studiengang_kz&semester=$lastsemester&verband=$lastverband' method='POST'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-<input type='text' name='gruppe_neu' size='1' maxlength='1' /> <input type='submit' value='Neu' /></form>";
$studiengang_kz = '';
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
//Studiengang Drop Down anzeigen
$stud = new studiengang();
if (!$stud->getAll('typ, kurzbz, kurzbzlang'))
echo 'Fehler beim Laden der Studiengaenge:' . $stud->errormsg;
echo '<form accept-charset="UTF-8" name="frm_studiengang" action="' . $_SERVER['PHP_SELF'] . '" method="GET">';
echo 'Studiengang: <SELECT name="studiengang_kz" onchange="document.frm_studiengang.submit()">';
foreach ($stud->result as $row) {
if ($rechte->isBerechtigt('admin', $row->studiengang_kz, 'suid') ||
$rechte->isBerechtigt('assistenz', $row->studiengang_kz, 'suid')) {
if ($studiengang_kz == '')
$studiengang_kz = $row->studiengang_kz;
echo '<OPTION value="' . $row->studiengang_kz . '"' . ($studiengang_kz == $row->studiengang_kz ? 'selected' : '') . '>' . $row->kuerzel . ' - ' . $row->kurzbzlang . '</OPTION>';
}
}
if($admin)
echo '</SELECT>';
echo '</form>';
if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid'))
$admin = true;
else
$admin = false;
if ($rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid'))
$assistenz = true;
else
$assistenz = false;
if (!$admin && !$assistenz)
die('Sie haben keine Berechtigung für diesen Studiengang');
$studiengang = new studiengang();
$studiengang->load($studiengang_kz);
//Tree der Gruppen
echo '<div>';
if (!$admin)
{
//Formular zum Anlegen eines neuen Verbandes
echo "<form action='".$_SERVER['PHP_SELF']."?type=neu&studiengang_kz=$studiengang_kz&semester=$lastsemester' method='POST'>&nbsp;&nbsp;&nbsp;&nbsp;|-<input type='text' name='verband_neu' size='1' maxlength='1' /> <input type='submit' value='Neuer Verband' /></form>";
$where = ' AND aktiv=true';
echo "<script>var admin = false</script>";
}
if(!$admin)
$where=' AND aktiv AND lehre';
else
{
else {
$where = '';
echo "<script>var admin = true</script>";
}
//Spezialgruppen des vorherigen Semesters
$qry_gruppe = "SELECT * FROM public.tbl_gruppe WHERE studiengang_kz='$studiengang_kz' AND semester='$lastsemester' $where ORDER BY sort, gruppe_kurzbz";
if($result_gruppe = $db->db_query($qry_gruppe))
{
while($row_gruppe = $db->db_fetch_object($result_gruppe))
{
echo "\n&nbsp;&nbsp;&nbsp;&nbsp;|- <a href='".$_SERVER['PHP_SELF']."?studiengang_kz=$studiengang_kz&gruppe_kurzbz=$row_gruppe->gruppe_kurzbz&aktiv=".($row_gruppe->aktiv=='t'?'false':'true')."' class='Item'><img src='../../skin/images/".($row_gruppe->aktiv=='t'?'true.png':'false.png')."' height='20'></a><b><a href='".$_SERVER['PHP_SELF']."?studiengang_kz=$row_gruppe->studiengang_kz&semester=$lastsemester&gruppe_kurzbz=$row_gruppe->gruppe_kurzbz&type=edit' class='Item'>$row_gruppe->gruppe_kurzbz</a></b><br>";
}
if (empty($studiengang_kz)) {
$studiengang_kz = 0;
}
echo "<div id='treeContainer'></div>";
echo "<div id='ajaxData'></div></div>";
echo "<div id='newDataDiv'></div>";
if($admin)
{
//Formular zum Anlegen einer neuen Spezialgruppe
echo "<form action='".$_SERVER['PHP_SELF']."?type=neu&studiengang_kz=$studiengang_kz&semester=$lastsemester' method='POST'>&nbsp;&nbsp;&nbsp;&nbsp;|- $studiengang->kuerzel-$lastsemester<input type='text' name='spzgruppe_neu' size='11' maxlength='11' /> <input type='submit' value='Neue SpzGrp' /></form>";
//Formular zum Anlegen eines neuen Semesters
echo "<form action='".$_SERVER['PHP_SELF']."?type=neu&studiengang_kz=$studiengang_kz' method='POST'><input type='text' name='semester_neu' size='2' maxlength='2' /> <input type='submit' value='Neu' /></form>";
}
}
}
echo '</td><td valign="top" align="center">';
//Formular zum Bearbeiten der Daten
if($type=='edit')
{
if($gruppe_kurzbz!='')
{
$gruppe = new gruppe();
if($gruppe->load($gruppe_kurzbz))
{
echo '<div style="position:fixed;
left:450px; top:50px;">';
echo "<div style='background-color: #E0E0E0'>Details von $gruppe_kurzbz<br><br>";
echo "<form action='".$_SERVER['PHP_SELF']."?type=save&studiengang_kz=$studiengang_kz&gruppe_kurzbz=$gruppe_kurzbz' method='POST'>
<table>
<tr>
<td>Bezeichnung:</td>
<td><input type='text' name='bezeichnung' size='30' maxlength='32' value='$gruppe->bezeichnung'/></td>
</tr>";
if($admin)
{
echo "
<tr>
<td>Beschreibung:</td>
<td><input type='text' name='beschreibung' size='30' maxlength='128' value='$gruppe->beschreibung'/></td>
</tr>
<tr>
<td>Sichtbar:</td>
<td><input type='checkbox' name='sichtbar' ".($gruppe->sichtbar?'checked':'')." /></td>
</tr>
<tr>
<td>Lehre:</td>
<td><input type='checkbox' name='lehre' ".($gruppe->lehre?'checked':'')." /></td>
</tr>
<tr>
<td>Aktiv:</td>
<td><input type='checkbox' name='aktiv' ".($gruppe->aktiv?'checked':'')." /></td>
</tr>
<tr>
<td>Sort:</td>
<td><input type='text' name='sort' size='2' maxlength='2' value='$gruppe->sort' /></td>
</tr>";
$stg_obj = new studiengang($studiengang_kz);
if($stg_obj->mischform)
{
echo "
<tr>
<td>OrgForm</td>
<td>";
echo " <SELECT name='orgform_kurzbz'>";
echo " <OPTION value=''>-- keine Auswahl --</OPTION>";
$qry_orgform = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz NOT IN ('VBB', 'ZGS') ORDER BY orgform_kurzbz";
if($result_orgform = $db->db_query($qry_orgform))
{
while($row_orgform = $db->db_fetch_object($result_orgform))
{
if($row_orgform->orgform_kurzbz==$gruppe->orgform_kurzbz)
$selected='selected';
else
$selected='';
echo " <OPTION value='$row_orgform->orgform_kurzbz' $selected>$row_orgform->bezeichnung</OPTION>";
}
}
echo "</SELECT></td>
</tr>";
}
echo "
<tr>
<td>Mailgrp:</td>
<td><input type='checkbox' name='mailgrp' ".($gruppe->mailgrp?'checked':'')." /></td>
</tr>
<tr>
<td>Generiert:</td>
<td><input type='checkbox' name='generiert' ".($gruppe->generiert?'checked':'')." /></td>
</tr>";
}
echo "
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td><input type='submit' value='Speichern' /></td>
</tr>
</table>
</form></div>";
if($admin)
{
echo "Als neue Gruppe speichern<br><br>";
echo "<form name='copygroup' action='".$_SERVER['PHP_SELF']."?type=copy&studiengang_kz=$studiengang_kz&semester=$semester' method='POST'>
<table>
<tr>
<td>Kurzbz:</td>
<td><input type='text' name='gruppe_kurzbz_copy' size='30' maxlength='128' value='$gruppe->gruppe_kurzbz' onkeyup='replicateKurzbz();'/></td>
</tr>
<tr>
<td>Bezeichnung:</td>
<td><input type='text' name='bezeichnung_copy' size='30' maxlength='32' value='$gruppe->bezeichnung'/></td>
</tr>";
echo "
<tr>
<td>Beschreibung:</td>
<td><input type='text' name='beschreibung_copy' size='30' maxlength='128' value='$gruppe->beschreibung'/></td>
</tr>
<tr>
<td>Sichtbar:</td>
<td><input type='checkbox' name='sichtbar_copy' ".($gruppe->sichtbar?'checked':'')." /></td>
</tr>
<tr>
<td>Lehre:</td>
<td><input type='checkbox' name='lehre_copy' ".($gruppe->lehre?'checked':'')." /></td>
</tr>
<tr>
<td>Aktiv:</td>
<td><input type='checkbox' name='aktiv_copy' ".($gruppe->aktiv?'checked':'')." /></td>
</tr>
<tr>
<td>Sort:</td>
<td><input type='text' name='sort_copy' size='2' maxlength='2' value='$gruppe->sort' /></td>
</tr>";
$stg_obj = new studiengang($studiengang_kz);
if($stg_obj->mischform)
{
echo "
<tr>
<td>OrgForm</td>
<td>";
echo " <SELECT name='orgform_kurzbz_copy'>";
echo " <OPTION value=''>-- keine Auswahl --</OPTION>";
$qry_orgform = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz NOT IN ('VBB', 'ZGS') ORDER BY orgform_kurzbz";
if($result_orgform = $db->db_query($qry_orgform))
{
while($row_orgform = $db->db_fetch_object($result_orgform))
{
if($row_orgform->orgform_kurzbz==$gruppe->orgform_kurzbz)
$selected='selected';
else
$selected='';
echo " <OPTION value='$row_orgform->orgform_kurzbz' $selected>$row_orgform->bezeichnung</OPTION>";
}
}
echo "</SELECT></td>
</tr>";
}
echo "
<tr>
<td>Mailgrp:</td>
<td><input type='checkbox' name='mailgrp_copy' ".($gruppe->mailgrp?'checked':'')." /></td>
</tr>
<tr>
<td>Generiert:</td>
<td><input type='checkbox' name='generiert_copy' ".($gruppe->generiert?'checked':'')." /></td>
</tr>";
echo "
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td><input type='submit' name='copynew' value='Speichern' /></td>
</tr>
</table>
</form>";
}
echo '</div>';
}
}
else
{
$lvb = new lehrverband();
if($lvb->load($studiengang_kz, $semester, $verband, $gruppe))
{
echo '<div style="position:fixed;
left:450px; top:50px;">';
echo "Details von $studiengang->kuerzel - $semester$verband$gruppe<br><br>";
echo "<form action='".$_SERVER['PHP_SELF']."?type=save&studiengang_kz=$studiengang_kz&semester=$semester&verband=$verband&gruppe=$gruppe' method='POST'>
<table>
<tr>
<td>Bezeichnung:</td>
<td><input type='text' name='bezeichnung' size='16' maxlength='16' value='$lvb->bezeichnung'/></td>
</tr>";
if($admin)
{
echo "
<tr>
<td>Aktiv:</td>
<td><input type='checkbox' name='aktiv' ".($lvb->aktiv?'checked':'')." /></td>
</tr>";
$stg_obj = new studiengang($studiengang_kz);
if($stg_obj->mischform)
{
echo "
<tr>
<td>OrgForm</td>
<td>";
echo " <SELECT name='orgform_kurzbz'>";
echo " <OPTION value=''>-- keine Auswahl --</OPTION>";
$qry_orgform = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz NOT IN ('VBB', 'ZGS') ORDER BY orgform_kurzbz";
if($result_orgform = $db->db_query($qry_orgform))
{
while($row_orgform = $db->db_fetch_object($result_orgform))
{
if($row_orgform->orgform_kurzbz==$lvb->orgform_kurzbz)
$selected='selected';
else
$selected='';
echo " <OPTION value='$row_orgform->orgform_kurzbz' $selected>$row_orgform->bezeichnung</OPTION>";
}
}
echo "</SELECT></td>
</tr>";
}
}
echo "
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td><input type='submit' value='Speichern' /></td>
</tr>
</table>
</form>";
echo '</div>';
}
else
echo "Gruppe wurde nicht gefunden";
}
}
echo '</td></tr></table>';
if(isset($semester) || is_numeric($semester)) //Zum Anker hüpfen
{
echo "<script language='JavaScript'>this.location.hash='#".$semester."'</script>";
}
?>
</body>
echo "<form style='visibility: hidden' id='newDataForm' method='POST' action='javascript:newSemesterForNewStudiengang(\"".$studiengang_kz."\");'>
<input type='hidden' name='type' value='neu'>
<input type='hidden' name='studiengang_kz' value='".$studiengang_kz."' />
<input type='text' maxlength='2' size='2' name='semester_neu'/>
<input type='submit' value='Semester anlegen'/>
</form>";
?>
</body>
</html>
+378
View File
@@ -0,0 +1,378 @@
<?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 >
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
* Stefan Puraner < puraner@technikum-wien.at >
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/lehrverband.class.php');
require_once('../../include/gruppe.class.php');
require_once('../../include/benutzerberechtigung.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$user = get_uid();
$aktiv = (isset($_POST['aktiv']) ? $_POST['aktiv'] : '');
$changeState = (isset($_POST['changeState']) ? $_POST['changeState'] : '');
$type = (isset($_POST['type']) ? $_POST['type'] : '');
$semester = (isset($_POST['semester']) ? $_POST['semester'] : '');
$verband = (isset($_POST['verband']) ? $_POST['verband'] : '');
$gruppe = (isset($_POST['gruppe']) ? $_POST['gruppe'] : '');
$gruppe_kurzbz = (isset($_POST['gruppe_kurzbz']) ? $_POST['gruppe_kurzbz'] : '');
$studiengang_kz = (isset($_POST['studiengang_kz']) ? $_POST['studiengang_kz'] : '');
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid'))
$admin = true;
else
$admin = false;
if ($rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid'))
$assistenz = true;
else
$assistenz = false;
if (!$admin && !$assistenz)
die('Sie haben keine Berechtigung für diesen Studiengang');
$studiengang = new studiengang();
$studiengang->load($studiengang_kz);
//Aenderung des Aktiv Status
if ($changeState != '') {
if (!$admin)
die('Sie haben keine Berechtigung zum Speichern');
if ($gruppe_kurzbz != '') {
$gruppe = new gruppe();
if ($gruppe->load($gruppe_kurzbz)) {
$gruppe->aktiv = !$gruppe->aktiv;
if ($gruppe->save(false)) {
echo "erfolgreich";
} else {
echo "Fehler beim Aendern des Aktiv-Feldes: $gruppe->errormsg";
}
} else {
echo "Spezialgruppe wurde nicht gefunden";
}
} else {
$lvb = new lehrverband();
if ($lvb->load($studiengang_kz, $semester, $verband, $gruppe)) {
$lvb->aktiv = !$lvb->aktiv;
if ($lvb->save(false)) {
echo "erfolgreich";
} else {
echo "Fehler beim Aendern des Aktiv-Feldes: $lvb->errormsg";
}
} else {
echo "<span class='error'>Lehrverband wurde nicht gefunden</span>";
}
}
}
//Anzeigen der Gruppen Details
if ($type == 'edit') {
if ($gruppe_kurzbz != '') {
$gruppe = new gruppe();
if ($gruppe->load($gruppe_kurzbz)) {
echo "<div class='detailsDiv'>Details von $gruppe_kurzbz<br><br>";
//echo "<form action='" . $_SERVER['PHP_SELF'] . "?type=save&studiengang_kz=$studiengang_kz&gruppe_kurzbz=$gruppe_kurzbz' method='POST'>
echo "<form id='formSpzSave' action='javascript:saveSpzGroup(\"".$gruppe->studiengang_kz."\",\"".$gruppe->gruppe_kurzbz."\",\"save\");' method='POST'>
<table>";
if ($admin) {
echo "<tr>
<td><b>Kurzbezeichnung:</b></td>
<td><input id='spzKurzBz' type='text' name='kurzbezeichnung' size='30' maxlength='128' value='$gruppe->gruppe_kurzbz'/></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>";
}
echo "<tr>
<td>Bezeichnung:</td>
<td><input id='spzBezeichnung' type='text' name='bezeichnung' size='30' maxlength='32' value='$gruppe->bezeichnung'/> (max. 32 Zeichen)</td>
</tr>";
if ($admin) {
echo "
<tr>
<td>Beschreibung:</td>
<td><input id='spzBeschreibung' type='text' name='beschreibung' size='30' maxlength='128' value='$gruppe->beschreibung'/> (max. 128 Zeichen)</td>
</tr>
<tr>
<td>Sichtbar:</td>
<td><input id='spzSichtbar' type='checkbox' name='sichtbar' " . ($gruppe->sichtbar ? 'checked' : '') . " /></td>
</tr>
<tr>
<td>Lehre:</td>
<td><input id='spzLehre' type='checkbox' name='lehre' " . ($gruppe->lehre ? 'checked' : '') . " /></td>
</tr>
<tr>
<td>Aktiv:</td>
<td><input id='spzAktiv' type='checkbox' name='aktiv' " . ($gruppe->aktiv ? 'checked' : '') . " /></td>
</tr>
<tr>
<td>Sort:</td>
<td><input id='spzSort' type='text' name='sort' size='2' maxlength='2' value='$gruppe->sort' /></td>
</tr>";
$stg_obj = new studiengang($studiengang_kz);
if ($stg_obj->mischform) {
echo "
<tr>
<td>OrgForm</td>
<td>";
echo " <SELECT id='spzOrgform' name='orgform_kurzbz'>";
echo " <OPTION value=''>-- keine Auswahl --</OPTION>";
$qry_orgform = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz NOT IN ('VBB', 'ZGS') ORDER BY orgform_kurzbz";
if ($result_orgform = $db->db_query($qry_orgform)) {
while ($row_orgform = $db->db_fetch_object($result_orgform)) {
if ($row_orgform->orgform_kurzbz == $gruppe->orgform_kurzbz)
$selected = 'selected';
else
$selected = '';
echo " <OPTION value='$row_orgform->orgform_kurzbz' $selected>$row_orgform->bezeichnung</OPTION>";
}
}
echo "</SELECT></td>
</tr>";
}
echo "
<tr>
<td>Mailgrp:</td>
<td><input id='spzMailgrp' type='checkbox' name='mailgrp' " . ($gruppe->mailgrp ? 'checked' : '') . " /></td>
</tr>
<tr>
<td>Generiert:</td>
<td><input id='spzGeneriert' type='checkbox' name='generiert' " . ($gruppe->generiert ? 'checked' : '') . " /></td>
</tr>";
}
echo "
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td><input type='submit' value='Speichern' /></td>
</tr>
</table>
</form></div>";
}
}
else {
$lvb = new lehrverband();
if ($lvb->load($studiengang_kz, $semester, $verband, $gruppe)) {
echo "<div class='detailsDiv'>Details von $studiengang->kuerzel - $semester$verband$gruppe<br><br>";
echo "<form id='formSave' action='javascript:saveGroup(\"".$lvb->studiengang_kz."\",\"".$lvb->semester."\",\"".$lvb->verband."\",\"".$lvb->gruppe."\",\"save\");' method='POST'>
<table>
<tr>
<td>Bezeichnung:</td>
<td><input id='newBez' type='text' name='bezeichnung' size='16' maxlength='16' value='$lvb->bezeichnung'/></td>
</tr>
<tr>
<td>
<input type='hidden' name='studiengang_kz' value='".$lvb->studiengang_kz."'/>
<input type='hidden' name='semester' value='".$lvb->semester."'/>
<input type='hidden' name='verband' value='".$lvb->verband."'/>
<input type='hidden' name='gruppe' value='".$lvb->gruppe."'/>
<input type='hidden' name='type' value='save'/>
</td>
</tr>";
if ($admin) {
echo "
<tr>
<td>Aktiv:</td>
<td><input id='aktiv' type='checkbox' name='aktiv' " . ($lvb->aktiv ? 'checked' : '') . " /></td>
</tr>";
$stg_obj = new studiengang($studiengang_kz);
if ($stg_obj->mischform) {
echo "
<tr>
<td>OrgForm</td>
<td>";
echo " <SELECT name='orgform_kurzbz'>";
echo " <OPTION value=''>-- keine Auswahl --</OPTION>";
$qry_orgform = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz NOT IN ('VBB', 'ZGS') ORDER BY orgform_kurzbz";
if ($result_orgform = $db->db_query($qry_orgform)) {
while ($row_orgform = $db->db_fetch_object($result_orgform)) {
if ($row_orgform->orgform_kurzbz == $lvb->orgform_kurzbz)
$selected = 'selected';
else
$selected = '';
echo " <OPTION value='$row_orgform->orgform_kurzbz' $selected>$row_orgform->bezeichnung</OPTION>";
}
}
echo "</SELECT></td>
</tr>";
}
}
echo "
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td><input type='submit' value='Speichern' /></td>
</tr>
</table>
</form>";
echo '</div>';
}
else
echo "Gruppe wurde nicht gefunden";
}
}
//Anlegen einer neuen Gruppe
if ($type == 'neu') {
if (!$admin)
die('Sie haben keine Berechtigung zum Speichern');
if (isset($_POST['spzgruppe_neu'])) {
//neue Spezialgruppe anlegen
$gruppe_kurzbz = $studiengang->kuerzel . '-' . $semester . strtoupper($_POST['spzgruppe_neu']);
$gruppe = new gruppe();
if (!$gruppe->exists($gruppe_kurzbz)) {
$gruppe->gruppe_kurzbz = $gruppe_kurzbz;
$gruppe->studiengang_kz = $studiengang_kz;
$gruppe->semester = $semester;
$gruppe->bezeichnung = "";
$gruppe->beschreibung = "";
$gruppe->aktiv = true;
$gruppe->sichtbar = true;
$gruppe->lehre = true;
$gruppe->sort = '';
$gruppe->mailgrp = true;
$gruppe->generiert = false;
$gruppe->insertamum = date('Y-m-d H:i:s');
$gruppe->insertvon = $user;
if ($gruppe->save(true)) {
echo "Gruppe wurde angelegt";
} else {
echo "<span class='error'>Fehler beim anlegen der Gruppe:$gruppe->errormsg</span>";
}
} else {
echo "<span class='error'>Diese Gruppe Existiert bereits: $gruppe_kurzbz</span>";
}
} else {
$lvb = new lehrverband();
if (isset($_POST['semester_neu'])) {
//Neues Semester anlegen
$semester = $_POST['semester_neu'];
$verband = ' ';
$gruppe = ' ';
} elseif (isset($_POST['verband_neu'])) {
//neuen Verband anlegen
$verband = $_POST['verband_neu'];
$gruppe = ' ';
} elseif (isset($_POST['gruppe_neu'])) {
//neue Gruppe anlegen
$gruppe = $_POST['gruppe_neu'];
}
if (!$lvb->exists($studiengang_kz, $semester, $verband, $gruppe)) {
$lvb->studiengang_kz = $studiengang_kz;
$lvb->semester = $semester;
$lvb->verband = $verband;
$lvb->gruppe = $gruppe;
$lvb->aktiv = true;
$lvb->bezeichnung = '';
if ($lvb->save(true)) {
echo 'Daten wurden erfolgreich angelegt';
} else {
echo "<span class='error'>Fehler beim Anlegen der Gruppe: $lvb->errormsg</span>";
}
} else {
echo "<span class='error'>Diese Gruppe Existiert bereits</span>";
}
}
}
//Speichern der geaenderten Gruppendaten
if ($type == 'save') {
//Spezialgruppe speichern
if ($gruppe_kurzbz != '') {
$gruppe = new gruppe();
if ($gruppe->load($gruppe_kurzbz)) {
$gruppe->bezeichnung = $_POST['bezeichnung'];
if ($admin) {
$gruppe->gruppe_kurbzNeu = (isset($_POST['kurzBzNeu']) ? $_POST['kurzBzNeu'] : $gruppe_kurzbz);
$gruppe->beschreibung = $_POST['beschreibung'];
$gruppe->sichtbar = isset($_POST['sichtbar']);
$gruppe->lehre = isset($_POST['lehre']);
$gruppe->aktiv = isset($_POST['aktiv']);
$gruppe->sort = $_POST['sort'];
$gruppe->mailgrp = isset($_POST['mailgrp']);
$gruppe->generiert = isset($_POST['generiert']);
if (isset($_POST['orgform_kurzbz']))
$gruppe->orgform_kurzbz = $_POST['orgform_kurzbz'];
}
$gruppe->updateamum = date('Y-m-d H:i:s');
$gruppe->updatevon = $user;
if ($gruppe->save(false)) {
echo 'Daten wurden erfolgreich geaendert';
} else {
echo "Fehler beim Speichern der Daten: $gruppe->errormsg";
}
$semester = $gruppe->semester;
}
else
echo "Gruppe konnte nicht geladen werden";
}
else {
//Lehrverbandsgruppe speichern
$lvb = new lehrverband();
if ($lvb->load($studiengang_kz, $semester, $verband, $gruppe)) {
$lvb->bezeichnung = $_POST['bezeichnung'];
if ($admin) {
$lvb->aktiv = isset($_POST['aktiv']);
if (isset($_POST['orgform_kurzbz']))
$lvb->orgform_kurzbz = $_POST['orgform_kurzbz'];
}
if ($lvb->save(false)) {
echo 'Daten wurden erfolgreich geaendert';
} else {
echo "Fehler beim Speichern der Daten: $lvb->errormsg";
}
} else {
echo "Gruppe konnte nicht geladen werden";
}
}
}
?>
+190
View File
@@ -0,0 +1,190 @@
<?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 >
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
* Stefan Puraner < puraner@technikum-wien.at >
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/lehrverband.class.php');
require_once('../../include/gruppe.class.php');
require_once('../../include/benutzerberechtigung.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
?>
<?php
if (isset($_POST['studiengang_kz']) && is_numeric($_POST['studiengang_kz']))
$studiengang_kz = $_POST['studiengang_kz'];
else
$studiengang_kz = '';
$user = get_uid();
$where = $_POST["where"];
$studiengang = new studiengang();
$studiengang->load($studiengang_kz);
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid'))
$admin = true;
else
$admin = false;
$lehrverband = new lehrverband();
//Semester des Studiengangs laden und ausgeben
$semResult = $lehrverband->getSemesterFromStudiengang($studiengang_kz, $where);
if ($semResult != false) {
echo "<ul>";
foreach ($semResult as $s) {
$sem = $s["semester"];
echo "<li id='node_".$studiengang_kz.$sem.$s["aktiv"]."'>
<a href='javascript:void(0);' onclick='changeState(\"pic_".$studiengang_kz.$sem.$s["aktiv"]."\",$studiengang_kz,\"" . $sem . "\",\" \",\" \",\"" .$s["aktiv"]. "\")'>
<img id='pic_".$studiengang_kz.$sem.$s["aktiv"]."' src='../../skin/images/" . ($s["aktiv"] == 't' ? 'true.png' : 'false.png') . "' aktiv='".$s["aktiv"]."' height='20'>
</a>
<a href='javascript:void(0);' onclick='getGruppenDetails(\"edit\",\"\",$studiengang_kz,\"" . $sem . "\",\" \",\" \",\"".$s["aktiv"]."\")'>
Semester " . $s["semester"] . "
</a>";
//Verbände des Semesters holen und ausgeben
$verbandResult = $lehrverband->getVerbandFromSemester($studiengang_kz, $s["semester"], $where);
if ($verbandResult != false) {
echo "<ul>";
foreach ($verbandResult as $v) {
$verb = $v["verband"];
if ($verb != ' ') {
echo "<li id='node_$studiengang_kz$sem$verb'>
<a href='javascript:void(0);' onclick='changeState(\"pic_".$studiengang_kz.$sem.$verb."\",$studiengang_kz,\"" . $sem . "\",\"" . $verb . "\",\" \",\"" . $v["aktiv"] . "\")'>
<img id='pic_".$studiengang_kz.$sem.$verb."' src='../../skin/images/" . ($v["aktiv"] == 't' ? 'true.png' : 'false.png') . "' aktiv='".$v["aktiv"]."' height='20'>
</a>
<a href='javascript:void(0);' onclick='getGruppenDetails(\"edit\",\"\",$studiengang_kz,\"" . $sem . "\",\"" . $verb . "\",\" \",\"".$v["aktiv"]."\")'>
Verband " . $verb . ($v["bezeichnung"] != '' ? " (" . $v["bezeichnung"] . ")" : '' ) . "
</a>";
//Gruppen des Verbandes holen und ausgeben
$grpResult = $lehrverband->getGruppeFromVerband($studiengang_kz, $s["semester"], $v["verband"], $where);
if ($grpResult != null) {
echo "<ul>";
foreach ($grpResult as $g) {
$grp = $g["gruppe"];
$grpBez = $g["bezeichnung"];
if ($grp != ' ') {
if ($g["gruppe"] != '') {
echo "<li id=\"node_$studiengang_kz$sem$verb$grp\">
<a href='javascript:void(0);' onclick='changeState(\"pic_".$studiengang_kz.$sem.$verb.$grp."\",$studiengang_kz,\"" . $sem . "\",\"" . $verb . "\",\"" . $grp . "\",\"" . $g["aktiv"] . "\")'>
<img id='pic_".$studiengang_kz.$sem.$verb.$grp."' src='../../skin/images/" . ($g["aktiv"] == 't' ? 'true.png' : 'false.png') . "' aktiv='".$g["aktiv"]."' height='20'>
</a>
<a href='javascript:void(0);' onclick='getGruppenDetails(\"edit\",\"\",$studiengang_kz,\"" . $sem . "\",\"" . $verb . "\",\"" . $grp . "\",\"".$g["aktiv"]."\")'>
Gruppe " . $grp . ($grpBez != '' ? " (" . $grpBez . ")" : '' ) . "
</a>
</li>";
}
}
}
if($admin)
{
//Formular für neue Gruppe
echo "<li id=\"formNode_".$studiengang_kz.$sem.$verb."\">
<a href='javascript:void(0);'>
<form id='newDataForm".$studiengang_kz.$sem.$verb."' method='POST' action='javascript:newGroup(\"".$studiengang_kz.$sem.$verb."\");'>
<input type='hidden' name='type' value='neu'>
<input type='hidden' name='studiengang_kz' value='".$studiengang_kz."' />
<input type='hidden' name='semester' value='".$sem."' />
<input type='hidden' name='verband' value='".$verb."' />
<input type='text' maxlength='1' size='1' name='gruppe_neu'/>
<input type='submit' value='Gruppe anlegen'/>
</form>
</a></li>";
}
echo "</ul></li>";
}
}
}
if($admin)
{
//Formular für neuen Verband
echo "<li id=\"formNode_".$studiengang_kz.$sem."\">
<a href='javascript:void(0);'>
<form id='newDataForm".$studiengang_kz.$sem."' method='POST' action='javascript:newVerband(\"".$studiengang_kz.$sem."\");'>
<input type='hidden' name='type' value='neu'>
<input type='hidden' name='studiengang_kz' value='".$studiengang_kz."' />
<input type='hidden' name='semester' value='".$sem."' />
<input type='text' maxlength='1' size='1' name='verband_neu'/>
<input type='submit' value='Verband anlegen'/>
</form>
</a>
</li>";
}
//Ausgabe der Spezialgruppen des Semesters
$gruppe = new gruppe();
$gruppe->getgruppe($studiengang_kz, $sem);
echo "<li id=\"spzGrp_".$sem."\"><a href='#'>Spezialgruppen</a><ul>";
foreach ($gruppe->result as $spezGroup) {
$state = $spezGroup->aktiv == true ? "t" : "f";
$kurzBz = $spezGroup->gruppe_kurzbz;
$type = "edit";
echo "<li id=\"spzNode_$spezGroup->bezeichnung\">
<a href='javascript:void(0);' onclick='changeState(\"pic_".$studiengang_kz.$sem.$kurzBz."\",$studiengang_kz,\"" . $sem . "\",\" \",\" \",\"". $state."\",\"".$kurzBz."\")'>
<img id='pic_".$studiengang_kz.$sem.$kurzBz."' src='../../skin/images/" . ($spezGroup->aktiv == 't' ? 'true.png' : 'false.png') . "' aktiv='".$state."' height='20'>
</a>
<a href='javascript:void(0);' onclick='getGruppenDetails(\"edit\",\"" . $kurzBz . "\",$studiengang_kz,\"" . $sem . "\")'>
" . $kurzBz . ($spezGroup->bezeichnung != '' ? "(" . $spezGroup->bezeichnung . ")" : '')."
</a>
</li>";
}
if($admin)
{
//Formular für neue Spezialgruppe
echo "<li id=\"formNodeSpz_".$studiengang_kz.$sem."\">
<a href='javascript:void(0);'>
<form id='newSpzDataForm".$studiengang_kz.$sem."' method='POST' action='javascript:newSpezGroup(\"".$studiengang_kz.$sem."\");'>
<input type='hidden' name='type' value='neu'>
<input type='hidden' name='semester' value='".$sem."' />
<input type='hidden' name='studiengang_kz' value='".$studiengang_kz."' />
".$studiengang->kuerzel."-".$sem."
<input type='text' maxlength='11' size='11' name='spzgruppe_neu'/>
<input type='submit' value='Spezialgruppe anlegen'/>
</form>
</a>
</li>";
}
echo "</ul></li></ul></li>";
}
}
//Formular für neues Semester
if($admin)
{
echo "<li id=\"formNode_".$studiengang_kz."\">
<a href='javascript:void(0);'>
<form id='newDataForm".$studiengang_kz."' method='POST' action='javascript:newSemester(\"".$studiengang_kz."\");'>
<input type='hidden' name='type' value='neu'>
<input type='hidden' name='studiengang_kz' value='".$studiengang_kz."' />
<input type='text' maxlength='2' size='2' name='semester_neu'/>
<input type='submit' value='Semester anlegen'/>
</form>
</a>
</li>";
}
echo "</ul></li>";
} else {
echo "No Data available!";
}
?>