Merge branch 'master' into FASgendern

This commit is contained in:
Unknown
2019-09-06 15:40:48 +02:00
57 changed files with 2106 additions and 1363 deletions
+1 -1
View File
@@ -119,7 +119,7 @@
- **[DEPRECATED]** Spalte ort_kurzbz in tbl_reihungstest wird nicht mehr verwendet und in zukünftigen Versionen entfernt
Zum Update auf diese Version folgen Sie den Anweisungen auf folgender Seite:
http://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=fh-complete:codeigniter
https://wiki.fhcomplete.org/doku.php?id=fh-complete:codeigniter
## [3.1.0] - 2015-11-12
### Added
+2 -2
View File
@@ -1,5 +1,5 @@
# FH-Complete
* [FH-Complete Homepage](http://www.fhcomplete.org)
* [Wiki](http://fhcomplete.technikum-wien.at/dokuwiki/)
* [FH-Complete Homepage](https://www.fhcomplete.org)
* [Wiki](https://wiki.fhcomplete.org/)
* [Changelog](CHANGELOG.md)
@@ -98,8 +98,8 @@ class Lehreinheitgruppe_model extends DB_Model
'semester' => $lvadata->semester,
'bezeichnung' => $bezeichnung,
'aktiv' => true,
'mailgrp' => false,
'sichtbar' => true,
'mailgrp' => true,
'sichtbar' => false,
'generiert' => false,
'insertamum' => date('Y-m-d H:i:s'),
'insertvon' => $loggedInUser,
@@ -61,7 +61,7 @@ class Studiensemester_model extends DB_Model
start,
ende
FROM public.tbl_studiensemester
WHERE start > (
WHERE start >= (
SELECT ende
FROM public.tbl_studiensemester
WHERE studiensemester_kurzbz = ?
@@ -72,6 +72,26 @@ class Studiensemester_model extends DB_Model
return $this->execQuery($query, array($studiensemester_kurzbz));
}
/**
* getPreviousFrom
*/
public function getPreviousFrom($studiensemester_kurzbz)
{
$query = 'SELECT studiensemester_kurzbz,
start,
ende
FROM public.tbl_studiensemester
WHERE ende <= (
SELECT start
FROM public.tbl_studiensemester
WHERE studiensemester_kurzbz = ?
)
ORDER BY start DESC
LIMIT 1';
return $this->execQuery($query, array($studiensemester_kurzbz));
}
/**
* getNearest
*/
+1
View File
@@ -3,6 +3,7 @@ $this->load->view('templates/FHC-Header',
array(
'title' => 'FH-Complete',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
+2
View File
@@ -20,6 +20,8 @@
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
session_start();
require_once('../../config/cis.config.inc.php');
require_once('../../include/wochenplan.class.php');
require_once('../../include/benutzerberechtigung.class.php');
+148 -302
View File
@@ -23,8 +23,6 @@
*/
// Oberflaeche zum Upload von Bildern
//session_cache_limiter('none'); //muss gesetzt werden damit der upload in chrome und das automatische updaten des profilbildes funktioniert
require_once('../../config/cis.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/person.class.php');
@@ -32,67 +30,52 @@ require_once('../../include/benutzer.class.php');
require_once('../../include/akte.class.php');
require_once('../../include/phrasen.class.php');
require_once('../../include/fotostatus.class.php');
$user = get_uid();
$sprache = getSprache();
$p = new phrasen($sprache);
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css">
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
<link rel="stylesheet" type="text/css" href="../../skin/simplecropper.css">'.
cropCss().'
<link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
<script type="text/javascript" src="../../vendor/tapmodo/Jcrop/js/Jcrop.min.js"></script>
<script type="text/javascript" src="../../vendor/tomazdragar/SimpleCropper/scripts/jquery.SimpleCropper.js"></script>
<script type="text/javascript" src="../../include/js/cropper.js"></script>
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../vendor/twbs/bootstrap/dist/js/bootstrap.min.js"></script>
<title>'.$p->t('profil/Bildupload').'</title>
</head>
<body>
<div style="padding: 10px">
<h1>'.$p->t('profil/Bildupload').'</h1>';
function resize($filename, $width, $height)
{
$ext = explode('.',$_FILES['bild']['name']);
$ext = strtolower($ext[count($ext)-1]);
$ext = explode('.',$_FILES['bild']['name']);
$ext = strtolower($ext[count($ext)-1]);
// Hoehe und Breite neu berechnen
list($width_orig, $height_orig) = getimagesize($filename);
if ($width && ($width_orig < $height_orig))
{
$width = ($height / $height_orig) * $width_orig;
}
else
{
$height = ($width / $width_orig) * $height_orig;
}
// Hoehe und Breite neu berechnen
list($width_orig, $height_orig) = getimagesize($filename);
$image_p = imagecreatetruecolor($width, $height);
if ($width && ($width_orig < $height_orig))
{
$width = ($height / $height_orig) * $width_orig;
}
else
{
$height = ($width / $width_orig) * $height_orig;
}
$image = imagecreatefromjpeg($filename);
$image_p = imagecreatetruecolor($width, $height);
//Bild nur verkleinern aber nicht vergroessern
if($width_orig>$width || $height_orig>$height)
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
else
$image_p = $image;
$image = imagecreatefromjpeg($filename);
imagejpeg($image_p, $filename, 80);
//Bild nur verkleinern aber nicht vergroessern
if($width_orig>$width || $height_orig>$height)
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
else
$image_p = $image;
imagejpeg($image_p, $filename, 80);
@imagedestroy($image_p);
@imagedestroy($image);
@imagedestroy($image_p);
@imagedestroy($image);
}
if(isset($_GET['person_id']))
{
$benutzer = new benutzer();
@@ -107,269 +90,132 @@ if(isset($_GET['person_id']))
}
else
die($p->t('global/fehlerBeiDerParameteruebergabe'));
//Bei Upload des Bildes
if(isset($_POST['submitbild']))
{
if(isset($_FILES['bild']['tmp_name']))
{
//Extension herausfiltern
$ext = explode('.',$_FILES['bild']['name']);
$ext = mb_strtolower($ext[count($ext)-1]);
$width=101;
$height=130;
echo '<br>';
echo $p->t('profil/BilduploadInfotext',array($p->t('dms_link/bildRichtlinien'))).'<br><br>';
echo '<div class="simple-cropper-images">
'.$p->t('profil/fotoAuswählen').'
<div class="cropme" id="croppingdiv" style="width: 300px; height: 400px; background-image:url(../../skin/images/photoupload.png); margin:10px; cursor:pointer;"></div>
<script>
// Init Simple Cropper
$(".cropme").simpleCropper();
</script>
</div>
<input type="button" name="submitbild" id="saveimgbutton" value="'.$p->t('profil/bildSpeichern').'" style="margin-left:90px;"/>
<input type="hidden" id="person_id" value="'.$_GET['person_id'].'" />';
//--check that it's a jpeg
if ($ext=='jpg' || $ext=='jpeg')
{
$filename = $_FILES['bild']['tmp_name'];
if (isset($_POST['src'])) {
$src = $_POST['src'];
echo $src;
//groesse auf maximal 827x1063 begrenzen
resize($filename, 827, 1063);
$fp = fopen($filename,'r');
//auslesen
$content = fread($fp, filesize($filename));
fclose($fp);
$akte = new akte();
if($akte->getAkten($_GET['person_id'], 'Lichtbil'))
{
if(count($akte->result)>0)
{
$akte = $akte->result[0];
$akte->new = false;
}
else
$akte->new = true;
}
else
{
$akte->new = true;
}
$akte->dokument_kurzbz = 'Lichtbil';
$akte->person_id = $_GET['person_id'];
$akte->inhalt = base64_encode($content);
$akte->mimetype = "image/jpg";
$akte->erstelltam = date('Y-m-d H:i:s');
$akte->gedruckt = false;
$akte->titel = "Lichtbild_".$_GET['person_id'].".jpg";
$akte->bezeichnung = "Lichtbild gross";
$akte->updateamum = date('Y-m-d H:i:s');
$akte->updatevon = $user;
$akte->insertamum = date('Y-m-d H:i:s');
$akte->insertvon = $user;
$akte->uid = '';
if(!$akte->save())
{
echo '<div class="alert alert-danger">Fehler: '.$akte->errormsg.'</div>';
}
//groesse auf maximal 101x130 begrenzen
resize($filename, 101, 130);
//in DB speichern
//File oeffnen
$fp = fopen($filename,'r');
//auslesen
$content = fread($fp, filesize($filename));
fclose($fp);
//in base64-Werte umrechnen
$content = base64_encode($content);
$person = new person();
if($person->load($_GET['person_id']))
{
//base64 Wert in die Datenbank speichern
$person->foto = $content;
$person->new = false;
if($person->save())
{
$fs = new fotostatus();
$fs->person_id=$person->person_id;
$fs->fotostatus_kurzbz='hochgeladen';
$fs->datum = date('Y-m-d');
$fs->insertamum = date('Y-m-d H:i:s');
$fs->insertvon = $user;
$fs->updateamum = date('Y-m-d H:i:s');
$fs->updatevon = $user;
if(!$fs->save(true))
echo '<div class="alert alert-danger">Fehler beim Setzen des Bildstatus</div>';
else
{
echo "<div class='alert alert-success'>Bild wurde erfolgreich gespeichert</div>
<script language='Javascript'>
if(typeof(opener.StudentAuswahl) == 'function')
opener.StudentAuswahl();
if(typeof(opener.MitarbeiterAuswahl) == 'function')
opener.MitarbeiterAuswahl();
if(typeof(opener.RefreshImage) == 'function' ||
typeof(opener.RefreshImage) == 'object')
{
opener.RefreshImage();
}
window.close();
</script>";
}
}
else
echo '<div class="alert alert-danger">'.$person->errormsg.'</div>';
}
else
echo '<div class="alert alert-danger">'.$person->errormsg.'</div>';
}
else
echo '<div class="alert alert-danger">'.$p->t('profil/nurJPGBilder').'</div>';
}
}
function cropCss() {
return '
<style type="text/css">
/* jquery.Jcrop.css v0.9.12 - MIT License */
/*
The outer-most container in a typical Jcrop instance
If you are having difficulty with formatting related to styles
on a parent element, place any fixes here or in a like selector
You can also style this element if you want to add a border, etc
A better method for styling can be seen below with .jcrop-light
(Add a class to the holder and style elements for that extended class)
*/
.jcrop-holder {
direction: ltr;
text-align: left;
}
/* Selection Border */
.jcrop-vline,
.jcrop-hline {
background: #ffffff url("../images/Jcrop.gif");
font-size: 0;
position: absolute;
}
.jcrop-vline {
height: 100%;
width: 1px !important;
}
.jcrop-vline.right {
right: 0;
}
.jcrop-hline {
height: 1px !important;
width: 100%;
}
.jcrop-hline.bottom {
bottom: 0;
}
/* Invisible click targets */
.jcrop-tracker {
height: 100%;
width: 100%;
/* "turn off" link highlight */
-webkit-tap-highlight-color: transparent;
/* disable callout, image save panel */
-webkit-touch-callout: none;
/* disable cut copy paste */
-webkit-user-select: none;
}
/* Selection Handles */
.jcrop-handle {
background-color: #333333;
border: 1px #eeeeee solid;
width: 14px;
height: 14px;
font-size: 1px;
}
.jcrop-handle.ord-n {
left: 50%;
margin-left: -4px;
margin-top: -4px;
top: 0;
}
.jcrop-handle.ord-s {
bottom: 0;
left: 50%;
margin-bottom: -4px;
margin-left: -4px;
}
.jcrop-handle.ord-e {
margin-right: -4px;
margin-top: -4px;
right: 0;
top: 50%;
}
.jcrop-handle.ord-w {
left: 0;
margin-left: -4px;
margin-top: -4px;
top: 50%;
}
.jcrop-handle.ord-nw {
left: 0;
margin-left: -4px;
margin-top: -4px;
top: 0;
}
.jcrop-handle.ord-ne {
margin-right: -4px;
margin-top: -4px;
right: 0;
top: 0;
}
.jcrop-handle.ord-se {
bottom: 0;
margin-bottom: -4px;
margin-right: -4px;
right: 0;
}
.jcrop-handle.ord-sw {
bottom: 0;
left: 0;
margin-bottom: -4px;
margin-left: -4px;
}
/* Dragbars */
.jcrop-dragbar.ord-n,
.jcrop-dragbar.ord-s {
height: 7px;
width: 100%;
}
.jcrop-dragbar.ord-e,
.jcrop-dragbar.ord-w {
height: 100%;
width: 7px;
}
.jcrop-dragbar.ord-n {
margin-top: -4px;
}
.jcrop-dragbar.ord-s {
bottom: 0;
margin-bottom: -4px;
}
.jcrop-dragbar.ord-e {
margin-right: -4px;
right: 0;
}
.jcrop-dragbar.ord-w {
margin-left: -4px;
}
/* The "jcrop-light" class/extension */
.jcrop-light .jcrop-vline,
.jcrop-light .jcrop-hline {
background: #ffffff;
filter: alpha(opacity=70) !important;
opacity: .70!important;
}
.jcrop-light .jcrop-handle {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
background-color: #000000;
border-color: #ffffff;
border-radius: 3px;
}
/* The "jcrop-dark" class/extension */
.jcrop-dark .jcrop-vline,
.jcrop-dark .jcrop-hline {
background: #000000;
filter: alpha(opacity=70) !important;
opacity: 0.7 !important;
}
.jcrop-dark .jcrop-handle {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
background-color: #ffffff;
border-color: #000000;
border-radius: 3px;
}
/* Simple macro to turn off the antlines */
.solid-line .jcrop-vline,
.solid-line .jcrop-hline {
background: #ffffff;
}
/* Fix for twitter bootstrap et al. */
.jcrop-holder img,
img.jcrop-preview {
max-width: none;
}
.clear{
font-size: 0px;
line-height: 0px;
overflow: hidden;
width: 0px;
height: 0px;
clear: both;
}
.simple-cropper-images{
width: 820px;
margin: 0 auto 20px;
}
.cropme{
background-image: url(../../skin/images/photoupload.png);
}
.cropme:hover{
}
.text{
font-family: arial;
font-size: 14px;
color: #4e4e4e;
margin-bottom: 20px;
}
.code{
font-family: arial;
font-size: 14px;
color: #4e4e4e;
margin-bottom: 20px;
background-color: #f1f1f1;
padding: 10px;
}
#fileInput{
width:0;
height:0;
overflow:hidden;
}
#modal{
z-index: 10;
position: fixed;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
background-color: #5F5F5F;
opacity: 0.95;
display: none;
}
#preview{
z-index: 11;
position: fixed;
top: 0px;
left: 0px;
display: none;
border: 4px solid #A5A2A2;
border-radius: 4px;
float: left;
font-size: 0px;
line-height: 0px;
}
#preview .buttons{
width: 36px;
position: absolute;
bottom:0px;
right: -44px;
}
</style>';
}
//echo '<br>';
echo $p->t('profil/BilduploadInfotext',array($p->t('dms_link/bildRichtlinien'))).'<br><br>
<form accept-charset="UTF-8" method="POST" enctype="multipart/form-data" action="'.$_SERVER['PHP_SELF'].'?person_id='.$_GET['person_id'].'">
'.$p->t('profil/Bild').': <input type="file" accept="image/jpeg" name="bild" /><br>
<button type="submit" class="btn btn-primary" name="submitbild">Upload</button>
</form>
</td></tr>';
?>
</div>
</body>
</html>
+3 -1
View File
@@ -791,6 +791,8 @@ function writeAnmeldungen(data)
var liste = "<ul id='sortable'>";
var count = 0;
var studiensemester = $("#filter_studiensemester option:selected").val();
var listenLinks = "<a href='./pruefungsanmeldungen_liste.pdf.php?termin_id="+terminId+"&lehrveranstaltung_id="+lehrveranstaltung_id+"&studiensemester="+studiensemester+"' target='_blank'><?php echo $p->t('pruefung/listeDrucken'); ?></a><br>"
+ "<a href='./pruefungsanmeldungen_liste_ohne_namen.php?termin_id="+terminId+"&lehrveranstaltung_id="+lehrveranstaltung_id+"&studiensemester="+studiensemester+"' target='_blank'><?php echo $p->t('pruefung/listeOhneNamenDrucken'); ?></a>";
data.result.anmeldungen.forEach(function(d){
count++;
var vorname = d.student.vorname !== "null" ? d.student.vorname : "";
@@ -825,7 +827,7 @@ function writeAnmeldungen(data)
$("#reihungSpeichernButton").html("<input type='button' value='<?php echo $p->t('pruefung/reihungSpeichern'); ?>' onclick='saveReihung(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'><input type='button' value='<?php echo $p->t('pruefung/alleBestaetigen'); ?>' onclick='alleBestaetigen(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>");
$("#lvdaten").html(lv_bezeichnung+" ("+prf_termin+")");
$("#anmeldeDaten").html(liste);
$("#listeDrucken").html("<a href='./pruefungsanmeldungen_liste.pdf.php?termin_id="+terminId+"&lehrveranstaltung_id="+lehrveranstaltung_id+"&studiensemester="+studiensemester+"' target='_blank'><?php echo $p->t('pruefung/listeDrucken'); ?></a>");
$("#listeDrucken").html(listenLinks);
if(ort_kurzbz !== null)
{
$("#raumLink").html("<span><?php echo $p->t('pruefung/pruefungsraum'); ?></span>"+ort_kurzbz);
@@ -35,6 +35,7 @@ require_once('../../../../include/datum.class.php');
require_once('../../../../include/phrasen.class.php');
require_once('../../../../include/globals.inc.php');
require_once('../../../../include/sprache.class.php');
require_once('../../../../include/studiengang.class.php');
$sprache = getSprache();
$lang = new sprache();
@@ -230,6 +231,7 @@ $rechte->getBerechtigungen($uid);
<th><?php echo $p->t('global/vorname'); ?></th>
<th><?php echo $p->t('global/nachname'); ?></th>
<th><?php echo $p->t('pruefung/matrikelnummer'); ?></th>
<th><?php echo $p->t('pruefung/studiengangAbkuerzung'); ?></th>
<th><?php echo $p->t('global/datum'); ?></th>
<th><?php echo $p->t('benotungstool/note'); ?></th>
<th><?php echo $p->t('global/anmerkung'); ?></th>
@@ -242,6 +244,7 @@ $rechte->getBerechtigungen($uid);
foreach($anmeldungen as $anmeldung)
{
$student = new student($anmeldung->uid);
$studiengang = new studiengang($student->studiengang_kz);
$prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id);
if($einzeln)
@@ -262,6 +265,7 @@ $rechte->getBerechtigungen($uid);
echo '<td>'.$student->vorname.'</td>';
echo '<td>'.$student->nachname.'</td>';
echo '<td>'.$student->matr_nr.'</td>';
echo '<td>'.$studiengang->kurzbzlang.'</td>';
echo '<td>'.$date.'</td>';
echo '<td></td>';
echo '<td></td>';
@@ -0,0 +1,302 @@
<?php
/*
* Copyright 2014 fhcomplete.org
*
* 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., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
* Authors: Stefan Puraner <puraner@technikum-wien.at>
*/
require_once('../../../../config/cis.config.inc.php');
require_once('../../../../include/functions.inc.php');
require_once('../../../../include/benutzerberechtigung.class.php');
require_once('../../../../include/pruefungsanmeldung.class.php');
require_once('../../../../include/pruefungCis.class.php');
require_once('../../../../include/pruefungstermin.class.php');
require_once('../../../../include/studiensemester.class.php');
require_once('../../../../include/lehrveranstaltung.class.php');
require_once('../../../../include/mitarbeiter.class.php');
require_once('../../../../include/student.class.php');
require_once('../../../../include/datum.class.php');
require_once('../../../../include/phrasen.class.php');
require_once('../../../../include/globals.inc.php');
require_once('../../../../include/sprache.class.php');
require_once('../../../../include/studiengang.class.php');
$sprache = getSprache();
$lang = new sprache();
$lang->load($sprache);
$p = new phrasen($sprache);
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
?><!DOCTYPE html>
<html moznomarginboxes="">
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="../../../../vendor/components/jquery/jquery.min.js"></script>
<script type="text/javascript" src="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<style type="text/css">
body {
margin: 0;
padding: 0;
}
* {
box-sizing: border-box;
-moz-box-sizing: border-box;
}
#page {
width: 210mm;
min-height: 297mm;
padding: 20mm;
margin: 10mm auto;
border: 1px #ffffff solid;
border-radius: 5px;
background: white;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
font-family: Arial, Helvetica;
}
#subpage {
padding: 10mm;
border: 1px white solid;
height: 256mm;
outline: 20mm;
}
#liste {
border: 1px solid black;
border-collapse: collapse;
width: 100%;
margin-top: 5mm;
font-size: 11pt;
}
h1 {
text-align: center;
}
.bold {
font-weight: bold;
}
td {
border: 1px solid black;
padding: 1mm;
}
th {
border: 1px solid black;
}
thead > tr {
background-color: white !important;
}
tr:nth-child(odd){
background-color: lightgrey;
}
span {
line-height: 16pt;
font-size: 12pt;
}
@page {
size: A4;
margin: 0;
}
@media print
{
html, body {
width: 210mm;
height: 250mm;
}
#page {
margin: 0;
border: initial;
border-radius: initial;
width: initial;
min-height: initial;
box-shadow: initial;
background: initial;
page-break-after: auto;
}
/*
* Workaround um beim Drucken jede zweite Zeile der Tabelle
* grau darzustellen. Standardmäßig werden von Browsern keine
* Hintergrundfarben gedruckt.
*/
tr:nth-child(odd) > td{
box-shadow: inset 0 0 0 1000px lightgrey;
}
//Veranlasst Chrome Hintergrundfarben zu drucken
body{
-webkit-print-color-adjust:exact;
background-color: #FFFFFF;
margin: 0;
}
//Anweisungen nur für Firefox
@-moz-document url-prefix() {
html, body {
height: 280mm;
}
}
@-moz-document url-prefix() {
#page {
padding: 15mm 25mm 25mm 15mm !important;
}
}
}
</style>
</head>
<body>
<script>
$(document).ready(function()
{
window.print();
});
</script>
<div id="page">
<div id="subpage">
<h1><?php echo $p->t('pruefung/anmeldungsliste'); ?></h1>
<?php
if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
die('Sie haben keine Berechtigung für diese Seite');
$termin_id = filter_input(INPUT_GET,"termin_id");
$lehrveranstaltung_id = filter_input(INPUT_GET,"lehrveranstaltung_id");
$studiensemester = filter_input(INPUT_GET, "studiensemester");
if(is_null($lehrveranstaltung_id))
{
die($p->t('pruefung/fehlenderParam_lvid'));
}
else if(is_null($termin_id))
{
die($p->t('pruefung/fehlenderParam_terminid'));
}
else if(is_null($studiensemester))
{
die($p->t('pruefung/fehlenderParam_studiensemester'));
}
else
{
$datum = new datum();
$stdsem = new studiensemester($studiensemester);
$pruefungsanmeldung = new pruefungsanmeldung();
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($termin_id, $lehrveranstaltung_id, $studiensemester, "bestaetigt");
$lehrveranstaltung = new lehrveranstaltung($lehrveranstaltung_id);
$einzeln = FALSE;
if(!empty($anmeldungen))
{
$pruefung = new pruefungCis($anmeldungen[0]->pruefung_id);
$pruefungstermin = new pruefungstermin($anmeldungen[0]->pruefungstermin_id);
$mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid);
if($pruefung->einzeln)
{
$einzeln = TRUE;
$pruefungsintervall = $pruefung->pruefungsintervall;
}
?>
<span class="bold"><?php echo $p->t('global/lehrveranstaltung'); ?>: </span><span><?=$lehrveranstaltung->bezeichnung?></span><br/>
<span class="bold"><?php echo $p->t('global/studiensemester'); ?>: </span><span><?=$stdsem->bezeichnung?></span><br/>
<span class="bold"><?php echo $p->t('pruefung/pruefer'); ?>: </span><span><?=$mitarbeiter->getFullName(FALSE)?></span><br/>
<table id="liste">
<thead>
<tr>
<th>#</th>
<th><?php echo $p->t('pruefung/matrikelnummer'); ?></th>
<th><?php echo $p->t('pruefung/studiengangAbkuerzung'); ?></th>
<th><?php echo $p->t('global/datum'); ?></th>
<th><?php echo $p->t('benotungstool/note'); ?></th>
<th><?php echo $p->t('global/anmerkung'); ?></th>
</tr>
</thead>
<tbody>
<?php
$count = 0;
/*@var $anmeldung pruefungsanmeldung */
foreach($anmeldungen as $anmeldung)
{
$student = new student($anmeldung->uid);
$studiengang = new studiengang($student->studiengang_kz);
$prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id);
if($einzeln)
{
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
$date = strtotime($date);
$date = $date+(60*$pruefungsintervall*($anmeldung->reihung-1));
$date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("H:i",$date);
$count++;
}
else
{
$date = $datum->formatDatum($prfTermin->von,"d.m.Y - H:i");
$count++;
}
echo '<tr>';
echo '<td>'.$count.'</td>';
echo '<td>'.$student->matr_nr.'</td>';
echo '<td>'.$studiengang->kurzbzlang.'</td>';
echo '<td>'.$date.'</td>';
echo '<td></td>';
echo '<td></td>';
echo '</tr>';
}
?>
</tbody>
<?php
}
else
{
?>
<span><?php echo $p->t('pruefung/keineBestaetigtenAnmeldungenVorhanden'); ?></span><br/>
<?php
exit;
}
}
?>
</table>
<br>
<table width="100%" id="liste">
<tr>
<td width="26%"><?php echo $p->t('pruefung/derLektor'); ?></td>
<td width="37%"><?php echo $mitarbeiter->getFullName(FALSE); ?></td>
<td width="37%"></td>
</tr>
<tr>
<td><?php echo $p->t('pruefung/dieKommission'); ?></td>
<td></td>
<td></td>
</tr
</table>
</div>
</div>
</body>
</html>
+55 -5
View File
@@ -247,7 +247,14 @@ require_once('../../../include/benutzerberechtigung.class.php');
echo '<td>'.$row->raumtypalternativ.'</td>';
echo '<td>'.$row->stundenblockung.'</td>';
echo '<td>'.$row->wochenrythmus.'</td>';
echo '<td>'.$row->semesterstunden.'</td>';
if(getSprache()=='German')
{
echo '<td>'.number_format($row->semesterstunden,2,$dec_point=",",$thousands_sep=".").'</td>';
}
else
{
echo '<td>'.number_format($row->semesterstunden,2,$dec_point=".",$thousands_sep=",").'</td>';
}
echo '<td>'.$row->start_kw.'</td>';
$lvangebot->getAllFromLvId($row->lehrveranstaltung_id, $row->studiensemester_kurzbz);
@@ -276,7 +283,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
echo '<td>&nbsp;</td>';
echo '<td>&nbsp;</td>';
echo '<td>&nbsp;</td>';
echo '<td>&nbsp;</td>';
echo '<td>&nbsp;</td>';
echo '<td>&nbsp;</td>';
@@ -286,7 +293,14 @@ require_once('../../../include/benutzerberechtigung.class.php');
echo '<td>&nbsp;</td>';
echo '<td>&nbsp;</td>';
echo '<td align="right"><b>'.$p->t('lvaliste/summe').'</b></td>';
echo '<th class="header">'.number_format($summe_std,2).'</th>';
if(getSprache()=='German')
{
echo '<th>'.number_format($summe_std,2,$dec_point=",",$thousands_sep=".").'</th>';
}
else
{
echo '<th>'.number_format($summe_std,2,$dec_point=".",$thousands_sep=",").'</th>';
}
echo '<td>&nbsp;</td>';
echo '</tr>';
echo '</tfoot>';
@@ -304,7 +318,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
tbl_lehrveranstaltung.bezeichnung, tbl_projektarbeit.titel,
(SELECT nachname || ' ' || vorname FROM public.tbl_benutzer JOIN public.tbl_person USING(person_id)
WHERE uid=student_uid) as student, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester,
tbl_studiengang.email, tbl_betreuerart.beschreibung AS beutreuerart_beschreibung
tbl_studiengang.email, tbl_betreuerart.beschreibung AS beutreuerart_beschreibung, tbl_projektbetreuer.stunden
FROM
lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, public.tbl_studiengang, lehre.tbl_betreuerart
WHERE
@@ -318,6 +332,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
$stg_obj = new studiengang();
$stg_obj->getAll(null,null);
$summe_std = 0;
if($result = $db->db_query($qry))
{
@@ -329,6 +344,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
echo '<thead><tr>';
echo '<th>'.$p->t('lvaliste/studiengang').'</th>';
echo '<th>'.$p->t('lvaliste/semester').'</th>';
echo '<th>'.$p->t('lvaliste/stunden').'</th>';
echo '<th>'.$p->t('lvaliste/lvBezeichnung').'</th>';
echo '<th>'.$p->t('lvaliste/student').'</th>';
echo '<th>'.$p->t('lvaliste/betreuungsart').'</th>';
@@ -339,13 +355,46 @@ require_once('../../../include/benutzerberechtigung.class.php');
echo '<tr>';
echo '<td><a href="mailto:'.$row->email.'">'.$stg_obj->kuerzel_arr[$row->studiengang_kz].'</a></td>';
echo '<td>'.$row->semester.'</td>';
if(getSprache()=='German')
{
echo '<td>'.number_format($row->stunden,2,$dec_point =",", $thousands_sep ="."). '</td>';
}
else
{
echo '<td>'.number_format($row->stunden,2,$dec_point =".", $thousands_sep =","). '</td>';
}
echo '<td>'.$row->bezeichnung.'</td>';
echo '<td>'.$row->student.'</td>';
echo '<td>'.$row->beutreuerart_beschreibung.'</td>';
echo '<td>'.$row->titel.'</td>';
echo '</tr>';
$summe_std+=$row->stunden;
}
echo '</tbody>';
echo '<tfoot>';
echo '<tr>';
if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
{
echo '<td>&nbsp;</td>';
}
if($lvinfo)
echo '<td align="right"><b>'.$p->t('lvaliste/summe').'</b></td>';
if(getSprache()=='German')
{
echo '<th>'.number_format($summe_std,2,$dec_point=",",$thousands_sep=".").'</th>';
}
else
{
echo '<th>'.number_format($summe_std,2,$dec_point=".",$thousands_sep=",").'</th>';
}
echo '<td>&nbsp;</td>';
echo '</tr>';
echo '</tbody></table>';
}
}
@@ -426,6 +475,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
echo '<tr>';
echo '<td><a href="mailto:'.$row->email.'">'.$stg_obj->kuerzel_arr[$row->studiengang_kz].'</a></td>';
echo '<td>'.$row->semester.'</td>';
echo '<td>'.$row->stunden.'</td>';
echo '<td>'.$row->fachbereich_kurzbz.'</td>';
echo '<td>'.$row->bezeichnung.'</td>';
echo '<td>'.$lektoren.'</td>';
+277 -190
View File
@@ -1,190 +1,277 @@
<?php
/* Copyright (C) 2006 fhcomplete.org
*
* 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> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/studiensemester.class.php');
require_once('../../../include/konto.class.php');
require_once('../../../include/person.class.php');
require_once('../../../include/benutzer.class.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/studiengang.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
$uid=get_uid();
if(isset($_GET['uid']))
{
// Administratoren duerfen die UID als Parameter uebergeben um die Zahlungen
// von anderen Personen anzuzeigen
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if($rechte->isBerechtigt('admin'))
{
$uid = $_GET['uid'];
$getParam = "&uid=" . $uid;
}
else
$getParam = "";
}
else
$getParam='';
$datum_obj = new datum();
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>'.$p->t('tools/zahlungen').'</title>
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
</head>
<style>
table.tablesorter
{
width: auto;
}
</style>
<script type="text/javascript">
$(document).ready(function()
{
$("#t1").tablesorter(
{
sortList: [[0,0],[1,0]],
widgets: ["zebra"]
});
});
</script>
<body>';
$studiengang = new studiengang();
$studiengang->getAll(null,null);
$stg_arr = array();
foreach ($studiengang->result as $row)
$stg_arr[$row->studiengang_kz]=$row->kuerzel;
$benutzer = new benutzer();
if(!$benutzer->load($uid))
die('Benutzer wurde nicht gefunden');
echo '<h1>'.$p->t('tools/zahlungen').' - '.$benutzer->vorname.' '.$benutzer->nachname.'</h1>';
$konto = new konto();
$konto->getBuchungstyp();
$buchungstyp = array();
foreach ($konto->result as $row)
$buchungstyp[$row->buchungstyp_kurzbz]=$row->beschreibung;
$konto = new konto();
$konto->getBuchungen($benutzer->person_id);
if(count($konto->result)>0)
{
echo '<br><br><table class="tablesorter" id="t1"><thead>';
echo '<tr>';
echo '
<th>'.$p->t('global/datum').'</th>
<th>'.$p->t('tools/zahlungstyp').'</th>
<th>'.$p->t('lvplan/stg').'</th>
<th>'.$p->t('global/studiensemester').'</th>
<th>'.$p->t('tools/buchungstext').'</th>
<th>'.$p->t('tools/betrag').'</th>
<th>'.$p->t('tools/zahlungsbestaetigung').'</th>';
echo '</tr></thead><tbody>';
foreach ($konto->result as $row)
{
$i=0; //Zaehler fuer Anzahl Gegenbuchungen
$buchungsnummern='';
if(!isset($row['parent']))
continue;
$betrag = $row['parent']->betrag;
if(isset($row['childs']))
{
foreach ($row['childs'] as $key => $row_child)
{
$betrag += $row_child->betrag;
$betrag = round($betrag, 2);
$buchungsnummern .= ';'.$row['childs'][$key]->buchungsnr;
$i = $key; //Zaehler auf letzten Gegenbuchungseintrag setzen
}
}
else
$buchungsnummern = $row['parent']->buchungsnr;
if($betrag<0)
$style='style="background-color: #FF8888;"';
elseif($betrag>0)
$style='style="background-color: #88DD88;"';
else
$style='';
echo "<tr>";
echo '<td '.$style.'>'.date('d.m.Y',$datum_obj->mktime_fromdate(isset($row['childs'][$i])?$row['childs'][$i]->buchungsdatum:$row['parent']->buchungsdatum)).'</td>';
echo '<td '.$style.'>'.$buchungstyp[$row['parent']->buchungstyp_kurzbz].'</td>';
echo '<td '.$style.'>'.$stg_arr[$row['parent']->studiengang_kz].'</td>';
echo '<td '.$style.'>'.$row['parent']->studiensemester_kurzbz.'</td>';
echo '<td '.$style.'>'.$row['parent']->buchungstext.'</td>';
echo '<td align="right" '.$style.'>'.($betrag<0?'-':($betrag>0?'+':'')).sprintf('%.2f',abs($row['parent']->betrag)).' €</td>';
echo '<td align="center" '.$style.'>';
if($betrag>=0 && $row['parent']->betrag<=0)
echo '<a href="../pdfExport.php?xml=konto.rdf.php&xsl=Zahlung&uid='.$uid.'&buchungsnummern='.$buchungsnummern.'" title="'.$p->t('tools/bestaetigungDrucken').'"><img src="../../../skin/images/pdfpic.gif" alt="'.$p->t('tools/bestaetigungDrucken').'"></a>';
elseif($row['parent']->betrag>0)
{
//Auszahlung
}
else
{
echo '<a onclick="window.open(';
echo "'zahlungen_details.php?buchungsnr=".$row['parent']->buchungsnr.$getParam."','Zahlungsdetails','height=500,width=550,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=no,toolbar=no,location=no,menubar=no,dependent=yes');return false;";
echo '" href="#">'.$p->t('tools/offen').'</a> ('.sprintf('%.2f',$betrag*-1).' €)';
echo '</td>';
}
echo '</tr>';
}
echo '</tbody></table>';
}
else
{
echo $p->t('tools/keineZahlungenVorhanden');
}
echo '</td></tr></table';
echo '</body></html>';
?>
<?php
/* Copyright (C) 2006 fhcomplete.org
*
* 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> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/studiensemester.class.php');
require_once('../../../include/konto.class.php');
require_once('../../../include/person.class.php');
require_once('../../../include/benutzer.class.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/studiengang.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
$uid=get_uid();
if(isset($_GET['uid']))
{
// Administratoren duerfen die UID als Parameter uebergeben um die Zahlungen
// von anderen Personen anzuzeigen
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if($rechte->isBerechtigt('admin'))
{
$uid = $_GET['uid'];
$getParam = "&uid=" . $uid;
}
else
$getParam = "";
}
else
$getParam='';
$datum_obj = new datum();
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>'.$p->t('tools/zahlungen').'</title>
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>';
include('../../../include/meta/jquery.php');
include('../../../include/meta/jquery-tablesorter.php');
echo ' <script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
</head>
<style>
table.tablesorter
{
width: auto;
}
table.tablesorter tbody td
{
padding: 1px 3px;
}
</style>
<script type="text/javascript">
// Parser für Datum DD.MM.YYYY
$.tablesorter.addParser({
id: "customDate",
is: function(s) {
//return false;
//use the above line if you don\'t want table sorter to auto detected this parser
// match dd.mm.yyyy e.g. 01.01.2001 as regex
return /\d{1,2}.\d{1,2}.\d{1,4}/.test(s);
},
// replace regex-wildcards and return new date
format: function(s) {
s = s.replace(/\-/g," ");
s = s.replace(/:/g," ");
s = s.replace(/\./g," ");
s = s.split(" ");
return $.tablesorter.formatFloat(new Date(s[2], s[1]-1, s[0]).getTime());
},
type: "numeric"
});
// Parser für Betrag
$.tablesorter.addParser({
id: "customCurrancy",
is: function(s) {
//return false;
//use the above line if you don\'t want table sorter to auto detected this parser
// match dd.mm.yyyy e.g. 01.01.2001 as regex
//alert(/€\s\d*.*/.test(s))
return /€\s\d*.*/.test(s);
},
// replace regex-wildcards and return new date
format: function(s) {
s = s.replace(/\-/g," ");
s = s.replace(/:/g," ");
s = s.replace(/\./g," ");
s = s.split(" ");
return $.tablesorter.formatFloat(s[1]);
},
type: "numeric"
});
// Parser für Studiensemester
$.tablesorter.addParser({
// set a unique id
id: "studiensemester",
is: function(s) {
// return false so this parser is not auto detected
return false;
},
format: function(s) {
// format data for normalization
var result = s.substr(2) + s.substr(0, 2);
return result;
},
// set type, either numeric or text
type: "text"
});
// For correct sorting of Umlauts
$.tablesorter.characterEquivalents = {
"a" : "\u00e1\u00e0\u00e2\u00e3\u00e4\u0105\u00e5", // áàâãäąå
"A" : "\u00c1\u00c0\u00c2\u00c3\u00c4\u0104\u00c5", // ÁÀÂÃÄĄÅ
"c" : "\u00e7\u0107\u010d", // çćč
"C" : "\u00c7\u0106\u010c", // ÇĆČ
"e" : "\u00e9\u00e8\u00ea\u00eb\u011b\u0119", // éèêëěę
"E" : "\u00c9\u00c8\u00ca\u00cb\u011a\u0118", // ÉÈÊËĚĘ
"i" : "\u00ed\u00ec\u0130\u00ee\u00ef\u0131", // íìİîïı
"I" : "\u00cd\u00cc\u0130\u00ce\u00cf", // ÍÌİÎÏ
"o" : "\u00f3\u00f2\u00f4\u00f5\u00f6\u014d", // óòôõöō
"O" : "\u00d3\u00d2\u00d4\u00d5\u00d6\u014c", // ÓÒÔÕÖŌ
"ss": "\u00df", // ß (s sharp)
"SS": "\u1e9e", // ẞ (Capital sharp s)
"u" : "\u00fa\u00f9\u00fb\u00fc\u016f", // úùûüů
"U" : "\u00da\u00d9\u00db\u00dc\u016e" // ÚÙÛÜŮ
};
$(document).ready(function()
{
$("#t1").tablesorter(
{
// Adding Function for sorting images by title
textExtraction:function(s)
{
if($(s).find(\'img\').length == 0) return $(s).text();
return $(s).find(\'img\').attr(\'title\');
},
sortList: [[0,1],[1,1]],
widgets: ["zebra"],
sortLocaleCompare : true,
headers: { 0: { sorter: "customDate"}, 3: { sorter: "studiensemester"}, 5: { sorter: "customCurrancy"}, 6: { sorter: false}}
});
});
</script>
<body>';
$studiengang = new studiengang();
$studiengang->getAll(null,null);
$stg_arr = array();
foreach ($studiengang->result as $row)
$stg_arr[$row->studiengang_kz]=$row->kuerzel;
$benutzer = new benutzer();
if(!$benutzer->load($uid))
die('Benutzer wurde nicht gefunden');
echo '<h1>'.$p->t('tools/zahlungen').' - '.$benutzer->vorname.' '.$benutzer->nachname.'</h1>';
$konto = new konto();
$konto->getBuchungstyp();
$buchungstyp = array();
foreach ($konto->result as $row)
$buchungstyp[$row->buchungstyp_kurzbz]=$row->beschreibung;
$konto = new konto();
$konto->getBuchungen($benutzer->person_id);
if(count($konto->result)>0)
{
echo '<br><br><table class="tablesorter" id="t1"><thead>';
echo '<tr>';
echo '
<th>'.$p->t('global/datum').'</th>
<th>'.$p->t('tools/zahlungstyp').'</th>
<th>'.$p->t('lvplan/stg').'</th>
<th>'.$p->t('global/studiensemester').'</th>
<th>'.$p->t('tools/buchungstext').'</th>
<th>'.$p->t('tools/betrag').'</th>
<th>'.$p->t('tools/zahlungsbestaetigung').'</th>';
echo '</tr></thead><tbody>';
foreach ($konto->result as $row)
{
$i=0; //Zaehler fuer Anzahl Gegenbuchungen
$buchungsnummern='';
if(!isset($row['parent']))
continue;
$betrag = $row['parent']->betrag;
if(isset($row['childs']))
{
foreach ($row['childs'] as $key => $row_child)
{
$betrag += $row_child->betrag;
$betrag = round($betrag, 2);
$buchungsnummern .= ';'.$row['childs'][$key]->buchungsnr;
$i = $key; //Zaehler auf letzten Gegenbuchungseintrag setzen
}
}
else
$buchungsnummern = $row['parent']->buchungsnr;
if($betrag<0)
$style='style="background-color: #FF8888;"';
elseif($betrag>0)
$style='style="background-color: #88DD88;"';
else
$style='';
echo "<tr>";
echo '<td '.$style.'>'.date('d.m.Y',$datum_obj->mktime_fromdate(isset($row['childs'][$i])?$row['childs'][$i]->buchungsdatum:$row['parent']->buchungsdatum)).'</td>';
echo '<td '.$style.'>'.$buchungstyp[$row['parent']->buchungstyp_kurzbz].'</td>';
echo '<td '.$style.'>'.$stg_arr[$row['parent']->studiengang_kz].'</td>';
echo '<td '.$style.'>'.$row['parent']->studiensemester_kurzbz.'</td>';
echo '<td '.$style.'>'.$row['parent']->buchungstext.'</td>';
echo '<td align="right" '.$style.'>€ '.($betrag<0?'-':($betrag>0?'+':'')).sprintf('%.2f',abs($row['parent']->betrag)).'</td>';
echo '<td align="center" '.$style.'>';
if($betrag>=0 && $row['parent']->betrag<=0)
{
echo '<a href="../pdfExport.php?xml=konto.rdf.php&xsl=Zahlung&uid='.$uid.'&buchungsnummern='.$buchungsnummern.'" title="'.$p->t('tools/bestaetigungDrucken').'"><img src="../../../skin/images/pdfpic.gif" alt="'.$p->t('tools/bestaetigungDrucken').'"></a>';
}
elseif($row['parent']->betrag>0)
{
//Auszahlung
}
else
{
echo '<a onclick="window.open(';
echo "'zahlungen_details.php?buchungsnr=".$row['parent']->buchungsnr.$getParam."','Zahlungsdetails','height=500,width=550,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=no,toolbar=no,location=no,menubar=no,dependent=yes');return false;";
echo '" href="#">'.$p->t('tools/offen').'</a>(€ '.sprintf('%.2f',$betrag*-1).')';
echo '</td>';
}
echo '</tr>';
}
echo '</tbody></table>';
}
else
{
echo $p->t('tools/keineZahlungenVorhanden');
}
echo '</td></tr></table';
echo '</body></html>';
?>
+142 -133
View File
@@ -82,7 +82,7 @@ $datum = new datum();
$fieldheadings = array(
'id' => $p->t("zeitaufzeichnung/id"), 'user' => $p->t("zeitaufzeichnung/user"), 'projekt' => $p->t("zeitaufzeichnung/projekt"),
'oe1' => $p->t("zeitaufzeichnung/oe").'1', 'oe2' => $p->t("zeitaufzeichnung/oe").'2', 'aktivitaet' => $p->t("zeitaufzeichnung/aktivitaet"),
'oe1' => $p->t("zeitaufzeichnung/oe"), 'oe2' => $p->t("zeitaufzeichnung/oe").'2', 'aktivitaet' => $p->t("zeitaufzeichnung/aktivitaet"),
'service' => $p->t("zeitaufzeichnung/service"), 'start' => $p->t("zeitaufzeichnung/start"), 'ende' => $p->t("zeitaufzeichnung/ende"),
'dauer' => $p->t("zeitaufzeichnung/dauer"), 'kunde' => $p->t("zeitaufzeichnung/kunde"), 'beschreibung' => $p->t("global/beschreibung"), 'aktion' => $p->t("global/aktion"),
'datum' => $p->t("global/datum")
@@ -91,12 +91,12 @@ $fieldheadings = array(
if ($rechte->isBerechtigt('basis/servicezeitaufzeichnung'))
{
$za_simple = 0;
$activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
$activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'FuE', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
}
else
{
$za_simple = 1;
$activities = array('Arbeit', 'Pause', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
$activities = array('Admin', 'FuE','Lehre', 'Pause', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
}
$activities_str = "'".implode("','", $activities)."'";
@@ -828,87 +828,6 @@ if($projekt->getProjekteMitarbeiter($user, true))
echo '</form>';
}
//Projekte werden nicht angezeigt wenn es keine gibt
if($anzprojekte > 0)
{
//Projekt
echo '<tr>
<td>'.$p->t("zeitaufzeichnung/projekt").'</td>
<td colspan="4"><SELECT name="projekt" id="projekt">
<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
sort($projekt->result);
foreach ($projekt->result as $row_projekt)
{
if ($projekt_kurzbz == $row_projekt->projekt_kurzbz || $filter == $row_projekt->projekt_kurzbz)
$selected = 'selected';
else
$selected = '';
echo '<option value="'.$db->convert_html_chars($row_projekt->projekt_kurzbz).'" '.$selected.'>'.$db->convert_html_chars($row_projekt->titel).'</option>';
}
echo '</SELECT><!--<input type="button" value="'.$p->t("zeitaufzeichnung/uebersicht").'" onclick="loaduebersicht();">--></td>';
echo '</tr>';
}
if($za_simple == 0)
{
//OE_KURZBZ_1
echo '<tr><td nowrap>'.$p->t("zeitaufzeichnung/organisationseinheiten").'</td>
<td colspan="3"><SELECT style="width:200px;" name="oe_kurzbz_1">';
$oe = new organisationseinheit();
$oe->getFrequent($user,'180','3',true);
$trennlinie = true;
echo '<option value="">-- '.$p->t("zeitaufzeichnung/keineAuswahl").' --</option>';
foreach ($oe->result as $row)
{
if($row->oe_kurzbz == $oe_kurzbz_1)
$selected = 'selected';
else
$selected = '';
if($row->aktiv)
$class='';
else
$class='class="inaktiv"';
if ($row->anzahl =='0' && $trennlinie==true)
{
echo '<OPTION value="" disabled="disabled">------------------------</OPTION>';
$trennlinie = false;
}
echo '<option value="'.$db->convert_html_chars($row->oe_kurzbz).'" '.$selected.' '.$class.'>'.$db->convert_html_chars($row->bezeichnung.' ('.$row->organisationseinheittyp_kurzbz).')</option>';
}
echo '</SELECT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
//OE_KURZBZ_2
echo '<SELECT style="width:200px;" name="oe_kurzbz_2">';
echo '<option value="">-- '.$p->t("zeitaufzeichnung/keineAuswahl").' --</option>';
$trennlinie = true;
foreach ($oe->result as $row)
{
if($oe_kurzbz_2 == $row->oe_kurzbz)
$selected = 'selected';
else
$selected = '';
if($row->aktiv)
$class='';
else
$class='class="inaktiv"';
if ($row->anzahl =='0' && $trennlinie==true)
{
echo '<OPTION value="" disabled="disabled">------------------------</OPTION>';
$trennlinie = false;
}
echo '<option value="'.$db->convert_html_chars($row->oe_kurzbz).'" '.$selected.' '.$class.'>'.$db->convert_html_chars($row->bezeichnung.' ('.$row->organisationseinheittyp_kurzbz).')</option>';
}
echo '</SELECT></td></tr>';
}
//Aktivitaet
echo '<tr>';
echo '<td>'.$p->t("zeitaufzeichnung/aktivitaet").'</td><td colspan="4">';
@@ -936,49 +855,139 @@ if($projekt->getProjekteMitarbeiter($user, true))
}
echo '</td></tr>';
if($za_simple >= 0)
{
$oestyle = '';
if($za_simple == 0)
$oestyle = 'style="width:200px;"';
//OE_KURZBZ_1
echo '<tr><td nowrap>'.$p->t("zeitaufzeichnung/organisationseinheiten").'</td>
<td colspan="3"><SELECT '.$oestyle.' name="oe_kurzbz_1">';
$oe = new organisationseinheit();
$oe->getFrequent($user,'180','3',true);
$trennlinie = true;
echo '<option value="">-- '.$p->t("zeitaufzeichnung/keineAuswahl").' --</option>';
foreach ($oe->result as $row)
{
if($row->oe_kurzbz == $oe_kurzbz_1)
$selected = 'selected';
else
$selected = '';
if($row->aktiv)
$class='';
else
$class='class="inaktiv"';
if ($row->anzahl =='0' && $trennlinie==true)
{
echo '<OPTION value="" disabled="disabled">------------------------</OPTION>';
$trennlinie = false;
}
echo '<option value="'.$db->convert_html_chars($row->oe_kurzbz).'" '.$selected.' '.$class.'>'.$db->convert_html_chars($row->bezeichnung.' ('.$row->organisationseinheittyp_kurzbz).')</option>';
}
echo '</SELECT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
if($za_simple == 0)
{
//OE_KURZBZ_2
echo '<SELECT style="width:200px;" name="oe_kurzbz_2">';
echo '<option value="">-- '.$p->t("zeitaufzeichnung/keineAuswahl").' --</option>';
$trennlinie = true;
foreach ($oe->result as $row)
{
if($oe_kurzbz_2 == $row->oe_kurzbz)
$selected = 'selected';
else
$selected = '';
if($row->aktiv)
$class='';
else
$class='class="inaktiv"';
if ($row->anzahl =='0' && $trennlinie==true)
{
echo '<OPTION value="" disabled="disabled">------------------------</OPTION>';
$trennlinie = false;
}
echo '<option value="'.$db->convert_html_chars($row->oe_kurzbz).'" '.$selected.' '.$class.'>'.$db->convert_html_chars($row->bezeichnung.' ('.$row->organisationseinheittyp_kurzbz).')</option>';
}
echo '</SELECT>';
}
echo '</td></tr>';
}
//Projekte werden nicht angezeigt wenn es keine gibt
if($anzprojekte > 0)
{
//Projekt
echo '<tr>
<td>'.$p->t("zeitaufzeichnung/projekt").'</td>
<td colspan="4"><SELECT name="projekt" id="projekt">
<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
sort($projekt->result);
foreach ($projekt->result as $row_projekt)
{
if ($projekt_kurzbz == $row_projekt->projekt_kurzbz || $filter == $row_projekt->projekt_kurzbz)
$selected = 'selected';
else
$selected = '';
echo '<option value="'.$db->convert_html_chars($row_projekt->projekt_kurzbz).'" '.$selected.'>'.$db->convert_html_chars($row_projekt->titel).'</option>';
}
echo '</SELECT><!--<input type="button" value="'.$p->t("zeitaufzeichnung/uebersicht").'" onclick="loaduebersicht();">--></td>';
echo '</tr>';
}
if ($za_simple == 0)
{
// Service
echo '<tr>
<td>'.$p->t('zeitaufzeichnung/service').'</td>
<td colspan="4"><SELECT name="service_id">
<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
$trennlinie = true;
$service = new service();
$service->getFrequentServices($user, '180','3');
foreach($service->result as $row)
{
if($row->service_id==$service_id)
$selected='selected';
else
$selected='';
if ($row->anzahl =='0' && $trennlinie==true)
// Service
echo '<tr>
<td>'.$p->t('zeitaufzeichnung/service').'</td>
<td colspan="4"><SELECT name="service_id">
<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
$trennlinie = true;
$service = new service();
$service->getFrequentServices($user, '180','3');
foreach($service->result as $row)
{
echo '<OPTION value="" disabled="disabled">------------------------</OPTION>';
$trennlinie = false;
if($row->service_id==$service_id)
$selected='selected';
else
$selected='';
if ($row->anzahl =='0' && $trennlinie==true)
{
echo '<OPTION value="" disabled="disabled">------------------------</OPTION>';
$trennlinie = false;
}
echo '<OPTION title="'.$db->convert_html_chars($row->beschreibung).'" value="'.$db->convert_html_chars($row->service_id).'" '.$selected.'>'.$db->convert_html_chars($row->bezeichnung.' ('.$row->oe_kurzbz.')').'</OPTION>';
}
echo '<OPTION title="'.$db->convert_html_chars($row->beschreibung).'" value="'.$db->convert_html_chars($row->service_id).'" '.$selected.'>'.$db->convert_html_chars($row->bezeichnung.' ('.$row->oe_kurzbz.')').'</OPTION>';
}
echo '</SELECT></td>
echo '</SELECT></td>
</tr>';
// person für Kundenvoransicht laden
$kunde_name = '';
if($kunde_uid != '')
{
$user_kunde = new benutzer();
if($user_kunde->load($kunde_uid))
$kunde_name=$user_kunde->vorname.' '.$user_kunde->nachname;
}
echo '
<tr>
<td>'.$p->t("zeitaufzeichnung/kunde").'</td>
<td colspan="3"><input type="text" id="kunde_name" value="'.$kunde_name.'" placeholder="'.$p->t("zeitaufzeichnung/nameEingeben").'"><input type ="hidden" id="kunde_uid" name="kunde_uid" value="'.$kunde_uid.'"> '.$p->t("zeitaufzeichnung/oderKartennummerOptional").'
<input type="text" id="kartennummer" name="kartennummer" placeholder="'.$p->t("zeitaufzeichnung/kartennummer").'"></td>
</tr>';
// person für Kundenvoransicht laden
$kunde_name = '';
if($kunde_uid != '')
{
$user_kunde = new benutzer();
if($user_kunde->load($kunde_uid))
$kunde_name=$user_kunde->vorname.' '.$user_kunde->nachname;
}
echo '
<tr>
<td>'.$p->t("zeitaufzeichnung/kunde").'</td>
<td colspan="3"><input type="text" id="kunde_name" value="'.$kunde_name.'" placeholder="'.$p->t("zeitaufzeichnung/nameEingeben").'"><input type ="hidden" id="kunde_uid" name="kunde_uid" value="'.$kunde_uid.'"> '.$p->t("zeitaufzeichnung/oderKartennummerOptional").'
<input type="text" id="kartennummer" name="kartennummer" placeholder="'.$p->t("zeitaufzeichnung/kartennummer").'"></td>
</tr>';
echo '<tr><td colspan="4">&nbsp;</td></tr>';
echo '<tr><td colspan="4">&nbsp;</td></tr>';
}
//Start/Ende
@@ -1101,7 +1110,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
{
//Uebersichtstabelle
$woche=date('W');
$colspan=($za_simple)?10:13;
$colspan=($za_simple)?11:13;
echo '
<table id="t1" class="" style="width:100%">
@@ -1184,7 +1193,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
$tagessaldo = $tagessaldo-$pausesumme;
$tagessaldo = date('H:i', ($tagessaldo));
$colspan = ($za_simple)?4:7;
$colspan = ($za_simple)?5:7;
echo '<tr id="tag_row_'.$datum->formatDatum($tag,'d_m_Y').'"><td '.$style.' colspan="'.$colspan.'")>';
// Zusaetzlicher span fuer Addon Informationen
@@ -1259,7 +1268,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
<!--</table>-->';
$colspan=($za_simple)?10:13;
$colspan=($za_simple)?11:13;
echo '
<!--<table id="t'.$datumwoche.'" class="tablesorter">-->
<tr><th colspan="'.$colspan.'">&nbsp;</th></tr>
@@ -1281,7 +1290,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
// Diestreisen NEU
if (array_key_exists($datumtag, $dr_arr))
{
$colspan=($za_simple)?4:7;
$colspan=($za_simple)?5:7;
echo '<tr style="background-color: #aabb99"><td colspan="'.$colspan.'">'.$p->t('zeitaufzeichnung/dienstreise');
if (array_key_exists('start', $dr_arr[$datumtag]) && !array_key_exists('ende', $dr_arr[$datumtag]))
echo ' '.$p->t('global/beginn');
@@ -1339,10 +1348,10 @@ if($projekt->getProjekteMitarbeiter($user, true))
<td '.$style.'>'.$db->convert_html_chars($row->zeitaufzeichnung_id).'</td>
<td '.$style.'>'.$db->convert_html_chars($row->uid).'</td>
<td '.$style.'>'.$db->convert_html_chars($row->projekt_kurzbz).'</td>';
echo '<td '.$style.' > '.$db->convert_html_chars($row->oe_kurzbz_1).'</td>';
if(!$za_simple)
{
echo '<td '.$style.' > '.$db->convert_html_chars($row->oe_kurzbz_1).'</td>
<td '.$style.' > '.$db->convert_html_chars($row->oe_kurzbz_2).'</td>';
echo '<td '.$style.' > '.$db->convert_html_chars($row->oe_kurzbz_2).'</td>';
}
echo '<td '.$style.'>'.$db->convert_html_chars($row->aktivitaet_kurzbz).'</td>';
if(!$za_simple)
@@ -1417,11 +1426,11 @@ function printTableHeadings($fieldheadings, $za_simple = false){
echo '<tr>
<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['id'].'</th>
<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['user'].'</th>
<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['projekt'].'</th>';
<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['projekt'].'</th>
<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['oe1'].'</th>';
if (!$za_simple)
{
echo '<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['oe1'].'</th>
<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['oe2'].'</th>';
echo '<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['oe2'].'</th>';
}
echo '<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['aktivitaet'].'</th>';
if (!$za_simple)
@@ -1477,7 +1486,7 @@ function getDataForCSV($rawdata, $fieldheadings, $za_simple = false)
$datum = new datum();
$csvData = array();
//headers schreiben
$csvData[] = ($za_simple) ? array($fieldheadings['user'], $fieldheadings['datum'], $fieldheadings['start'], $fieldheadings['ende'], $fieldheadings['projekt'], $fieldheadings['aktivitaet'], $fieldheadings['beschreibung'])
$csvData[] = ($za_simple) ? array($fieldheadings['user'], $fieldheadings['datum'], $fieldheadings['start'], $fieldheadings['ende'], $fieldheadings['projekt'], $fieldheadings['oe1'], $fieldheadings['aktivitaet'], $fieldheadings['beschreibung'])
: array($fieldheadings['user'], $fieldheadings['datum'], $fieldheadings['start'], $fieldheadings['ende'], $fieldheadings['projekt'], $fieldheadings['oe1'], $fieldheadings['oe2'], $fieldheadings['aktivitaet'], $fieldheadings['service'], $fieldheadings['kunde'], $fieldheadings['beschreibung']);
foreach ($rawdata as $zeitauf)
{
@@ -1491,7 +1500,7 @@ function getDataForCSV($rawdata, $fieldheadings, $za_simple = false)
if($za_simple)
{
$csvData[] = array($zeitauf->uid, $hauptdatum, $datum->formatDatum($zeitauf->start, 'H:i'),
$bisdatum, $zeitauf->projekt_kurzbz, $zeitauf->aktivitaet_kurzbz, $beschreibung);
$bisdatum, $zeitauf->projekt_kurzbz, $zeitauf->oe_kurzbz_1, $zeitauf->aktivitaet_kurzbz, $beschreibung);
}
else
{
+12 -12
View File
@@ -183,13 +183,13 @@ if (isset($_SESSION['pruefling_id']))
/* Filter out all Abgewiesene */
AND NOT EXISTS (
SELECT
1
SELECT
1
FROM
tbl_prestudentstatus
WHERE
status_kurzbz = 'Abgewiesener'
AND
WHERE
status_kurzbz = 'Abgewiesener'
AND
prestudent_id = ps_status.prestudent_id
)
@@ -220,7 +220,7 @@ if (isset($_SESSION['pruefling_id']))
)
SELECT DISTINCT ON
SELECT DISTINCT ON
(gebiet_id, semester)
semester,
gebiet_id,
@@ -231,7 +231,7 @@ if (isset($_SESSION['pruefling_id']))
FROM (
SELECT
*
FROM (
FROM (
(SELECT
prestudent_data.semester AS ps_sem,
gebiet_id,
@@ -252,9 +252,9 @@ if (isset($_SESSION['pruefling_id']))
OR
(prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
)
UNION
(
SELECT
prestudent_data.semester AS ps_sem,
@@ -278,7 +278,7 @@ if (isset($_SESSION['pruefling_id']))
)
) temp
) temp2
GROUP BY
semester,
gebiet_id,
@@ -425,7 +425,7 @@ else
// show message to use Mozilla Firefox
if ((ua.indexOf("Firefox") > -1) == false)
{
let hasMathML = "<?php echo $gebiet_hasMathML; ?>";
let hasMathML = "<?php echo (isset($gebiet_hasMathML)?$gebiet_hasMathML:''); ?>";
let userLang = "<?php echo $sprache_user; ?>";
if (hasMathML == true)
{
@@ -442,7 +442,7 @@ else
// Error massage if check_gebiet function returns false
$(function() {
var invalid_gebiete = "<?php echo $invalid_gebiete; ?>";
var invalid_gebiete = "<?php echo (isset($invalid_gebiete)?$invalid_gebiete:''); ?>";
if(invalid_gebiete == true)
{
$('#tr-einleitung').append('' +
+221
View File
@@ -0,0 +1,221 @@
<?php
/* Copyright (C) 2011 FH 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> and
* Karl Burkhart <karl.burkhart@technikum-wien.at>.
*/
/**
* Zeigt eine Übersichtsliste für alle Content-Einträge an
*/
require_once('../config/cis.config.inc.php');
require_once('../config/global.config.inc.php');
require_once('../include/content.class.php');
require_once('../include/template.class.php');
require_once('../include/functions.inc.php');
require_once('../include/phrasen.class.php');
$db = new basis_db();
echo '<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../skin/style.css.php" rel="stylesheet" type="text/css">';
include('../include/meta/jquery.php');
include('../include/meta/jquery-tablesorter.php');
echo ' </head>
<script type="text/javascript">
// For correct sorting of Umlauts
$.tablesorter.characterEquivalents = {
"a" : "\u00e1\u00e0\u00e2\u00e3\u00e4\u0105\u00e5", // áàâãäąå
"A" : "\u00c1\u00c0\u00c2\u00c3\u00c4\u0104\u00c5", // ÁÀÂÃÄĄÅ
"c" : "\u00e7\u0107\u010d", // çćč
"C" : "\u00c7\u0106\u010c", // ÇĆČ
"e" : "\u00e9\u00e8\u00ea\u00eb\u011b\u0119", // éèêëěę
"E" : "\u00c9\u00c8\u00ca\u00cb\u011a\u0118", // ÉÈÊËĚĘ
"i" : "\u00ed\u00ec\u0130\u00ee\u00ef\u0131", // íìİîïı
"I" : "\u00cd\u00cc\u0130\u00ce\u00cf", // ÍÌİÎÏ
"o" : "\u00f3\u00f2\u00f4\u00f5\u00f6\u014d", // óòôõöō
"O" : "\u00d3\u00d2\u00d4\u00d5\u00d6\u014c", // ÓÒÔÕÖŌ
"ss": "\u00df", // ß (s sharp)
"SS": "\u1e9e", // ẞ (Capital sharp s)
"u" : "\u00fa\u00f9\u00fb\u00fc\u016f", // úùûüů
"U" : "\u00da\u00d9\u00db\u00dc\u016e" // ÚÙÛÜŮ
};
$.tablesorter.addParser({
id: "customDate",
is: function(s) {
//return false;
//use the above line if you don\'t want table sorter to auto detected this parser
//else use the below line.
//attention: doesn\'t check for invalid stuff
//2009-77-77 77:77:77.0 would also be matched
//if that doesn\'t suit you alter the regex to be more restrictive
//return /\d{1,4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}\.\d+/.test(s);
return /\d{1,4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2} .*/.test(s);
},
format: function(s) {
s = s.replace(/\-/g," ");
s = s.replace(/:/g," ");
s = s.replace(/\./g," ");
s = s.split(" ");
return $.tablesorter.formatFloat(new Date(s[0], s[1]-1, s[2], s[3], s[4], s[5]).getTime());
},
type: "numeric"
});
$(document).ready(function()
{
$("#t1").tablesorter(
{
sortList: [[1,0],[0,1]],
widgets: ["zebra", "filter", "stickyHeaders"],
headers: { 5: { sorter: "customDate"}, 10: { sorter: "customDate"}},
sortLocaleCompare : true
});
});
</script>
<style>
table.tablesorter tbody td
{
padding: 5px;
}
</style>
<body>
<div style="padding: 10px">
<h1>Content-Übersicht</h1>';
echo '<br><br><table class="tablesorter" id="t1"><thead>';
echo '<tr>';
echo ' <th>Content ID</th>
<th>Titel</th>
<th>Art</th>
<th>OE</th>
<th>Content-Aktiv</th>
<th>Eingefügt</th>
<th>Aktualisiert</th>
<th>Verwendet in</th>
<th>Sprache</th>
<th>Version</th>
<th>Eingefügt</th>
<th>Aktualisiert</th>
<th>Version sichtbar</th>';
echo '</tr></thead><tbody>';
$qry = "
SELECT
content.content_id,
tbl_contentsprache.titel,
content.template_kurzbz,
content.oe_kurzbz,
content.aktiv,
content.insertamum||' von '||content.insertvon AS content_eingefuegt,
content.updateamum||' von '||content.updatevon AS content_aktualisiert,
(
SELECT ARRAY_TO_STRING(array_agg(verwendung), '<br>') AS verwendung_in
FROM (
SELECT
'Infoscreen ID'||infoscreen_id AS art
FROM campus.tbl_infoscreen_content
WHERE content_id=content.content_id
UNION
SELECT
'Software ID'||software_id AS art
FROM addon.tbl_software
WHERE content_id=content.content_id
UNION
SELECT
'Ort '||ort_kurzbz AS art
FROM public.tbl_ort
WHERE content_id=content.content_id
UNION
SELECT
'Service ID'||service_id AS art
FROM public.tbl_service
WHERE content_id=content.content_id
UNION
SELECT
'Statistik '||statistik_kurzbz AS art
FROM public.tbl_statistik
WHERE content_id=content.content_id
UNION
SELECT
'Gebiet '||tbl_gebiet.bezeichnung||' in Studiengang '||tbl_ablauf.studiengang_kz AS art
FROM testtool.tbl_ablauf_vorgaben
JOIN testtool.tbl_ablauf USING (ablauf_vorgaben_id)
JOIN testtool.tbl_gebiet USING (gebiet_id)
WHERE content_id=content.content_id
UNION
SELECT
'Verlinkung von '||content_id AS art
FROM campus.tbl_contentsprache
WHERE content::text LIKE '%content.php?content_id='||content.content_id||'%'
/*WHERE content::text ~* '[\w\d\s]*content\.php\?content_id=1245[\w\d\s]*'*/
) verwendung
) AS verwendung_in,
tbl_contentsprache.sprache,
tbl_contentsprache.version,
tbl_contentsprache.insertamum||' von '||tbl_contentsprache.insertvon AS contentsprache_eingefuegt,
tbl_contentsprache.updateamum||' von '||tbl_contentsprache.updatevon AS contentsprache_aktualisiert,
tbl_contentsprache.sichtbar
FROM campus.tbl_content content
JOIN campus.tbl_contentsprache USING (content_id)
WHERE version=campus.get_highest_content_version (content.content_id)
AND template_kurzbz NOT IN ('news')
/*ORDER BY content_id ASC, sprache DESC, version DESC
LIMIT 200*/";
if($db->db_query($qry))
{
while ($row = $db->db_fetch_object())
{
echo ' <tr>
<td>'.$row->content_id.'</td>
<td>'.$row->titel.'</td>
<td>'.$row->template_kurzbz.'</td>
<td>'.$row->oe_kurzbz.'</td>
<td>'.($row->aktiv == 't' ? 'Ja':'Nein').'</td>
<td>'.$row->content_eingefuegt.'</td>
<td>'.$row->content_aktualisiert.'</td>
<td>'.$row->verwendung_in.'</td>
<td>'.$row->sprache.'</td>
<td>'.$row->version.'</td>
<td>'.$row->contentsprache_eingefuegt.'</td>
<td>'.$row->contentsprache_aktualisiert.'</td>
<td>'.($row->sichtbar == 't' ? 'Ja':'Nein').'</td>
</tr>';
}
}
echo '</tbody></table>';
echo ' </div></body>
</html>';
?>
+1 -2
View File
@@ -436,11 +436,10 @@ function getStgContent($studiengang_kz, $semester, $sprache)
if(CIS_EXT_MENU)
{
$xml.='<cis_ext_menu>
<lehrziele_name><![CDATA['.$p->t('global/lehrziele').']]></lehrziele_name>
<download_name><![CDATA['.$p->t('global/allgemeinerdownload').']]></download_name>
<newsgroup_name><![CDATA['.$p->t('global/newsgroups').']]></newsgroup_name>
<kurzbz><![CDATA['.strtolower($studiengang->kuerzel).']]></kurzbz>
<kurzbzlang><![CDATA['.strtolower($studiengang->kurzbzlang).']]></kurzbzlang>
<stg_kz><![CDATA['. $studiengang_kz.']]></stg_kz>
</cis_ext_menu>';
}
+2 -2
View File
@@ -168,7 +168,7 @@
"name": "nicolaskruchten/pivottable",
"version": "2.15.0",
"dist": {
"url": "https://github.com/nicolaskruchten/pivottable/archive/v2.15.0.zip",
"url": "https://github.com/nicolaskruchten/pivottable/archive/v2.21.0.zip",
"type": "zip"
}
}
@@ -258,7 +258,7 @@
"nategood/httpful": "^0.2.20",
"netcarver/textile": "^3.5",
"nicolaskruchten/pivottable": "^2.15.0",
"nicolaskruchten/pivottable": "^2.21.0",
"phpseclib/phpseclib": "^2.0",
Generated
+100 -75
View File
@@ -4,8 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "ddbbad487c655512e6983408339cb85f",
"content-hash": "b5902c71fe21cd14397101dba5a3080c",
"content-hash": "ad1bf16a24075268ce1cf2a033f9e7fb",
"packages": [
{
"name": "BlackrockDigital/startbootstrap-sb-admin-2",
@@ -47,7 +46,7 @@
],
"description": "Defacto way to enable use of HTML5 sectioning elements in legacy Internet Explorer.",
"homepage": "http://paulirish.com/2011/the-history-of-the-html5-shiv/",
"time": "2015-07-20 20:04:00"
"time": "2015-07-20T20:04:00+00:00"
},
{
"name": "alvaro-prieto/colResizable",
@@ -87,7 +86,7 @@
},
"type": "library",
"notification-url": "https://packagist.org/downloads/",
"time": "2016-09-02 11:31:54"
"time": "2016-09-02T11:31:54+00:00"
},
{
"name": "codeigniter/framework",
@@ -120,7 +119,7 @@
],
"description": "The CodeIgniter framework",
"homepage": "https://codeigniter.com",
"time": "2019-01-16 15:49:35"
"time": "2019-01-16T15:49:35+00:00"
},
{
"name": "components/angular.js",
@@ -424,7 +423,7 @@
],
"description": "Shim repository for Angular.js",
"homepage": "http://angularjs.org",
"time": "2015-06-07 20:10:38"
"time": "2015-06-07T20:10:38+00:00"
},
{
"name": "components/font-awesome",
@@ -459,7 +458,7 @@
"OFL-1.1"
],
"description": "The iconic font designed for use with Twitter Bootstrap.",
"time": "2016-10-25 10:56:23"
"time": "2016-10-25T10:56:23+00:00"
},
{
"name": "components/jquery",
@@ -501,7 +500,7 @@
],
"description": "jQuery JavaScript Library",
"homepage": "http://jquery.com",
"time": "2018-03-04 13:23:48"
"time": "2018-03-04T13:23:48+00:00"
},
{
"name": "components/jqueryui",
@@ -586,7 +585,7 @@
}
],
"description": "jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library. Whether you're building highly interactive web applications or you just need to add a date picker to a form control, jQuery UI is the perfect choice.",
"time": "2016-09-16 05:47:55"
"time": "2016-09-16T05:47:55+00:00"
},
{
"name": "easyrdf/easyrdf",
@@ -648,7 +647,7 @@
"rdfa",
"sparql"
],
"time": "2015-02-27 09:45:49"
"time": "2015-02-27T09:45:49+00:00"
},
{
"name": "fgelinas/timepicker",
@@ -658,6 +657,12 @@
"url": "https://github.com/fgelinas/timepicker",
"reference": "9aebe413b784696639220bc36b7c1e8a30fda129"
},
"dist": {
"type": "zip",
"url": "https://fgelinas.com/code/timepicker/releases/jquery-ui-timepicker-0.3.3.zip",
"reference": null,
"shasum": null
},
"type": "library"
},
{
@@ -708,7 +713,7 @@
"faker",
"fixtures"
],
"time": "2018-07-12 10:23:15"
"time": "2018-07-12T10:23:15+00:00"
},
{
"name": "joeldbirch/superfish",
@@ -850,7 +855,7 @@
"json",
"schema"
],
"time": "2014-08-25 02:48:14"
"time": "2014-08-25T02:48:14+00:00"
},
{
"name": "kevinlebrun/colors.php",
@@ -901,7 +906,7 @@
"console",
"shell"
],
"time": "2018-05-30 08:34:23"
"time": "2018-05-30T08:34:23+00:00"
},
{
"name": "kingsquare/json-schema-form",
@@ -935,17 +940,11 @@
}
],
"description": "A framework-agnostic PHP Implementation for generating simple forms based on json-schema",
"time": "2014-07-10 12:27:19"
"time": "2014-07-10T12:27:19+00:00"
},
{
"name": "ludo/jquery-treetable",
"version": "3.2.0",
"dist": {
"type": "zip",
"url": "https://github.com/ludo/jquery-treetable/archive/3.2.0.zip",
"reference": null,
"shasum": null
},
"type": "library"
},
{
@@ -997,7 +996,7 @@
"keywords": [
"markdown"
],
"time": "2015-03-01 12:03:08"
"time": "2015-03-01T12:03:08+00:00"
},
{
"name": "ml/iri",
@@ -1044,7 +1043,7 @@
"uri",
"url"
],
"time": "2014-01-21 13:43:39"
"time": "2014-01-21T13:43:39+00:00"
},
{
"name": "ml/json-ld",
@@ -1093,7 +1092,7 @@
"JSON-LD",
"jsonld"
],
"time": "2018-11-18 20:26:18"
"time": "2018-11-18T20:26:18+00:00"
},
{
"name": "mottie/tablesorter",
@@ -1144,7 +1143,7 @@
"sorting",
"table"
],
"time": "2018-11-20 21:54:28"
"time": "2018-11-20T21:54:28+00:00"
},
{
"name": "nategood/httpful",
@@ -1194,7 +1193,7 @@
"rest",
"restful"
],
"time": "2015-10-26 16:11:30"
"time": "2015-10-26T16:11:30+00:00"
},
{
"name": "netcarver/textile",
@@ -1247,18 +1246,50 @@
"plaintext",
"textile"
],
"time": "2019-01-26 17:03:58"
"time": "2019-01-26T17:03:58+00:00"
},
{
"name": "nicolaskruchten/pivottable",
"version": "2.15.0",
"version": "v2.23.0",
"source": {
"type": "git",
"url": "https://github.com/nicolaskruchten/pivottable.git",
"reference": "a9cabee5382be0aaf0984ac906d9fa2e0376d2c1"
},
"dist": {
"type": "zip",
"url": "https://github.com/nicolaskruchten/pivottable/archive/v2.15.0.zip",
"reference": null,
"shasum": null
"url": "https://api.github.com/repos/nicolaskruchten/pivottable/zipball/a9cabee5382be0aaf0984ac906d9fa2e0376d2c1",
"reference": "a9cabee5382be0aaf0984ac906d9fa2e0376d2c1",
"shasum": ""
},
"type": "library"
"require": {
"components/jquery": ">=1.9"
},
"type": "library",
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Kruchten",
"email": "nicolas@kruchten.com"
}
],
"description": "Javascript Pivot Table (aka Pivot Grid, Pivot Chart, Cross-Tab) implementation with drag'n'drop.",
"homepage": "https://pivottable.js.org/",
"keywords": [
"crosstab",
"grid",
"jquery",
"jquery-plugin",
"pivot",
"pivotchart",
"pivotgrid",
"pivottable",
"table"
],
"time": "2018-11-04T18:21:09+00:00"
},
{
"name": "phpseclib/phpseclib",
@@ -1305,28 +1336,28 @@
"authors": [
{
"name": "Jim Wigginton",
"email": "terrafrost@php.net",
"role": "Lead Developer"
"role": "Lead Developer",
"email": "terrafrost@php.net"
},
{
"name": "Patrick Monnerat",
"email": "pm@datasphere.ch",
"role": "Developer"
"role": "Developer",
"email": "pm@datasphere.ch"
},
{
"name": "Andreas Fischer",
"email": "bantu@phpbb.com",
"role": "Developer"
"role": "Developer",
"email": "bantu@phpbb.com"
},
{
"name": "Hans-Jürgen Petrich",
"email": "petrich@tronic-media.com",
"role": "Developer"
"role": "Developer",
"email": "petrich@tronic-media.com"
},
{
"name": "Graham Campbell",
"email": "graham@alt-three.com",
"role": "Developer"
"role": "Developer",
"email": "graham@alt-three.com"
}
],
"description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
@@ -1350,7 +1381,7 @@
"x.509",
"x509"
],
"time": "2019-03-10 16:53:45"
"time": "2019-03-10T16:53:45+00:00"
},
{
"name": "psr/log",
@@ -1397,7 +1428,7 @@
"psr",
"psr-3"
],
"time": "2018-11-20 15:27:04"
"time": "2018-11-20T15:27:04+00:00"
},
{
"name": "rdlowrey/auryn",
@@ -1458,17 +1489,11 @@
"dic",
"ioc"
],
"time": "2017-05-15 06:26:46"
"time": "2017-05-15T06:26:46+00:00"
},
{
"name": "rmariuzzo/jquery-checkboxes",
"version": "1.0.7",
"dist": {
"type": "zip",
"url": "https://github.com/rmariuzzo/checkboxes.js/archive/v1.0.7.zip",
"reference": null,
"shasum": null
},
"type": "library"
},
{
@@ -1520,7 +1545,7 @@
"php",
"template"
],
"time": "2016-02-01 16:31:13"
"time": "2016-02-01T16:31:13+00:00"
},
{
"name": "rougin/combustor",
@@ -1585,7 +1610,7 @@
"generator",
"php"
],
"time": "2016-02-14 10:36:58"
"time": "2016-02-14T10:36:58+00:00"
},
{
"name": "rougin/describe",
@@ -1638,7 +1663,7 @@
"describe",
"php"
],
"time": "2016-03-24 18:17:47"
"time": "2016-03-24T18:17:47+00:00"
},
{
"name": "rougin/refinery",
@@ -1703,7 +1728,7 @@
"php",
"refinery"
],
"time": "2016-03-04 16:55:32"
"time": "2016-03-04T16:55:32+00:00"
},
{
"name": "rougin/spark-plug",
@@ -1762,7 +1787,7 @@
"php",
"spark-plug"
],
"time": "2015-10-23 08:27:10"
"time": "2015-10-23T08:27:10+00:00"
},
{
"name": "scottjehl/Respond",
@@ -1834,7 +1859,7 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
"time": "2018-11-20 15:55:20"
"time": "2018-11-20T15:55:20+00:00"
},
{
"name": "symfony/debug",
@@ -1891,7 +1916,7 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
"time": "2016-07-30 07:22:48"
"time": "2016-07-30T07:22:48+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -1949,7 +1974,7 @@
"polyfill",
"portable"
],
"time": "2019-02-06 07:57:58"
"time": "2019-02-06T07:57:58+00:00"
},
{
"name": "symfony/polyfill-mbstring",
@@ -2008,7 +2033,7 @@
"portable",
"shim"
],
"time": "2019-02-06 07:57:58"
"time": "2019-02-06T07:57:58+00:00"
},
{
"name": "symfony/yaml",
@@ -2058,7 +2083,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
"time": "2018-11-11 11:18:13"
"time": "2018-11-11T11:18:13+00:00"
},
{
"name": "tapmodo/Jcrop",
@@ -2115,7 +2140,7 @@
"tinymce",
"wysiwyg"
],
"time": "2019-03-20 13:56:58"
"time": "2019-03-20T13:56:58+00:00"
},
{
"name": "tomazdragar/SimpleCropper",
@@ -2176,7 +2201,7 @@
"responsive",
"web"
],
"time": "2019-02-13 15:55:38"
"time": "2019-02-13T15:55:38+00:00"
},
{
"name": "twig/twig",
@@ -2222,19 +2247,19 @@
"authors": [
{
"name": "Fabien Potencier",
"role": "Lead Developer",
"email": "fabien@symfony.com",
"homepage": "http://fabien.potencier.org",
"role": "Lead Developer"
"homepage": "http://fabien.potencier.org"
},
{
"name": "Armin Ronacher",
"email": "armin.ronacher@active-4.com",
"role": "Project Founder"
"role": "Project Founder",
"email": "armin.ronacher@active-4.com"
},
{
"name": "Twig Team",
"homepage": "https://twig.symfony.com/contributors",
"role": "Contributors"
"role": "Contributors",
"homepage": "https://twig.symfony.com/contributors"
}
],
"description": "Twig, the flexible, fast, and secure template language for PHP",
@@ -2242,7 +2267,7 @@
"keywords": [
"templating"
],
"time": "2019-05-14 11:59:08"
"time": "2019-05-14T11:59:08+00:00"
},
{
"name": "zetacomponents/base",
@@ -2306,7 +2331,7 @@
],
"description": "The Base package provides the basic infrastructure that all packages rely on. Therefore every component relies on this package.",
"homepage": "https://github.com/zetacomponents",
"time": "2017-11-28 11:30:00"
"time": "2017-11-28T11:30:00+00:00"
},
{
"name": "zetacomponents/database",
@@ -2383,7 +2408,7 @@
],
"description": "A lightweight database layer on top of PHP's PDO that allows you to utilize a database without having to take care of differences in SQL dialects.",
"homepage": "https://github.com/zetacomponents",
"time": "2017-11-28 10:55:26"
"time": "2017-11-28T10:55:26+00:00"
},
{
"name": "zetacomponents/document",
@@ -2434,7 +2459,7 @@
],
"description": "The Document components provides a general conversion framework for different semantic document markup languages like XHTML, Docbook, RST and similar.",
"homepage": "https://github.com/zetacomponents",
"time": "2013-12-19 11:40:00"
"time": "2013-12-19T11:40:00+00:00"
},
{
"name": "zetacomponents/workflow",
@@ -2500,7 +2525,7 @@
],
"description": "The purpose of the Workflow component is to provide the core functionality of an activity-based workflow system including the definition and execution of workflow specifications.",
"homepage": "https://github.com/zetacomponents",
"time": "2014-09-27 19:26:10"
"time": "2014-09-27T19:26:10+00:00"
},
{
"name": "zetacomponents/workflow-database-tiein",
@@ -2567,7 +2592,7 @@
],
"description": "Contains the database backend for the Workflow component.",
"homepage": "https://github.com/zetacomponents",
"time": "2014-09-27 19:26:10"
"time": "2014-09-27T19:26:10+00:00"
},
{
"name": "zetacomponents/workflow-event-log-tiein",
@@ -2627,7 +2652,7 @@
],
"description": "Contains the EventLog listener for the Workflow component.",
"homepage": "https://github.com/zetacomponents",
"time": "2007-12-17 09:04:44"
"time": "2007-12-17T09:04:44+00:00"
}
],
"packages-dev": [],
-4
View File
@@ -259,8 +259,4 @@ define('STATUSGRUND_ID_EINSTIEG_SOMMERSEMESTER', null);
// Studiengangs_kz des Studiengangs "Qualifikationskurse". Der Studiengang hat eine Sonderstellung zB für das Bewerbungstool.
define('STUDIENGANG_KZ_QUALIFIKATIONKURSE', null);
// EinsteigerInnen ins Sommersemester werden mit einem Statusgrund versehen.
// Die ID dieses Statusgrundes kann hier eingegeben werden. Es wird zB vom Infocenter-Tool gesetzt und im Bewerbungstool abgefragt
define('STATUSGRUND_ID_EINSTIEG_SOMMERSEMESTER', null);
?>
+1 -1
View File
@@ -168,7 +168,7 @@ if(isset($_POST['submitbild']))
if(isset($_GET['person_id']))
{
$dokument = new dokument();
$dokument->getAllDokumente('Zeugnis');
$dokument->getAllDokumente('Zeugnis,DiplSupp,Bescheid');
echo " <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
<html>
+1 -1
View File
@@ -1573,7 +1573,7 @@ function OpenAboutDialog()
// ****
function OpenManual()
{
window.open('http://fhcomplete.technikum-wien.at/dokuwiki/doku.php?','_blank');
window.open('https://wiki.fhcomplete.org/doku.php?','_blank');
}
// ****
+3 -3
View File
@@ -1550,8 +1550,8 @@ if(!$error)
$gruppe->semester = $lva->semester;
$gruppe->bezeichnung = $bezeichnung;
$gruppe->aktiv = true;
$gruppe->mailgrp = false;
$gruppe->sichtbar = true;
$gruppe->mailgrp = true;
$gruppe->sichtbar = false;
$gruppe->generiert = false;
$gruppe->insertamum = date('Y-m-d H:i:s');
$gruppe->insertvon = $user;
@@ -1678,7 +1678,7 @@ if(!$error)
$qry = "
DELETE FROM lehre.tbl_stundenplandev
WHERE gruppe_kurzbz=".$db->db_add_param($gruppe_kurzbz);
$db->db_query($qry);
}
else
+22 -22
View File
@@ -36,7 +36,7 @@ function Progressmeter(progress_id)
var runningprogress=0;
this.StopPM=StopPM;
this.StartPM=StartPM;
function StartPM()
{
// Progressmeter starten.
@@ -49,7 +49,7 @@ function Progressmeter(progress_id)
runningprogress--;
if(runningprogress<0)
runningprogress=0;
// Progressmeter stoppen wenn alle fertig sind
if(runningprogress==0)
document.getElementById(id).setAttribute('mode','determined');
@@ -70,7 +70,7 @@ function closeWindow()
}
MitarbeiterDetailValueChanged=false;
window.close();
}
@@ -128,7 +128,7 @@ function loadURL(event)
// ****
function stpltableChange(db_stpl_table)
{
variableChange('db_stpl_table', null, db_stpl_table);
variableChange('db_stpl_table', null, db_stpl_table);
return true;
}
@@ -143,7 +143,7 @@ function studiensemesterChange(stsem, wert)
if(typeof(stsem)=='undefined')
{
var items = document.getElementsByTagName('menuitem');
for(i in items)
{
if(items[i].id=='menu-properies-studiensemester-name' && items[i].getAttribute("checked")=='true')
@@ -157,7 +157,7 @@ function studiensemesterChange(stsem, wert)
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
// Request absetzen
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
var req = new phpRequest(url,'','');
@@ -165,7 +165,7 @@ function studiensemesterChange(stsem, wert)
req.add('type', 'variablechange');
req.add('stsem', stsem);
req.add('wert', wert);
var response = req.executePOST();
var val = new ParseReturnValue(response)
@@ -184,7 +184,7 @@ function studiensemesterChange(stsem, wert)
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')
@@ -201,7 +201,7 @@ function studiensemesterChange(stsem, wert)
}
catch(e)
{}
try
{
LvTreeRefresh();
@@ -209,7 +209,7 @@ function studiensemesterChange(stsem, wert)
catch(e)
{}
}
return true;
}
@@ -219,9 +219,9 @@ function studiensemesterChange(stsem, wert)
function variableChangeValue(variable)
{
var variablevalue = getvariable(variable);
if(variablevalue = prompt('Bitte geben Sie den neuen Wert fuer '+variable+' ein', variablevalue))
{
{
variableChange(variable, '', variablevalue);
}
}
@@ -244,7 +244,7 @@ function variableChange(variable, id, wert)
{
if(id!=null)
item = document.getElementById(id);
if(typeof(wert)==='undefined')
{
if(item.getAttribute('checked')=='true')
@@ -254,11 +254,11 @@ function variableChange(variable, id, wert)
}
else
checked=wert;
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
// Request absetzen
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
var req = new phpRequest(url,'','');
@@ -266,7 +266,7 @@ function variableChange(variable, id, wert)
req.add('type', 'variablechange');
req.add('name', variable);
req.add('wert', checked);
var response = req.executePOST();
var val = new ParseReturnValue(response)
@@ -312,7 +312,7 @@ function updateignorekollision()
panel.style.backgroundColor='';
panel.style.MozAppearance = "none"
document.getElementById('menu-prefs-ignore_kollision').setAttribute('checked','false');
}
}
}
// ****
@@ -332,7 +332,7 @@ function updatedbstpltable()
{
panel.style.backgroundColor='';
panel.style.MozAppearance = "none"
}
}
}
@@ -348,7 +348,7 @@ function getStudiensemesterVariable()
document.getElementById("statusbarpanel-semester").label = stsem;
//Menue setzen
var items = document.getElementsByTagName('menuitem');
for(i in items)
{
if(items[i].label==stsem && items[i].id=='menu-properies-studiensemester-name')
@@ -357,7 +357,7 @@ function getStudiensemesterVariable()
break;
}
}
//Ansichten Refreshen
try
{
@@ -365,7 +365,7 @@ function getStudiensemesterVariable()
}
catch(e)
{}
try
{
LvTreeRefresh();
@@ -473,7 +473,7 @@ function SyncLVPlan()
// ****
function OpenManualTempus()
{
window.open('https://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=tempus:allgemeines','Manual');
window.open('https://wiki.fhcomplete.org/doku.php?id=tempus:allgemeines','Manual');
}
// ****
+2 -2
View File
@@ -746,13 +746,13 @@ class dms extends basis_db
JOIN campus.tbl_dms_version USING(dms_id)
JOIN campus.tbl_dms_kategorie USING (kategorie_kurzbz)";
// Wenn erstes Zeichen # ist, dieses wegkürzen und checken ob der Rest numerisch ist. Dann nach eindeutiger ID suchen
if (substr($suchstring, 0, 1) == '#')
/*if (substr($suchstring, 0, 1) == '#')
{
$suchstring = substr($suchstring, 1);
if (is_numeric($suchstring))
$qry .= " WHERE tbl_dms.dms_id = ".$this->db_add_param($suchstring, FHC_INTEGER);
}
else
else*/
{
$qry .= " WHERE lower(name) like lower('%".$this->db_escape($suchstring)."%')
OR lower(tbl_dms_version.beschreibung) like lower('%".$this->db_escape($suchstring)."%')
+14 -4
View File
@@ -36,6 +36,7 @@ class dokument extends basis_db
public $bezeichnung_mehrsprachig;
public $dokumentbeschreibung_mehrsprachig;
public $ausstellungsdetails = false;
public $stufe;
public $prestudent_id;
public $mitarbeiter_uid;
@@ -428,6 +429,7 @@ class dokument extends basis_db
$dok->nachreichbar = $this->db_parse_bool($row->nachreichbar);
$dok->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung);
$dok->ausstellungsdetails = $this->db_parse_bool($row->ausstellungsdetails);
$dok->stufe = $row->stufe;
$this->result[] = $dok;
}
return true;
@@ -467,6 +469,7 @@ class dokument extends basis_db
$dok->nachreichbar = $this->db_parse_bool($row->nachreichbar);
$dok->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung);
$dok->ausstellungsdetails = $this->db_parse_bool($row->ausstellungsdetails);
$dok->stufe = $row->stufe;
$this->result[] = $dok;
}
@@ -545,6 +548,7 @@ class dokument extends basis_db
$this->pflicht = $this->db_parse_bool($row->pflicht);
$this->nachreichbar = $this->db_parse_bool($row->nachreichbar);
$this->beschreibung_mehrsprachig = $sprache->parseSprachResult('beschreibung_mehrsprachig',$row);
$this->stufe = $row->stufe;
return true;
}
else
@@ -605,7 +609,7 @@ class dokument extends basis_db
$qry.=" beschreibung_mehrsprachig[$idx],";
}
$qry.=' pflicht, nachreichbar, onlinebewerbung)
$qry.=' pflicht, nachreichbar, onlinebewerbung, stufe)
VALUES ('.
$this->db_add_param($this->dokument_kurzbz).','.
$this->db_add_param($this->studiengang_kz,FHC_INTEGER).',';
@@ -615,7 +619,8 @@ class dokument extends basis_db
$qry.= $this->db_add_param($this->pflicht,FHC_BOOLEAN).','.
$this->db_add_param($this->nachreichbar,FHC_BOOLEAN).','.
$this->db_add_param($this->onlinebewerbung,FHC_BOOLEAN).')';
$this->db_add_param($this->onlinebewerbung,FHC_BOOLEAN).','.
$this->db_add_param($this->stufe,FHC_INTEGER).')';
}
else
{
@@ -628,7 +633,8 @@ class dokument extends basis_db
$qry.=" beschreibung_mehrsprachig[$idx]=".$this->db_add_param($value).",";
}
$qry.=' pflicht='.$this->db_add_param($this->pflicht, FHC_BOOLEAN).',
nachreichbar='.$this->db_add_param($this->nachreichbar, FHC_BOOLEAN).'
nachreichbar='.$this->db_add_param($this->nachreichbar, FHC_BOOLEAN).',
stufe='.$this->db_add_param($this->stufe, FHC_INTEGER).'
WHERE
dokument_kurzbz='.$this->db_add_param($this->dokument_kurzbz).'
AND studiengang_kz='.$this->db_add_param($this->studiengang_kz);
@@ -714,6 +720,7 @@ class dokument extends basis_db
$dok->dokumentbeschreibung_mehrsprachig = $sprache->parseSprachResult('dokumentbeschreibung_mehrsprachig', $row);
$dok->beschreibung_mehrsprachig = $sprache->parseSprachResult('beschreibung_mehrsprachig', $row);
$dok->ausstellungsdetails = $this->db_parse_bool($row->ausstellungsdetails);
$dok->stufe = $row->stufe;
$this->result[] = $dok;
}
@@ -838,7 +845,8 @@ class dokument extends basis_db
*/
public function getStudiengaengeDokument($dokument_kurzbz, $person_id = null)
{
$qry = " SELECT DISTINCT studiengang_kz,typ||kurzbz AS kuerzel, bezeichnung, english FROM public.tbl_dokumentstudiengang
$qry = " SELECT DISTINCT studiengang_kz,typ||kurzbz AS kuerzel, bezeichnung, english, stufe
FROM public.tbl_dokumentstudiengang
JOIN public.tbl_prestudent USING (studiengang_kz)
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_studiengang USING (studiengang_kz)
@@ -859,6 +867,8 @@ class dokument extends basis_db
$stg_obj->kuerzel = $row->kuerzel;
$stg_obj->bezeichnung = $row->bezeichnung;
$stg_obj->studiengang_kz = $row->studiengang_kz;
$stg_obj->english = $row->english;
$stg_obj->stufe = $row->stufe;
$this->result[] = $stg_obj;
}
+5
View File
@@ -509,6 +509,11 @@ class frage extends basis_db
$level[$row->level]=round(($row->anzahl/$fragengesamt)*$maxfragen);
}
}
// Wenn ein Level besonders viele Fragen und eines nur eine Frage (nach dem Runden) hat,
// kann es durch Rundungsfehler vorkommen, dass bei der Ausgabe ein Level ausgelassen wird.
// Deshalb wird das array hier aufsteigend sortiert. So wird ggf. vom Level mit den meisten Fragen
// die letzte ausgelassen. Hier wäre eine sauberere Lösung besser.
asort($level);
// Von jedem Gebiet muss mindestens eine Frage kommen
foreach ($level as $key=>$row)
+2 -5
View File
@@ -368,12 +368,9 @@ class gebiet extends basis_db
$qry = "SELECT count(*) as anzahl FROM testtool.tbl_frage WHERE gebiet_id=".$this->db_add_param($gebiet_id, FHC_INTEGER)." AND not demo AND level is not null GROUP BY level";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
if($this->db_num_rows() > $this->maxfragen)
{
if($row->anzahl>$this->maxfragen)
{
//$this->errormsg .= "Wenn Levelgleichverteilung gesetzt ist, muss maxfragen groesser als die Anzahl der verwendeten Levels sein\n";
}
$this->errormsg .= "Wenn Levelgleichverteilung gesetzt ist, muss maxfragen groesser als die Anzahl der verwendeten Levels sein\n";
}
}
}
+5
View File
@@ -649,6 +649,11 @@ class gruppe extends basis_db
*/
public function searchGruppen($searchItems, $aktiv = true, $limit = null)
{
if (!is_array($searchItems))
{
$this->errormsg = '$searchItems muss ein Array sein';
return false;
}
$qry = "SELECT
*
FROM
+10
View File
@@ -131,11 +131,21 @@ class reservierung extends basis_db
$this->errormsg = 'Stunde ist ungueltig';
return false;
}
if($this->titel=='')
{
$this->errormsg = 'Es muss ein Titel angegeben werden';
return false;
}
if(mb_strlen($this->titel)>10)
{
$this->errormsg = 'Titel darf nicht laenger als 10 Zeichen sein';
return false;
}
if($this->beschreibung=='')
{
$this->errormsg = 'Es muss eine Beschreibung angegeben werden';
return false;
}
if(mb_strlen($this->beschreibung)>32)
{
$this->beschreibung = 'Beschreibung darf nicht laenger als 32 Zeichen sein';
+2 -2
View File
@@ -164,9 +164,9 @@ class statistik extends basis_db
public function getGruppe($gruppe,$publish=null)
{
$qry = "SELECT * FROM public.tbl_statistik WHERE gruppe=".$this->db_add_param($gruppe);
if ($publish==true)
if ($publish===true)
$qry.=' AND publish ';
elseif ($publish==false)
elseif ($publish===false)
$qry.=' AND NOT publish ';
$qry.=' ORDER BY bezeichnung;';
+3 -3
View File
@@ -902,7 +902,7 @@ class studienplan extends basis_db
* @param type $tudienplan_lehrveranstaltung_id
* @param type $sort
*/
function saveSortierung($studienplan_lehrveranstaltung_id, $sort)
function saveSortierung($studienplan_lehrveranstaltung_id = null, $sort = null)
{
if($studienplan_lehrveranstaltung_id==NULL)
$studienplan_lehrveranstaltung_id = $this->studienplan_lehrveranstaltung_id;
@@ -1182,10 +1182,10 @@ class studienplan extends basis_db
public.tbl_studiensemester ON (tbl_studienordnung.gueltigvon = tbl_studiensemester.studiensemester_kurzbz)
WHERE
1=1";
if ($aktiv != '' && ($aktiv == true || $aktiv == false))
$qry.=" AND tbl_studienplan.aktiv=".$this->db_add_param($aktiv, FHC_BOOLEAN);
if ($gueltigInStudiensemester != '')
$qry.=" AND tbl_studienplan_semester.studiensemester_kurzbz=".$this->db_add_param($gueltigInStudiensemester);
-43
View File
@@ -1,43 +0,0 @@
<?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> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Menue Oben Rechts fuer CIS Seite
*/
require_once ('../include/phrasen.class.php');
require_once ('../include/functions.inc.php');
$sprache = getSprache();
$p = new phrasen($sprache);
?>
<td style="border-right-width:1px; border-right-style:solid; border-color:#626B71;padding-right:3px;padding-left:3px;"><div id="GlobalMenu" style="display: inline; text-transform:uppercase; font-weight: bold"><a class='Item' href="index.html" target="_top"><?php echo $p->t('profil/home');?></a></div></td>
<!--<td style="border-right-width:1px; border-right-style:solid; border-color:#626B71;padding-right:3px;"><div id="GlobalMenu" style="display: inline; text-transform:uppercase; font-weight: bold"><a class='Item' href="menu.php?content_id=173" target="menu"><?php echo $p->t('profil/meinCis');?></a></div></td>-->
<!--<td style="border-right-width:1px; border-right-style:solid; border-color:#626B71;padding-right:3px;padding-left:3px;"><div id="GlobalMenu" style="display: inline; text-transform:uppercase; font-weight: bold"><a class='Item' href="menu.php?content_id=166" target="menu"><?php echo $p->t('lvaliste/lehrveranstaltungen');?></a></div></td>-->
<!--<td style="border-right-width:1px; border-right-style:solid; border-color:#626B71;padding-right:3px;padding-left:3px;"><div id="GlobalMenu" style="display: inline; text-transform:uppercase; font-weight: bold"><a class='Item' href="../cis/private/lvplan/stpl_week.php" target="blank">Mein LV-Plan</a></div></td>-->
<td style="border-right-width:1px; border-right-style:solid; border-color:#626B71;padding-right:3px;padding-left:3px;"><div id="GlobalMenu" style="display: inline; text-transform:uppercase; font-weight: bold"><a class='Item' href="http://fhcomplete.technikum-wien.at/dokuwiki/doku.php" target="blank">WIKI</a></div></td>
<?php
if(CHOOSE_LAYOUT)
echo '<td style="border-right-width:1px; border-right-style:solid; border-color:#626B71;padding-right:5px;padding-left:5px;"><div id="GlobalMenu" style="display: inline; text-transform:uppercase; font-weight: bold"><a class="Item" href="../layouts.php" target="content">Layouts</a></div></td>';
?>
<td style="padding-left:3px;"><div id="GlobalMenu" style="display: inline; text-transform:uppercase; font-weight: bold"><a class='Item' href="../cms/dms.php?id=<?php echo $p->t('dms_link/cisHandbuch');?>" target="_blank"><?php echo $p->t('global/handbuch');?></a></div></td>
&nbsp;&nbsp;&nbsp;&nbsp;
+2 -2
View File
@@ -29,7 +29,7 @@ $menu=array
(
'name'=>'LV-Plan', 'opener'=>'true', 'hide'=>'false', 'permissions'=>array('admin','lv-plan'), 'image'=>'vilesci_lvplan.png',
'link'=>'left.php?categorie=LVPlan', 'target'=>'nav',
'Gruppenverwaltung'=>array('name'=>'Gruppenverwaltung', 'permissions'=>array('admin','lv-plan','support'), 'link'=>'stammdaten/lvbgruppenverwaltung.php', 'target'=>'main'),
'Gruppenverwaltung'=>array('name'=>'Gruppenverwaltung', 'permissions'=>array('admin','lv-plan','support', 'lehre/gruppe'), 'link'=>'stammdaten/lvbgruppenverwaltung.php', 'target'=>'main'),
'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'),
/* Leerzeile */'emptyrow1'=>array('name'=>'', 'link'=>'#empty', 'target'=>'main'),
'Verplanungsuebersicht'=>array('name'=>'Verplanungsübersicht', 'link'=>'lehre/check/verplanungsuebersicht.php', 'target'=>'main'),
@@ -68,7 +68,7 @@ $menu=array
(
'name'=>'Lehre', 'opener'=>'true', 'hide'=>'false', 'permissions'=>array('admin','lv-plan','support', 'lehre'), 'image'=>'vilesci_lehre.png',
'link'=>'left.php?categorie=Lehre', 'target'=>'nav',
'Gruppenverwaltung'=>array('name'=>'Gruppen', 'permissions'=>array('admin','lv-plan','support'), 'link'=>'stammdaten/lvbgruppenverwaltung.php', 'target'=>'main'),
'Gruppenverwaltung'=>array('name'=>'Gruppen', 'permissions'=>array('admin','lv-plan','support','lehre/gruppe'), 'link'=>'stammdaten/lvbgruppenverwaltung.php', 'target'=>'main'),
'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'),
'Studienordnung'=>array('name'=>'Studienordnung', 'link'=>'lehre/studienordnung.php', 'target'=>'_blank','permissions'=>array('lehre/studienordnung')),
'StudienplanGueltigkeit'=>array('name'=>'Studienplan Gültigkeit', 'link'=>'lehre/studienplan_gueltigkeit.php', 'target'=>'main','permissions'=>array('lehre/studienordnung')),
+4 -4
View File
@@ -32,8 +32,8 @@ $this->phrasen['dms_link/lvevaluierungStudierendeCMS']=''; //Beschreibung des Ab
$this->phrasen['dms_link/lvevaluierungMitarbeiterCMS']=''; //Beschreibung des Ablaufs der LVEvaluierung für Mitarbeiter
//Links auf externe Seiten
$this->phrasen['dms_link/dokuwikiGesamtnote']='http://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=cis:gesamtnote'; //Link ins Dokuwiki zur Anleitung Gesamtnote
$this->phrasen['dms_link/abgabetoolLektorHandbuch']='https://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer LektorInnen
$this->phrasen['dms_link/abgabetoolStudentHandbuch']='https://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=cis:abgabetool_fuer_studierende'; //Abgabetool Handbuch fuer Studierende
$this->phrasen['dms_link/abgabetoolAssistenzHandbuch']='https://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer Assistenz
$this->phrasen['dms_link/dokuwikiGesamtnote']='https://wiki.fhcomplete.org/doku.php?id=cis:gesamtnote'; //Link ins Dokuwiki zur Anleitung Gesamtnote
$this->phrasen['dms_link/abgabetoolLektorHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer LektorInnen
$this->phrasen['dms_link/abgabetoolStudentHandbuch']='https://wiki.fhcompleteorg/doku.php?id=cis:abgabetool_fuer_studierende'; //Abgabetool Handbuch fuer Studierende
$this->phrasen['dms_link/abgabetoolAssistenzHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer Assistenz
?>
+3 -1
View File
@@ -53,6 +53,7 @@ $this->phrasen['pruefung/bestaetigt'] = 'bestätigt';
$this->phrasen['pruefung/statusAenderungVon'] = 'Satusänderung von';
$this->phrasen['pruefung/reihungSpeichern'] = 'Reihung speichern';
$this->phrasen['pruefung/listeDrucken'] = 'Liste drucken';
$this->phrasen['pruefung/listeOhneNamenDrucken'] = 'Liste ohne Namen drucken';
$this->phrasen['pruefung/pruefungsraum'] = 'Prüfungsraum: ';
$this->phrasen['pruefung/pruefungsort'] = 'Prüfungsort ';
$this->phrasen['pruefung/imBuero'] = ' im Büro';
@@ -109,7 +110,8 @@ $this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Keine Lehreinheiten vo
$this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Keine Anmeldungen vorhanden.';
$this->phrasen['pruefung/derLektor'] = 'Lektor';
$this->phrasen['pruefung/dieKommission'] = 'Kommission';
$this->phrasen['pruefung/matrikelnummer'] = 'Personenkennzeichen';
$this->phrasen['pruefung/matrikelnummer'] = 'Matrikelnummer';
$this->phrasen['pruefung/studiengangAbkuerzung'] = 'Stg.';
// anmeldungen Verwalten
$this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Prüfungsanmeldung Verwaltung';
+1 -1
View File
@@ -16,7 +16,7 @@ $this->phrasen['zeitaufzeichnung/sieSindDerzeitKeinenProjektenZugeordnet']='Sie
$this->phrasen['zeitaufzeichnung/fehlerBeimErmittelnDerProjekte']='Fehler beim Ermitteln der Projekte';
$this->phrasen['zeitaufzeichnung/organisationseinheit1']='Organisationseinheit 1';
$this->phrasen['zeitaufzeichnung/organisationseinheit2']='Organisationseinheit 2';
$this->phrasen['zeitaufzeichnung/organisationseinheiten']='Organisationseinheit(en)';
$this->phrasen['zeitaufzeichnung/organisationseinheiten']='Organisationseinheit';
$this->phrasen['zeitaufzeichnung/oe']='OE';
$this->phrasen['zeitaufzeichnung/service']='Service';
$this->phrasen['zeitaufzeichnung/kunde']='Kunde';
+4 -4
View File
@@ -27,8 +27,8 @@ $this->phrasen['dms_link/profilhilfe']=''; //Hilfe-Link aus dem Profil
$this->phrasen['dms_link/anleitungMailverteiler']='7578'; //Anleitung für die Benutzung der Mailverteiler und der Berechtigungsschlüssel
//Links auf externe Seiten
$this->phrasen['dms_link/dokuwikiGesamtnote']='http://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=cis:gesamtnote'; //Link ins Dokuwiki zur Anleitung Gesamtnote
$this->phrasen['dms_link/abgabetoolLektorHandbuch']='https://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer LektorInnen
$this->phrasen['dms_link/abgabetoolStudentHandbuch']='https://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=cis:abgabetool_fuer_studierende'; //Abgabetool Handbuch fuer Studierende
$this->phrasen['dms_link/abgabetoolAssistenzHandbuch']='https://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer Assistenz
$this->phrasen['dms_link/dokuwikiGesamtnote']='https://wiki.fhcomplete.org/doku.php?id=cis:gesamtnote'; //Link ins Dokuwiki zur Anleitung Gesamtnote
$this->phrasen['dms_link/abgabetoolLektorHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer LektorInnen
$this->phrasen['dms_link/abgabetoolStudentHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_studierende'; //Abgabetool Handbuch fuer Studierende
$this->phrasen['dms_link/abgabetoolAssistenzHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer Assistenz
?>
+3 -1
View File
@@ -53,6 +53,7 @@ $this->phrasen['pruefung/bestaetigt'] = 'bestätigt';
$this->phrasen['pruefung/statusAenderungVon'] = 'Satusänderung von';
$this->phrasen['pruefung/reihungSpeichern'] = 'Reihung speichern';
$this->phrasen['pruefung/listeDrucken'] = 'Liste drucken';
$this->phrasen['pruefung/listeOhneNamenDrucken'] = 'Liste ohne Namen drucken';
$this->phrasen['pruefung/pruefungsraum'] = 'Prüfungsraum: ';
$this->phrasen['pruefung/pruefungsort'] = 'Prüfungsort ';
$this->phrasen['pruefung/imBuero'] = ' im Büro';
@@ -109,7 +110,8 @@ $this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Keine Lehreinheiten vo
$this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Keine Anmeldungen vorhanden.';
$this->phrasen['pruefung/derLektor'] = 'Lektor';
$this->phrasen['pruefung/dieKommission'] = 'Kommission';
$this->phrasen['pruefung/matrikelnummer'] = 'Personenkennzeichen';
$this->phrasen['pruefung/matrikelnummer'] = 'Matrikelnummer';
$this->phrasen['pruefung/studiengangAbkuerzung'] = 'Stg.';
// anmeldungen Verwalten
$this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Prüfungsanmeldung Verwaltung';
+1 -1
View File
@@ -16,7 +16,7 @@ $this->phrasen['zeitaufzeichnung/sieSindDerzeitKeinenProjektenZugeordnet']='You
$this->phrasen['zeitaufzeichnung/fehlerBeimErmittelnDerProjekte']='Error retrieving project data';
$this->phrasen['zeitaufzeichnung/organisationseinheit1']='Organisation Unit 1';
$this->phrasen['zeitaufzeichnung/organisationseinheit2']='Organisation Unit 2';
$this->phrasen['zeitaufzeichnung/organisationseinheiten']='Organisation Unit(s)';
$this->phrasen['zeitaufzeichnung/organisationseinheiten']='Organisation Unit';
$this->phrasen['zeitaufzeichnung/oe']='OU';
$this->phrasen['zeitaufzeichnung/service']='Service';
$this->phrasen['zeitaufzeichnung/kunde']='Client';
+1 -1
View File
@@ -42,7 +42,7 @@ table.tablesort-hover tr:hover, .tablesort-active {
}
/* Remove background color from filter row */
.tablesorter-default .tablesorter-filter-row td {
.tablesorter-default .tablesorter-filter-row td, .tablesorter-default .tablesorter-filter-row:hover td {
background-color: white !important;
}
+11 -9
View File
@@ -1,22 +1,22 @@
<?php
/*
/*
* Copyright 2013 fhcomplete.org
*
*
* 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., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
*
* Authors: Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
*/
@@ -48,7 +48,7 @@ for($i=0;$i<100;$i++)
$parameter[]=null;
else
$parameter[]=$_REQUEST['parameter_'.$i];
}
}
else
break;
}
@@ -69,12 +69,13 @@ if(!$wsrecht->isUserAuthorized($uid, $method, $class))
$obj = new $class();
$error=false;
// Bei Save Funktionen werden alle Parameter zugewiesen
if(mb_stristr($method,'save'))
{
$loaddata=json_decode($_REQUEST['loaddata'], true);
if(isset($_REQUEST['loaddata']))
$loaddata=json_decode($_REQUEST['loaddata'], true);
else
$loaddata=null;
$savedata=json_decode($_REQUEST['savedata'], true);
if(isset($loaddata['method']))
@@ -114,6 +115,7 @@ if(mb_stristr($method,'save'))
}
}
}
$return = '';
if(!$error && ($return = call_user_func_array(array($obj, $method), $parameter)))
{
+1 -1
View File
@@ -52,7 +52,7 @@ function verifyData($parameters)
$log = new webservicelog();
$log->request_data = file_get_contents('php://input');
$log->webservicetyp_kurzbz = 'wienerlinien';
$log->request_id = $parameters->Token;
$log->request_id = $parameters->token;
$log->beschreibung = "Semesterticketanfrage";
$log->save(true);
+2 -2
View File
@@ -70,13 +70,13 @@ $db = new basis_db();
if(isset($_REQUEST['submit']))
{
$client = new SoapClient(APP_ROOT."/soap/semesterticket.wsdl.php?".microtime(true));
$client = new SoapClient(APP_ROOT."/soap/semesterticket.wsdl.php?".microtime(true));
try
{
class foo {};
$obj = new foo();
$obj->Token = $_REQUEST['token'];
$obj->token = $_REQUEST['token'];
$obj->Matrikelnummer = $_REQUEST['matrikelnummer'];
$obj->Name = $_REQUEST['name'];
$obj->Vorname = $_REQUEST['vorname'];
+3 -1
View File
@@ -399,7 +399,7 @@ class stip extends basis_db
public.tbl_prestudentstatus
WHERE
prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER)."
AND studiensemester_kurzbz=".$this->db_add_param($psem)."'";
AND studiensemester_kurzbz=".$this->db_add_param($psem);
if(!is_null($bisdatum))
$qrystatus.=" AND (tbl_prestudentstatus.datum<".$this->db_add_param($bisdatum).") ";
$qrystatus.=" ORDER BY datum desc, insertamum desc, ext_id desc;";
@@ -445,6 +445,8 @@ class stip extends basis_db
*/
public function getSemester($prestudent_id, $studiensemester_kurzbz, $bisdatum=null)
{
$sem = '';
$qrystatus="
SELECT
*
+12 -1
View File
@@ -3019,6 +3019,17 @@ if(!@$db->db_query("SELECT 0 FROM campus.tbl_zeitaufzeichnung_gd WHERE 0 = 1"))
}
// Add column Stufe to tbl_dokumentstudiengang
if(!$result = @$db->db_query("SELECT stufe FROM public.tbl_dokumentstudiengang LIMIT 1"))
{
$qry = "ALTER TABLE public.tbl_dokumentstudiengang ADD COLUMN stufe smallint;";
if(!$db->db_query($qry))
echo '<strong>public.tbl_dokumentstudiengang: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.tbl_dokumentstudiengang: Spalte stufe hinzugefuegt';
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -3181,7 +3192,7 @@ $tabellen=array(
"public.tbl_buchungstyp" => array("buchungstyp_kurzbz","beschreibung","standardbetrag","standardtext","aktiv","credit_points"),
"public.tbl_dokument" => array("dokument_kurzbz","bezeichnung","ext_id","bezeichnung_mehrsprachig","dokumentbeschreibung_mehrsprachig","ausstellungsdetails"),
"public.tbl_dokumentprestudent" => array("dokument_kurzbz","prestudent_id","mitarbeiter_uid","datum","updateamum","updatevon","insertamum","insertvon","ext_id"),
"public.tbl_dokumentstudiengang" => array("dokument_kurzbz","studiengang_kz","ext_id", "onlinebewerbung", "pflicht","beschreibung_mehrsprachig","nachreichbar"),
"public.tbl_dokumentstudiengang" => array("dokument_kurzbz","studiengang_kz","ext_id", "onlinebewerbung", "pflicht","beschreibung_mehrsprachig","nachreichbar","stufe"),
"public.tbl_erhalter" => array("erhalter_kz","kurzbz","bezeichnung","dvr","logo","zvr"),
"public.tbl_fachbereich" => array("fachbereich_kurzbz","bezeichnung","farbe","studiengang_kz","aktiv","ext_id","oe_kurzbz"),
"public.tbl_filter" => array("filter_id","kurzbz","sql","valuename","showvalue","insertamum","insertvon","updateamum","updatevon","type","htmlattr", "bezeichnung"),
+3 -5
View File
@@ -162,11 +162,9 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
</xsl:template>
<xsl:template match="cis_ext_menu">
<xsl:variable name="kurzbz" select="kurzbz"></xsl:variable>
<xsl:variable name="kurzbzlang" select="kurzbzlang"></xsl:variable>
<td class="menubox">
<p><xsl:text> </xsl:text><a href="../documents/{kurzbz}/lehrziele/" class="Item" target="_blank"><xsl:value-of select="lehrziele_name" /></a></p>
<p><xsl:text> </xsl:text><a href="../documents/{kurzbz}/download/" class="Item" target="_blank"><xsl:value-of select="download_name" /></a></p>
<p><xsl:text> </xsl:text><a href="news://news.technikum-wien.at/{kurzbzlang}" class="Item" target="_blank"><xsl:value-of select="newsgroup_name" /></a></p>
<xsl:variable name="stg_kz" select="stg_kz"></xsl:variable>
<td class="menubox">
<p><xsl:text> </xsl:text><a href="https://moodle.technikum-wien.at/course/view.php?idnumber=dl{$stg_kz}" class="Item" target="_blank"><xsl:value-of select="download_name" /></a></p>
</td>
</xsl:template>
</xsl:stylesheet >
Binary file not shown.
Binary file not shown.
+4 -5
View File
@@ -455,7 +455,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</xsl:choose>-->
Lehrgangs zur Weiterbildung.
</text:p>
<text:p text:style-name="P4">Dieser Lehrgang wird in Kooperation mit der Technikum Wien GmbH organisiert und durchgeführt. Es gelten die AGB der Technikum Wien GmbH, diese sind unter https://academy.technikum-wien.at/agb jederzeit abrufbar.
<text:p text:style-name="P4">Dieser Lehrgang wird von der Technikum Wien GmbH in Kooperation mit der FH Technikum Wien organisiert und durchgeführt. Es gelten die AGB der Technikum Wien GmbH, diese sind unter https://academy.technikum-wien.at/agb jederzeit abrufbar.
</text:p>
<text:p text:style-name="P13"/>
<text:list xml:id="list305698312" text:continue-numbering="false" text:style-name="WW8Num7">
@@ -478,7 +478,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</text:list>
</text:list-item>
</text:list>
<text:p text:style-name="P5">Die Ausbildung erfolgt auf Grundlage des Fachhochschul-Studiengesetzes, BGBI. Nr. 340/1993 idgF und des Hochschul-Qualitätssicherungsgesetzes, BGBI. Nr. 74/2011 idgF, des genehmigten Lehrgangantrags durch das Fachhoschul-Kollegium und der Satzung der Fachhoschule Technikum Wien idgF.</text:p>
<text:p text:style-name="P5">Die Ausbildung erfolgt auf Grundlage des Fachhochschul-Studiengesetzes, BGBI. Nr. 340/1993 idgF. und des Hochschul-Qualitätssicherungsgesetzes, BGBI. Nr. 74/2011 idgF., des genehmigten Lehrgangantrags durch das Fachhoschul-Kollegium und der Satzung der Fachhoschule Technikum Wien idgF.</text:p>
<text:p text:style-name="P14"/>
<text:list xml:id="list636990326" text:continue-numbering="true" text:style-name="WW8Num7">
<text:list-item>
@@ -598,8 +598,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</text:note-body>
</text:note>
</text:span>
</text:span>
.
</text:span>.
</text:span>
</text:p>
<text:p text:style-name="P29">
@@ -705,7 +704,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</text:list-item>
</text:list>
<text:p text:style-name="P5">
Ao. Studierende des Lehrgangs sind verpflichtet, eine EDV-Ausstattung zu beschaffen und zu unterhalten, die es ermöglicht, an den Fernlehreelementen teilzunehmen. Die gesamten Kosten der Anschaffung und des Betriebs (inkl. Kosten für Internet und E-Mail) trägt der ao. Student bzw. die ao. Studentin.
Ao. Studierende des Lehrgangs sind verpflichtet, eine EDV-Ausstattung zu beschaffen und zu unterhalten, die es ermöglicht, an den Fernlehrelementen teilzunehmen. Die gesamten Kosten der Anschaffung und des Betriebs (inkl. Kosten für Internet und E-Mail) trägt der ao. Student bzw. die ao. Studentin.
</text:p>
<text:p text:style-name="P5"/>
+3 -1
View File
@@ -42,6 +42,7 @@ if(!$rechte->isBerechtigt('lehre/gruppe:begrenzt',null,'s'))
die($rechte->errormsg);
$kurzbz=(isset($_GET['kurzbz'])?$_GET['kurzbz']:(isset($_POST['kurzbz'])?$_POST['kurzbz']:''));
$searchItems=(isset($_GET['searchItems'])?$_GET['searchItems']:(isset($_POST['searchItems'])?$_POST['searchItems']:''));
if(empty($kurzbz))
die('Gruppe wurde nicht &uuml;bergeben <a href="javascript:history.back()">Zur&uuml;ck</a>');
@@ -108,7 +109,7 @@ if(!$gruppe->load($kurzbz))
<H2>Gruppe <?php echo $kurzbz ?></H2>
<?php
echo "<a href='einheit_menu.php?studiengang_kz=$gruppe->studiengang_kz'>Zurück zur &Uuml;bersicht</a><br><br>";
echo "<a href='einheit_menu.php?studiengang_kz=$gruppe->studiengang_kz&searchItems=$searchItems'>Zurück zur &Uuml;bersicht</a><br><br>";
echo $errormsg;
$generiertegruppe = $gruppe->generiert;
if(!$gruppe->generiert)
@@ -141,6 +142,7 @@ if(!$gruppe->generiert)
$("#uid").focus();
</script>
<INPUT type="hidden" name="kurzbz" value="'.$kurzbz.'">
<INPUT type="hidden" name="searchItems" value="'.$searchItems.'">
<INPUT type="submit" name="new" value="Hinzuf&uuml;gen">
</FORM>
<HR>
+46 -27
View File
@@ -48,6 +48,15 @@ if ($studiengang_kz != '')
$oe_studiengang = '';
}
if (isset($_GET['searchItems']) && trim($_GET['searchItems']) != '')
{
$searchItems = explode(' ', trim($_GET['searchItems']));
}
else
{
$searchItems = array();
}
if (isset($_GET['sem']))
$sem=$_GET['sem'];
@@ -73,12 +82,12 @@ if(!$rechte->isBerechtigt('lehre/gruppe', null, 's'))
<title>Gruppe-Verwaltung</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<?php
<?php
include('../../include/meta/jquery.php');
include('../../include/meta/jquery-tablesorter.php');
?>
<script language="JavaScript" type="text/javascript">
function conf_del()
{
@@ -105,7 +114,7 @@ if(!$rechte->isBerechtigt('lehre/gruppe', null, 's'))
$( "#domain_text" ).toggle();
$('#gesperrt').prop('disabled', function(i, v) { return !v; });
});
});
</script>
<style>
@@ -146,28 +155,28 @@ else if (isset($_POST['type']) && $_POST['type']=='save')
else if (isset($_GET['type']) && $_GET['type']=='delete')
{
printDropDown();
if($rechte->isBerechtigt('lehre/gruppe', $oe_studiengang, 'suid'))
{
$e=new gruppe();
if(!$e->delete($_GET['einheit_id']))
echo $e->errormsg;
}
else
else
echo '<span class="error">'.$rechte->errormsg.'</span>';
getUebersicht();
}
else
{
printDropDown();
if ($studiengang_kz != '')
if ($studiengang_kz != '' || count($searchItems) > 0)
getUebersicht();
}
function printDropDown()
{
global $rechte, $studiengang_kz;
global $rechte, $studiengang_kz, $searchItems;
//Studiengang Drop Down anzeigen
$types = new studiengang();
$types->getAllTypes();
@@ -199,23 +208,26 @@ function printDropDown()
}
}
echo '</SELECT><input type="submit" value="Anzeigen" />';
echo '</SELECT>';
echo '<br>oder</br>';
echo 'Suche: <input name="searchItems" type="text" size="50" value="'.implode(' ',$searchItems).'"/>';
echo '<input type="submit" value="Anzeigen" />';
echo '</form>';
}
function doSave()
{
global $rechte;
$studiengang = new studiengang($_POST['studiengang_kz']);
if ($studiengang->oe_kurzbz != '')
$oe_studiengang = $studiengang->oe_kurzbz;
else
$oe_studiengang = '';
if($rechte->isBerechtigt('lehre/gruppe', $oe_studiengang, 'sui'))
{
$e = new gruppe();
if ($_POST['new']=='true')
{
$e->new = true;
@@ -228,7 +240,7 @@ function doSave()
$e->load($_POST['kurzbz']);
$e->new = false;
}
$e->updateamum = date('Y-m-d H:i:s');
$e->updatevon = get_uid();
$e->bezeichnung = $_POST['bezeichnung'];
@@ -245,7 +257,7 @@ function doSave()
$e->aufnahmegruppe = isset($_POST['aufnahmegruppe']);
$e->sort = $_POST['sort'];
$e->content_visible = isset($_POST['content_visible']);
if(!$e->save())
echo $e->errormsg;
}
@@ -255,11 +267,11 @@ function doSave()
function doEdit($kurzbz,$new=false)
{
global $db, $rechte, $studiengang;
global $db, $rechte, $studiengang, $searchItems;
if (!$new)
{
$e = new gruppe($kurzbz);
echo '<a href="einheit_menu.php?studiengang_kz='.$e->studiengang_kz.'">Zurück zur &Uuml;bersicht</a><br>';
echo '<a href="einheit_menu.php?studiengang_kz='.$e->studiengang_kz.'&searchItems='.implode(' ',$searchItems).'">Zurück zur &Uuml;bersicht</a><br>';
}
else
{
@@ -319,7 +331,7 @@ function doEdit($kurzbz,$new=false)
$selected = 'selected="selected"';
else
$selected='';
echo '<option value="'.$studiengang->studiengang_kz.'" '.$selected.'>'.$db->convert_html_chars($studiengang->kuerzel.' - '.$studiengang->bezeichnung).'</option>';
$typ = $studiengang->typ;
}
@@ -408,13 +420,20 @@ function doEdit($kurzbz,$new=false)
function getUebersicht()
{
global $studiengang_kz, $semester, $rechte;
global $studiengang_kz, $semester, $rechte, $searchItems;
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$gruppe=new gruppe();
// Array mit allen Einheiten holen
$gruppe->getgruppe($studiengang_kz,$semester);
// Wenn $searchstring gesetz ist, nach gruppe suchen, sonst gruppe mit $studiengang_kz un $semester laden
if (count($searchItems) > 0)
{
$gruppe->searchGruppen($searchItems, null, null);
}
else
{
$gruppe->getgruppe($studiengang_kz,$semester);
}
echo '<h3>&Uuml;bersicht</h3>';
echo '<button type="button" class="resetsaved" title="Reset Filter">Reset Filter</button>';
@@ -467,14 +486,14 @@ function getUebersicht()
echo "<td><img title='Aufnahmegruppe' height='16px' src='../../skin/images/".($e->aufnahmegruppe?"true.png":"false.png")."' alt='".($e->aufnahmegruppe?"true.png":"false.png")."'></td>";
// src="../../skin/images/'.($row->projektarbeit=='t'?'true.png':'false.png').'"
//echo "<td>".$gruppe->countStudenten($e->gruppe_kurzbz)."</td>"; Auskommentiert, da sonst die Ladezeit der Seite zu lange ist
echo "<td style='padding-right: 5px'><a href='einheit_det.php?kurzbz=$e->gruppe_kurzbz'>Personen</a></td>";
echo "<td style='padding-right: 5px'><a href='einheit_det.php?kurzbz=$e->gruppe_kurzbz&searchItems=".implode(' ',$searchItems)."'>Personen</a></td>";
if($rechte->isBerechtigt('lehre/gruppe', $oe_studiengang, 'su'))
echo "<td style='padding-right: 5px'><a href=\"einheit_menu.php?edit=1&kurzbz=$e->gruppe_kurzbz\">Edit</a></td>";
echo "<td style='padding-right: 5px'><a href=\"einheit_menu.php?edit=1&kurzbz=$e->gruppe_kurzbz&searchItems=".implode(' ',$searchItems)."\">Edit</a></td>";
if($rechte->isBerechtigt('lehre/gruppe', $oe_studiengang, 'suid'))
echo "<td><a href=\"einheit_menu.php?einheit_id=$e->gruppe_kurzbz&studiengang_kz=$e->studiengang_kz&type=delete\" onclick='return conf_del()'>Delete</a></td>";
echo "</tr>\n";
}
@@ -483,4 +502,4 @@ function getUebersicht()
?>
</body>
</html>
</html>
+15 -5
View File
@@ -484,6 +484,13 @@ if ($testende)
foreach ($_POST['prestudent_ids'] AS $prest)
{
$prestudentrolle = new prestudent($prest);
// Wenn der letzte Status Abgewiesener ist, wird der Bewerber ignoriert
$prestudentrolle->getLastStatus($prest, $reihungstest->studiensemester_kurzbz);
if ($prestudentrolle->status_kurzbz == 'Abgewiesener')
{
continue;
}
// Letzten Interessentenstatus laden
$prestudentrolle->getLastStatus($prest, $reihungstest->studiensemester_kurzbz, 'Interessent');
$stg = new studiengang($prestudentrolle->studiengang_kz);
@@ -764,6 +771,13 @@ if ($punkteUebertragen)
else
{
$setRTPunkte = new reihungstest();
$ort_kurzbz = '';
// Checken, ob schon irgendeine Raumzuteilung existiert (Check ohne Studienplan) und diese ggf. übernehmen
$setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id']);
if ($setRTPunkte->ort_kurzbz != '')
{
$ort_kurzbz = $setRTPunkte->ort_kurzbz;
}
$setRTPunkte->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id'], $prestudentrolle->studienplan_id);
// Check, ob Punkte schon befüllt sind
@@ -773,7 +787,7 @@ if ($punkteUebertragen)
$setRTPunkte->person_id = $prestudentrolle->person_id;
$setRTPunkte->reihungstest_id = $_POST['reihungstest_id'];
$setRTPunkte->anmeldedatum = '';
$setRTPunkte->ort_kurzbz = '';
$setRTPunkte->ort_kurzbz = $ort_kurzbz;
$setRTPunkte->studienplan_id = $prestudentrolle->studienplan_id;
$setRTPunkte->punkte = number_format(floatval($array['ergebnis']), 4);
$setRTPunkte->insertamum = date('Y-m-d H:i:s');
@@ -1373,10 +1387,6 @@ if (isset($_REQUEST['reihungstest']))
{
$query .= " AND rt.datum <= " . $db->db_add_param($datum_bis);
}
if ($studiengang != '')
{
$query .= " AND ps.studiengang_kz = " . $db->db_add_param($studiengang, FHC_INTEGER);
}
if ($semester != '')
{
$query .= " AND tbl_ablauf.semester=" . $db->db_add_param($semester, FHC_INTEGER);
@@ -140,7 +140,7 @@ if(isset($_POST['kopieren']))
}
}
if(isset($_POST['schick']))
if(isset($_POST['schick']) || isset($_POST['copy']))
{
if($rechte->isBerechtigt('basis/berechtigung', null, 'suid'))
{
@@ -158,7 +158,7 @@ if(isset($_POST['schick']))
$anmerkung = (isset($_POST['anmerkung'])?$_POST['anmerkung']:'');
$ber = new benutzerberechtigung();
if (isset($_POST['neu']))
if (isset($_POST['neu']) || isset($_POST['copy']))
{
$ber->insertamum=date('Y-m-d H:i:s');
$ber->insertvon = $user;
@@ -337,6 +337,84 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
<th></th>
<!--<th></th>-->
</tr></thead><tbody>\n";
$htmlstr .= "<tr id='neu'>\n";
$htmlstr .= "<form action='benutzerberechtigung_details.php' method='POST' name='berechtigung_neu'>\n";
$htmlstr .= "<input type='hidden' name='neu' value='1'>\n";
$htmlstr .= "<input type='hidden' name='benutzerberechtigung_id' value=''>\n";
$htmlstr .= "<input type='hidden' name='uid' value='".$uid."'>\n";
$htmlstr .= "<input type='hidden' name='funktion_kurzbz' value='".$funktion_kurzbz."'>\n";
//Status
$htmlstr .= " <td>&nbsp;</td>\n";
//Rolle
$htmlstr .= " <td style='padding-top: 15px;'><select name='rolle_kurzbz' id='rolle_kurzbz_neu' onchange='markier(\"neu\"); setnull(\"berechtigung_kurzbz_neu\"); setnull(\"art_neu\");'>\n";
$htmlstr .= " <option value='' onclick='enable(\"berechtigung_kurzbz_neu\");'>&nbsp;</option>\n";
for ($i = 0; $i < sizeof($rolle_arr); $i++)
{
$sel = "";
$htmlstr .= " <option value='".$rolle_arr[$i]."' ".$sel." onclick='disable(\"berechtigung_kurzbz_neu\");'>".$rolle_arr[$i]."</option>";
}
$htmlstr .= " </select></td>\n";
//Berechtigung_kurzbz
$htmlstr .= " <td style='padding-top: 15px;'><select name='berechtigung_kurzbz' id='berechtigung_kurzbz_neu' onchange='markier(\"neu\"); setnull(\"rolle_kurzbz_neu\");'>\n";
$htmlstr .= " <option value='' onclick='enable(\"rolle_kurzbz_neu\");'>&nbsp;</option>\n";
for ($i = 0; $i < sizeof($berechtigung_arr); $i++)
{
$sel = "";
$htmlstr .= " <option title='".$berechtigung_beschreibung_arr[$i]."' ".(array_search($berechtigung_arr[$i],$berechtigung_user_arr)!==false?"style='color: #666'":"")." value='".$berechtigung_arr[$i]."' ".$sel." onclick='disable(\"rolle_kurzbz_neu\");'>".$berechtigung_arr[$i]."</option>";
}
$htmlstr .= " </select></td>\n";
//Art
$htmlstr .= " <td style='padding-top: 15px;'><input id='art_neu' type='text' name='art' value='' size='5' maxlength='5' onBlur='checkrequired(\"art_neu\")' onChange='validateArt(\"art_neu\")' placeholder='suid'></td>\n";
//Organisationseinheit
if($funktion_kurzbz!='')
$htmlstr .= " <td class='oe_column' style='padding-top: 15px;'>OE aus MA-Funktion</td>\n";
else
{
$htmlstr .= " <td class='oe_column' style='padding-top: 15px;'><select id='oe_kurzbz_neu' name='oe_kurzbz' onchange='markier(\"neu\")' style='width: 200px;'>\n";
$htmlstr .= " <option value='' onclick='enable(\"kostenstelle_neu\");'>-- Alle --</option>\n";
foreach ($oe->result as $oekey)
{
if(!$oekey->aktiv)
$class='class="inactive"';
else
$class='';
$htmlstr .= " <option value='".$oekey->oe_kurzbz."' ".$class." onclick='disable(\"kostenstelle_neu\");'>".$oekey->organisationseinheittyp_kurzbz.' '.$oekey->bezeichnung.'</option>';
}
$htmlstr .= " </select></td>\n";
}
//Kostenstelle
$htmlstr .= " <td class='ks_column' style='padding-top: 15px;'><select id='kostenstelle_neu' name='kostenstelle_id' onchange='markier(\"".(isset($b->benutzerberechtigung_id)?$b->benutzerberechtigung_id:'')."\")' style='width: 200px;'>\n";
$htmlstr .= " <option value='' onclick='enable(\"oe_kurzbz_neu\");'>&nbsp;</option>\n";
foreach ($kostenstelle->result as $kst)
{
if(!$kst->aktiv)
$class='class="inactive"';
else
$class='';
$htmlstr .= " <option value='".$kst->kostenstelle_id."' ".$class." onclick='disable(\"oe_kurzbz_neu\");'>".$kst->bezeichnung.'</option>';
}
$htmlstr .= " </select></td>\n";
$htmlstr .= " <td align='center' style='padding-top: 15px;'><input type='checkbox' name='negativ' onchange='markier(\"neu\")'></td>\n";
$htmlstr .= " <td nowrap style='padding-top: 15px;'><input class='datepicker_datum' type='text' name='start' value='' size='10' maxlength='10' onchange='markier(\"neu\")'></td>\n";
$htmlstr .= " <td nowrap style='padding-top: 15px;'><input class='datepicker_datum' type='text' name='ende' value='' size='10' maxlength='10' onchange='markier(\"neu\")'></td>\n";
//Anmerkung
$htmlstr .= " <td style='padding-top: 15px;'><input id='anmerkung_neu' type='text' name='anmerkung' value='' size='30' maxlength='256' onchange='markier(\"neu\")'></td>\n";
$htmlstr .= " <td style='padding-top: 15px;'><input type='submit' name='schick' value='neu'></td>";
$htmlstr .= "</form>\n";
$htmlstr .= " </tr>\n";
foreach($rights->berechtigungen as $b)
{
switch($filter)
@@ -399,9 +477,9 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
<script language='javascript'>
$(document).ready(function()
{
var url = location.href;
location.href = '#editrow'
history.replaceState(null,null,url);
//var url = location.href;
//location.href = '#editrow'
//history.replaceState(null,null,url);
});
</script>";
$htmlstr.="</td>\n";
@@ -470,7 +548,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
$htmlstr .= " <td name='td_$b->benutzerberechtigung_id'><input id='anmerkung_$b->benutzerberechtigung_id' type='text' name='anmerkung' value='".$b->anmerkung."' title='".$db->convert_html_chars(mb_eregi_replace('\r\n'," ",$b->anmerkung))."' size='30' maxlength='256' markier(\"td_".$b->benutzerberechtigung_id."\")'></td>\n";
$htmlstr .= " <td align='center' name='td_$b->benutzerberechtigung_id'><img src='../../skin/images/information.png' alt='information' title='Angelegt von ".$b->insertvon." am ".$b->insertamum." \nZuletzt geaendert von ".$b->updatevon." am ".$b->updateamum."'></td>\n";
$htmlstr .= " <td name='td_$b->benutzerberechtigung_id'><input type='submit' name='schick' value='speichern'></td>";
$htmlstr .= " <td name='td_$b->benutzerberechtigung_id' style='white-space: nowrap'><input type='submit' name='schick' value='speichern'> &nbsp; <input type='submit' name='copy' value='kopieren'></td>";
$htmlstr .= " <td name='td_$b->benutzerberechtigung_id'><input type='submit' name='del' value='l&ouml;schen'></td>";
$htmlstr .= "</form>\n";
$htmlstr .= " </tr>\n";
@@ -541,85 +619,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz']))
}
$htmlstr .= " </tbody><tfoot><tr id='neu'>\n";
$htmlstr .= "<form action='benutzerberechtigung_details.php' method='POST' name='berechtigung_neu'>\n";
$htmlstr .= "<input type='hidden' name='neu' value='1'>\n";
$htmlstr .= "<input type='hidden' name='benutzerberechtigung_id' value=''>\n";
$htmlstr .= "<input type='hidden' name='uid' value='".$uid."'>\n";
$htmlstr .= "<input type='hidden' name='funktion_kurzbz' value='".$funktion_kurzbz."'>\n";
//Status
$htmlstr .= " <td>&nbsp;</td>\n";
//Rolle
$htmlstr .= " <td style='padding-top: 15px;'><select name='rolle_kurzbz' id='rolle_kurzbz_neu' onchange='markier(\"neu\"); setnull(\"berechtigung_kurzbz_neu\"); setnull(\"art_neu\");'>\n";
$htmlstr .= " <option value='' onclick='enable(\"berechtigung_kurzbz_neu\");'>&nbsp;</option>\n";
for ($i = 0; $i < sizeof($rolle_arr); $i++)
{
$sel = "";
$htmlstr .= " <option value='".$rolle_arr[$i]."' ".$sel." onclick='disable(\"berechtigung_kurzbz_neu\");'>".$rolle_arr[$i]."</option>";
}
$htmlstr .= " </select></td>\n";
//Berechtigung_kurzbz
$htmlstr .= " <td style='padding-top: 15px;'><select name='berechtigung_kurzbz' id='berechtigung_kurzbz_neu' onchange='markier(\"neu\"); setnull(\"rolle_kurzbz_neu\");'>\n";
$htmlstr .= " <option value='' onclick='enable(\"rolle_kurzbz_neu\");'>&nbsp;</option>\n";
for ($i = 0; $i < sizeof($berechtigung_arr); $i++)
{
$sel = "";
$htmlstr .= " <option title='".$berechtigung_beschreibung_arr[$i]."' ".(array_search($berechtigung_arr[$i],$berechtigung_user_arr)!==false?"style='color: #666'":"")." value='".$berechtigung_arr[$i]."' ".$sel." onclick='disable(\"rolle_kurzbz_neu\");'>".$berechtigung_arr[$i]."</option>";
}
$htmlstr .= " </select></td>\n";
//Art
$htmlstr .= " <td style='padding-top: 15px;'><input id='art_neu' type='text' name='art' value='' size='5' maxlength='5' onBlur='checkrequired(\"art_neu\")' onChange='validateArt(\"art_neu\")' placeholder='suid'></td>\n";
//Organisationseinheit
if($funktion_kurzbz!='')
$htmlstr .= " <td class='oe_column' style='padding-top: 15px;'>OE aus MA-Funktion</td>\n";
else
{
$htmlstr .= " <td class='oe_column' style='padding-top: 15px;'><select id='oe_kurzbz_neu' name='oe_kurzbz' onchange='markier(\"neu\")' style='width: 200px;'>\n";
$htmlstr .= " <option value='' onclick='enable(\"kostenstelle_neu\");'>-- Alle --</option>\n";
foreach ($oe->result as $oekey)
{
if(!$oekey->aktiv)
$class='class="inactive"';
else
$class='';
$htmlstr .= " <option value='".$oekey->oe_kurzbz."' ".$class." onclick='disable(\"kostenstelle_neu\");'>".$oekey->organisationseinheittyp_kurzbz.' '.$oekey->bezeichnung.'</option>';
}
$htmlstr .= " </select></td>\n";
}
//Kostenstelle
$htmlstr .= " <td class='ks_column' style='padding-top: 15px;'><select id='kostenstelle_neu' name='kostenstelle_id' onchange='markier(\"".(isset($b->benutzerberechtigung_id)?$b->benutzerberechtigung_id:'')."\")' style='width: 200px;'>\n";
$htmlstr .= " <option value='' onclick='enable(\"oe_kurzbz_neu\");'>&nbsp;</option>\n";
foreach ($kostenstelle->result as $kst)
{
if(!$kst->aktiv)
$class='class="inactive"';
else
$class='';
$htmlstr .= " <option value='".$kst->kostenstelle_id."' ".$class." onclick='disable(\"oe_kurzbz_neu\");'>".$kst->bezeichnung.'</option>';
}
$htmlstr .= " </select></td>\n";
$htmlstr .= " <td align='center' style='padding-top: 15px;'><input type='checkbox' name='negativ' onchange='markier(\"neu\")'></td>\n";
$htmlstr .= " <td nowrap style='padding-top: 15px;'><input class='datepicker_datum' type='text' name='start' value='' size='10' maxlength='10' onchange='markier(\"neu\")'></td>\n";
$htmlstr .= " <td nowrap style='padding-top: 15px;'><input class='datepicker_datum' type='text' name='ende' value='' size='10' maxlength='10' onchange='markier(\"neu\")'></td>\n";
//Anmerkung
$htmlstr .= " <td style='padding-top: 15px;'><input id='anmerkung_neu' type='text' name='anmerkung' value='' size='30' maxlength='256' onchange='markier(\"neu\")'></td>\n";
$htmlstr .= " <td style='padding-top: 15px;'><input type='submit' name='schick' value='neu'></td>";
$htmlstr .= "</form>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= "</tfoot></table>\n";
$htmlstr .= "</tbody></table>\n";
}
$htmlstr .= "<div class='inserterror'>".$errorstr."</div>\n";
+1 -1
View File
@@ -202,7 +202,7 @@ if(!$cj->getAll(null, 'titel'))
echo '<br><a href="'.$_SERVER['PHP_SELF'].'?type=new">Neuen Cronjob anlegen</a>';
echo '<br><br>
<table id="table1" style="table-layout: fixed; white-space: nowrap">
<table id="table1" style="table-layout: fixed">
<thead>
<tr>
<th style="width: 30px">ID</th>
+408 -378
View File
@@ -1,379 +1,409 @@
<?php
/* Copyright (C) 2011 FH 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: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
*/
/**
* Seite zur Wartung der Infoscreens
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/infoscreen.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/content.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('basis/infoscreen'))
die($rechte->errormsg);
$datum_obj = new datum();
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Infoscreen - Details</title>
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../skin/jquery-ui-1.9.2.custom.min.css" type="text/css">
<link rel="stylesheet" href="../../vendor/fgelinas/timepicker/jquery.ui.timepicker.css" type="text/css">
<link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<?php
/* Copyright (C) 2011 FH 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: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
*/
/**
* Seite zur Wartung der Infoscreens
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/infoscreen.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/content.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('basis/infoscreen'))
die($rechte->errormsg);
$datum_obj = new datum();
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Infoscreen - Details</title>
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<?php
include('../../include/meta/jquery.php');
include('../../include/meta/jquery-tablesorter.php');
?>
<link rel="stylesheet" href="../../skin/jquery-ui-1.9.2.custom.min.css" type="text/css">
<link rel="stylesheet" href="../../vendor/fgelinas/timepicker/jquery.ui.timepicker.css" type="text/css">
<!-- <link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css">-->
<!-- <script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>-->
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
<script type="text/javascript" src="../../include/js/tablesort/table.js"></script>
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../vendor/fgelinas/timepicker/jquery.ui.timepicker.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#myTable").tablesorter(
{
// Adding Function for sorting images by title
textExtraction:function(s)
{
if($(s).find('img').length == 0) return $(s).text();
return $(s).find('img').attr('title');
},
sortList: [[0,0],[5,0]],
widgets: ['zebra']
});
$( ".datepicker_datum" ).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "dd.mm.yy",
showButtonPanel: true,
currentText: "Today",
closeText: "Close",
});
$( ".timepicker" ).timepicker({
showPeriodLabels: false,
hourText: "Hour",
minuteText: "Minute",
rows: 4,
});
/*
$("#refreshzeit").timepicker(
{
showPeriodLabels: false,
showHours: false,
minuteText: "",
minutes: {starts: 20, ends: 300, interval: 20},
rows: 5,
});*/
}
);
function checkValue()
{
var zeit = document.getElementById("refreshzeit").value;
if (!isNaN(zeit))
{
if(zeit > 32767)
{
alert("Maximalwert für Refreshzeit ist 32767");
return false;
}
}
else
{
alert("Wert für Refreshzeit ist ungültig");
return false;
}
};
</script>
<style>
.ui-timepicker-table table td a
{
padding:0.2em 0.3em 0.2em 0.3em;
width: 2em;
}
.ui-widget
{
font-size: 0.9em;
}
.ui-widget button
{
font-size: 0.9em;
}
.ui-timepicker-table table
{
font-size: 0.9em;
}
.ui-widget-content .ui-priority-secondary
{
opacity: 1;
}
.ui-widget-content .ui-priority-primary
{
font-weight: normal;
}
</style>
</head>
<body>
<?php
$action = (isset($_GET['action'])?$_GET['action']:'show');
$infoscreen_id = (isset($_GET['infoscreen_id'])?$_GET['infoscreen_id']:'');
$infoscreen = new infoscreen();
if($infoscreen_id=='')
exit;
if(!$infoscreen->load($infoscreen_id))
die($infoscreen->errormsg);
echo '<h2>Details von Infoscreen ',$infoscreen_id,' - ',$infoscreen->bezeichnung.' - ',$infoscreen->beschreibung.'</h2>';
echo '
<div style="text-align:right">
<a href="infoscreen_details.php?action=new&infoscreen_id=',$infoscreen_id,'" target="detail_infoscreen">Neuen Eintrag hinzufügen</a>
</div>';
if($action=='save')
{
if(!$rechte->isBerechtigt('basis/infoscreen', null, 'sui'))
die($rechte->errormsg);
$my_infoscreen_id = $_POST['infoscreen_id'];
$infoscreen_content_id = $_POST['infoscreen_content_id'];
$content_id = $_POST['content_id'];
$gueltigvon = $_POST['gueltigvondatum'].' '.$_POST['gueltigvonzeit'];
$gueltigbis = $_POST['gueltigbisdatum'].' '.$_POST['gueltigbiszeit'];
$refreshzeit = $_POST['refreshzeit'];
$exklusiv = (isset ($_POST['exklusiv'])?true:false);
$infoscreen = new infoscreen();
if($infoscreen_content_id!='')
{
$infoscreen->loadContent($infoscreen_content_id);
$infoscreen->new = false;
}
else
{
$infoscreen->new = true;
$infoscreen->insertamum = date('Y-m-d H:i:s');
$infoscreen->insertvon = $user;
}
$infoscreen->content_id = $content_id;
$infoscreen->gueltigvon = $datum_obj->formatDatum($gueltigvon,'Y-m-d H:i:s');
$infoscreen->gueltigbis = $datum_obj->formatDatum($gueltigbis,'Y-m-d H:i:s');
$infoscreen->refreshzeit = $refreshzeit;
$infoscreen->updateamum = date('Y-m-d H:i:s');
$infoscreen->updatevon = $user;
$infoscreen->exklusiv = $exklusiv;
$infoscreen_ids=explode(',',$my_infoscreen_id);
if (count($infoscreen_ids)>1)
{
$infoscreen->new = true;
$infoscreen->insertamum = date('Y-m-d H:i:s');
$infoscreen->insertvon = $user;
}
$doppelt = false;
foreach($infoscreen_ids as $is_id)
{
$infoscreen->infoscreen_id = $is_id;
if ($doppelt==false)
{
if ($is_id==$infoscreen_id && $infoscreen_content_id!='')
{
$doppelt=true;
$infoscreen->new = false;
}
}
else
$doppelt=false;
if(!$infoscreen->saveContent())
echo '<span class="error">Fehler bei Infoscreen '.$is_id.': '.$db->convert_html_chars($infoscreen->errormsg).'</span><br>';
else
echo '<span class="ok">Daten erfolgreich gespeichert für Infoscreen '.$is_id.'</span><br>';
$infoscreen->new = true;
}
}
if($action=='delete')
{
if(!$rechte->isBerechtigt('basis/infoscreen', null, 'suid'))
die('Sie haben keine Berechtigung fuer diese Seite');
$infoscreen = new infoscreen();
$infoscreen_content_id = (isset($_REQUEST['infoscreen_content_id'])?$_REQUEST['infoscreen_content_id']:'');
if(!$infoscreen->deleteContent($infoscreen_content_id))
echo '<span class="error">',$db->convert_html_chars($infoscreen->errormsg),'</span>';
}
//Formular fuer neu/update
if($action=='new' || $action=='update')
{
$infoscreen_content_id = (isset($_REQUEST['infoscreen_content_id'])?$_REQUEST['infoscreen_content_id']:'');
$infoscreen = new infoscreen();
if($action=='new')
{
echo '<h3>Neu</h3>';
}
else
{
echo '<h3>Bearbeiten von ID ',$infoscreen_content_id,'</h3>';
if(!$infoscreen->loadContent($infoscreen_content_id))
die('Fehler: '.$infoscreen->errormsg);
}
echo '
<form action="',$_SERVER['PHP_SELF'],'?action=save&infoscreen_id=',$infoscreen_id,'" method="POST">
<input type="hidden" name="infoscreen_content_id" value="',$db->convert_html_chars($infoscreen->infoscreen_content_id),'">
<table>
<tr>
<td>InfoscreenID(s)</td>
<td><input type="text" size="15" name="infoscreen_id" value="',($action=='new'?$infoscreen_id:$db->convert_html_chars($infoscreen->infoscreen_id)),'" /> (Kommagetrennt für mehrere, keine ID für alle Infoscreens)</td>
</tr>
<tr>
<td>Content ID</td>
<td><input type="text" size="5" name="content_id" value="',$db->convert_html_chars($infoscreen->content_id),'" /></td>
</tr>
<tr>
<td>Gültig von</td>
<td>
<input class="datepicker_datum" type="text" id="gueltigvondatum" size="10" name="gueltigvondatum" placeholder= "dd.mm.yyyy"value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigvon,'d.m.Y')),'" />
<input class="timepicker" type="text" id="gueltigvonzeit" size="6" name="gueltigvonzeit" placeholder= "hh:mm" value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigvon,'H:i')),'" />
<input type="button" value="Jetzt" onclick="document.getElementById(\'gueltigvondatum\').value=\''.date('d.m.Y').'\';document.getElementById(\'gueltigvonzeit\').value=\''.date('H:i').'\';" />
<input type="button" value="Leeren" onclick="document.getElementById(\'gueltigvondatum\').value=\'\';document.getElementById(\'gueltigvonzeit\').value=\'\';" />
</td>
</tr>
<tr>
<td>Gültig bis</td>
<td>
<input class="datepicker_datum" type="text" id="gueltigbisdatum" size="10" name="gueltigbisdatum" placeholder= "dd.mm.yyyy"value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigbis,'d.m.Y')),'" />
<input class="timepicker" type="text" id="gueltigbiszeit" size="6" name="gueltigbiszeit" placeholder= "hh:mm" value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigbis,'H:i')),'" />
<input type="button" value="Jetzt" onclick="document.getElementById(\'gueltigbisdatum\').value=\''.date('d.m.Y').'\';document.getElementById(\'gueltigbiszeit\').value=\''.date('H:i').'\'" />
<input type="button" value="Leeren" onclick="document.getElementById(\'gueltigbisdatum\').value=\'\';document.getElementById(\'gueltigbiszeit\').value=\'\';" />
</td>
</tr>
<tr>
<td>Refreshzeit</td>
<td><input id="refreshzeit" type="text" size="18" name="refreshzeit" value="',$db->convert_html_chars($infoscreen->refreshzeit),'"/> Zeit, wie lange die Seite angezeigt wird (in Sekunden)</td>
</tr>
<tr>
<td>Exklusiv</td>
<td><input id="exklusiv" type="checkbox" name="exklusiv" '.($infoscreen->exklusiv===true?'checked':'').'/> Exklusiveinträge haben Vorrang vor normalen Einträgen</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Speichern" onclick="return checkValue();"/></td>
</tr>
</table>
</form>';
}
if(!$infoscreen->getScreenContent($infoscreen_id, false, false))
die('Fehler:'.$infoscreen->errormsg);
echo '<table class="tablesorter" id="myTable">
<thead>
<tr>
<th>Status</th>
<th>ID</th>
<th>InfoscreenID</th>
<th>ContentID</th>
<th>Titel</th>
<th>Gültig von</th>
<th>Gültig bis</th>
<th>Refreshzeit</th>
<th>Exklusiv</th>
<th colspan="2">Aktion</th>
</tr>
</thead>
<tbody>';
$jetzt = time();
$aktiv=false;
$zukunft=false;
$exklusiv = false;
//Wenn mindestens ein Content als Exklusiv markiert ist, wird dieser vorrangig behandelt
foreach($infoscreen->result as $row)
{
$gueltigvon=$datum_obj->mktime_fromtimestamp($row->gueltigvon);
$gueltigbis=$datum_obj->mktime_fromtimestamp($row->gueltigbis);
if($row->exklusiv==true && (($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')))
$exklusiv = true;
}
foreach($infoscreen->result as $row)
{
$passiv=false;
$content = new content();
$content->getContent($row->content_id, 'German');
$gueltigvon=$datum_obj->mktime_fromtimestamp($row->gueltigvon);
$gueltigbis=$datum_obj->mktime_fromtimestamp($row->gueltigbis);
if ((($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')) && ($exklusiv==false && $row->exklusiv==false))
$aktiv=true;
elseif (($exklusiv==true && $row->exklusiv==true) && (($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')))
$aktiv=true;
else
{
$aktiv=false;
}
if ($aktiv==false && ($gueltigvon>=$jetzt))
$zukunft=true;
elseif ((($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')) && ($exklusiv==true && $row->exklusiv==false))
$passiv=true;
else
$zukunft=false;
echo '<tr '.($aktiv==true || $passiv==true?'':'style="color:grey"').'>';
echo '<td width="10px" align="center">'.($aktiv==false?($zukunft==true || $passiv==true?'<img title="2" src="../../skin/images/ampel_gelb.png" alt="ampel_gelb">':'<img title="3" src="../../skin/images/ampel_rot.png" alt="ampel_rot">'):'<img title="1" src="../../skin/images/ampel_gruen.png" alt="ampel_gruen">').'</td>';
echo '<td>',$db->convert_html_chars($row->infoscreen_content_id),'</td>';
echo '<td>',$db->convert_html_chars($row->infoscreen_id),'</td>';
echo '<td>',$db->convert_html_chars($row->content_id),'</td>';
echo '<td>',$db->convert_html_chars($content->titel),'</td>';
echo '<td name="'.$datum_obj->formatDatum($row->gueltigvon,'Y-m-d H:i').'" '.($zukunft==true?'style="color:black"':''). '>',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigvon,'d.m.Y H:i')),'</td>';
echo '<td name="'.$datum_obj->formatDatum($row->gueltigbis,'Y-m-d H:i').'">',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigbis,'d.m.Y H:i')),'</td>';
echo '<td>',$db->convert_html_chars($row->refreshzeit),'</td>';
echo '<td>'.($row->exklusiv===true?'<b>Exklusiv</b>':'').'</td>';
echo '<td><a href="infoscreen_details.php?action=update&infoscreen_id=',$db->convert_html_chars($infoscreen_id),'&infoscreen_content_id=',$db->convert_html_chars($row->infoscreen_content_id),'">bearbeiten</a>';
echo '<td><a href="infoscreen_details.php?action=delete&infoscreen_id=',$db->convert_html_chars($infoscreen_id),'&infoscreen_content_id=',$db->convert_html_chars($row->infoscreen_content_id),'">entfernen</a>';
echo '</tr>';
}
echo '</tbody>
</table>';
?>
</body>
</html>
<!-- <script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>-->
<!-- <script type="text/javascript" src="../../include/js/tablesort/table.js"></script>-->
<!-- <script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>-->
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../vendor/fgelinas/timepicker/jquery.ui.timepicker.js"></script>
<script type="text/javascript">
$.tablesorter.addParser({
id: "customDate",
is: function(s) {
//return false;
//use the above line if you don't want table sorter to auto detected this parser
//else use the below line.
//attention: doesn't check for invalid stuff
//2009-77-77 77:77:77.0 would also be matched
//if that doesn't suit you alter the regex to be more restrictive
//return /\d{1,4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}\.\d+/.test(s);
return /\d{1,2}.\d{1,2}.\d{1,4} \d{1,2}:\d{1,2}/.test(s);
},
format: function(s) {
s = s.replace(/\-/g," ");
s = s.replace(/:/g," ");
s = s.replace(/\./g," ");
s = s.split(" ");
return $.tablesorter.formatFloat(new Date(s[2], s[1]-1, s[0], s[3], s[4]).getTime());
},
type: "numeric"
});
$(document).ready(function()
{
$("#myTable").tablesorter(
{
// Adding Function for sorting images by title
textExtraction:function(s)
{
if($(s).find('img').length == 0) return $(s).text();
return $(s).find('img').attr('title');
},
sortList: [[0,0],[5,0]],
widgets: ['zebra', 'filter', 'stickyHeaders'],
headers: { 9: { filter: false, sorter: false }, 5: { sorter: "customDate"}, 6: { sorter: "customDate"}}
});
$( ".datepicker_datum" ).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "dd.mm.yy",
showButtonPanel: true,
currentText: "Today",
closeText: "Close",
});
$( ".timepicker" ).timepicker({
showPeriodLabels: false,
hourText: "Hour",
minuteText: "Minute",
rows: 4,
});
/*
$("#refreshzeit").timepicker(
{
showPeriodLabels: false,
showHours: false,
minuteText: "",
minutes: {starts: 20, ends: 300, interval: 20},
rows: 5,
});*/
}
);
function checkValue()
{
var zeit = document.getElementById("refreshzeit").value;
if (!isNaN(zeit))
{
if(zeit > 32767)
{
alert("Maximalwert für Refreshzeit ist 32767");
return false;
}
}
else
{
alert("Wert für Refreshzeit ist ungültig");
return false;
}
};
</script>
<style>
.ui-timepicker-table table td a
{
padding:0.2em 0.3em 0.2em 0.3em;
width: 2em;
}
.ui-widget
{
font-size: 0.9em;
}
.ui-widget button
{
font-size: 0.9em;
}
.ui-timepicker-table table
{
font-size: 0.9em;
}
.ui-widget-content .ui-priority-secondary
{
opacity: 1;
}
.ui-widget-content .ui-priority-primary
{
font-weight: normal;
}
</style>
</head>
<body>
<?php
$action = (isset($_GET['action'])?$_GET['action']:'show');
$infoscreen_id = (isset($_GET['infoscreen_id'])?$_GET['infoscreen_id']:'');
$infoscreen = new infoscreen();
if($infoscreen_id=='')
exit;
if(!$infoscreen->load($infoscreen_id))
die($infoscreen->errormsg);
echo '<h2>Details von Infoscreen ',$infoscreen_id,' - ',$infoscreen->bezeichnung.' - ',$infoscreen->beschreibung.'</h2>';
echo '
<div style="text-align:right">
<a href="infoscreen_details.php?action=new&infoscreen_id=',$infoscreen_id,'" target="detail_infoscreen">Neuen Eintrag hinzufügen</a>
</div>';
if($action=='save')
{
if(!$rechte->isBerechtigt('basis/infoscreen', null, 'sui'))
die($rechte->errormsg);
$my_infoscreen_id = $_POST['infoscreen_id'];
$infoscreen_content_id = $_POST['infoscreen_content_id'];
$content_id = $_POST['content_id'];
$gueltigvon = $_POST['gueltigvondatum'].' '.$_POST['gueltigvonzeit'];
$gueltigbis = $_POST['gueltigbisdatum'].' '.$_POST['gueltigbiszeit'];
$refreshzeit = $_POST['refreshzeit'];
$exklusiv = (isset ($_POST['exklusiv'])?true:false);
$infoscreen = new infoscreen();
if($infoscreen_content_id!='')
{
$infoscreen->loadContent($infoscreen_content_id);
$infoscreen->new = false;
}
else
{
$infoscreen->new = true;
$infoscreen->insertamum = date('Y-m-d H:i:s');
$infoscreen->insertvon = $user;
}
$infoscreen->content_id = $content_id;
$infoscreen->gueltigvon = $datum_obj->formatDatum($gueltigvon,'Y-m-d H:i:s');
$infoscreen->gueltigbis = $datum_obj->formatDatum($gueltigbis,'Y-m-d H:i:s');
$infoscreen->refreshzeit = $refreshzeit;
$infoscreen->updateamum = date('Y-m-d H:i:s');
$infoscreen->updatevon = $user;
$infoscreen->exklusiv = $exklusiv;
$infoscreen_ids=explode(',',$my_infoscreen_id);
if (count($infoscreen_ids)>1)
{
$infoscreen->new = true;
$infoscreen->insertamum = date('Y-m-d H:i:s');
$infoscreen->insertvon = $user;
}
$doppelt = false;
foreach($infoscreen_ids as $is_id)
{
$infoscreen->infoscreen_id = $is_id;
if ($doppelt==false)
{
if ($is_id==$infoscreen_id && $infoscreen_content_id!='')
{
$doppelt=true;
$infoscreen->new = false;
}
}
else
$doppelt=false;
if(!$infoscreen->saveContent())
echo '<span class="error">Fehler bei Infoscreen '.$is_id.': '.$db->convert_html_chars($infoscreen->errormsg).'</span><br>';
else
echo '<span class="ok">Daten erfolgreich gespeichert für Infoscreen '.$is_id.'</span><br>';
$infoscreen->new = true;
}
}
if($action=='delete')
{
if(!$rechte->isBerechtigt('basis/infoscreen', null, 'suid'))
die('Sie haben keine Berechtigung fuer diese Seite');
$infoscreen = new infoscreen();
$infoscreen_content_id = (isset($_REQUEST['infoscreen_content_id'])?$_REQUEST['infoscreen_content_id']:'');
if(!$infoscreen->deleteContent($infoscreen_content_id))
echo '<span class="error">',$db->convert_html_chars($infoscreen->errormsg),'</span>';
}
//Formular fuer neu/update
if($action=='new' || $action=='update')
{
$infoscreen_content_id = (isset($_REQUEST['infoscreen_content_id'])?$_REQUEST['infoscreen_content_id']:'');
$infoscreen = new infoscreen();
if($action=='new')
{
echo '<h3>Neu</h3>';
}
else
{
echo '<h3>Bearbeiten von ID ',$infoscreen_content_id,'</h3>';
if(!$infoscreen->loadContent($infoscreen_content_id))
die('Fehler: '.$infoscreen->errormsg);
}
echo '
<form action="',$_SERVER['PHP_SELF'],'?action=save&infoscreen_id=',$infoscreen_id,'" method="POST">
<input type="hidden" name="infoscreen_content_id" value="',$db->convert_html_chars($infoscreen->infoscreen_content_id),'">
<table>
<tr>
<td>InfoscreenID(s)</td>
<td><input type="text" size="15" name="infoscreen_id" value="',($action=='new'?$infoscreen_id:$db->convert_html_chars($infoscreen->infoscreen_id)),'" /> (Kommagetrennt für mehrere, keine ID für alle Infoscreens)</td>
</tr>
<tr>
<td>Content ID</td>
<td><input type="text" size="5" name="content_id" value="',$db->convert_html_chars($infoscreen->content_id),'" /></td>
</tr>
<tr>
<td>Gültig von</td>
<td>
<input class="datepicker_datum" type="text" id="gueltigvondatum" size="10" name="gueltigvondatum" placeholder= "dd.mm.yyyy"value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigvon,'d.m.Y')),'" />
<input class="timepicker" type="text" id="gueltigvonzeit" size="6" name="gueltigvonzeit" placeholder= "hh:mm" value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigvon,'H:i')),'" />
<input type="button" value="Jetzt" onclick="document.getElementById(\'gueltigvondatum\').value=\''.date('d.m.Y').'\';document.getElementById(\'gueltigvonzeit\').value=\''.date('H:i').'\';" />
<input type="button" value="Leeren" onclick="document.getElementById(\'gueltigvondatum\').value=\'\';document.getElementById(\'gueltigvonzeit\').value=\'\';" />
</td>
</tr>
<tr>
<td>Gültig bis</td>
<td>
<input class="datepicker_datum" type="text" id="gueltigbisdatum" size="10" name="gueltigbisdatum" placeholder= "dd.mm.yyyy"value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigbis,'d.m.Y')),'" />
<input class="timepicker" type="text" id="gueltigbiszeit" size="6" name="gueltigbiszeit" placeholder= "hh:mm" value="',$db->convert_html_chars($datum_obj->formatDatum($infoscreen->gueltigbis,'H:i')),'" />
<input type="button" value="Jetzt" onclick="document.getElementById(\'gueltigbisdatum\').value=\''.date('d.m.Y').'\';document.getElementById(\'gueltigbiszeit\').value=\''.date('H:i').'\'" />
<input type="button" value="Leeren" onclick="document.getElementById(\'gueltigbisdatum\').value=\'\';document.getElementById(\'gueltigbiszeit\').value=\'\';" />
</td>
</tr>
<tr>
<td>Refreshzeit</td>
<td><input id="refreshzeit" type="text" size="18" name="refreshzeit" value="',$db->convert_html_chars($infoscreen->refreshzeit),'"/> Zeit, wie lange die Seite angezeigt wird (in Sekunden)</td>
</tr>
<tr>
<td>Exklusiv</td>
<td><input id="exklusiv" type="checkbox" name="exklusiv" '.($infoscreen->exklusiv===true?'checked':'').'/> Exklusiveinträge haben Vorrang vor normalen Einträgen</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Speichern" onclick="return checkValue();"/></td>
</tr>
</table>
</form>';
}
if(!$infoscreen->getScreenContent($infoscreen_id, false, false))
die('Fehler:'.$infoscreen->errormsg);
echo '<table class="tablesorter" id="myTable">
<thead>
<tr>
<th>Status</th>
<th>ID</th>
<th>InfoscreenID</th>
<th>ContentID</th>
<th>Titel</th>
<th>Gültig von</th>
<th>Gültig bis</th>
<th>Refreshzeit</th>
<th>Exklusiv</th>
<th colspan="2">Aktion</th>
</tr>
</thead>
<tbody>';
$jetzt = time();
$aktiv=false;
$zukunft=false;
$exklusiv = false;
//Wenn mindestens ein Content als Exklusiv markiert ist, wird dieser vorrangig behandelt
foreach($infoscreen->result as $row)
{
$gueltigvon=$datum_obj->mktime_fromtimestamp($row->gueltigvon);
$gueltigbis=$datum_obj->mktime_fromtimestamp($row->gueltigbis);
if($row->exklusiv==true && (($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')))
$exklusiv = true;
}
foreach($infoscreen->result as $row)
{
$passiv=false;
$content = new content();
$content->getContent($row->content_id, 'German');
$gueltigvon=$datum_obj->mktime_fromtimestamp($row->gueltigvon);
$gueltigbis=$datum_obj->mktime_fromtimestamp($row->gueltigbis);
if ((($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')) && ($exklusiv==false && $row->exklusiv==false))
$aktiv=true;
elseif (($exklusiv==true && $row->exklusiv==true) && (($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')))
$aktiv=true;
else
{
$aktiv=false;
}
if ($aktiv==false && ($gueltigvon>=$jetzt))
$zukunft=true;
elseif ((($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')) && ($exklusiv==true && $row->exklusiv==false))
$passiv=true;
else
$zukunft=false;
echo '<tr '.($aktiv==true || $passiv==true?'':'style="color:grey"').'>';
echo '<td width="10px" align="center">'.($aktiv==false?($zukunft==true || $passiv==true?'<img title="2" src="../../skin/images/ampel_gelb.png" alt="ampel_gelb">':'<img title="3" src="../../skin/images/ampel_rot.png" alt="ampel_rot">'):'<img title="1" src="../../skin/images/ampel_gruen.png" alt="ampel_gruen">').'</td>';
echo '<td>',$db->convert_html_chars($row->infoscreen_content_id),'</td>';
echo '<td>',$db->convert_html_chars($row->infoscreen_id),'</td>';
echo '<td>',$db->convert_html_chars($row->content_id),'</td>';
echo '<td>',$db->convert_html_chars($content->titel),'</td>';
echo '<td name="'.$datum_obj->formatDatum($row->gueltigvon,'Y-m-d H:i').'" '.($zukunft==true?'style="color:black"':''). '>',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigvon,'d.m.Y H:i')),'</td>';
echo '<td name="'.$datum_obj->formatDatum($row->gueltigbis,'Y-m-d H:i').'">',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigbis,'d.m.Y H:i')),'</td>';
echo '<td>',$db->convert_html_chars($row->refreshzeit),'</td>';
echo '<td>'.($row->exklusiv===true?'<b>Exklusiv</b>':'').'</td>';
echo '<td><a href="infoscreen_details.php?action=update&infoscreen_id=',$db->convert_html_chars($infoscreen_id),'&infoscreen_content_id=',$db->convert_html_chars($row->infoscreen_content_id),'">bearbeiten</a>';
echo '<td><a href="infoscreen_details.php?action=delete&infoscreen_id=',$db->convert_html_chars($infoscreen_id),'&infoscreen_content_id=',$db->convert_html_chars($row->infoscreen_content_id),'">entfernen</a>';
echo '</tr>';
}
echo '</tbody>
</table>';
?>
</body>
</html>
@@ -1000,7 +1000,7 @@ if(isset($_GET['excel']))
$("#"+v.id).tablesorter(
{
widgets: ["zebra", "filter", "stickyHeaders"],
sortList: [[3,0],[4,0]],
sortList: [[2,0],[3,0]],
headers: {0: { sorter: false}},
widgetOptions: {filter_cssFilter: [
"filter_clm_null",
+126 -8
View File
@@ -34,6 +34,7 @@ $dokument_kurzbz = isset($_REQUEST['dokument_kurzbz']) ? $_REQUEST['dokument_kur
$onlinebewerbung = isset($_REQUEST['onlinebewerbung']);
$pflicht = isset($_POST['pflicht']);
$nachreichbar = isset($_POST['nachreichbar']);
$stufe = isset($_REQUEST['stufe']) ? $_REQUEST['stufe'] : '';
$sprache = new sprache();
$sprache->getAll(true, 'index');
@@ -64,6 +65,7 @@ if($action == 'add')
$dokument->onlinebewerbung = $onlinebewerbung;
$dokument->pflicht = $pflicht;
$dokument->nachreichbar = $nachreichbar;
$dokument->stufe = $stufe;
$beschreibung_mehrsprachig = array();
foreach($sprache->result as $row_sprache)
@@ -128,6 +130,44 @@ if($action === 'togglepflicht')
}
}
// Ändern der Stufe per Ajax
$changeStufe = filter_input(INPUT_POST, 'changeStufe', FILTER_VALIDATE_BOOLEAN);
if ($changeStufe && isset($_POST['stufe']) && isset($_POST['studiengang_kz']))
{
if (!$stufe = filter_input(INPUT_POST, 'stufe', FILTER_VALIDATE_INT))
{
echo json_encode(array(
'status' => 'fehler',
'msg' => '"'.$_POST['stufe'].'" ist kein gültiger Wert für die Stufe'
));
exit();
}
$studiengang_kz = filter_input(INPUT_POST, 'studiengang_kz', FILTER_VALIDATE_INT);
$dokument_kurzbz = filter_input(INPUT_POST, 'dokument_kurzbz');
$dokument = new dokument();
$dokument->loadDokumentStudiengang($dokument_kurzbz, $studiengang_kz);
$dokument->stufe = $stufe;
if (!$dokument->saveDokumentStudiengang())
{
echo json_encode(array(
'status' => 'fehler',
'msg' => $p->t('global/fehlerBeiDerParameteruebergabe')
));
exit();
}
else
{
echo json_encode(array(
'status' => 'ok',
'msg' => 'Status erfolgreich aktualisiert'
));
exit();
}
}
if($action === 'togglenachreichbar')
{
if(!$rechte->isBerechtigt('assistenz', $stg_kz, 'su'))
@@ -188,10 +228,25 @@ echo '<!DOCTYPE HTML>
<script type="text/javascript">
$(document).ready(function()
{
$.tablesorter.addParser({
// set a unique id
id: "stufe",
is: function(s) {
// return false so this parser is not auto detected
return false;
},
format: function(s, table, cell)
{
return $("input", cell).val();
},
// set type, either numeric or text
type: "numeric"
});
$("#t1").tablesorter(
{
sortList: [[0,0]],
widgets: ["zebra"]
widgets: ["zebra"],
headers: {7:{sorter: "stufe"}}
});
$("#t2").tablesorter(
{
@@ -237,6 +292,45 @@ echo '<!DOCTYPE HTML>
forced_root_block: "",
editor_deselector: "mceNoEditor"
});
function changeStufe(dokument_kurzbz)
{
var stufe = $("#stufe_"+dokument_kurzbz).val();
var studiengang_kz = $("#studiengangSelect").val();
data = {
stufe: stufe,
studiengang_kz: studiengang_kz,
dokument_kurzbz: dokument_kurzbz,
changeStufe: true
};
$.ajax({
url: "studiengang_dokumente.php",
data: data,
type: "POST",
dataType: "json",
success: function(data)
{
if(data.status!="ok")
{
$("#feedbackSpanFalse_"+dokument_kurzbz).toggle();
$("#feedbackSpanFalse_"+dokument_kurzbz).attr("title", data["msg"]);
}
else
{
$("#feedbackSpanFalse_"+dokument_kurzbz).hide();
$("#feedbackSpanTrue_"+dokument_kurzbz).toggle();
$("#feedbackSpanTrue_"+dokument_kurzbz).delay(1000).fadeOut();
}
},
error: function(data)
{
alert(data["msg"]);
}
});
}
</script>
<title>Zuordnung Studiengang - Dokumente</title>
</head>
@@ -399,7 +493,7 @@ else
<tr>
<td>
<form action='.$_SERVER['PHP_SELF'].' method="post" name="dokumente_zuteilung">
<select name="stg_kz" onchange="document.dokumente_zuteilung.submit()">';
<select id="studiengangSelect" name="stg_kz" onchange="document.dokumente_zuteilung.submit()">';
echo '<option value="">-- Studiengang auswählen --</option>';
foreach ($studiengang->result as $stg)
{
@@ -450,9 +544,10 @@ else
}
if($rechte->isBerechtigt('assistenz', $stg_kz, 'su'))
{
echo' <th class="sorter-false" style="text-align: center">Online-Bewerbung</th>
<th class="sorter-false" style="text-align: center">Pflicht</th>
<th class="sorter-false" style="text-align: center">Nachreichbar</th>
echo' <th style="text-align: center">Online-Bewerbung</th>
<th style="text-align: center">Pflicht</th>
<th style="text-align: center">Nachreichbar</th>
<th style="text-align: center">Stufe</th>
<th class="sorter-false"></th>';
}
echo'</tr>
@@ -488,9 +583,29 @@ else
}
if($rechte->isBerechtigt('assistenz', $stg_kz, 'su'))
{
echo' <td style="text-align: center"><a href="'.$_SERVER['PHP_SELF'].'?action=toggleonline&dokument_kurzbz='.$dok->dokument_kurzbz.'&stg_kz='.$stg_kz.'"><img src="../../skin/images/'.$checked_onlinebewerbung.'.png" /></a></td>
<td style="text-align: center"><a href="'.$_SERVER['PHP_SELF'].'?action=togglepflicht&dokument_kurzbz='.$dok->dokument_kurzbz.'&stg_kz='.$stg_kz.'"><img src="../../skin/images/'.$checked_pflicht.'.png" /></a></td>
<td style="text-align: center"><a href="'.$_SERVER['PHP_SELF'].'?action=togglenachreichbar&dokument_kurzbz='.$dok->dokument_kurzbz.'&stg_kz='.$stg_kz.'"><img src="../../skin/images/'.$checked_nachreichbar.'.png" /></a></td>
echo' <td style="text-align: center">
<div style="display: none">'.$checked_onlinebewerbung.'</div>
<a href="'.$_SERVER['PHP_SELF'].'?action=toggleonline&dokument_kurzbz='.$dok->dokument_kurzbz.'&stg_kz='.$stg_kz.'">
<img src="../../skin/images/'.$checked_onlinebewerbung.'.png" />
</a>
</td>
<td style="text-align: center">
<div style="display: none">'.$checked_pflicht.'</div>
<a href="'.$_SERVER['PHP_SELF'].'?action=togglepflicht&dokument_kurzbz='.$dok->dokument_kurzbz.'&stg_kz='.$stg_kz.'">
<img src="../../skin/images/'.$checked_pflicht.'.png" />
</a>
</td>
<td style="text-align: center">
<div style="display: none">'.$checked_nachreichbar.'</div>
<a href="'.$_SERVER['PHP_SELF'].'?action=togglenachreichbar&dokument_kurzbz='.$dok->dokument_kurzbz.'&stg_kz='.$stg_kz.'">
<img src="../../skin/images/'.$checked_nachreichbar.'.png" />
</a>
</td>
<td style="text-align: left; width: 60px">
<input style="width: 30px" type="text" id="stufe_'.$dok->dokument_kurzbz.'" value="'.$dok->stufe.'" tabindex="1" onchange="changeStufe(\''.$dok->dokument_kurzbz.'\')">
<span id="feedbackSpanTrue_'.$dok->dokument_kurzbz.'" style="display: none"><img style="width: 16px" src="../../skin/images/true.png" /></span>
<span id="feedbackSpanFalse_'.$dok->dokument_kurzbz.'" style="display: none" title=""><img style="width: 16px" src="../../skin/images/false.png" /></span>
</td>
<td style="text-align: center">';
if($rechte->isBerechtigt('assistenz', $stg_kz, 'su'))
echo '<a href="'.$_SERVER['PHP_SELF'].'?action=edit&dokument_kurzbz='.$dok->dokument_kurzbz.'&stg_kz='.$stg_kz.'"><img src="../../skin/images/edit.png" title="Zuordnung bearbeiten" size="17px" /></a>';
@@ -546,6 +661,9 @@ else
<td class="normal" style="text-align: center" valign="top">
<input type="checkbox" name="nachreichbar" '.($dok_stg->nachreichbar?'checked="checked"':'').'>
</td>
<td class="normal" style="text-align: center" valign="top">
<input type="text" style="width: 30px" name="stufe" value="'.$dok_stg->stufe.'">
</td>
<td class="normal" valign="top"><input type="submit" name="add" value="Speichern"></td>
</tr>
</tfoot>';