Merge branch 'master' into signatur

This commit is contained in:
Andreas Österreicher
2018-03-07 12:24:24 +01:00
17 changed files with 475 additions and 149 deletions
+15 -1
View File
@@ -13,7 +13,9 @@
- **[FAS]** Bei Statuswechsel von Studierenden können Gründe für den Statuswechsel angegeben werden
- **[ADDONS]** Addons können Menüpunkte im Vilesci anpassen
- **[ADDONS]** Addons können Noten für die Gesamtnote vorschlagen
- **[CORE]** UserDefinedFields
- **[CORE]** UserDefinedFields hinzugefügt zur Verwalung von eigenen Eingabefeldern
- **[CORE]** Support für Extensions hinzugefügt - eine Weiterentwicklung der Addons für die Verwendung mit Codeigniter
- **[CORE]** Infocenter Seite hinzugefügt zur zentralen Verwaltung und ZGV Prüfung von Interessenten
### CHANGED
- **[CORE]** Berechtigungsprüfung wurde angepasst damit deaktivierte Benutzer keine Berechtigungen mehr haben
@@ -32,6 +34,18 @@
**[CORE]** Removed Support for XSLFO2PDF Documents - use unoconv instead
**[CORE]** Removed Support for FOP Documents - use unoconv instead
### Deprecated
- **[CORE]** Die folgenden Datenbank Tabellen und Spalten wurden als DEPRECATED markiert und werden mit der nächsten Version entfernt:
public.tbl_aufnahmeschluessel, public.tbl_aufnahmetermin, public.tbl_aufnahmetermintyp, public.tbl_preinteressent,
public.tbl_preinteressentstudiengang, campus.tbl_feedback, campus.tbl_lvinfo, campus.tbl_resturlaub, lehre.tbl_lehrfach
lehre.tbl_lehrmittel, lehre.tbl_moodle, lehre.tbl_moodle_version, lehre.tbl_studienordnung_semester, lehre.tbl_zeitfenster
lehre.tbl_zeugnis, fue.tbl_scrumsprint, fue.tbl_scrumteam, wawi.tbl_aufteilung, wawi.tbl_aufteilung_default,
testtool.tbl_kategorie, testtool.tbl_kriterien, public.tbl_prestudent.rt_punkte1, public.tbl_prestudent.rt_punkte2
public.tbl_prestudent.rt_punkte3, public.tbl_prestudent.anmeldungreihungstest, public.tbl_prestudent.reihungstest_id
public.tbl_prestudent.ausstellungsstaat, public.tbl_prestudent.aufnahmeschluessel, lehre.tbl_lehrveranstaltung.old_lehrfach_id
- **[CORE]** LV-Infos werden mit der kommenden Version aus dem Core entfernt - Dies ist jetzt ein Addon
- **[CORE]** WaWi wird mit der kommenden Version aus dem Core entfernt- Dies ist jetzt ein Addon
## [3.2]
### Added
+13 -5
View File
@@ -74,25 +74,33 @@ class Filters extends VileSci_Controller
$allSelectedFields = $_SESSION[self::SESSION_NAME]['allSelectedFields'];
$allColumnsAliases = $_SESSION[self::SESSION_NAME]['allColumnsAliases'];
$json->selectedFields = $_SESSION[self::SESSION_NAME]['selectedFields'];
$json->columnsAliases = $_SESSION[self::SESSION_NAME]['columnsAliases'];
if (isset($selectedFieldsLst) && is_array($selectedFieldsLst))
{
$json->selectedFields = $_SESSION[self::SESSION_NAME]['selectedFields'] = $selectedFieldsLst;
$json->selectedFields = $selectedFieldsLst;
$json->columnsAliases = array();
for ($i = 0; $i < count($json->selectedFields); $i++)
{
$pos = array_search($json->selectedFields[$i], $allSelectedFields);
$json->columnsAliases[$i] = $json->selectedFields[$i];
if ($pos !== false)
{
$json->columnsAliases[] = $json->selectedFields[$i];
if ($allColumnsAliases != null && is_array($allColumnsAliases))
{
$json->columnsAliases[] = $allColumnsAliases[$pos];
$json->columnsAliases[$i] = $allColumnsAliases[$pos];
}
}
}
}
$_SESSION[self::SESSION_NAME]['selectedFields'] = $json->selectedFields;
$_SESSION[self::SESSION_NAME]['columnsAliases'] = $json->columnsAliases;
$this->output->set_content_type('application/json')->set_output(json_encode($json));
}
@@ -125,10 +133,10 @@ class Filters extends VileSci_Controller
if ($pos !== false)
{
$json->selectedFiltersAliases[] = $json->selectedFilters[$i];
$json->selectedFiltersAliases[$i] = $json->selectedFilters[$i];
if ($json->allColumnsAliases != null && is_array($json->allColumnsAliases))
{
$json->selectedFiltersAliases[] = $json->allColumnsAliases[$pos];
$json->selectedFiltersAliases[$i] = $json->allColumnsAliases[$pos];
}
$json->selectedFiltersMetaData[] = $metaData[$pos];
+1 -1
View File
@@ -690,7 +690,7 @@ class MessageLib
// Sending email
$sent = $this->ci->maillib->send(
$sender,
null,
$receiverContact,
is_null($subject) ? $result->retval[0]->subject : $subject, // if parameter subject is not null, use it!
$bodyMsg,
@@ -3,14 +3,20 @@
<div class="text-center">
<label>Notiz hinzuf&uuml;gen</label>
</div>
<div class="form-group">
<label>Titel: </label><input type="text" class="form-control"
name="notiztitel"/>
<div>
<div class="form-group">
<label>Titel: </label>
<div class="input-group">
<input id="inputNotizTitel" type="text" class="form-control" name="notiztitel"/>
<div class="input-group-addon" onclick="document.getElementById('inputNotizTitel').value='Anmerkung zur Bewerbung'">
<span class="glyphicon glyphicon-text-background"></span>
</div>
</div>
</div>
</div>
<div class="form-group">
<label>Text: </label><textarea name="notiz" class="form-control"
rows="10"
cols="32"></textarea>
<label>Text: </label>
<textarea name="notiz" class="form-control" rows="10" cols="32"></textarea>
</div>
<div class="text-right">
<button type="submit" class="btn btn-default">Speichern</button>
@@ -12,7 +12,7 @@
(
SELECT zeitpunkt
FROM system.tbl_log
WHERE taetigkeit_kurzbz = \'bewerbung\'
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
@@ -20,7 +20,7 @@
(
SELECT insertvon
FROM system.tbl_log
WHERE taetigkeit_kurzbz = \'bewerbung\'
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
@@ -83,7 +83,7 @@
) AS "AnzahlAbgeschickt",
array_to_string(
(
SELECT array_agg(distinct tbl_studiengang.kurzbzlang)
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz))
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
@@ -99,7 +99,7 @@
WHERE ende >= NOW()
)
LIMIT 1
),\',\'
),\', \'
) AS "StgAbgeschickt",
pl.zeitpunkt AS "LockDate",
pl.lockuser as "LockUser"
@@ -135,12 +135,14 @@
)
)
)
ORDER BY "LastAction" DESC
ORDER BY "LastAction" ASC
',
'hideHeader' => false,
'hideSave' => false,
'checkboxes' => 'PersonId',
'additionalColumns' => array('Details'),
'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Letzte Aktion','Letzter Bearbeiter',
'StSem','GesendetAm','NumAbgeschickt','Studiengänge','Sperrdatum','GesperrtVon'),
'formatRaw' => function($datasetRaw) {
$datasetRaw->{'Details'} = sprintf(
@@ -153,10 +155,18 @@
{
$datasetRaw->{'SendDate'} = 'Not sent';
}
else
{
$datasetRaw->{'SendDate'} = date_format(date_create($datasetRaw->{'SendDate'}),'Y-m-d H:i');
}
if ($datasetRaw->{'LastAction'} == null)
{
$datasetRaw->{'LastAction'} = 'Not logged';
$datasetRaw->{'LastAction'} = '-';
}
else
{
$datasetRaw->{'LastAction'} = date_format(date_create($datasetRaw->{'LastAction'}),'Y-m-d H:i');
}
if ($datasetRaw->{'User/Operator'} == '')
@@ -166,12 +176,12 @@
if ($datasetRaw->{'LockDate'} == null)
{
$datasetRaw->{'LockDate'} = 'Not locked';
$datasetRaw->{'LockDate'} = '-';
}
if ($datasetRaw->{'LockUser'} == null)
{
$datasetRaw->{'LockUser'} = 'Not locked';
$datasetRaw->{'LockUser'} = '-';
}
if ($datasetRaw->{'StgAbgeschickt'} == null)
@@ -102,7 +102,7 @@
</div>
<?php if (isset($stammdaten->zugangscode)): ?>
<div class="col-lg-6 text-right">
<a href="<?php echo base_url('addons/bewerbung/cis/registration.php?code='.html_escape($stammdaten->zugangscode)) ?>"
<a href="<?php echo CIS_ROOT.'addons/bewerbung/cis/registration.php?code='.html_escape($stammdaten->zugangscode) ?>"
target='_blank'><i class="glyphicon glyphicon-new-window"></i>&nbsp;Zugang Bewerbung</a>
</div>
<?php endif; ?>
+3 -1
View File
@@ -136,8 +136,10 @@ $href = str_replace("/system/Messages/write", "/system/Messages/send", $_SERVER[
<div class="form-grop form-inline">
<label>Recipient:</label>
<select id="recipients">
<option value="-1">Select...</option>
<?php
if (count($receivers) > 1)
echo '<option value="-1">Select...</option>';
$idtype = $personOnly === true ? 'person_id' : 'prestudent_id';
foreach ($receivers as $receiver)
{
+2 -2
View File
@@ -2,8 +2,8 @@
.filter-name-title {
font-family: inherit;
font-size: 20px;
font-weight: bold;
font-size: 16px;
/*font-weight: bold;*/
line-height: 1.1;
color: black;
}
+10 -3
View File
@@ -102,7 +102,13 @@ class Vorlage_widget extends DropdownWidget
// If it's the first vorlage copy it
if (count($vorlage->retval) == 0)
{
$vorlage->retval = $tmpVorlage->retval;
for ($j = 0; $j < count($tmpVorlage->retval); $j++)
{
if ($tmpVorlage->retval[$j]->id != '')
{
array_push($vorlage->retval, $tmpVorlage->retval[$j]);
}
}
}
else // checks for duplicates, if it's not already present push it into the array $vorlage->retval
{
@@ -110,7 +116,8 @@ class Vorlage_widget extends DropdownWidget
{
for ($j = 0; $j < count($tmpVorlage->retval); $j++)
{
if ($vorlage->retval[$i]->_pk != $tmpVorlage->retval[$j]->_pk
if ($tmpVorlage->retval[$j]->id != ''
&& $vorlage->retval[$i]->_pk != $tmpVorlage->retval[$j]->_pk
&& $vorlage->retval[$i]->_ppk != $tmpVorlage->retval[$j]->_ppk
&& $vorlage->retval[$i]->_jtpk != $tmpVorlage->retval[$j]->_jtpk)
{
@@ -124,5 +131,5 @@ class Vorlage_widget extends DropdownWidget
}
return $vorlage;
}
}
}
+114 -77
View File
@@ -1,119 +1,159 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
/*
* 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
* 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>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>
* Manfred Kindl <manfred.kindl@technikum-wien.at>.
*/
// Holt ein Bildes aus der DB wandelt es
// um und gibt das ein Bild zurueck.
// Aufruf mit <img src='bild.php?src=person&person_id=1>
require_once('../../config/cis.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/basis_db.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/dms.class.php');
require_once('../../include/person.class.php');
require_once ('../../config/cis.config.inc.php');
require_once ('../../include/functions.inc.php');
require_once ('../../include/basis_db.class.php');
require_once ('../../include/benutzer.class.php');
require_once ('../../include/dms.class.php');
require_once ('../../include/person.class.php');
session_start();
if (!$db = new basis_db())
if (! $db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
$person_id = '';
$serverzugriff=false;
//Wenn das Bild direkt aufgerufen wird, ist eine Authentifizierung erforderlich
//Wenn es vom Server selbst aufgerufen wird, ist keine Auth. notwendig
//(z.B. fuer die Erstellung von PDFs)
if($_SERVER['REMOTE_ADDR']!=$_SERVER['SERVER_ADDR'])
$person_id_user = '';
$person_id_foto = isset($_GET['person_id']) && is_numeric($_GET['person_id']) ? $_GET['person_id'] : '';
$serverzugriff = false;
$source = isset($_GET['src']) ? $_GET['src'] : '';
// Wenn das Bild direkt aufgerufen wird, ist eine Authentifizierung erforderlich
// Wenn es vom Server selbst aufgerufen wird, ist keine Auth. notwendig
// (z.B. fuer die Erstellung von PDFs)
if ($_SERVER['REMOTE_ADDR'] != $_SERVER['SERVER_ADDR'])
{
// wenn session gesetzt ist von Prestudententool, Incomingtool oder Bewerbungstool -> keine Abfrage da diese Personen noch keine uid haben
if(!isset($_SESSION['prestudent/user']) && !isset($_SESSION['incoming/user']) && !isset($_SESSION['bewerbung/personId']))
$uid = get_uid();
// Wenn Session gesetzt ist, keine Abfrage, da diese Personen noch keine UID haben
// Von Incomingtool
if (isset($_SESSION['incoming/user']))
{
$person = new person();
$person_id_user = $person->checkZugangscode($_SESSION['incoming/user']);
}
// Von Prestudententool
elseif (isset($_SESSION['prestudent/user']))
{
$person = new person();
$person_id_user = $person->checkZugangscode($_SESSION['prestudent/user']);
}
// Von Bewerbungstool
elseif (isset($_SESSION['bewerbung/personId']))
{
$person_id_user = $_SESSION['bewerbung/personId'];
}
else
{
if (isset($_SESSION['incoming/user']))
{
$person = new person();
$person_id = $person->checkZugangscode($_SESSION['incoming/user']);
}
elseif (isset($_SESSION['prestudent/user']))
{
$person = new person();
$person_id = $person->checkZugangscode($_SESSION['prestudent/user']);
}
elseif (isset($_SESSION['bewerbung/personId']))
{
$person_id = $_SESSION['bewerbung/personId'];
}
$uid = get_uid();
$benutzer = new benutzer($uid);
$person_id_user = $benutzer->person_id;
}
}
else
$serverzugriff=true;
$serverzugriff = true;
//default bild (ein weisser pixel)
$cTmpHEX='/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q==';
//Hex Dump aus der DB holen
if(isset($_GET['src']) && $_GET['src']=='person' && isset($_GET['person_id']) && is_numeric($_GET['person_id']))
// Default Bild (ein weisser Pixel)
/*$cTmpHEX = '/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgc
MCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh
4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAA
AAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q==';*/
// Default Bild (Dummy Profilbild)
$cTmpHEX = base64_encode(file_get_contents('../../skin/images/profilbild_dummy.jpg'));
// Hex Dump aus der DB holen
if($source == 'person' && $person_id_foto != '')
{
$qry = "SELECT tbl_akte.inhalt as foto, tbl_person.foto_sperre, tbl_akte.dms_id, tbl_person.person_id FROM public.tbl_akte JOIN public.tbl_person USING(person_id) WHERE tbl_akte.person_id=".$db->db_add_param($_GET['person_id'], FHC_INTEGER)." AND dokument_kurzbz='Lichtbil'";
if($result = $db->db_query($qry))
$foto_gesperrt = false;
// Person laden und Fotosperre überprüfen
$person_obj = new person($person_id_foto);
if ($person_obj->foto_sperre === true)
{
if($row = $db->db_fetch_object($result))
$foto_gesperrt = true;
// Wenn der User selbst darauf zugreift darf er das Bild sehen
if ($person_id_user == $person_id_foto)
$foto_gesperrt = false;
}
elseif ($person_id_user == '' && ! $serverzugriff)
{
$foto_gesperrt = true;
}
if ($person_obj->foto != '' && ! $foto_gesperrt)
{
$cTmpHEX = base64_decode($person_obj->foto);
}
}
if($source == 'akte' && $person_id_foto != '')
{
$qry = "SELECT tbl_akte.inhalt AS foto,
tbl_person.foto_sperre,
tbl_akte.dms_id,
tbl_person.person_id
FROM PUBLIC.tbl_akte
JOIN PUBLIC.tbl_person USING (person_id)
WHERE tbl_akte.person_id = " . $person_id_foto . "
AND dokument_kurzbz = 'Lichtbil'";
if ($result = $db->db_query($qry))
{
if ($row = $db->db_fetch_object($result))
{
$gesperrt=false;
$foto_gesperrt = false;
//Schauen ob eine Foto Sperre existiert, wenn nicht, schauen, ob der User auch die selbe Person ist
if($db->db_parse_bool($row->foto_sperre))
// Schauen ob eine Foto Sperre existiert, wenn nicht, schauen, ob der User auch die selbe Person ist
if ($db->db_parse_bool($row->foto_sperre))
{
$gesperrt=true;
if(isset($uid))
$foto_gesperrt = true;
if ($person_id_user == $person_id_foto)
{
//Wenn der User selbst darauf zugreift darf er das Bild sehen
$benutzer = new benutzer();
$benutzer->load($uid);
if($benutzer->person_id==$_GET['person_id'])
$gesperrt=false;
// Wenn der User selbst darauf zugreift darf er das Bild sehen
if ($person_id_user == $person_id_foto)
$foto_gesperrt = false;
}
}
elseif(!isset($uid) && $person_id != $row->person_id && !$serverzugriff)
elseif ($person_id_user == '' && ! $serverzugriff)
{
$gesperrt=true;
$foto_gesperrt = true;
}
if($row->foto=='' && $row->dms_id!='')
// Wenn das Foto nicht im Inhalt steht wird aus aus dem DMS geladen
if ($row->foto == '' && $row->dms_id != '')
{
// Wenn das Foto nicht im Inhalt steht wird aus aus dem DMS geladen
$dms = new dms();
if(!$dms->load($row->dms_id))
if (! $dms->load($row->dms_id))
die('Kein Dokument vorhanden');
$filename=DMS_PATH.$dms->filename;
$filename = DMS_PATH . $dms->filename;
$dms->touch($dms->dms_id, $dms->version);
if(file_exists($filename))
if (file_exists($filename))
{
if($handle = fopen($filename,"r"))
if ($handle = fopen($filename, "r"))
{
while (!feof($handle))
while (! feof($handle))
{
$row->foto.= fread($handle, 8192);
$row->foto .= fread($handle, 8192);
}
fclose($handle);
}
@@ -124,30 +164,27 @@ if(isset($_GET['src']) && $_GET['src']=='person' && isset($_GET['person_id']) &
echo 'Die Datei existiert nicht';
}
if($row->foto!='' && !$gesperrt)
if ($row->foto != '' && ! $foto_gesperrt)
{
if($row->dms_id=='')
$cTmpHEX=$row->foto;
else
$cTmpHEX=$row->foto;
$cTmpHEX = $row->foto;
}
}
}
}
//die bilder werden, sofern es funktioniert, in jpg umgewandelt da es sonst zu fehlern beim erstellen
//von pdfs kommen kann.
// die bilder werden, sofern es funktioniert, in jpg umgewandelt da es sonst zu fehlern beim erstellen
// von pdfs kommen kann.
$im = @imagecreatefromstring(base64_decode($cTmpHEX));
if($im!=false)
if ($im != false)
{
@ob_clean();
@ob_clean();
header("Content-type: image/jpeg");
exit(imagejpeg($im));
}
else
{
//bei manchen Bildern funktioniert die konvertierung nicht
//diese werden dann einfach so angezeigt.
// bei manchen Bildern funktioniert die konvertierung nicht
// diese werden dann einfach so angezeigt.
@ob_clean();
header("Content-type: image/gif");
exit($cTmpHEX);
+1 -1
View File
@@ -1681,7 +1681,7 @@ if(!$error)
}
}
else
$errormsg .= "Der Student $uid ist bereits in dieser Gruppe\n";
$errormsg .= "Der Student $uid ist bereits im $benutzergruppe->studiensemester_kurzbz dieser Gruppe zugeteilt. Entfernen Sie vorher diese Zuteilung.\n";
}
else
{
+4 -4
View File
@@ -459,6 +459,7 @@ else
<tabbox id="student-tabbox" flex="3" orient="vertical">
<tabs orient="horizontal" id="student-content-tabs">
<tab id="student-tab-detail" label="Details" />
<tab id="student-tab-notizen" label="Notizen"/>
<tab id="student-tab-kontakt" label="Kontakt" />
<tab id="student-tab-prestudent" label="PreStudent" />
<tab id="student-tab-dokumente" label="Dokumente" />
@@ -477,7 +478,6 @@ else
<tab id="student-tab-projektarbeit" label="Projektarbeit" />
<tab id="student-tab-gruppen" label="Gruppen" onclick="StudentGruppenLoadData();"/>
<tab id="student-tab-funktionen" label="Funktionen" onclick="StudentFunktionIFrameLoad();"/>
<tab id="student-tab-notizen" label="Notizen"/>
<tab id="student-tab-termine" label="LV-Termine" onclick="StudentTermineIFrameLoad();"/>
<?php
if($rechte->isBerechtigt('student/anwesenheit'))
@@ -497,6 +497,9 @@ else
</tabs>
<tabpanels id="student-tabpanels-main" flex="1">
<vbox id="student-detail" style="margin-top:10px;" />
<vbox id="student-box-notiz">
<box class="Notiz" flex="1" id="student-box-notizen"/>
</vbox>
<iframe id="student-kontakt" src="" style="margin-top:10px;" />
<vbox id="student-prestudent" style="margin-top:10px;" />
<vbox id="interessent-dokumente" style="margin-top:10px;" />
@@ -515,9 +518,6 @@ else
<vbox id="student-projektarbeit" style="margin-top:10px;" />
<vbox id="student-gruppen" style="margin-top:10px;" />
<iframe id="student-funktionen" src="" style="margin-top:10px;" />
<vbox id="student-box-notiz">
<box class="Notiz" flex="1" id="student-box-notizen"/>
</vbox>
<iframe id="student-termine" src="" style="margin-top:10px;" />
<?php
if($rechte->isBerechtigt('student/anwesenheit'))
+11 -8
View File
@@ -50,10 +50,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</columns>
<rows>
<row>
<hbox>
<spacer flex="1" />
<button id="student-konto-button-filter" value="alle" oncommand="StudentKontoFilter()" label="offene anzeigen" disabled="true"/>
</hbox>
<hbox></hbox>
<hbox>
<!--
<button id="student-konto-button-filterstudenten" oncommand="StudentKontoFilterStudenten('konto')" label="Studentenliste auf offene Buchungen filtern" tooltiptext="Liste aller Studenten mit offenen Buchungen"/>
@@ -64,7 +61,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<vbox>
<spacer flex="1" />
<label value="Liste auf nicht gebuchte"/>
<label value="Liste filtern auf nicht belastet: "/>
<sapcer flex="1" />
</vbox>
<vbox flex="1">
@@ -91,7 +88,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<hbox>
<vbox>
<spacer flex="1" />
<label value="Liste auf offene"/>
<label value="Liste filtern auf fehlende Gegenbuchungen: "/>
<sapcer flex="1" />
</vbox>
<vbox flex="1">
@@ -118,7 +115,13 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<row flex="1">
<vbox flex="1">
<label id="student-konto-label-filter" value="alle Buchungen:"/>
<hbox>
<button id="student-konto-button-filter" value="alle" oncommand="StudentKontoFilter()" label="Offene anzeigen" disabled="true"/>
<spacer flex="1" />
</hbox>
<label id="student-konto-label-filter" value="alle Buchungen:" hidden="true"/>
<tree id="student-konto-tree" seltype="multi" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/konto/liste"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;margin-top: 10px;" enableColumnDrag="true"
@@ -195,7 +198,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<hbox>
<button id="student-konto-button-neu" label="Neu" oncommand="StudentKontoNeu();" disabled="true"/>
<button id="student-konto-button-gegenbuchung" label="Gegenbuchung" oncommand="StudentKontoGegenbuchung();" disabled="true"/>
<box class="Datum" id="student-konto-textbox-gegenbuchungsdatum" disabled="true"/>
<box class="Datum" id="student-konto-textbox-gegenbuchungsdatum" disabled="true" tooltiptext="Optionales Datum der Gegenbuchung"/>
<button id="student-konto-button-loeschen" label="Loeschen" oncommand="StudentKontoDelete();" disabled="true"/>
<spacer flex="1"/>
<button id="student-konto-button-zahlungsbestaetigung" label="Zahlungsbestaetigung drucken" oncommand="StudentKontoZahlungsbestaetigung();" disabled="true"/>
+9 -2
View File
@@ -1549,6 +1549,13 @@ function StudentAuswahl()
}
// Notizen laden
anzahl_notizen = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anzahl_notizen" ));
if(anzahl_notizen == "0")
document.getElementById('student-tab-notizen').label = "Notizen";
else
document.getElementById('student-tab-notizen').label = " Notizen (" + anzahl_notizen + ")";
var studentnotiz = document.getElementById('student-box-notizen');
studentnotiz.LoadNotizTree('','','','',person_id,'','','','');
@@ -2328,13 +2335,13 @@ function StudentKontoFilter()
if(filter.value=='offene')
{
filter.value='alle';
filter.label='offene Anzeigen';
filter.label='Offene Anzeigen';
document.getElementById('student-konto-label-filter').value='alle Buchungen:';
}
else
{
filter.value='offene';
filter.label='alle Anzeigen';
filter.label='Alle Anzeigen';
document.getElementById('student-konto-label-filter').value='offene Buchungen:';
}
+6
View File
@@ -50,6 +50,7 @@ require_once('../include/reihungstest.class.php');
require_once('../include/studienordnung.class.php');
require_once('../include/studienplan.class.php');
require_once('../include/kontakt.class.php');
require_once('../include/notiz.class.php');
// *********** Funktionen *************************
function convdate($date)
@@ -243,6 +244,10 @@ function draw_content($row)
$i++;
}
// Anzahl Notizen der Person laden
$notiz = new notiz();
$anzahl_notizen = $notiz->getAnzahlNotizen(null, null, null, null, null, $row->person_id, null, null, null, null, null);
if($row->prestudent_id!='')
{
$prestudent = new prestudent();
@@ -300,6 +305,7 @@ function draw_content($row)
<STUDENT:studiengang_kz_student><![CDATA['.(is_a($row,'student')?$row->studiengang_kz:'').']]></STUDENT:studiengang_kz_student>
<STUDENT:matr_nr><![CDATA['.$row->matr_nr.']]></STUDENT:matr_nr>
<STUDENT:studiengang_studiengangsleitung><![CDATA['.$stgl.']]></STUDENT:studiengang_studiengangsleitung>
<STUDENT:anzahl_notizen><![CDATA['.$anzahl_notizen.']]></STUDENT:anzahl_notizen>
';
}
}
+228 -2
View File
@@ -1491,6 +1491,20 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants
}
}
// INSERT Berechtigungen fuer web User erteilen fuer tbl_msg_status
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_msg_status' AND table_schema='public' AND grantee='web' AND privilege_type='UPDATE'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "GRANT UPDATE ON public.tbl_msg_status TO web;";
if(!$db->db_query($qry))
echo '<strong>public.tbl_msg_status Berechtigungen: '.$db->db_last_error().'</strong><br>';
else
echo 'UPDATE Rechte fuer public.tbl_msg_status fuer web user gesetzt ';
}
}
/**
* Kommentare fuer Datenbanktabellen
*/
@@ -1816,10 +1830,218 @@ if($result = $db->db_query("SELECT obj_description('public.ci_apikey'::regclass)
else
echo 'Kommentare fuer DB Datenbanktabellen hinzugefügt';
}
}
}
if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterSentApplicationAll' AND app='infocenter'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort,
default_filter, filter, oe_kurzbz)
VALUES ('infocenter', 'PersonActions', 'InfoCenterSentApplicationAll', NULL, '{Alle}', 1, false,
'{\"name\": \"Abgeschickt - Alle\", \"columns\": [{\"name\": \"Vorname\"},
{\"name\": \"Nachname\"}, {\"name\": \"LastAction\"}, {\"name\": \"LockUser\"},
{\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"}, {\"name\": \"StgAbgeschickt\"}],
\"filters\": [{\"name\": \"AnzahlAbgeschickt\", \"option\": \"\",
\"condition\": \"0\", \"operation\": \"gt\"}]}', NULL);";
if(!$db->db_query($qry))
echo '<strong>Filter: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Filter InfoCenterSentApplicationAll hinzugefuegt';
}
}
if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterSentApplication3days' AND app='infocenter'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort,
default_filter, filter, oe_kurzbz)
VALUES ('infocenter', 'PersonActions', 'InfoCenterSentApplication3days', NULL,
'{\"3 Tage keine Aktion\"}', 2, false, '{\"name\": \"Abgeschickt - 3 Tage keine Aktion\",
\"columns\": [{\"name\": \"Vorname\"}, {\"name\": \"Nachname\"}, {\"name\": \"LastAction\"},
{\"name\": \"LockUser\"}, {\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"},
{\"name\": \"StgAbgeschickt\"}],
\"filters\": [{\"name\": \"LastAction\", \"option\": \"days\", \"condition\": \"3\",
\"operation\": \"gt\"}, {\"name\": \"AnzahlAbgeschickt\", \"option\": \"\",
\"condition\": \"0\", \"operation\": \"gt\"}]}', NULL);";
if(!$db->db_query($qry))
echo '<strong>Filter: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Filter InfoCenterSentApplication3days hinzugefuegt';
}
}
if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterNotSentApplicationAll' AND app='infocenter'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort,
default_filter, filter, oe_kurzbz)
VALUES ('infocenter', 'PersonActions', 'InfoCenterNotSentApplicationAll', NULL, '{Alle}', 1, false,
'{\"name\": \"Nicht abgeschickt - Alle\", \"columns\": [{\"name\": \"Vorname\"},
{\"name\": \"Nachname\"}, {\"name\": \"LastAction\"}, {\"name\": \"LockUser\"},
{\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"}, {\"name\": \"StgAbgeschickt\"}],
\"filters\": [{\"name\": \"SendDate\", \"option\": \"\",
\"condition\": \"\", \"operation\": \"nset\"}]}', NULL);";
if(!$db->db_query($qry))
echo '<strong>Filter: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Filter InfoCenterNotSentApplicationAll hinzugefuegt';
}
}
if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterNotSentApplication14Days' AND app='infocenter'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort,
default_filter, filter, oe_kurzbz)
VALUES ('infocenter', 'PersonActions', 'InfoCenterNotSentApplication14Days', NULL,
'{\"14 Tage keine Aktion\"}', 2, false, '{\"name\": \"Nicht abgeschickt - 14 Tage keine Aktion\",
\"columns\": [{\"name\": \"Vorname\"}, {\"name\": \"Nachname\"}, {\"name\": \"LastAction\"},
{\"name\": \"LockUser\"}, {\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"},
{\"name\": \"StgAbgeschickt\"}], \"filters\": [{\"name\": \"LastAction\", \"option\": \"days\",
\"condition\": \"14\", \"operation\": \"gt\"}, {\"name\": \"SendDate\", \"option\": \"\",
\"condition\": \"\", \"operation\": \"nset\"}]}', NULL);
";
if(!$db->db_query($qry))
echo '<strong>Filter: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Filter InfoCenterNotSentApplication14Days hinzugefuegt';
}
}
/** Budget **/
if (!$result = @$db->db_query("SELECT 1 FROM wawi.tbl_budgetantrag LIMIT 1"))
{
$qry = "CREATE TABLE wawi.tbl_budgetantrag
(
budgetantrag_id integer NOT NULL,
kostenstelle_id integer NOT NULL,
geschaeftsjahr_kurzbz varchar(32) NOT NULL,
bezeichnung varchar(256),
insertamum timestamp DEFAULT now(),
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32)
);
COMMENT ON TABLE wawi.tbl_budgetantrag IS 'Budget Requests';
ALTER TABLE wawi.tbl_budgetantrag ADD CONSTRAINT pk_tbl_budgetantrag PRIMARY KEY (budgetantrag_id);
CREATE SEQUENCE wawi.tbl_budgetantrag_budgetantrag_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE wawi.tbl_budgetantrag ALTER COLUMN budgetantrag_id SET DEFAULT nextval(' wawi.tbl_budgetantrag_budgetantrag_id_seq');
GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetantrag TO vilesci;
GRANT SELECT, UPDATE ON wawi.tbl_budgetantrag_budgetantrag_id_seq TO vilesci;
ALTER TABLE wawi.tbl_budgetantrag ADD CONSTRAINT fk_budgetantrag_kostenstelle_id FOREIGN KEY (kostenstelle_id) REFERENCES wawi.tbl_kostenstelle(kostenstelle_id) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE wawi.tbl_budgetantrag ADD CONSTRAINT fk_budgetantrag_geschaeftsjahr_kurzbz FOREIGN KEY (geschaeftsjahr_kurzbz) REFERENCES public.tbl_geschaeftsjahr(geschaeftsjahr_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
CREATE TABLE wawi.tbl_budgetstatus
(
budgetstatus_kurzbz varchar(32) NOT NULL,
bezeichnung varchar(128)
);
COMMENT ON TABLE wawi.tbl_budgetstatus IS 'Key Table of Budget Request Statuses';
ALTER TABLE wawi.tbl_budgetstatus ADD CONSTRAINT pk_tbl_budgetstatus PRIMARY KEY (budgetstatus_kurzbz);
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('new','Neu');
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('sent','Abgeschickt');
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('approved','Freigegeben');
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('accepted','Akzeptiert');
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('rejected','Abgelehnt');
GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetantrag TO vilesci;
CREATE TABLE wawi.tbl_budgetantrag_status
(
budgetantrag_status_id integer NOT NULL,
budgetantrag_id integer NOT NULL,
budgetstatus_kurzbz varchar(32) NOT NULL,
datum timestamp NOT NULL,
uid varchar(32),
oe_kurzbz varchar(32),
insertamum timestamp DEFAULT now(),
insertvon varchar(32)
);
COMMENT ON TABLE wawi.tbl_budgetantrag_status IS 'Statuses of Budget Requests';
ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT pk_tbl_budgetantrag_status PRIMARY KEY (budgetantrag_status_id);
CREATE SEQUENCE wawi.tbl_budgetantrag_status_budgetantrag_status_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE wawi.tbl_budgetantrag_status ALTER COLUMN budgetantrag_status_id SET DEFAULT nextval(' wawi.tbl_budgetantrag_status_budgetantrag_status_id_seq');
ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT fk_budgetantrag_status_budgetstatus_kurzbz FOREIGN KEY (budgetstatus_kurzbz) REFERENCES wawi.tbl_budgetstatus(budgetstatus_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT fk_budgetantrag_status_uid FOREIGN KEY (uid) REFERENCES public.tbl_benutzer(uid) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT fk_budgetantrag_status_oe_kurzbz FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetantrag TO vilesci;
GRANT SELECT, UPDATE ON wawi.tbl_budgetantrag_status_budgetantrag_status_id_seq TO vilesci;
CREATE SEQUENCE fue.tbl_projekt_projekt_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
GRANT SELECT, UPDATE ON fue.tbl_projekt_projekt_id_seq TO vilesci;
ALTER TABLE fue.tbl_projekt ADD COLUMN projekt_id integer NOT NULL DEFAULT nextval('fue.tbl_projekt_projekt_id_seq');
ALTER TABLE fue.tbl_projekt ADD CONSTRAINT uk_tbl_projekt_projekt_id UNIQUE (projekt_id);
CREATE TABLE wawi.tbl_budgetposition
(
budgetposition_id integer NOT NULL,
budgetantrag_id integer NOT NULL,
budgetposten varchar(512),
konto_id integer,
betrag numeric(12,4),
kommentar text,
projekt_id integer,
insertamum timestamp,
insertvon varchar(32),
updateamum timestamp,
updatevon varchar(32)
);
COMMENT ON TABLE wawi.tbl_budgetposition IS 'Budget position';
ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT pk_tbl_budgetposition PRIMARY KEY (budgetposition_id);
CREATE SEQUENCE wawi.tbl_budgetposition_budgetposition_id_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER TABLE wawi.tbl_budgetposition ALTER COLUMN budgetposition_id SET DEFAULT nextval(' wawi.tbl_budgetposition_budgetposition_id_seq');
ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT fk_tbl_budgetposition_budgetantrag_id FOREIGN KEY (budgetantrag_id) REFERENCES wawi.tbl_budgetantrag(budgetantrag_id) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT fk_tbl_budgetposition_konto_id FOREIGN KEY (konto_id) REFERENCES wawi.tbl_konto(konto_id) ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT fk_tbl_budgetposition_projekt_id FOREIGN KEY (projekt_id) REFERENCES fue.tbl_projekt(projekt_id) ON UPDATE CASCADE ON DELETE RESTRICT;
GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetposition TO vilesci;
GRANT SELECT, UPDATE ON wawi.tbl_budgetposition_budgetposition_id_seq TO vilesci;
";
if(!$db->db_query($qry))
echo '<strong>Budget: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Neue Tabellen fuer Budgetantrag in Schema wawi hinzugefuegt';
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -1910,7 +2132,7 @@ $tabellen=array(
"campus.tbl_zeitwunsch" => array("stunde","mitarbeiter_uid","tag","gewicht","updateamum","updatevon","insertamum","insertvon"),
"fue.tbl_aktivitaet" => array("aktivitaet_kurzbz","beschreibung","sort"),
"fue.tbl_aufwandstyp" => array("aufwandstyp_kurzbz","bezeichnung"),
"fue.tbl_projekt" => array("projekt_kurzbz","nummer","titel","beschreibung","beginn","ende","oe_kurzbz","budget","farbe","aufwandstyp_kurzbz","ressource_id","anzahl_ma","aufwand_pt"),
"fue.tbl_projekt" => array("projekt_kurzbz","nummer","titel","beschreibung","beginn","ende","oe_kurzbz","budget","farbe","aufwandstyp_kurzbz","ressource_id","anzahl_ma","aufwand_pt","projekt_id"),
"fue.tbl_projektphase" => array("projektphase_id","projekt_kurzbz","projektphase_fk","bezeichnung","typ","beschreibung","start","ende","budget","insertamum","insertvon","updateamum","updatevon","personentage","farbe","ressource_id"),
"fue.tbl_projekttask" => array("projekttask_id","projektphase_id","bezeichnung","beschreibung","aufwand","mantis_id","insertamum","insertvon","updateamum","updatevon","projekttask_fk","erledigt","ende","ressource_id","scrumsprint_id"),
"fue.tbl_projekt_dokument" => array("projekt_dokument_id","projektphase_id","projekt_kurzbz","dms_id"),
@@ -2088,6 +2310,10 @@ $tabellen=array(
"wawi.tbl_betriebsmittelstatus" => array("betriebsmittelstatus_kurzbz","beschreibung"),
"wawi.tbl_betriebsmitteltyp" => array("betriebsmitteltyp","beschreibung","anzahl","kaution","typ_code","mastershapename"),
"wawi.tbl_budget" => array("geschaeftsjahr_kurzbz","kostenstelle_id","budget"),
"wawi.tbl_budgetantrag" => array("budgetantrag_id","kostenstelle_id","geschaeftsjahr_kurzbz","bezeichnung","insertamum","insertvon","updateamum","updatevon"),
"wawi.tbl_budgetantrag_status" => array("budgetantrag_status_id","budgetantrag_id","budgetstatus_kurzbz","datum","uid","oe_kurzbz","insertamum","insertvon"),
"wawi.tbl_budgetstatus" => array("budgetstatus_kurzbz","bezeichnung"),
"wawi.tbl_budgetposition" => array("budgetposition_id","budgetantrag_id","budgetposten","konto_id","betrag","kommentar","projekt_id","insertamum","insertvon","updateamum","updatevon"),
"wawi.tbl_zahlungstyp" => array("zahlungstyp_kurzbz","bezeichnung"),
"wawi.tbl_konto" => array("konto_id","kontonr","beschreibung","kurzbz","aktiv","person_id","insertamum","insertvon","updateamum","updatevon","ext_id","person_id"),
"wawi.tbl_konto_kostenstelle" => array("konto_id","kostenstelle_id","insertamum","insertvon"),
@@ -255,13 +255,13 @@ if ((isset($_GET['neueVorlage']) && $_GET['neueVorlage'] == 'true'))
<tr>
<td>Vorlagenkurzbezeichnung</td>
<td>
<input type="text" size="64" maxlength="64" name="neueVorlage_vorlage_kurzbz">
<input type="text" size="50" maxlength="32" name="neueVorlage_vorlage_kurzbz">
</td>
</tr>
<tr>
<td>Bezeichnung</td>
<td>
<textarea cols="80" rows="4" name="neueVorlage_bezeichnung"></textarea>
<input type="text" size="80" maxlength="64" name="neueVorlage_bezeichnung">
</td>
</tr>
<tr>
@@ -273,7 +273,7 @@ if ((isset($_GET['neueVorlage']) && $_GET['neueVorlage'] == 'true'))
<tr>
<td>Mimetype</td>
<td>
<textarea cols="80" rows="4" name="neueVorlage_mimetype">application/vnd.oasis.opendocument.text</textarea>
<input type="text" size="80" maxlength="64" name="neueVorlage_mimetype" value="application/vnd.oasis.opendocument.text">
</td>
</tr>
<tr>
@@ -333,13 +333,13 @@ elseif (isset($_GET['vorlageBearbeiten']))
<tr>
<td>Vorlagenkurzbezeichnung</td>
<td>
<input type="text" size="64" maxlength="64" name="updateVorlage_vorlage_kurzbz" value="'.$db->convert_html_chars($vorlage->vorlage_kurzbz).'" disabled>
<input type="text" size="50" maxlength="32" name="updateVorlage_vorlage_kurzbz" value="'.$db->convert_html_chars($vorlage->vorlage_kurzbz).'" disabled>
</td>
</tr>
<tr>
<td>Bezeichnung</td>
<td>
<textarea cols="80" rows="4" name="updateVorlage_bezeichnung">'.$db->convert_html_chars($vorlage->bezeichnung).'</textarea>
<input type="text" size="80" maxlength="64" name="updateVorlage_bezeichnung" value="'.$db->convert_html_chars($vorlage->bezeichnung).'">
</td>
</tr>
<tr>
@@ -351,7 +351,7 @@ elseif (isset($_GET['vorlageBearbeiten']))
<tr>
<td>Mimetype</td>
<td>
<textarea cols="80" rows="4" name="updateVorlage_mimetype">'.$db->convert_html_chars($vorlage->mimetype).'</textarea>
<input type="text" size="80" maxlength="64" name="updateVorlage_mimetype" value="'.$db->convert_html_chars($vorlage->mimetype).'">
</td>
</tr>
<tr>