Merge branch 'master' into demo-cis40

This commit is contained in:
Harald Bamberger
2025-11-03 15:35:39 +01:00
4 changed files with 245 additions and 237 deletions
+2 -9
View File
@@ -107,16 +107,10 @@ if(isset($_GET['getAnmeldung']))
$abgeschlossen = false;
$semesterlock = false;
$regelerfuellt = true;
if ($kompatible_lv)
{
$lvregelExists = $lvregel->exists($kompatible_lv);
if($lvregelExists)
{
if($lvregel->isAbgeschlossen($uid, $kompatible_lv))
$abgeschlossen=true;
else
$abgeschlossen=false;
}
if(!$lvregel->checkSemester($kompatible_lv, $semester))
{
@@ -135,7 +129,7 @@ if(isset($_GET['getAnmeldung']))
}
}
if (!(($lvregelExists && !$abgeschlossen) || $semesterlock || !$regelerfuellt))
if (!$semesterlock && $regelerfuellt)
{
$anzahl++;
// LV wird angeboten und Anmeldefenster ist offen
@@ -152,7 +146,6 @@ if(isset($_GET['getAnmeldung']))
echo '<br><input type="radio" disabled="true" value="'.$lvid.'" name="lv" /><span class="ok">'.$lv->bezeichnung.'</span><img src="../../../skin/images/information.png" title="'.$p->t('studienplan/bereitsAngemeldet').'"/>';
}
}
}
/* else
{
@@ -100,6 +100,11 @@ export default {
link_element.href = FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + "/CisVue/Cms/getRoomInformation/" + room_name;
link_element.appendChild(title.cloneNode(true));
title.replaceWith(link_element);
let lvplanlinks = document.querySelectorAll('.menubox a[href*="stpl_week.php"]');
for(let lvplanlink of lvplanlinks) {
lvplanlink.href = link_element.href;
}
}
else
{
+10
View File
@@ -332,6 +332,12 @@ foreach($prestudent_arr as $prest_id)
{
$studiengangbezeichnung = $studienordnung->__get('studiengangbezeichnung');
$studiengangbezeichnung_englisch = $studienordnung->__get('studiengangbezeichnung_englisch');
$akadgrad = new akadgrad();
if ($akadgrad->load($studienordnung->__get('akadgrad_id')))
{
$akadgrad_titel_studienordnung = $akadgrad->titel;
$akadgrad_kurzbz_studienordnung = $akadgrad->akadgrad_kurzbz;
}
}
}
$studiengang_bezeichnung = empty($studiengangbezeichnung) ? $studiengang->bezeichnung : $studiengangbezeichnung;
@@ -428,6 +434,8 @@ foreach($prestudent_arr as $prest_id)
//Wenn Quereinsteiger stimmt studiengang_maxsemester nicht mit der tatsaechlichen Ausbildungsdauer ueberein
$student_maxsemester = ($studiengang->max_semester-$ausbildungssemester)+1;
// TODO: where to get semester duration for master Lehrgaenge?
echo "\t\t<student_maxsemester>".$student_maxsemester."</student_maxsemester>\n";
echo "\t\t<student_anzahljahre>".($student_maxsemester/2)."</student_anzahljahre>\n";
@@ -452,6 +460,8 @@ foreach($prestudent_arr as $prest_id)
echo "\t\t<akadgrad>".$akadgrad_titel."</akadgrad>\n";
echo "\t\t<akadgrad_kurzbz>".$akadgrad_kurzbz."</akadgrad_kurzbz>\n";
echo "\t\t<akadgrad_studienordnung>".($akadgrad_titel_studienordnung ?? '')."</akadgrad_studienordnung>\n";
echo "\t\t<akadgrad_kurzbz_studienordnung>".($akadgrad_kurzbz_studienordnung ?? '')."</akadgrad_kurzbz_studienordnung>\n";
echo "\t\t<datum_aktuell>".$datum_aktuell."</datum_aktuell>\n";
@@ -62,29 +62,29 @@ $(document).ready(function()
$("#t1").tablesorter(
{
sortList: [[4,0],[0,0],[1,0],[2,0]],
widgets: ["zebra", "filter", "stickyHeaders"]
//headers: {4:{sorter:false}}
sortList: [[4,0],[0,0],[1,0],[2,0]],
widgets: ["zebra", "filter", "stickyHeaders"]
//headers: {4:{sorter:false}}
});
$("#t2").tablesorter(
{
sortList: [[0,0],[1,0],[2,0],[3,0]],
sortList: [[0,0],[1,0],[2,0],[3,0]],
widgets: ["zebra", "filter", "stickyHeaders"],
headers: {8:{sorter:false}},
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
7 : {
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
7 : {
"Ja" : function(e, n, f, i, $r, c, data) { return e === "Ja" || /^\s*$/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); }
},
8 : {
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
}
}
}
"Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); }
},
8 : {
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
}
}
}
});
$("#t3").tablesorter(
{
@@ -92,55 +92,55 @@ $(document).ready(function()
widgets: ["zebra", "filter", "stickyHeaders"],
headers: {8:{sorter:false}},
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
6 : {
widgetOptions : { filter_functions:
{
// Add select menu to this column
6 : {
"Ja" : function(e, n, f, i, $r, c, data) { return e === "Ja" || /^\s*$/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); }
},
7 : {
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
}
}
}
"Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); }
},
7 : {
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
}
}
}
});
$("#t4").tablesorter(
{
sortList: [[0,0],[1,0],[2,0]],
sortList: [[0,0],[1,0],[2,0]],
widgets: ["zebra", "filter", "stickyHeaders"],
headers: {9:{sorter:false}},
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
7 : {
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
},
8 : {
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
}
}
}
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
7 : {
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
},
8 : {
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
}
}
}
});
$("#t5").tablesorter(
{
sortList: [[0,0],[1,0],[3,1]],
sortList: [[0,0],[1,0],[3,1]],
widgets: ["zebra", "filter", "stickyHeaders"],
headers: {4:{sorter:false}},
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
4 : {
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
4 : {
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
}
}
}
}
}
});
// Breite des Autocompletes korrigieren um das Springen zu verhindern
$.extend($.ui.autocomplete.prototype.options, {
@@ -190,58 +190,58 @@ $(document).ready(function()
});
</script>
<style>
.buttonGreen
{
width: 10px;
height: 10px;
background: #d1fab9;
background-image: -webkit-linear-gradient(top, #d1fab9, #00de00);
background-image: -moz-linear-gradient(top, #d1fab9, #00de00);
background-image: -ms-linear-gradient(top, #d1fab9, #00de00);
background-image: -o-linear-gradient(top, #d1fab9, #00de00);
background-image: linear-gradient(to bottom, #d1fab9, #00de00);
-webkit-border-radius: 10;
-moz-border-radius: 10;
border-radius: 10px;
border: solid #999 1px;
text-decoration: none;
}
.buttonYellow
{
width: 10px;
height: 10px;
background: #faf7b9;
background-image: -webkit-linear-gradient(top, #faf7b9, #cfde00);
background-image: -moz-linear-gradient(top, #faf7b9, #cfde00);
background-image: -ms-linear-gradient(top, #faf7b9, #cfde00);
background-image: -o-linear-gradient(top, #faf7b9, #cfde00);
background-image: linear-gradient(to bottom, #faf7b9, #cfde00);
-webkit-border-radius: 10;
-moz-border-radius: 10;
border-radius: 10px;
border: solid #999 1px;
text-decoration: none;
}
.buttonRed
{
width: 10px;
height: 10px;
background: #f79c9c;
background-image: -webkit-linear-gradient(top, #f79c9c, #cc0202);
background-image: -moz-linear-gradient(top, #f79c9c, #cc0202);
background-image: -ms-linear-gradient(top, #f79c9c, #cc0202);
background-image: -o-linear-gradient(top, #f79c9c, #cc0202);
background-image: linear-gradient(to bottom, #f79c9c, #cc0202);
-webkit-border-radius: 10;
-moz-border-radius: 10;
border-radius: 10px;
border: solid #999 1px;
text-decoration: none;
}
</style>
<style>
.buttonGreen
{
width: 10px;
height: 10px;
background: #d1fab9;
background-image: -webkit-linear-gradient(top, #d1fab9, #00de00);
background-image: -moz-linear-gradient(top, #d1fab9, #00de00);
background-image: -ms-linear-gradient(top, #d1fab9, #00de00);
background-image: -o-linear-gradient(top, #d1fab9, #00de00);
background-image: linear-gradient(to bottom, #d1fab9, #00de00);
-webkit-border-radius: 10;
-moz-border-radius: 10;
border-radius: 10px;
border: solid #999 1px;
text-decoration: none;
}
.buttonYellow
{
width: 10px;
height: 10px;
background: #faf7b9;
background-image: -webkit-linear-gradient(top, #faf7b9, #cfde00);
background-image: -moz-linear-gradient(top, #faf7b9, #cfde00);
background-image: -ms-linear-gradient(top, #faf7b9, #cfde00);
background-image: -o-linear-gradient(top, #faf7b9, #cfde00);
background-image: linear-gradient(to bottom, #faf7b9, #cfde00);
-webkit-border-radius: 10;
-moz-border-radius: 10;
border-radius: 10px;
border: solid #999 1px;
text-decoration: none;
}
.buttonRed
{
width: 10px;
height: 10px;
background: #f79c9c;
background-image: -webkit-linear-gradient(top, #f79c9c, #cc0202);
background-image: -moz-linear-gradient(top, #f79c9c, #cc0202);
background-image: -ms-linear-gradient(top, #f79c9c, #cc0202);
background-image: -o-linear-gradient(top, #f79c9c, #cc0202);
background-image: linear-gradient(to bottom, #f79c9c, #cc0202);
-webkit-border-radius: 10;
-moz-border-radius: 10;
border-radius: 10px;
border: solid #999 1px;
text-decoration: none;
}
</style>
</head>
@@ -312,7 +312,7 @@ $htmlstr='
$selected = 'selected="selected"';
else
$selected = '';
$htmlstr .= '<option value="'.$berechtigung->berechtigung_kurzbz.'" title="'.$berechtigung->beschreibung.'" '.$selected.'>'.$berechtigung->berechtigung_kurzbz.'</option>';
$htmlstr .= '<option value="'.$berechtigung->berechtigung_kurzbz.'" title="'.htmlentities($berechtigung->beschreibung).'" '.$selected.'>'.$berechtigung->berechtigung_kurzbz.'</option>';
}
$htmlstr .= '</select>
<input type="checkbox" name="userOnly" ' . ($userOnly == true ? 'checked' : '') . '> Nur User
@@ -422,13 +422,13 @@ if(isset($_GET['searchstr']))
if($berechtigung_kurzbz != '')
{
$berechtigungen = new benutzerberechtigung();
// Wenn $userOnly false ist, werden die Rollen und Funktionen ausgegeben, die das Recht beinhalten,
// ansonsten werden die Rollen und Funktionen auf User aufgelöst und nur User ausgegeben
if ($userOnly == false)
{
// Wenn $userOnly false ist, werden die Rollen und Funktionen ausgegeben, die das Recht beinhalten,
// ansonsten werden die Rollen und Funktionen auf User aufgelöst und nur User ausgegeben
if ($userOnly == false)
{
$berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz);
if(isset($berechtigungen->result) && count($berechtigungen->result) != 0)
{
$htmlstr .= "<h3>".$berechtigung_kurzbz."</h3>\n";
@@ -444,16 +444,16 @@ if($berechtigung_kurzbz != '')
<th data-value='Aktiv'>Status</th>
<th>Aktion</th>";
$htmlstr .= "</tr></thead><tbody>\n";
foreach($berechtigungen->result as $row)
{
$benutzer = new benutzer();
$benutzer->load($row->uid);
$organisationseinheit = new organisationseinheit($row->oe_kurzbz);
$heute = strtotime(date('Y-m-d'));
if ($row->ende!='' && strtotime($row->ende) < $heute)
{
$status = '<div class="buttonRed"></div>';
@@ -466,7 +466,7 @@ if($berechtigung_kurzbz != '')
{
$status = '<div class="buttonGreen"></div>';
}
$htmlstr .= ' <tr>';
$htmlstr .= ' <td>'.($row->rolle_kurzbz != ''?$row->rolle_kurzbz:'').'</td>';
$htmlstr .= ' <td>'.($row->funktion_kurzbz != ''?$row->funktion_kurzbz:'').'</td>';
@@ -483,7 +483,7 @@ if($berechtigung_kurzbz != '')
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?funktion_kurzbz='.$row->funktion_kurzbz.'" target="vilesci_detail">Funktionsrechte bearbeiten</a></td>';
elseif ($row->rolle_kurzbz != '')
$htmlstr .= ' <td><a href="berechtigungrolle.php?rolle_kurzbz='.$row->rolle_kurzbz.'" target="vilesci_detail">Rollenrechte bearbeiten</a></td>';
$htmlstr .= ' </tr>';
}
$htmlstr .= '</tbody></table>';
@@ -493,63 +493,63 @@ if($berechtigung_kurzbz != '')
$htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden";
}
}
else
{
$berechtigungen_array = array();
$berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz);
else
{
$berechtigungen_array = array();
$berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz);
if (isset($berechtigungen->result) && count($berechtigungen->result) != 0)
{
foreach ($berechtigungen->result as $row)
{
if ($row->uid != '')
{
$berechtigungen_array[] = array('uid' => $row->uid,
'art' => $row->art,
'start' => $row->start,
'ende' => $row->ende,
'oe_kurzbz' => $row->oe_kurzbz,
'rolle_kurzbz' => '',
'funktion_kurzbz' => '');
}
if ($row->rolle_kurzbz != '')
{
$user_rolleberechtigung = new benutzerberechtigung();
$user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz);
foreach ($user_rolleberechtigung->result as $row_rolle)
{
$berechtigungen_array[] = array('uid' => $row_rolle->uid,
'art' => $row_rolle->art,
'start' => $row_rolle->start,
'ende' => $row_rolle->ende,
'oe_kurzbz' => $row_rolle->oe_kurzbz,
'rolle_kurzbz' => $row_rolle->rolle_kurzbz,
'funktion_kurzbz' => $row->funktion_kurzbz);
}
}
if ($row->funktion_kurzbz != '')
{
$user_funktion = new benutzerfunktion();
$user_funktion->getBenutzerFunktionen($row->funktion_kurzbz);
foreach ($user_funktion->result as $row_funktion)
{
$berechtigungen_array[] = array('uid' => $row_funktion->uid,
'art' => $row->art,
'start' => $row->start,
'ende' => $row->ende,
'oe_kurzbz' => $row_funktion->oe_kurzbz,
'rolle_kurzbz' => '',
'funktion_kurzbz' => $row->funktion_kurzbz);
}
}
}
// var_dump($berechtigungen_array);exit;
// Benutzer der Rolle auflösen
foreach ($berechtigungen->result as $row)
{
$user_rolleberechtigung = new benutzerberechtigung();
$user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz);
}
if (isset($berechtigungen->result) && count($berechtigungen->result) != 0)
{
foreach ($berechtigungen->result as $row)
{
if ($row->uid != '')
{
$berechtigungen_array[] = array('uid' => $row->uid,
'art' => $row->art,
'start' => $row->start,
'ende' => $row->ende,
'oe_kurzbz' => $row->oe_kurzbz,
'rolle_kurzbz' => '',
'funktion_kurzbz' => '');
}
if ($row->rolle_kurzbz != '')
{
$user_rolleberechtigung = new benutzerberechtigung();
$user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz);
foreach ($user_rolleberechtigung->result as $row_rolle)
{
$berechtigungen_array[] = array('uid' => $row_rolle->uid,
'art' => $row_rolle->art,
'start' => $row_rolle->start,
'ende' => $row_rolle->ende,
'oe_kurzbz' => $row_rolle->oe_kurzbz,
'rolle_kurzbz' => $row_rolle->rolle_kurzbz,
'funktion_kurzbz' => $row->funktion_kurzbz);
}
}
if ($row->funktion_kurzbz != '')
{
$user_funktion = new benutzerfunktion();
$user_funktion->getBenutzerFunktionen($row->funktion_kurzbz);
foreach ($user_funktion->result as $row_funktion)
{
$berechtigungen_array[] = array('uid' => $row_funktion->uid,
'art' => $row->art,
'start' => $row->start,
'ende' => $row->ende,
'oe_kurzbz' => $row_funktion->oe_kurzbz,
'rolle_kurzbz' => '',
'funktion_kurzbz' => $row->funktion_kurzbz);
}
}
}
// var_dump($berechtigungen_array);exit;
// Benutzer der Rolle auflösen
foreach ($berechtigungen->result as $row)
{
$user_rolleberechtigung = new benutzerberechtigung();
$user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz);
}
// Anzahl uniquer UIDs ermitteln
$berechtigungen_array_uids = array_map(function ($each)
@@ -560,60 +560,60 @@ if($berechtigung_kurzbz != '')
$htmlstr .= "<h3>".$berechtigung_kurzbz."</h3>\n";
$htmlstr .= "<div style='font-size: 9pt'>".count($berechtigungen_array)." Einträge</div>";
$htmlstr .= "<div style='font-size: 9pt'>".count(array_unique($berechtigungen_array_uids))." UIDs</div>";
$htmlstr .= "<table id='t4' class='tablesorter'><thead><tr>\n";
$htmlstr .= " <th>Nachname</th>
<th>Vorname</th>
<th>UID</th>
<th>Art</th>
<th>OE_Kurzbz</th>
<th>Rolle</th>
<th>Funktion</th>
<th>Benutzer Aktiv</th>
<th>Status</th>
<th>Aktion</th>";
$htmlstr .= "</tr></thead><tbody>\n";
foreach ($berechtigungen_array as $key => $row)
{
$benutzer = new benutzer();
$benutzer->load($row['uid']);
$organisationseinheit = new organisationseinheit($row['oe_kurzbz']);
$heute = strtotime(date('Y-m-d'));
if ($row['ende'] != '' && strtotime($row['ende']) < $heute)
{
$status = '<div class="buttonRed"></div>';
}
elseif ($row['start'] != '' && strtotime($row['start']) > $heute)
{
$status = '<div class="buttonYellow"></div>';
}
else
{
$status = '<div class="buttonGreen"></div>';
}
$htmlstr .= ' <tr>';
$htmlstr .= ' <td>' . ($benutzer->nachname != '' ? $benutzer->nachname : '') . '</td>';
$htmlstr .= ' <td>' . ($benutzer->vorname != '' ? $benutzer->vorname : '') . '</td>';
$htmlstr .= ' <td>' . ($row['uid'] != '' ? $row['uid'] : '') . '</td>';
$htmlstr .= ' <td>' . $row['art'] . '</td>';
$htmlstr .= ' <td>' . $organisationseinheit->organisationseinheittyp_kurzbz . ' ' .$organisationseinheit->bezeichnung . '</td>';
$htmlstr .= ' <td>' . $row['rolle_kurzbz'] . '</td>';
$htmlstr .= ' <td>' . $row['funktion_kurzbz'] . '</td>';
$htmlstr .= ' <td>' . (isset($row['uid']) ? $benutzer->bnaktiv ? 'Ja' : 'Nein' : '') . '</td>';
$htmlstr .= ' <td align="center">' . $status . '</td>';
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?uid=' . $row['uid'] . '" target="vilesci_detail">Benutzerrechte bearbeiten</a></td>';
$htmlstr .= ' </tr>';
}
$htmlstr .= '</tbody></table>';
}
else
{
$htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden";
}
$htmlstr .= "<table id='t4' class='tablesorter'><thead><tr>\n";
$htmlstr .= " <th>Nachname</th>
<th>Vorname</th>
<th>UID</th>
<th>Art</th>
<th>OE_Kurzbz</th>
<th>Rolle</th>
<th>Funktion</th>
<th>Benutzer Aktiv</th>
<th>Status</th>
<th>Aktion</th>";
$htmlstr .= "</tr></thead><tbody>\n";
foreach ($berechtigungen_array as $key => $row)
{
$benutzer = new benutzer();
$benutzer->load($row['uid']);
$organisationseinheit = new organisationseinheit($row['oe_kurzbz']);
$heute = strtotime(date('Y-m-d'));
if ($row['ende'] != '' && strtotime($row['ende']) < $heute)
{
$status = '<div class="buttonRed"></div>';
}
elseif ($row['start'] != '' && strtotime($row['start']) > $heute)
{
$status = '<div class="buttonYellow"></div>';
}
else
{
$status = '<div class="buttonGreen"></div>';
}
$htmlstr .= ' <tr>';
$htmlstr .= ' <td>' . ($benutzer->nachname != '' ? $benutzer->nachname : '') . '</td>';
$htmlstr .= ' <td>' . ($benutzer->vorname != '' ? $benutzer->vorname : '') . '</td>';
$htmlstr .= ' <td>' . ($row['uid'] != '' ? $row['uid'] : '') . '</td>';
$htmlstr .= ' <td>' . $row['art'] . '</td>';
$htmlstr .= ' <td>' . $organisationseinheit->organisationseinheittyp_kurzbz . ' ' .$organisationseinheit->bezeichnung . '</td>';
$htmlstr .= ' <td>' . $row['rolle_kurzbz'] . '</td>';
$htmlstr .= ' <td>' . $row['funktion_kurzbz'] . '</td>';
$htmlstr .= ' <td>' . (isset($row['uid']) ? $benutzer->bnaktiv ? 'Ja' : 'Nein' : '') . '</td>';
$htmlstr .= ' <td align="center">' . $status . '</td>';
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?uid=' . $row['uid'] . '" target="vilesci_detail">Benutzerrechte bearbeiten</a></td>';
$htmlstr .= ' </tr>';
}
$htmlstr .= '</tbody></table>';
}
else
{
$htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden";
}
}
}