This commit is contained in:
kindlm
2016-02-25 15:58:10 +01:00
25 changed files with 1258 additions and 666 deletions
+35
View File
@@ -0,0 +1,35 @@
<?php
/* Copyright (C) 2016 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 Moik <moik@technikum-wien.at>
*/
//require_once(dirname(__FILE__).'/config/vilesci.config.inc.php'); Muss vor dieser Datei eingebunden werden!
$dr = DOC_ROOT;
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
if($dr=='')
$dr='/';
//Originaldateien des Herstellers
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'vendor/FHC-vendor/angular-tablesort/tablesort.css">';
echo '<script src="'.$dr.'vendor/FHC-vendor/angular-tablesort/js/angular-tablesort.js"></script>';
//Anpassungen
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'include/vendor_custom/angular-tablesorter/tablesort.css">';
?>
+31
View File
@@ -0,0 +1,31 @@
<?php
/* Copyright (C) 2015 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 Moik <moik@technikum-wien.at>
*/
//require_once(dirname(__FILE__).'/config/vilesci.config.inc.php'); Muss vor dieser Datei eingebunden werden!
$dr = DOC_ROOT;
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
if($dr=='')
$dr='/';
//Originaldateien des Herstellers
echo '<script src="'.$dr.'vendor/components/angular.js/angular.min.js"></script>';
?>
+101
View File
@@ -0,0 +1,101 @@
<?php
/* Copyright (C) 2016 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 Moik <moik@technikum-wien.at>
*/
require_once(dirname(__FILE__)."/jquery.php");
echo '
<script>
var TARGET = "";
function _GET()
{
var url = window.location.href;
if(url.slice(-1) === "#")
url = url.slice(0,-1);
var vars = {};
var parts = url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value)
{
vars[key] = value;
});
return vars;
}
function AJAXCall(info, successfunction)
{
if(TARGET == "")
die("Es wurde kein AJAX-Target angegeben");
$.ajax(
{
url: TARGET,
type: "POST",
dataType: "html",
data: info,
timeout: 5000
}).done(function(result)
{
try
{
var res = JSON.parse(result);
}
catch (e)
{
die(result);
return false;
}
if(res.erfolg)
{
try
{
var ret = JSON.parse(res.info);
successfunction(ret);
}
catch(e)
{
die(res.info);
}
}
else
{
die(result);
}
}).fail(function(jqXHR, status)
{
die(status);
});
}
function die(msg)
{
document.body.innerHTML = msg;
throw new Error(msg);
}
function isObject(val)
{
if (val === null) { return false;}
return ( (typeof val === "function") || (typeof val === "object") );
}
</script>';
?>
+63
View File
@@ -0,0 +1,63 @@
<?php
/* Copyright (C) 2015 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 Moik <moik@technikum-wien.at>
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/datum.class.php');
require_once('../../include/person.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/benutzerberechtigung.class.php');
function returnAJAX($success, $obj)
{
//if there is an error
if(error_get_last())
$ret = array(
"erfolg" => false,
);
else if(!$success)
{
$ret = array(
"erfolg" => false,
"message" => $obj,
);
}
//if we dont have a valid user
else if (!$getuid = get_uid())
{
$ret = array(
"erfolg" => false,
);
}
//if everything worked fine
else
{
$ret = array(
"erfolg" => true,
"user" => $getuid,
"info" => $obj,
);
}
echo json_encode($ret);
if($ret["erfolg"] === false)
die("");
}
?>
+1 -1
View File
@@ -251,7 +251,7 @@ class person extends basis_db
return false;
}
if(mb_strlen($this->svnr) != 16 && mb_strlen($this->svnr) != 10)
if($this->svnr!='' && mb_strlen($this->svnr) != 16 && mb_strlen($this->svnr) != 10)
{
$this->errormsg = 'SVNR muss 10 oder 16 Zeichen lang sein';
return false;
+34 -35
View File
@@ -48,21 +48,21 @@ $menu=array
'Incoming loeschen'=>array('name'=>'Incoming löschen', 'link'=>'lehre/incoming_delete.php', 'target'=>'main'),
),
'Raummitteilung'=>array('name'=>'Raummitteilung', 'link'=>'lehre/raummitteilung.php', 'target'=>'main'),
'Mitarbeiter'=>array
(
'name'=>'Mitarbeiter','permissions'=>array('admin','lv-plan','support'),
'Übersicht'=>array('name'=>'Zeitwünsche', 'link'=>'personen/lektor_uebersicht.php', 'target'=>'main'),
'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main'),
'Übersicht'=>array('name'=>'Zeitwünsche', 'link'=>'personen/lektor_uebersicht.php', 'target'=>'main','permissions'=>array('mitarbeiter')),
'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre')),
),
'Vorrueckung'=> array
(
'name'=>'Vorrueckung', 'permissions'=>array('admin','lv-plan','support'),
'Lehreinheiten'=>array('name'=>'Lehreinheiten', 'link'=>'lehre/lehreinheiten_vorrueckung.php', 'target'=>'main'),
'Studenten'=>array('name'=>'Studenten', 'link'=>'personen/student_vorrueckung.php', 'target'=>'main')
'name'=>'Vorrueckung', 'permissions'=>array('lehre/vorrueckung','student/vorrueckung'),
'Lehreinheiten'=>array('name'=>'Lehreinheiten', 'link'=>'lehre/lehreinheiten_vorrueckung.php', 'target'=>'main', 'permissions'=>array('lehre/vorrueckung'),),
'Studenten'=>array('name'=>'Studenten', 'link'=>'personen/student_vorrueckung.php', 'target'=>'main','permissions'=>array('student/vorrueckung'),)
),
),
'Lehre'=> array
(
@@ -71,10 +71,10 @@ $menu=array
'Gruppenverwaltung'=>array('name'=>'Gruppen', 'permissions'=>array('admin','lv-plan','support'), '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')),
'Moodle'=>array
(
'name'=>'Moodle', 'permissions'=>array('admin','lv-plan','support','basis/moodle'),
'name'=>'Moodle', 'permissions'=>array('basis/moodle'),
'Account'=>array('name'=>'Accountverwaltung', 'link'=>'moodle/account_verwaltung24.php', 'target'=>'main'),
'Kursverwaltung'=>array('name'=>'Kurs entfernen', 'link'=>'moodle/kurs_verwaltung24.php', 'target'=>'main'),
'Rollenzuteilung'=>array('name'=>'Rollenzuteilung', 'link'=>'moodle/rollenzuteilung24.php', 'target'=>'main'),
@@ -106,13 +106,13 @@ $menu=array
'name'=>'Personen', 'opener'=>'true', 'hide'=>'true', 'image'=>'vilesci_personen.png', 'permissions'=>array('admin','lv-plan','support','mitarbeiter','basis/person'),
'link'=>'left.php?categorie=Personen', 'target'=>'nav',
'Suche'=>array('name'=>'Suche', 'link'=>'personen/suche.php', 'target'=>'main','permissions'=>array('admin','lv-plan','support','basis/person')),
'Zusammenlegen'=>array('name'=>'Zusammenlegen', 'link'=>'stammdaten/personen_wartung.php', 'target'=>'main', 'permissions'=>array('admin','lv-plan','support')),
'Zusammenlegen'=>array('name'=>'Zusammenlegen', 'link'=>'stammdaten/personen_wartung.php', 'target'=>'main', 'permissions'=>array('basis/person')),
'Wiederholer'=>array('name'=>'Stg-Wiederholer', 'link'=>'personen/wiederholer.php', 'target'=>'main', 'permissions'=>array('basis/person')),
'Gruppen'=>array
(
'name'=>'Gruppen', 'permissions'=>array('admin','lv-plan','support'),
'Übersicht'=>array('name'=>'Übersicht', 'link'=>'lehre/einheit_menu.php', 'target'=>'main'),
'Neu'=>array('name'=>'Neu', 'link'=>'lehre/einheit_menu.php?newFrm=true', 'target'=>'main')
'name'=>'Gruppen', 'permissions'=>array('lehre/gruppe'),
'Übersicht'=>array('name'=>'Übersicht', 'link'=>'lehre/einheit_menu.php', 'target'=>'main','permissions'=>array('lehre/gruppe')),
'Neu'=>array('name'=>'Neu', 'link'=>'lehre/einheit_menu.php?newFrm=true', 'target'=>'main','permissions'=>array('lehre/gruppe'))
),
'Benutzer'=>array
(
@@ -126,12 +126,12 @@ $menu=array
(
'name'=>'Mitarbeiter','permissions'=>array('admin','mitarbeiter','support'),
'Übersicht'=>array('name'=>'Übersicht', 'link'=>'personen/lektor_uebersicht.php', 'target'=>'main'),
'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main'),
'Resturlaub'=>array('name'=>'Urlaub', 'link'=>'personen/resturlaub_frameset.html', 'target'=>'main')
'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre')),
'Resturlaub'=>array('name'=>'Urlaub', 'link'=>'personen/resturlaub_frameset.html', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre'))
),
'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('admin','lv-plan','support','basis/betriebsmittel')),
'AnwesenheitslistenBarcode'=>array('name'=>'Anwesenheitslisten mit Barcodes', 'link'=>'personen/anwesenheitslisten_barcode.php', 'target'=>'main','permissions'=>array('admin','lv-plan','support','preinteressent')),
'Preinteressenten'=>array('name'=>'Preinteressenten', 'link'=>'personen/preinteressent_frameset.html', 'target'=>'_blank','permissions'=>array('admin','lv-plan','support','preinteressent')),
'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')),
'AnwesenheitslistenBarcode'=>array('name'=>'Anwesenheitslisten mit Barcodes', 'link'=>'personen/anwesenheitslisten_barcode.php', 'target'=>'main','permissions'=>array('basis/person')),
'Preinteressenten'=>array('name'=>'Preinteressenten', 'link'=>'personen/preinteressent_frameset.html', 'target'=>'_blank','permissions'=>array('admin','preinteressent')),
'Incoming'=>array('name'=>'Incoming', 'link'=>'personen/incoming_frameset.php', 'target'=>'_blank','permissions'=>array('inout/incoming')),
'Outgoing'=>array('name'=>'Outgoing', 'link'=>'personen/outgoing_frameset.php', 'target'=>'_blank','permissions'=>array('inout/outgoing'))
),
@@ -141,7 +141,7 @@ $menu=array
'link'=>'left.php?categorie=Stammdaten', 'target'=>'nav',
'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')),
'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('admin','assistenz')),
'User'=>array
(
'name'=>'User', 'permissions'=>array('basis/variable','basis/berechtigung'),
@@ -154,7 +154,7 @@ $menu=array
'name'=>'Personal', 'permissions'=>array('buchung/typen','vertrag/typen'),
'Buchungstypen'=>array('name'=>'Buchungstypen', 'link'=>'stammdaten/buchung_typ.php', 'target'=>'main','permissions'=>array('buchung/typen')),
'Vertragstypen'=>array('name'=>'Vertragstypen', 'link'=>'stammdaten/vertrag_typ.php', 'target'=>'main','permissions'=>array('vertrag/typen'))
),
),
'Studiengang'=>array('name'=>'Studiengang', 'link'=>'stammdaten/studiengang_frameset.html', 'target'=>'main','permissions'=>array('basis/studiengang')),
'Ort'=>array('name'=>'Ort (Raum)', 'link'=>'stammdaten/raum_frameset.html', 'target'=>'main','permissions'=>array('basis/ort')),
'Firmen'=>array('name'=>'Firmen', 'link'=>'stammdaten/firma_frameset.html', 'target'=>'main','permissions'=>array('basis/firma')),
@@ -180,20 +180,19 @@ $menu=array
),
'Wartung'=> array
(
'name'=>'Wartung', 'opener'=>'true', 'hide'=>'true', 'image'=>'vilesci_wartung.png', 'link'=>'left.php?categorie=Wartung', 'target'=>'nav',
'name'=>'Wartung', 'opener'=>'true', 'hide'=>'true', 'image'=>'vilesci_wartung.png', 'link'=>'left.php?categorie=Wartung', 'target'=>'nav',
'DokumenteZuteilung'=>array('name'=>'Dokumente Zuteilung', 'link'=>'stammdaten/studiengang_dokumente.php', 'target'=>'main', 'permissions'=>array('basis/studiengang')),
'DokumenteZuteilung'=>array('name'=>'Dokumente Zuteilung', 'link'=>'stammdaten/studiengang_dokumente.php', 'target'=>'main', 'permissions'=>array('basis/studiengang')),
'Vorrueckung'=> array
(
'name'=>'Vorrueckung', 'permissions'=>array('admin','lv-plan','support'),
'Lehreinheiten'=>array('name'=>'Lehreinheiten', 'link'=>'lehre/lehreinheiten_vorrueckung.php', 'target'=>'main'),
'Studenten'=>array('name'=>'Studenten', 'link'=>'personen/student_vorrueckung.php', 'target'=>'main')
'name'=>'Vorrueckung', 'permissions'=>array('lehre/vorrueckung','student/vorrueckung'),
'Lehreinheiten'=>array('name'=>'Lehreinheiten', 'link'=>'lehre/lehreinheiten_vorrueckung.php', 'target'=>'main','permissions'=>array('lehre/vorrueckung'),),
'Studenten'=>array('name'=>'Studenten', 'link'=>'personen/student_vorrueckung.php', 'target'=>'main','permissions'=>array('student/vorrueckung'),)
),
'LVWartung'=>array('name'=>'LVwartung', 'link'=>'stammdaten/lv_wartung.php', 'target'=>'main'),
'Kreuzerllistekopieren'=>array('name'=>'Kreuzerllisten kopieren', 'link'=>CIS_ROOT.'cis/private/lehre/benotungstool/copy_uebung.php', 'target'=>'_blank'),
'Firmenwartung'=>array('name'=>'Firmenwartung', 'link'=>'stammdaten/firma_zusammen_uebersicht.php', 'target'=>'main'),
'Kreuzerllistekopieren'=>array('name'=>'Kreuzerllisten kopieren', 'link'=>CIS_ROOT.'cis/private/lehre/benotungstool/copy_uebung.php', 'target'=>'_blank','permissions'=>array('admin')),
'Firmenwartung'=>array('name'=>'Firmenwartung', 'link'=>'stammdaten/firma_zusammen_uebersicht.php', 'target'=>'main','permissions'=>array('basis/firma')),
'checkStudenten'=>array('name'=>'CheckStudenten', 'link'=>'../system/checkStudenten.php', 'target'=>'main'),
'StudienplanZuteilung'=>array('name'=>'Studienplan Zuteilung', 'link'=>'lehre/studienplan_zuteilung.php', 'target'=>'main'),
'StudienplanZuteilung'=>array('name'=>'Studienplan Zuteilung', 'link'=>'lehre/studienplan_zuteilung.php', 'target'=>'main','permissions'=>array('assistenz')),
),
'Auswertung'=> array
(
@@ -212,17 +211,17 @@ $menu=array
'link'=>'left.php?categorie=Inventar', 'target'=>'nav',
'Inventar'=> array
(
'name'=>'Inventar', 'permissions'=>array('admin','wawi','support','wawi/inventar'),
'name'=>'Inventar', 'permissions'=>array('admin','wawi','support','wawi/inventar'),
'Neu'=>array('name'=>'Neu', 'link'=>'inventar/inventar_pflege.php?vorlage=false', 'target'=>'main'),
'Suche'=>array('name'=>'Suche', 'link'=>'inventar/inventar.php', 'target'=>'main'),
'AfA'=>array('name'=>'AfA', 'link'=>'inventar/inventar_afa.php', 'target'=>'main'),
'Inventur'=>array('name'=>'Inventur', 'link'=>'inventar/inventar_inventur.php', 'target'=>'main'),
'Etiketten'=>array('name'=>'Etiketten', 'link'=>'inventar/etiketten.php', 'target'=>'main'),
)
),
),
'Admin'=> array
(
'name'=>'Admin', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('admin','lv-plan','support'), 'image'=>'vilesci_admin.png',
'name'=>'Admin', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('basis/cronjob'), 'image'=>'vilesci_admin.png',
'link'=>'left.php?categorie=Admin', 'target'=>'nav',
'Cronjobs'=>array('name'=>'Cronjobs', 'link'=>'stammdaten/cronjobverwaltung.php', 'target'=>'main','permissions'=>array('basis/cronjob')),
),
@@ -231,7 +230,7 @@ $menu=array
'name'=>'SD-Tools', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('sdTools'), 'image'=>'vilesci_sdtools.png',
'link'=>'https://sdtools.technikum-wien.at', 'target'=>'_blank',
)
);
require_once(dirname(__FILE__).'/../statistik.class.php');
@@ -253,7 +252,7 @@ if($addon_obj->loadAddons())
);
foreach($addon_obj->result as $row)
{
{
$menu['Addons'][$row->kurzbz]=array('name'=>$row->addon_name, 'link'=>'../addons/'.$row->kurzbz.'/vilesci/index.php', 'target'=>'main');
}
}
@@ -0,0 +1,23 @@
/* tables */
table {
background-color: #EFEFEF;
margin:10px 0pt 15px;
width: 100%;
text-align: left;
}
table thead tr th, table tfoot tr th {
border: 1px solid #FFF;
padding: 4px;
vertical-align: middle;
}
th[ts-criteria]{
background-color: #DCE4EF;
cursor: pointer;
}
th.tablesort-asc,th.tablesort-desc{
border-bottom: #000 2px solid;
}
tbody tr:nth-child(2n){
background-color: #D3D3D3;
}
+3 -1
View File
@@ -134,8 +134,9 @@ class zeitaufzeichnung extends basis_db
if(!$this->validate())
return false;
// check ob identischer eintrag existiert
$check_qry = 'SELECT count(*) from campus.tbl_zeitaufzeichnung where uid='.$this->db_add_param($this->uid).' and start = '.$this->db_add_param($this->start).' and ende = '.$this->db_add_param($this->ende);
if($this->db_query($check_qry))
if($this->db_query($check_qry) && $this->new)
{
if($row = $this->db_fetch_object())
{
@@ -147,6 +148,7 @@ class zeitaufzeichnung extends basis_db
}
}
if($this->new)
{
//Neuen Datensatz einfuegen
@@ -0,0 +1,2 @@
.idea
bower_components
+21
View File
@@ -0,0 +1,21 @@
The MIT License
Copyright (c) 2013 Mattias Holmlund, http://www.holmlund.se/mattias
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
+119
View File
@@ -0,0 +1,119 @@
AngularJS Tablesort
===================
Allow tables to be sorted by clicking their headings.
Web site: [http://mattiash.github.io/angular-tablesort](http://mattiash.github.io/angular-tablesort)
Background
----------
When you use jquery to build your web-pages, it is very easy to add sorting-functionality to your tables - include [tablesorter](http://tablesorter.com) and annotate your column headings slightly to tell it what type of data your table contains.
The goal with this module is to make it just as easy to add sorting to AngularJS tables, but with proper use of angular features and not jquery.
Click once on a heading to sort ascending, twice for descending. Use shift-click to sort on more than one column.
Additionally, these directives also makes it easy to add a default row that is shown in empty tables to make
it explicit that the table is intentionally empty and not just broken.
Installation
------------
bower install angular-tablesort
or
npm install angular-tablesort
Usage
-----
Include the script in your markup
```html
<script src="bower_components/angular-tablesort/js/angular-tablesort.js"></script>
```
Include the module in your app
```js
angular.module('myApp', ['tableSort']);
```
The following code generates a table that can be sorted by clicking on the table headings:
```html
<table border="1" ts-wrapper>
<thead>
<tr>
<th ts-criteria="Id">Id</th>
<th ts-criteria="Name|lowercase" ts-default>Name</th>
<th ts-criteria="Price|parseFloat">Price</th>
<th ts-criteria="Quantity|parseInt">Quantity</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in items" ts-repeat>
<td>{{item.Name}}</td>
<td>{{item.Price | currency}}</td>
<td>{{item.Quantity}}</td>
</tr>
</tbody>
</table>
```
The `ts-wrapper` attribute must be set on element that surrounds both the headings and the ng-repeat statement.
The `ts-criteria` attribute tells tablesort which expression it should sort on when that element is clicked. Normally, the ts-criteria is the same as the expression that is shown in the column, but it doesn't have to be. The ts-criteria can also be filtered using the normal AngularJS filter syntax. Tablesort includes two filters parseInt and parseFloat that use the javascript functions of the same name, but any filter can be used.
The `ts-default` attribute can be set on one or more columns to sort on them in ascending order by default.
To sort in descending order, set ts-default to "descending"
The `ts-repeat` attribute must be set on the element with ng-repeat.
```html
<tr ng-repeat="item in items" ts-repeat>
```
Alternatively, `ts-repeat-start` and `ts-repeat-end` may be used to compliment the `ng-repeat-start` and `ng-repeat-end` directives.
```html
<tr ng-repeat-start="item in items track by item.Id" ts-repeat-start>
<td><input type="checkbox" ng-model="item.selected"></td>
<td>{{ item.Name }}</td>
</tr>
<tr ng-repeat-end data-ts-repeat-end ng-show="item.selected">
<td colspan="2">{{ item.Description }}</td>
</tr>
```
By default, the sorting will be done as the last operation in the ng-repeat expression. To override this behavior, use an explicit `tablesort` directive as part of your ng-repeat expression. E.g.
```html
<tr ng-repeat="item in items | limitTo: 10" ts-repeat>
```
This will first select the first 10 items in `items` and then sort them. Alternatively, you can insert an explicit tablesort in the pipe:
```html
<tr ng-repeat="item in items | tablesort | limitTo: 10" ts-repeat>
```
This will first sort the rows according to your specification and then only show the first 10 rows.
If the `ng-repeat` expression contains a `track by` statement (which is generally a good idea), that expression will
be used to provide a [stable](http://en.wikipedia.org/wiki/Sorting_algorithm#Stability) sort result.
CSS
---
All table headings that can be sorted on is styled with css-class `tablesort-sortable`. The table headings that the table is currently sorted on is styled with `tablesort-asc` or `tablesort-desc` classes depending on the sort-direction. A stylesheet is included to show that it works, but you probably want to build your own.
By default the content and look of the data for empty tables is controlled via css. It is inserted as one empty `<td>` spanning
all columns and placed inside a `<tr>` with class `showIfLast` The `<tr>` is placed at the top of each table.
To disable this feature add the attribute `ts-hide-no-data` to the `ts-repeat` row:
```html
<tr ng-repeat="item in items" ts-repeat ts-hide-no-data>
```
+10
View File
@@ -0,0 +1,10 @@
{
"name": "angular-tablesort",
"description": "Sort AngularJS tables easily",
"version": "1.1.2",
"main": ["./js/angular-tablesort.js"],
"dependencies": {
"angular": "*"
},
"ignore": []
}
+152
View File
@@ -0,0 +1,152 @@
<!DOCTYPE html>
<html>
<head>
<title>Angular Tablesort</title>
<link rel="stylesheet" href="tablesort.css"/>
</head>
<body>
<div ng-app="myApp">
<div ng-controller="tableTestCtrl">
<h1>Angular Tablesort</h1>
<table border="1" ts-wrapper>
<thead>
<tr>
<th>Select</th>
<th ts-criteria="Id">Id</th>
<th ts-criteria="Name|lowercase" ts-default>Name</th>
<th ts-criteria="Price|parseFloat">Price</th>
<th ts-criteria="Quantity|parseInt">Quantity</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in items track by item.Id" ts-repeat>
<td><input type="checkbox"></td>
<td>{{item.Id}}</td>
<td>{{item.Name}}</td>
<td>{{item.Price | currency}}</td>
<td>{{item.Quantity}}</td>
</tr>
</tbody>
</table>
<h1>Angular Tablesort with tablesort filter and max 5 entries</h1>
<table border="1" ts-wrapper>
<thead>
<tr>
<th>Select</th>
<th ts-criteria="Id">Id</th>
<th ts-criteria="Name|lowercase" ts-default>Name</th>
<th ts-criteria="Price|parseFloat">Price</th>
<th ts-criteria="Quantity|parseInt">Quantity</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in items | tablesort | limitTo: 5 track by item.Id" ts-repeat>
<td><input type="checkbox"></td>
<td>{{item.Id}}</td>
<td>{{item.Name}}</td>
<td>{{item.Price | currency}}</td>
<td>{{item.Quantity}}</td>
</tr>
</tbody>
</table>
<h1>Angular Tablesort with Multi-Element ts-repeat-start &amp; ts-repeat-end</h1>
<h2><em>Click Select to reveal item details.</em></h2>
<table border="1" data-ts-wrapper>
<thead>
<tr>
<th>Select</th>
<th data-ts-criteria="Id">Id</th>
<th data-ts-criteria="Name|lowercase" data-ts-default>Name</th>
<th data-ts-criteria="Price|parseFloat">Price</th>
<th data-ts-criteria="Quantity|parseInt">Quantity</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat-start="item in items track by item.Id" data-ts-repeat-start>
<td><input type="checkbox" data-ng-model="item.selected"></td>
<td>{{item.Id}}</td>
<td>{{item.Name}}</td>
<td>{{item.Price | currency}}</td>
<td>{{item.Quantity}}</td>
</tr>
<tr data-ng-repeat-end data-ts-repeat-end data-ng-show="item.selected">
<td colspan="5">{{item.Description}}</td>
</tr>
</tbody>
</table>
<h1>Empty table</h1>
<table border="1" ts-wrapper>
<thead>
<tr>
<th>Select</th>
<th ts-criteria="Id">Id</th>
<th ts-criteria="Name|lowercase" ts-default>Name</th>
<th ts-criteria="Price|parseFloat">Price</th>
<th ts-criteria="Quantity|parseInt">Quantity</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in noitems" ts-repeat ng-click="clickRow()">
<td><input type="checkbox"></td>
<td>{{item.Id}}</td>
<td>{{item.Name}}</td>
<td>{{item.Price | currency}}</td>
<td>{{item.Quantity}}</td>
</tr>
</tbody>
</table>
<h1>Empty table without "No data" row</h1>
<table border="1" ts-wrapper>
<thead>
<tr>
<th>Select</th>
<th ts-criteria="Id">Id</th>
<th ts-criteria="Name|lowercase" ts-default>Name</th>
<th ts-criteria="Price|parseFloat">Price</th>
<th ts-criteria="Quantity|parseInt">Quantity</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in noitems" ts-repeat ts-hide-no-data ng-click="clickRow()">
<td><input type="checkbox"></td>
<td>{{item.Id}}</td>
<td>{{item.Name}}</td>
<td>{{item.Price | currency}}</td>
<td>{{item.Quantity}}</td>
</tr>
</tbody>
</table>
<br />
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script src="js/angular-tablesort.js"></script>
<script>
var myApp = angular.module( 'myApp', ['tableSort'] )
.controller( "tableTestCtrl", function tableTestCtrl($scope) {
$scope.items = [
{Id: "01", Name: "A", Price: "1.00", Quantity: "1", Description: "This is the description for item A.", selected: false},
{Id: "02", Name: "B", Price: "10.00", Quantity: "1", Description: "This is the description for item B.", selected: false},
{Id: "04", Name: "C", Price: "9.50", Quantity: "10", Description: "This is the description for item C.", selected: false},
{Id: "03", Name: "a", Price: "9.00", Quantity: "2", Description: "This is the description for item a.", selected: false},
{Id: "06", Name: "b", Price: "100.00", Quantity: "2", Description: "This is the description for item b.", selected: false},
{Id: "05", Name: "c", Price: "1.20", Quantity: "2", Description: "This is the description for item c.", selected: false}
];
$scope.noitems = [];
$scope.clickRow = function () {
alert('You clicked the row.');
}
}
);
</script>
</body>
</html>
+2
View File
@@ -0,0 +1,2 @@
require('./js/angular-tablesort');
module.exports = 'tableSort';
@@ -0,0 +1,226 @@
/*
angular-tablesort v1.1.2
(c) 2013-2015 Mattias Holmlund, http://mattiash.github.io/angular-tablesort
License: MIT
*/
var tableSortModule = angular.module( 'tableSort', [] );
tableSortModule.directive('tsWrapper', ['$log', '$parse', function( $log, $parse ) {
'use strict';
return {
scope: true,
controller: ['$scope', function($scope) {
$scope.sortExpression = [];
$scope.headings = [];
var parse_sortexpr = function( expr ) {
return [$parse( expr ), null, false];
};
this.setSortField = function( sortexpr, element ) {
var i;
var expr = parse_sortexpr( sortexpr );
if( $scope.sortExpression.length === 1
&& $scope.sortExpression[0][0] === expr[0] ) {
if( $scope.sortExpression[0][2] ) {
element.removeClass( "tablesort-desc" );
element.addClass( "tablesort-asc" );
$scope.sortExpression[0][2] = false;
}
else {
element.removeClass( "tablesort-asc" );
element.addClass( "tablesort-desc" );
$scope.sortExpression[0][2] = true;
}
}
else {
for( i=0; i<$scope.headings.length; i=i+1 ) {
$scope.headings[i]
.removeClass( "tablesort-desc" )
.removeClass( "tablesort-asc" );
}
element.addClass( "tablesort-asc" );
$scope.sortExpression = [expr];
}
};
this.addSortField = function( sortexpr, element ) {
var i;
var toggle_order = false;
var expr = parse_sortexpr( sortexpr );
for( i=0; i<$scope.sortExpression.length; i=i+1 ) {
if( $scope.sortExpression[i][0] === expr[0] ) {
if( $scope.sortExpression[i][2] ) {
element.removeClass( "tablesort-desc" );
element.addClass( "tablesort-asc" );
$scope.sortExpression[i][2] = false;
}
else {
element.removeClass( "tablesort-asc" );
element.addClass( "tablesort-desc" );
$scope.sortExpression[i][2] = true;
}
toggle_order = true;
}
}
if( !toggle_order ) {
element.addClass( "tablesort-asc" );
$scope.sortExpression.push( expr );
}
};
this.setTrackBy = function( trackBy ) {
$scope.trackBy = trackBy;
};
this.registerHeading = function( headingelement ) {
$scope.headings.push( headingelement );
};
$scope.sortFun = function( a, b ) {
var i, aval, bval, descending, filterFun;
for( i=0; i<$scope.sortExpression.length; i=i+1 ){
aval = $scope.sortExpression[i][0](a);
bval = $scope.sortExpression[i][0](b);
filterFun = b[$scope.sortExpression[i][1]];
if( filterFun ) {
aval = filterFun( aval );
bval = filterFun( bval );
}
if( aval === undefined || aval === null ) {
aval = "";
}
if( bval === undefined || bval === null ) {
bval = "";
}
descending = $scope.sortExpression[i][2];
if( aval > bval ) {
return descending ? -1 : 1;
}
else if( aval < bval ) {
return descending ? 1 : -1;
}
}
// All the sort fields were equal. If there is a "track by" expression,
// use that as a tiebreaker to make the sort result stable.
if( $scope.trackBy ) {
aval = a[$scope.trackBy];
bval = b[$scope.trackBy];
if( aval === undefined || aval === null ) {
aval = "";
}
if( bval === undefined || bval === null ) {
bval = "";
}
if( aval > bval ) {
return descending ? -1 : 1;
}
else if( aval < bval ) {
return descending ? 1 : -1;
}
}
return 0;
};
}]
};
}]);
tableSortModule.directive('tsCriteria', function() {
return {
require: "^tsWrapper",
link: function(scope, element, attrs, tsWrapperCtrl) {
var clickingCallback = function(event) {
scope.$apply( function() {
if( event.shiftKey ) {
tsWrapperCtrl.addSortField(attrs.tsCriteria, element);
}
else {
tsWrapperCtrl.setSortField(attrs.tsCriteria, element);
}
} );
};
element.bind('click', clickingCallback);
element.addClass('tablesort-sortable');
if( "tsDefault" in attrs && attrs.tsDefault !== "0" ) {
tsWrapperCtrl.addSortField( attrs.tsCriteria, element );
if( attrs.tsDefault == "descending" ) {
tsWrapperCtrl.addSortField( attrs.tsCriteria, element );
}
}
tsWrapperCtrl.registerHeading( element );
}
};
});
tableSortModule.directive("tsRepeat", ['$compile', function($compile) {
return {
terminal: true,
multiElement: true,
require: "^tsWrapper",
priority: 1000000,
link: function(scope, element, attrs, tsWrapperCtrl) {
var repeatAttrs = ["ng-repeat", "data-ng-repeat", "ng-repeat-start", "data-ng-repeat-start"];
var ngRepeatDirective = repeatAttrs[0];
var tsRepeatDirective = "ts-repeat";
for (var i = 0; i < repeatAttrs.length; i++) {
if (angular.isDefined(element.attr(repeatAttrs[i]))) {
ngRepeatDirective = repeatAttrs[i];
tsRepeatDirective = ngRepeatDirective.replace(/^(data-)?ng/, '$1ts');
break;
}
}
var repeatExpr = element.attr(ngRepeatDirective);
var trackBy = null;
var trackByMatch = repeatExpr.match(/\s+track\s+by\s+\S+?\.(\S+)/);
if( trackByMatch ) {
trackBy = trackByMatch[1];
tsWrapperCtrl.setTrackBy(trackBy);
}
if (repeatExpr.search(/tablesort/) != -1) {
repeatExpr = repeatExpr.replace(/tablesort/,"tablesortOrderBy:sortFun");
} else {
repeatExpr = repeatExpr.replace(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(\s+track\s+by\s+[\s\S]+?)?\s*$/,
"$1 in $2 | tablesortOrderBy:sortFun$3");
}
if (angular.isUndefined(attrs.tsHideNoData)) {
var noDataRow = angular.element(element[0]).clone();
noDataRow.removeAttr(ngRepeatDirective);
noDataRow.removeAttr(tsRepeatDirective);
noDataRow.addClass("showIfLast");
noDataRow.children().remove();
noDataRow.append('<td colspan="' + element[0].childElementCount + '"></td>');
noDataRow = $compile(noDataRow)(scope);
element.parent().prepend(noDataRow);
}
angular.element(element[0]).attr(ngRepeatDirective, repeatExpr);
$compile(element, null, 1000000)(scope);
}
};
}]);
tableSortModule.filter( 'tablesortOrderBy', function(){
return function(array, sortfun ) {
if(!array) return;
var arrayCopy = [];
for ( var i = 0; i < array.length; i++) { arrayCopy.push(array[i]); }
return arrayCopy.sort( sortfun );
};
} );
tableSortModule.filter( 'parseInt', function(){
return function(input) {
return parseInt( input ) || null;
};
} );
tableSortModule.filter( 'parseFloat', function(){
return function(input) {
return parseFloat( input ) || null;
};
} );
+12
View File
@@ -0,0 +1,12 @@
{
"name": "angular-tablesort",
"version": "1.1.2",
"description": "Sort angularjs tables easily",
"main": "index.js",
"repository": {
"type": "git",
"url": "https://github.com/mattiash/angular-tablesort.git"
},
"license": "MIT",
"homepage": "https://github.com/mattiash/angular-tablesort"
}
+56
View File
@@ -0,0 +1,56 @@
th.tablesort-sortable {
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-o-user-select: none;
user-select: none;
cursor: pointer;
}
table .tablesort-sortable:after{
content:"";
float:right;
margin-top:7px;
visibility:hidden;
border-left:4px solid transparent;
border-right:4px solid transparent;
border-top:none;
border-bottom:4px solid #000;
}
table .tablesort-desc:after{
border-top:4px solid #000;
border-bottom:none;
}
table .tablesort-asc,table .tablesort-desc{
background-color:rgba(141, 192, 219, 0.25);
}
table .tablesort-sortable:hover:after, table .tablesort-asc:after, table .tablesort-desc:after {
visibility:visible;
}
/*
* Styling for the table row shown in empty tables
*/
/* The row is always added as the first row in a table
Hide it by default */
.showIfLast {
display: none;
}
/* Only show it if it is also the last row of the table. */
.showIfLast:last-child {
display: table-row;
}
.showIfLast td {
text-align: center;
}
.showIfLast td:after {
content: "No data";
}
+156 -125
View File
@@ -20,10 +20,10 @@
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
/*******************************************************************************************************
* abgabe_assistenz
* abgabe_assistenz ist die Assistenzoberfläche des Abgabesystems
* abgabe_assistenz ist die Assistenzoberfläche des Abgabesystems
* für Diplom- und Bachelorarbeiten
*******************************************************************************************************/
require_once('../../config/vilesci.config.inc.php');
@@ -61,7 +61,7 @@ if(isset($_GET['id']) && isset($_GET['uid']) && isset($_GET['pdfread']))
header('Content-Type: application/octet-stream');
header('Content-disposition: attachment; filename="'.$file.'"');
echo readfile($filename);
exit();
exit();
}
if (!$db = new basis_db())
@@ -85,8 +85,8 @@ if(!isset($_POST['uid']))
$kurzbz = '';
if($projektarbeit_id!='-1')
{
$qry_stg="SELECT tbl_studiengang.* FROM public.tbl_studiengang
JOIN lehre.tbl_lehrveranstaltung USING(studiengang_kz)
$qry_stg="SELECT tbl_studiengang.* FROM public.tbl_studiengang
JOIN lehre.tbl_lehrveranstaltung USING(studiengang_kz)
JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
JOIN lehre.tbl_projektarbeit USING(lehreinheit_id)
WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER);
@@ -97,24 +97,24 @@ if(!isset($_POST['uid']))
$stgbez=$row_stg->bezeichnung;
$stg_kz=$row_stg->studiengang_kz;
}
else
else
{
echo "<font color=\"#FF0000\">Fehler beim Laden des Studiengangs!</font><br>&nbsp;";
exit;
}
}
else
else
{
echo "<font color=\"#FF0000\">Studiengang konnte nicht gefunden werden!</font><br>&nbsp;";
exit;
}
}
else
else
{
exit;
}
}
else
else
{
$uid = (isset($_POST['uid'])?$_POST['uid']:'-1');
$projektarbeit_id = (isset($_POST['projektarbeit_id'])?$_POST['projektarbeit_id']:'-1');
@@ -201,8 +201,8 @@ if(isset($_POST["schick"]))
$row_std=$db->db_fetch_object($result_std);
if($command=='insert')
{
$qrychk="SELECT * FROM campus.tbl_paabgabe
WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." AND paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz)."
$qrychk="SELECT * FROM campus.tbl_paabgabe
WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." AND paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz)."
AND fixtermin=".($fixtermin==1?'true':'false')." AND datum=".$db->db_add_param($datum)." AND kurzbz=".$db->db_add_param($kurzbz);
if($result=$db->db_query($qrychk))
{
@@ -210,32 +210,32 @@ if(isset($_POST["schick"]))
{
//Datensatz bereits vorhanden
}
else
else
{
//neuer Termin
$qry="INSERT INTO campus.tbl_paabgabe (projektarbeit_id, paabgabetyp_kurzbz,
fixtermin, datum, kurzbz, abgabedatum, insertvon, insertamum, updatevon, updateamum)
$qry="INSERT INTO campus.tbl_paabgabe (projektarbeit_id, paabgabetyp_kurzbz,
fixtermin, datum, kurzbz, abgabedatum, insertvon, insertamum, updatevon, updateamum)
VALUES (".$db->db_add_param($projektarbeit_id).", ".
$db->db_add_param($paabgabetyp_kurzbz).", ".($fixtermin==1?'true':'false').", ".
$db->db_add_param($datum).",".
$db->db_add_param($kurzbz).", NULL, ".
$db->db_add_param($user).", now(), NULL, NULL)";
//echo $qry;
//echo $qry;
if(!$result=$db->db_query($qry))
{
echo "<font color=\"#FF0000\">Termin konnte nicht eingetragen werden!</font><br>";
echo "<font color=\"#FF0000\">Termin konnte nicht eingetragen werden!</font><br>";
}
else
else
{
$row=$db->db_fetch_object($result);
$qry_typ="SELECT bezeichnung FROM campus.tbl_paabgabetyp
$qry_typ="SELECT bezeichnung FROM campus.tbl_paabgabetyp
WHERE paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz);
if($result_typ=$db->db_query($qry_typ))
{
$row_typ=$db->db_fetch_object($result_typ);
}
else
else
{
$row_typ->bezeichnung='';
}
@@ -247,20 +247,20 @@ if(isset($_POST["schick"]))
$mail->setReplyTo($user."@".DOMAIN);
if(!$mail->send())
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den Studierenden!</font><br>";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den Studierenden!</font><br>";
}
else
{
echo "Mail verschickt an: ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)."<br>";
}
}
//Mail an Erstbegutachter
$qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
public.tbl_mitarbeiter.mitarbeiter_uid, anrede
$qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
public.tbl_mitarbeiter.mitarbeiter_uid, anrede
FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid)
LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid)
WHERE mitarbeiter_uid=".$db->db_add_param($erst);
if(!$betr=$db->db_query($qry_betr))
{
@@ -277,19 +277,19 @@ if(isset($_POST["schick"]))
$mail->setReplyTo($user."@".DOMAIN);
if(!$mail->send())
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den (Erst-)Begutachter! ($row_betr->first)</font><br>";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den (Erst-)Begutachter! ($row_betr->first)</font><br>";
}
else
else
{
echo "Mail verschickt an Erstbegutachter: ".$row_betr->first."<br>";
}
}
else
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)! ($row_betr->first ist kein Mitarbeiter)</font><br>&nbsp;<br>";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)! ($row_betr->first ist kein Mitarbeiter)</font><br>&nbsp;<br>";
}
}
else
else
{
echo "<font color=\"#FF0000\">Erstbegutachter nicht gefunden. Kein Mail verschickt!</font><br>;";
}
@@ -297,10 +297,13 @@ if(isset($_POST["schick"]))
//Mail an Zweitbegutachter
if($p2id!='')
{
$qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
anrede, kontakt
FROM public.tbl_person JOIN public.tbl_kontakt USING(person_id)
WHERE person_id=".$db->db_add_param($p2id, FHC_INTEGER)." AND kontakttyp='email' AND zustellung LIMIT 1";
$qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
anrede, kontakt, tbl_benutzer.uid
FROM
public.tbl_person
JOIN public.tbl_kontakt USING(person_id)
LEFT JOIN public.tbl_benutzer USING(person_id)
WHERE person_id=".$db->db_add_param($p2id, FHC_INTEGER)." AND kontakttyp='email' AND zustellung AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv is null) LIMIT 1";
if(!$betr=$db->db_query($qry_betr))
{
echo "<font color=\"#FF0000\">Fehler beim Laden des Zweitbegutachters!</font><br>";
@@ -309,19 +312,23 @@ if(isset($_POST["schick"]))
{
if($row_betr=$db->db_fetch_object($betr))
{
$mail = new mail($row_betr->kontakt, "no-reply@".DOMAIN, "Neuer Termin Bachelor-/Masterarbeitsbetreuung bei Studiengang $stgbez",
if($row_betr->uid!='')
$to = $row_betr->uid.'@'.DOMAIN;
else
$to = $row_betr->kontakt;
$mail = new mail($to, "no-reply@".DOMAIN, "Neuer Termin Bachelor-/Masterarbeitsbetreuung bei Studiengang $stgbez",
"Sehr geehrte".($row_betr->anrede=="Herr"?"r":"")." ".$row_betr->anrede." ".$row_betr->first."!\n\nDer Studiengang $stgbez hat einen neuen Termin angelegt für Ihre Betreuung von ".($row_std->anrede=="Herr"?"Herrn":$row_std->anrede)." ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost).":\n".($fixtermin==1?'Fixer Termin':'Variabler Termin').", ".$datum_obj->formatDatum($datum,'d.m.Y').", ".$row_typ->bezeichnung.", ".$kurzbz."\n\nMfG\nDie Studiengangsassistenz\n\n--------------------------------------------------------------------------\nDies ist ein vom Bachelor-/Masterarbeitsabgabesystem generiertes Info-Mail\n--------------------------------------------------------------------------");
$mail->setReplyTo($user."@".DOMAIN);
if(!$mail->send())
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an (Zweit-)Begutachter(in)! ($erst)</font><br>";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an (Zweit-)Begutachter(in)! ($erst)</font><br>";
}
else
else
{
echo "Mail verschickt an Zweitbegutachter(in): ".$row_betr->first."<br>";
echo "Mail verschickt an Zweitbegutachter(in): ".$row_betr->first.' '.$to."<br>";
}
}
else
else
{
echo "<font color=\"#FF0000\">Zweitbegutachter(in) nicht gefunden. Kein Mail verschickt! ($p2id)</font><br>";
}
@@ -331,7 +338,7 @@ if(isset($_POST["schick"]))
$command='';
}
}
else
else
{
echo "Datenbank-Zugriffsfehler!";
}
@@ -343,9 +350,9 @@ if(isset($_POST["schick"]))
$qry_old="SELECT * FROM campus.tbl_paabgabe WHERE paabgabe_id=".$db->db_add_param($paabgabe_id, FHC_INTEGER);
if(!$result_old=$db->db_query($qry_old))
{
echo "<font color=\"#FF0000\">Termin konnte nicht gefunden werden!</font><br>&nbsp;";
echo "<font color=\"#FF0000\">Termin konnte nicht gefunden werden!</font><br>&nbsp;";
}
else
else
{
$row_old=$db->db_fetch_object($result_old);
//Abgabetyp
@@ -355,26 +362,26 @@ if(isset($_POST["schick"]))
$row_told=$db->db_fetch_object($result_told);
$obezeichnung=$row_told->bezeichnung;
}
else
else
{
$obezeichnung='';
}
//Termin updaten
$qry="UPDATE campus.tbl_paabgabe SET
projektarbeit_id = ".$db->db_add_param($projektarbeit_id, FHC_INTEGER).",
paabgabetyp_kurzbz = ".$db->db_add_param($paabgabetyp_kurzbz).",
fixtermin = ".($fixtermin==1?'true':'false').",
datum = ".$db->db_add_param($datum).",
kurzbz = ".$db->db_add_param($kurzbz).",
updatevon = ".$db->db_add_param($user).",
updateamum = now()
projektarbeit_id = ".$db->db_add_param($projektarbeit_id, FHC_INTEGER).",
paabgabetyp_kurzbz = ".$db->db_add_param($paabgabetyp_kurzbz).",
fixtermin = ".($fixtermin==1?'true':'false').",
datum = ".$db->db_add_param($datum).",
kurzbz = ".$db->db_add_param($kurzbz).",
updatevon = ".$db->db_add_param($user).",
updateamum = now()
WHERE paabgabe_id=".$db->db_add_param($paabgabe_id, FHC_INTEGER);
//echo $qry;
//echo $qry;
if(!$result=$db->db_query($qry))
{
echo "<font color=\"#FF0000\">Termin&auml;nderung konnte nicht eingetragen werden!</font><br>";
echo "<font color=\"#FF0000\">Termin&auml;nderung konnte nicht eingetragen werden!</font><br>";
}
else
else
{
//Abgabetyp
$qry_told="SELECT bezeichnung FROM campus.tbl_paabgabetyp WHERE paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz);
@@ -383,7 +390,7 @@ if(isset($_POST["schick"]))
$row_typ=$db->db_fetch_object($result_told);
$bezeichnung=$row_typ->bezeichnung;
}
else
else
{
$bezeichnung='';
}
@@ -395,20 +402,20 @@ if(isset($_POST["schick"]))
$mail->setReplyTo($user."@".DOMAIN);
if(!$mail->send())
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den Studierenden!</font><br>";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den Studierenden!</font><br>";
}
else
{
echo "Mail verschickt an: ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)."<br>";
}
}
//Mail an Erstbegutachter
$qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
public.tbl_mitarbeiter.mitarbeiter_uid, anrede
$qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
public.tbl_mitarbeiter.mitarbeiter_uid, anrede
FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid)
LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid)
WHERE mitarbeiter_uid=".$db->db_add_param($erst);
if(!$betr=$db->db_query($qry_betr))
{
@@ -423,14 +430,14 @@ if(isset($_POST["schick"]))
$mail->setReplyTo($user."@".DOMAIN);
if(!$mail->send())
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an (Erst-)Begutachter(in)!</font><br>";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an (Erst-)Begutachter(in)!</font><br>";
}
else
else
{
echo "Mail verschickt an Erstbegutachter(in): ".$row_betr->first."<br>";
}
}
else
else
{
echo "<font color=\"#FF0000\">Erstbegutachter(in) nicht gefunden. Kein Mail verschickt!</font><br>";
}
@@ -438,10 +445,18 @@ if(isset($_POST["schick"]))
//Mail an Zweitbegutachter
if($p2id!='')
{
$qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
anrede, kontakt
FROM public.tbl_person JOIN public.tbl_kontakt USING(person_id)
WHERE person_id=".$db->db_add_param($p2id, FHC_INTEGER)." AND kontakttyp='email' AND zustellung LIMIT 1";
$qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
anrede, kontakt, tbl_benutzer.uid
FROM
public.tbl_person
JOIN public.tbl_kontakt USING(person_id)
LEFT JOIN public.tbl_benutzer USING(person_id)
WHERE
person_id=".$db->db_add_param($p2id, FHC_INTEGER)."
AND kontakttyp='email'
AND zustellung
AND (tbl_benutzer.aktiv OR tbl_benutzer is null)
LIMIT 1";
if(!$betr=$db->db_query($qry_betr))
{
echo "<font color=\"#FF0000\">Fehler beim Laden von Zweitbegutachter(in)!</font><br>";
@@ -450,19 +465,23 @@ if(isset($_POST["schick"]))
{
if($row_betr=$db->db_fetch_object($betr))
{
$mail = new mail($row_betr->kontakt, "no-reply@".DOMAIN, "Terminänderung Bachelor-/Masterarbeitsbetreuung bei Studiengang $stgbez",
if($row_betr->uid!='')
$to = $row_betr->uid.'@'.DOMAIN;
else
$to = $row_betr->kontakt;
$mail = new mail($to, "no-reply@".DOMAIN, "Terminänderung Bachelor-/Masterarbeitsbetreuung bei Studiengang $stgbez",
"Sehr geehrte".($row_betr->anrede=="Herr"?"r":"")." ".$row_betr->anrede." ".$row_betr->first."!\n\nDer Studiengang $stgbez hat einen Termin geändert für Ihre Betreuung von ".($row_std->anrede=="Herr"?"Herrn":$row_std->anrede)." ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)."\nVon: ".($row_old->fixtermin=='t'?'Fixer Termin':'Variabler Termin').", ".$datum_obj->formatDatum($row_old->datum,'d.m.Y').", ".$obezeichnung.", ".$row_old->kurzbz."\nAuf: ".($fixtermin==1?'Fixer Termin':'Variabler Termin').", ".$datum_obj->formatDatum($datum,'d.m.Y').", ".$bezeichnung." ".$kurzbz."\n\nMfG\nDie Studiengangsassistenz\n\n--------------------------------------------------------------------------\nDies ist ein vom Bachelor-/Masterarbeitsabgabesystem generiertes Info-Mail\ncis->Mein CIS->Bachelor- und Masterarbeitsabgabe\n--------------------------------------------------------------------------");
$mail->setReplyTo($user."@".DOMAIN);
if(!$mail->send())
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an (Zweit-)Begutachter(in)! ($erst)</font><br>";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an (Zweit-)Begutachter(in)! ($erst)</font><br>";
}
else
else
{
echo "Mail verschickt an Zweitbegutachter(in): ".$row_betr->first."<br>";
echo "Mail verschickt an Zweitbegutachter(in): ".$row_betr->first.' '.$to."<br>";
}
}
else
else
{
echo "<font color=\"#FF0000\">Zweitbegutachter(in) nicht gefunden. Kein Mail verschickt! ($p2id)</font><br>";
}
@@ -474,7 +493,7 @@ if(isset($_POST["schick"]))
}
}
}
else
else
{
echo "<font color=\"#FF0000\">Datumseingabe ung&uuml;ltig!</font><br>&nbsp;";
}
@@ -489,9 +508,9 @@ if(isset($_POST["del"]))
$qry_old="SELECT * FROM campus.tbl_paabgabe WHERE paabgabe_id=".$db->db_add_param($paabgabe_id);
if(!$result_old=$db->db_query($qry_old))
{
echo "<font color=\"#FF0000\">Termin konnte nicht gefunden werden!</font><br>&nbsp;";
echo "<font color=\"#FF0000\">Termin konnte nicht gefunden werden!</font><br>&nbsp;";
}
else
else
{
$row_old=$db->db_fetch_object($result_old);
$qry_std="SELECT * FROM campus.vw_benutzer where uid=".$db->db_add_param($uid);
@@ -507,7 +526,7 @@ if(isset($_POST["del"]))
{
echo "<font color=\"#FF0000\">Fehler beim L&ouml;schen des Termins!</font><br>&nbsp;";
}
else
else
{
//Mail an Studierenden
if($row_old->paabgabetyp_kurzbz !='note')
@@ -517,20 +536,20 @@ if(isset($_POST["del"]))
$mail->setReplyTo($user."@".DOMAIN);
if(!$mail->send())
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails!</font><br>&nbsp;";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails!</font><br>&nbsp;";
}
else
{
echo "Mail verschickt an: ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)."<br>";
}
}
//Mail an Erstbegutachter
$qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
public.tbl_mitarbeiter.mitarbeiter_uid, anrede
$qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
public.tbl_mitarbeiter.mitarbeiter_uid, anrede
FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid)
LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid)
WHERE mitarbeiter_uid=".$db->db_add_param($erst);
if(!$betr=$db->db_query($qry_betr))
{
@@ -545,14 +564,14 @@ if(isset($_POST["del"]))
$mail->setReplyTo($user."@".DOMAIN);
if(!$mail->send())
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)!</font><br>&nbsp;";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)!</font><br>&nbsp;";
}
else
else
{
echo "Mail verschickt an: ".$row_betr->first."<br>";
}
}
else
else
{
echo "<font color=\"#FF0000\">Begutachter(in) nicht gefunden. Kein Mail verschickt!</font><br>&nbsp;";
}
@@ -560,10 +579,18 @@ if(isset($_POST["del"]))
//Mail an Zweitbegutachter
if($p2id!='')
{
$qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
anrede, kontakt
FROM public.tbl_person JOIN public.tbl_kontakt USING(person_id)
WHERE person_id=".$db->db_add_param($p2id, FHC_INTEGER)." AND kontakttyp='email' AND zustellung LIMIT 1";
$qry_betr="SELECT DISTINCT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
anrede, kontakt, tbl_benutzer.uid
FROM
public.tbl_person
JOIN public.tbl_kontakt USING(person_id)
LEFT JOIN public.tbl_benutzer USING(person_id)
WHERE
person_id=".$db->db_add_param($p2id, FHC_INTEGER)."
AND kontakttyp='email'
AND zustellung
AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv is null)
LIMIT 1";
if(!$betr=$db->db_query($qry_betr))
{
echo "<font color=\"#FF0000\">Fehler beim Laden von Zweitbegutachter(in)!</font><br>&nbsp;";
@@ -572,19 +599,23 @@ if(isset($_POST["del"]))
{
if($row_betr=$db->db_fetch_object($betr))
{
$mail = new mail($row_betr->kontakt, "no-reply@".DOMAIN, "Termin Bachelor-/Masterarbeitsbetreuung bei Studiengang $stgbez",
if($row_betr->uid!='')
$to = $row_betr->uid.'@'.DOMAIN;
else
$to = $row_betr->kontakt;
$mail = new mail($to, "no-reply@".DOMAIN, "Termin Bachelor-/Masterarbeitsbetreuung bei Studiengang $stgbez",
"Sehr geehrte".($row_betr->anrede=="Herr"?"r":"")." ".$row_betr->anrede." ".$row_betr->first."!\n\nDer Studiengang $stgbez hat einen Termin entfernt für Ihre Betreuung von ".($row_std->anrede=="Herr"?"Herrn":$row_std->anrede)." ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)."\n".$datum_obj->formatDatum($row_old->datum,'d.m.Y').", ".$row_old->kurzbz."\n\nMfG\nDie Studiengangsassistenz\n\n--------------------------------------------------------------------------\nDies ist ein vom Bachelor-/Masterarbeitsabgabesystem generiertes Info-Mail\ncis->Mein CIS->Bachelor- und Masterarbeitsabgabe\n--------------------------------------------------------------------------");
$mail->setReplyTo($user."@".DOMAIN);
if(!$mail->send())
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an (Zweit-)Begutachter(in)! ($erst)</font><br>&nbsp;";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an (Zweit-)Begutachter(in)! ($erst)</font><br>&nbsp;";
}
else
else
{
echo "Mail verschickt an Zweitbetreuer(in): ".$row_betr->first."<br>";
echo "Mail verschickt an Zweitbetreuer(in): ".$row_betr->first.' '.$to."<br>";
}
}
else
else
{
echo "<font color=\"#FF0000\">Zweitbegutachter(in) nicht gefunden. Kein Mail verschickt! ($p2id)</font><br>&nbsp;";
}
@@ -594,7 +625,7 @@ if(isset($_POST["del"]))
}
}
}
else
else
{
echo "<font color=\"#FF0000\">Datumseingabe ung&uuml;ltig!</font><br>&nbsp;";
}
@@ -605,16 +636,16 @@ if(isset($_POST["enda"]))
{
//Abgabetermin mit akt. Datum speichern
$qry="UPDATE campus.tbl_paabgabe SET
abgabedatum = now(),
updatevon = ".$db->db_add_param($user).",
updateamum = now()
abgabedatum = now(),
updatevon = ".$db->db_add_param($user).",
updateamum = now()
WHERE paabgabe_id=".$db->db_add_param($paabgabe_id, FHC_INTEGER);
//echo $qry;
//echo $qry;
if(!$result=$db->db_query($qry))
{
echo "<font color=\"#FF0000\">Terminbest&auml;tigung konnte nicht eingetragen werden!</font><br>&nbsp;";
echo "<font color=\"#FF0000\">Terminbest&auml;tigung konnte nicht eingetragen werden!</font><br>&nbsp;";
}
else
else
{
echo "Endabgabe-Best&auml;tigungsdatum wurde eingetragen.";
}
@@ -624,16 +655,16 @@ if(isset($_POST["note"]))
{
//Abgabetermin mit akt. Datum speichern
$qry="UPDATE campus.tbl_paabgabe SET
abgabedatum = now(),
updatevon = ".$db->db_add_param($user).",
updateamum = now()
abgabedatum = now(),
updatevon = ".$db->db_add_param($user).",
updateamum = now()
WHERE paabgabe_id=".$db->db_add_param($paabgabe_id, FHC_INTEGER);
//echo $qry;
//echo $qry;
if(!$result=$db->db_query($qry))
{
echo "<font color=\"#FF0000\">Terminbest&auml;tigung konnte nicht eingetragen werden!</font><br>&nbsp;";
echo "<font color=\"#FF0000\">Terminbest&auml;tigung konnte nicht eingetragen werden!</font><br>&nbsp;";
}
else
else
{
echo "Benotung-Best&auml;tigungsdatum wurde eingetragen.";
}
@@ -685,14 +716,14 @@ $htmlstr .= "<tr><td>fix</td><td>Datum</td><td>Abgabetyp</td><td>Kurzbeschreibun
$bgcol='#FFFF00';
$fcol='#000000';
}
else
else
{
//"normaler" Termin - schwarz auf weiß
$bgcol='#FFFFFF';
$fcol='#000000';
}
}
else
else
{
if($row->abgabedatum>$row->datum)
{
@@ -700,7 +731,7 @@ $htmlstr .= "<tr><td>fix</td><td>Datum</td><td>Abgabetyp</td><td>Kurzbeschreibun
$bgcol='#EA7B7B';
$fcol='#FFFFFF';
}
else
else
{
//Abgabe vor Termin - schwarz auf grün
$bgcol='#00FF00';
@@ -720,26 +751,26 @@ $htmlstr .= "<tr><td>fix</td><td>Datum</td><td>Abgabetyp</td><td>Kurzbeschreibun
{
$htmlstr .= " <option value='".$row_typ->paabgabetyp_kurzbz."' selected>$row_typ->bezeichnung</option>";
}
else
else
{
$htmlstr .= " <option value='".$row_typ->paabgabetyp_kurzbz."'>$row_typ->bezeichnung</option>";
}
}
}
$htmlstr .= " </select></td>\n";
$htmlstr .= " <td><input type='text' name='kurzbz' value='".htmlspecialchars($row->kurzbz,ENT_QUOTES)."' size='60' maxlegth='256'></td>\n";
$htmlstr .= " <td><input type='text' name='kurzbz' value='".htmlspecialchars($row->kurzbz,ENT_QUOTES)."' size='60' maxlegth='256'></td>\n";
$htmlstr .= " <td>".($row->abgabedatum==''?'&nbsp;':$datum_obj->formatDatum($row->abgabedatum,'d.m.Y'))."</td>\n";
$htmlstr .= " <td><input type='submit' name='schick' value='speichern' title='Termin&auml;nderung speichern'></td>";
if(!$row->abgabedatum)
{
$htmlstr .= " <td><input type='submit' name='del' value='l&ouml;schen' onclick='return confdel()' title='Termin l&ouml;schen'></td>";
}
else
else
{
$htmlstr .= " <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>";
}
if($row->paabgabetyp_kurzbz=='enda' && $row->abgabedatum==NULL)
{
$htmlstr .= " <td width=50px><input type='submit' name='enda' value='best&auml;tigen' title='Endabgabe best&auml;tigen'></td>";
@@ -748,13 +779,13 @@ $htmlstr .= "<tr><td>fix</td><td>Datum</td><td>Abgabetyp</td><td>Kurzbeschreibun
{
$htmlstr .= " <td width=50px><input type='submit' name='note' value='best&auml;tigen' title='Notenabgabe best&auml;tigen'></td>";
}
else
else
{
if(file_exists(PAABGABE_PATH.$row->paabgabe_id.'_'.$uid.'.pdf'))
{
$htmlstr .= " <td align=center><a href='".$_SERVER['PHP_SELF']."?id=".$row->paabgabe_id."&uid=$uid&pdfread=1' target='_blank'><img src='../../skin/images/pdf.ico' alt='PDF' title='abgegebene Datei' border=0></a></td>";
}
else
else
{
$htmlstr .= " <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>";
}
@@ -762,15 +793,15 @@ $htmlstr .= "<tr><td>fix</td><td>Datum</td><td>Abgabetyp</td><td>Kurzbeschreibun
{
$htmlstr .= " <td align=center><a href='abgabe_assistenz_zusatz.php?paabgabe_id=".$row->paabgabe_id."&uid=$uid&projektarbeit_id=$projektarbeit_id' target='_blank'><img src='../../skin/images/folder.gif' alt='zus&auml;tzliche Daten' title='Kontrolle der Zusatzdaten' border=0></a></td>";
}
else
else
{
$htmlstr .= " <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>";
}
}
$htmlstr .= " </tr>\n";
$htmlstr .= "</form>\n";
}
}
//Eingabezeile für neuen Termin
$htmlstr .= '<form action="'.htmlspecialchars($_SERVER['PHP_SELF']).'" method="POST" onsubmit="return checksubmit()" name="'.$db->convert_html_chars($projektarbeit_id).'">'."\n";
$htmlstr .= '<input type="hidden" name="projektarbeit_id" value="'.$db->convert_html_chars($projektarbeit_id).'">'."\n";
@@ -793,11 +824,11 @@ $result_typ=$db->db_query($qry_typ);
while ($result_typ && $row_typ=$db->db_fetch_object($result_typ))
{
$htmlstr .= ' <option value="'.$db->convert_html_chars($row_typ->paabgabetyp_kurzbz).'">'.$db->convert_html_chars($row_typ->bezeichnung).'</option>';
}
}
$htmlstr .= " </select></td>\n";
$htmlstr .= " <td><input type='text' name='kurzbz' size='60' maxlegth='256'></td>\n";
$htmlstr .= " <td>&nbsp;</td>\n";
$htmlstr .= " <td><input type='text' name='kurzbz' size='60' maxlegth='256'></td>\n";
$htmlstr .= " <td>&nbsp;</td>\n";
$htmlstr .= " <td><input type='submit' name='schick' value='speichern' title='neuen Termin speichern'></td>";
$htmlstr .= "</tr>\n";
@@ -805,5 +836,5 @@ $htmlstr .= "</form>\n";
$htmlstr .= "</table>\n";
$htmlstr .= "</body></html>\n";
echo $htmlstr;
echo $htmlstr;
?>
+67 -65
View File
@@ -20,15 +20,15 @@
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
/*******************************************************************************************************
* abgabe_assistenz
* abgabe_assistenz ist die Assistenzoberfläche des Abgabesystems
* abgabe_assistenz ist die Assistenzoberfläche des Abgabesystems
* für Diplom- und Bachelorarbeiten
*******************************************************************************************************/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/basis_db.class.php');
require_once('../../include/basis_db.class.php');
require_once('../../include/functions.inc.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/datum.class.php');
@@ -37,7 +37,7 @@ require_once('../../include/mail.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$i=0;
$zaehl=0;
@@ -49,7 +49,7 @@ foreach($_POST as $key=>$value)
$irgendwas.=substr($key, 3).";";
//echo $irgendwas."<br>";
$i++;
}
}
}
if($i==0 && !isset($_POST["schick"]) && !isset($_POST["plus"]))
{
@@ -79,13 +79,13 @@ if($result_stg=$db->db_query($qry_stg))
{
$stgbez=$row_stg->bezeichnung;
}
else
else
{
echo "<font color=\"#FF0000\">Fehler beim Laden des Studiengangs!</font><br>&nbsp;";
exit;
}
}
else
else
{
echo "<font color=\"#FF0000\">Studiengang konnte nicht gefunden werden!</font><br>&nbsp;";
exit;
@@ -93,7 +93,7 @@ else
if (!$user = get_uid())
die('Keine UID gefunden ! <a href="javascript:history.back()">Zur&uuml;ck</a>');
$datum_obj = new datum();
$error='';
@@ -122,15 +122,15 @@ for ($x=0;$x<count($paabgabetyp_kurzbz);$x++)
$error.='Datum '.$datum[$x].' falsch! Kurzbeschreibung:'.$kurzbz[$x];
}
}
else
{
else
{
$error.='Datum '.$datum[$x].' falsch! Kurzbeschreibung:'.$kurzbz[$x];
$datum[$x]='';
}
}
else
else
{
$datum[$x]='';
$datum[$x]='';
$error.='Datum fehlt! Kurzbeschreibung:'.$kurzbz[$x];
}
}
@@ -149,24 +149,24 @@ if(isset($_POST["schick"]) && $error=='')
for ($x=0;$x<count($paabgabetyp_kurzbz);$x++)
{
//schleife termine
$qrychk="SELECT * FROM campus.tbl_paabgabe
WHERE projektarbeit_id=".$db->db_add_param($termine[$j], FHC_INTEGER)."
AND paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz[$x])."
AND fixtermin=".($fixtermin[$x]==1?'true':'false')."
AND datum=".$db->db_add_param($datum[$x])."
$qrychk="SELECT * FROM campus.tbl_paabgabe
WHERE projektarbeit_id=".$db->db_add_param($termine[$j], FHC_INTEGER)."
AND paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz[$x])."
AND fixtermin=".($fixtermin[$x]==1?'true':'false')."
AND datum=".$db->db_add_param($datum[$x])."
AND kurzbz=".$db->db_add_param($kurzbz[$x]);
//echo $qrychk;
if($result=$db->db_query($qrychk))
{
if($db->db_num_rows($result)>0)
{
echo "Datensatz bereits vorhanden";
}
else
else
{
//echo "neuer Termin";
$qry="INSERT INTO campus.tbl_paabgabe (projektarbeit_id, paabgabetyp_kurzbz, fixtermin,
datum, kurzbz, abgabedatum, insertvon, insertamum, updatevon, updateamum)
$qry="INSERT INTO campus.tbl_paabgabe (projektarbeit_id, paabgabetyp_kurzbz, fixtermin,
datum, kurzbz, abgabedatum, insertvon, insertamum, updatevon, updateamum)
VALUES (".$db->db_add_param($termine[$j]).", ".
$db->db_add_param($paabgabetyp_kurzbz[$x]).", ".
($fixtermin[$x]==1?'true':'false').", ".
@@ -174,12 +174,12 @@ if(isset($_POST["schick"]) && $error=='')
$db->db_add_param($kurzbz[$x]).", NULL, ".
$db->db_add_param($user).", now(), NULL, NULL)";
//echo $qry;
//echo $qry;
if(!$result=$db->db_query($qry))
{
echo "<font color=\"#FF0000\">Termin ($datum[$x], $kurzbz[$x]) konnte nicht eingetragen werden!</font><br>&nbsp;";
echo "<font color=\"#FF0000\">Termin ($datum[$x], $kurzbz[$x]) konnte nicht eingetragen werden!</font><br>&nbsp;";
}
else
else
{
$row=@$db->db_fetch_object($result);
$qry_typ="SELECT bezeichnung FROM campus.tbl_paabgabetyp WHERE paabgabetyp_kurzbz=".$db->db_add_param($paabgabetyp_kurzbz[$x]);
@@ -187,7 +187,7 @@ if(isset($_POST["schick"]) && $error=='')
{
$row_typ=$db->db_fetch_object($result_typ);
}
else
else
{
$row_typ->bezeichnung='';
}
@@ -199,7 +199,7 @@ if(isset($_POST["schick"]) && $error=='')
}
}
}
}
}
//Student zu projektarbeit_id suchen
$qry_std="SELECT * FROM campus.vw_student WHERE uid IN(SELECT student_uid FROM lehre.tbl_projektarbeit WHERE projektarbeit_id=".$db->db_add_param($termine[$j]).")";
if($result_std=$db->db_query($qry_std))
@@ -213,21 +213,21 @@ if(isset($_POST["schick"]) && $error=='')
$mail->setReplyTo($user."@".DOMAIN);
if(!$mail->send())
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an Studierende(n) ($row->nachname)!</font><br>&nbsp;<br>";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an Studierende(n) ($row->nachname)!</font><br>&nbsp;<br>";
}
else
else
{
echo "Mail verschickt an Studierende(n): ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)."<br>";
}
}
//Mail an EINEN Erstbegutachter oder Betreuer
$qry_betr="SELECT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
public.tbl_mitarbeiter.mitarbeiter_uid, anrede
$qry_betr="SELECT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
public.tbl_mitarbeiter.mitarbeiter_uid, anrede
FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid)
WHERE projektarbeit_id=".$db->db_add_param($termine[$j])." AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)
LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid)
WHERE projektarbeit_id=".$db->db_add_param($termine[$j])." AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)
AND (tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Betreuer')";
if(!$betr=$db->db_query($qry_betr))
{
@@ -246,34 +246,34 @@ if(isset($_POST["schick"]) && $error=='')
$mail->setReplyTo($user."@".DOMAIN);
if(!$mail->send())
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)! ($row_betr->first)</font><br>&nbsp;<br>";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)! ($row_betr->first)</font><br>&nbsp;<br>";
}
else
else
{
echo "Mail verschickt an Erstbegutachter(in): ".$row_betr->first."<br>";
}
}
else
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)! ($row_betr->first ist kein Mitarbeiter)</font><br>&nbsp;<br>";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den (Erst-)Begutachter(in)! ($row_betr->first ist kein Mitarbeiter)</font><br>&nbsp;<br>";
}
}
else
else
echo "<font color=\"#FF0000\">Erstbegutachter(in) nicht gefunden. Kein Mail verschickt! (Diplomand: $row->nachname)</font><br>&nbsp;";
}
else
else
{
echo "Erstbegutachter(in) nicht gefunden. Kein Mail verschickt!<br>";
echo "Erstbegutachter(in) nicht gefunden. Kein Mail verschickt!<br>";
}
}
//Mail an Zweitbegutachter
$qry_betr="SELECT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
public.tbl_mitarbeiter.mitarbeiter_uid, anrede, kontakt
$qry_betr="SELECT trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
public.tbl_mitarbeiter.mitarbeiter_uid, anrede, kontakt
FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id)
JOIN public.tbl_kontakt ON(tbl_person.person_id=tbl_kontakt.person_id)
LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid)
WHERE projektarbeit_id=".$db->db_add_param($termine[$j])." AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)
LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id)
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid)
WHERE projektarbeit_id=".$db->db_add_param($termine[$j])." AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)
AND (tbl_projektbetreuer.betreuerart_kurzbz='Zweitbegutachter') AND kontakttyp='email' AND zustellung LIMIT 1";
if(!$betr=$db->db_query($qry_betr))
{
@@ -285,29 +285,31 @@ if(isset($_POST["schick"]) && $error=='')
{
if($row_betr=$db->db_fetch_object($betr))
{
$mail = new mail($row_betr->kontakt, "no-reply@".DOMAIN, "Neuer Termin Bachelor-/Masterarbeitsbetreuung im Studiengang $stgbez",
if($row_betr->mitarbeiter_uid!='')
$to = $row_betr->mitarbeiter_uid.'@'.DOMAIN;
else
$to = $row_betr->kontakt;
$mail = new mail($to, "no-reply@".DOMAIN, "Neuer Termin Bachelor-/Masterarbeitsbetreuung im Studiengang $stgbez",
"Sehr geehrte".($row_betr->anrede=="Herr"?"r":"")." ".$row_betr->anrede." ".$row_betr->first."!\n\nDer Studiengang $stgbez hat (einen) neue(n) Termin(e) angelegt für Ihre Betreuung von ".($row_std->anrede=="Herr"?"Herrn":$row_std->anrede)." ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost).":".$mailtermine_lk."\n\nMfG\nDie Studiengangsassistenz\n\n--------------------------------------------------------------------------\nDies ist ein vom Bachelor-/Masterarbeitsabgabesystem generiertes Info-Mail\n--------------------------------------------------------------------------");
$mail->setReplyTo($user."@".DOMAIN);
if(!$mail->send())
{
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den (Zweit-)Begutachter(in)! ($erst)</font><br>";
echo "<font color=\"#FF0000\">Fehler beim Versenden des Mails an den (Zweit-)Begutachter(in)! ($erst)</font><br>";
}
else
else
{
echo "Mail verschickt an Zweitbetreuer(in): ".$row_betr->first."<br>";
echo "Mail verschickt an Zweitbetreuer(in): ".$row_betr->first.' '.$to."<br>";
}
}
else
else
echo "<font color=\"#FF0000\">Zweitbegutachter(in) nicht gefunden. Kein Mail verschickt!</font><br>";
}
else
else
{
echo "Zweitbegutachter(in) nicht gefunden. Kein Mail verschickt!<br>";
}
//}
}
}
}
exit();
@@ -348,13 +350,13 @@ $htmlstr='';
if(!isset($datum[$x])||empty($datum[$x]))
{
continue;
}
}
$htmlstr .= "<tr id='termin".$x."'>\n";
if(isset($fixtermin[$x])&&!empty($fixtermin[$x]))
{
$htmlstr .= "<td><input type='checkbox' checked='checked' name='fixterminx' onclick='if (this.checked) {document.getElementById(\"fixtermin".($x+1)."\").value=1;}else{document.getElementById(\"fixtermin".($x+1)."\").value=0;}'>";
}
else
else
{
$htmlstr .= "<td><input type='checkbox' name='fixterminx' onclick='if (this.checked) {document.getElementById(\"fixtermin".($x+1)."\").value=1;}else{document.getElementById(\"fixtermin".($x+1)."\").value=0;}'>";
}
@@ -369,15 +371,15 @@ $htmlstr='';
{
$htmlstr .= " <option value='".$row_typ->paabgabetyp_kurzbz."' selected>".$row_typ->bezeichnung."</option>";
}
else
else
{
$htmlstr .= " <option value='".$row_typ->paabgabetyp_kurzbz."'>".$row_typ->bezeichnung."</option>";
}
}
}
$htmlstr .= " </select></td>\n";
$htmlstr .= " <td><input type='text' name='kurzbz[]' size='100' maxlegth='256' value='".$kurzbz[$x]."'></td>\n";
$htmlstr .= " <td>&nbsp;</td>\n";
$htmlstr .= " <td><input type='text' name='kurzbz[]' size='100' maxlegth='256' value='".$kurzbz[$x]."'></td>\n";
$htmlstr .= " <td>&nbsp;</td>\n";
}
//Eingabezeile für neuen Termin
//$htmlstr .= "<b>Abgabetermin:</b>\n";
@@ -386,7 +388,7 @@ $htmlstr='';
$htmlstr .= '<input type="hidden" name="p2id" value="'.$db->convert_html_chars($p2id).'">';
$htmlstr .= "<tr></tr>\n";
$htmlstr .= '<tr id="termin'.($x+1).'">';
$htmlstr .= '<td><input type="checkbox" name="fixterminx" onclick="if (this.checked) {document.getElementById(\"fixtermin".($x+1)."\").value=1;}else{document.getElementById(\"fixtermin".($x+1)."\").value=0;}">';
$htmlstr .= '<td><input type="checkbox" name="fixterminx" onclick="if (this.checked) {document.getElementById(\'fixtermin'.($x+1).'\').value=1;}else{document.getElementById(\'fixtermin'.($x+1).'\').value=0;}">';
$htmlstr .= "<input type='text' style='display:none;' id='fixtermin".($x+1)."' name='fixtermin[]' value='0'></td>";
$htmlstr .= " <td><input type='text' name='datum[]' onchange='checkdatum(this.value)' size='10' maxlegth='10'></td>\n";
$htmlstr .= " <td><select name='paabgabetyp_kurzbz[]'>\n";
@@ -395,16 +397,16 @@ $htmlstr='';
while ($result_typ && $row_typ=$db->db_fetch_object($result_typ))
{
$htmlstr .= " <option value='".$row_typ->paabgabetyp_kurzbz."'>".$row_typ->bezeichnung."</option>";
}
}
$htmlstr .= " </select></td>\n";
$htmlstr .= " <td><input type='text' name='kurzbz[]' size='100' maxlegth='256'></td>\n";
$htmlstr .= " <td><input type='text' name='kurzbz[]' size='100' maxlegth='256'></td>\n";
$htmlstr .= " <td><input type='submit' name='plus' value=' + ' title='weiterer Termin'></td>";
$htmlstr .= "<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td><input type='submit' name='schick' value='speichern' title='neue(n) Termin(e) speichern'></td></tr>";
$htmlstr .= "</tr>\n";
$htmlstr .= "</form>\n";
$htmlstr .= "</table>\n";
$htmlstr .= "</body></html>\n";
echo $htmlstr;
echo '</body></html>';
?>
+21 -15
View File
@@ -17,13 +17,19 @@
*
* Authors: Nikolaus Krondraf <nikolaus.krondraf@technikum-wien.at>
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/stunde.class.php');
require_once('../../include/standort.class.php');
require_once('../../include/benutzerberechtigung.class.php');
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('basis/person'))
die($rechte->errormsg);
$studiengang = new studiengang;
$studiengang->getAll("typ, kurzbz");
$standort = new standort;
@@ -38,25 +44,25 @@ $standort->getAllStandorteWithOrt();
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<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">
<script type="text/javascript" src="../../include/js/jquery1.9.min.js"></script>
<script type="text/javascript" src="../../include/js/jquery1.9.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(document).ready(function()
{
$(".datepicker").datepicker($.datepicker.regional['de']).datepicker("setDate", new Date());
// Dropdown der Lehrveranstaltungen befüllen
$("#stg_kz, #sem").change(function()
$("#stg_kz, #sem").change(function()
{
// alte Optionen entfernen
$("#lvid")
.empty()
.append($('<option>', {value : ''})
.text('-- Alle --'));
var stg_kz = $("#stg_kz").val();
var sem = $("#sem").val();
if(stg_kz != '' && sem != '')
{
// LVs ergänzen
@@ -64,17 +70,17 @@ $standort->getAllStandorteWithOrt();
$.each(data, function(key, value) {
$('#lvid')
.append($('<option>', {value : key})
.text(value));
.text(value));
});
});
}
})
});
function checkDates()
{
var result = true;
if($("#von").val() == '' || $("#bis").val() == '')
{
result = false;
@@ -98,7 +104,7 @@ $standort->getAllStandorteWithOrt();
result = true;
}
}
return result;
}
</script>
@@ -111,7 +117,7 @@ $standort->getAllStandorteWithOrt();
<input type="hidden" name="xsl" value="AnwListBarcode" />
<input type="hidden" name="output" value="pdf" />
<input type="hidden" name="xml" value="anwesenheitsliste.xml.php" />
<table>
<tbody>
<tr>
@@ -170,7 +176,7 @@ $standort->getAllStandorteWithOrt();
<td>
<select name="lvid" id="lvid">
<option value=''>-- Alle --</option>
</select>
</td>
</tr>
+53 -45
View File
@@ -21,7 +21,7 @@
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
/*******************************************************************************
File: funktion_det.php
Descr: Hier werden Personen aufgelistet, die zur in funktion.php ausgewählten
@@ -35,6 +35,7 @@ require_once('../../include/person.class.php');
require_once('../../include/funktion.class.php');
require_once('../../include/benutzerfunktion.class.php');
require_once('../../include/fachbereich.class.php');
require_once('../../include/benutzerberechtigung.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -42,51 +43,58 @@ if (!$db = new basis_db())
// Datenbankverbindung herstellen
$user=get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('mitarbeiter',null,'suid'))
die($rechte->errormsg);
$type='';
if (isset($_POST['type']))
$type=$_POST['type'];
if (isset($_GET['type']))
$type=$_GET['type'];
if(isset($_GET['kurzbz']))
$funktion_kurzbz=$_GET['kurzbz'];
if(isset($_GET['datumvon']))
$datumvon=$_GET['datumvon'];
else
else
$datumvon='';
if(isset($_GET['datumbis']))
$datumbis=$_GET['datumbis'];
else
else
$datumbis='';
// Neue Funktionszuweisung speichern
if ($type=='new' || $type=='editsave')
{
//Einfügen in die Datenbank
$funktion=new benutzerfunktion();
$funktion->uid=$_POST['uid'];
$funktion->funktion_kurzbz=$_POST['kurzbz'];
if (isset($_POST['oe_kurzbz']) && $_POST['oe_kurzbz']!=-1)
{
$funktion->oe_kurzbz=$_POST['oe_kurzbz'];
if (isset($_POST['fb_kurzbz']) && $_POST['fb_kurzbz']!=-1)
{
$funktion->fachbereich_kurzbz=$_POST['fb_kurzbz'];
}
}
else
{
$funktion->fachbereich_kurzbz=null;
}
$funktion->semester = (isset($_POST['semester'])?$_POST['semester']:'');
$funktion->datum_von = $_POST['datumvon'];
$funktion->datum_bis = $_POST['datumbis'];
if($type=='editsave')
{
$funktion->new=false;
@@ -94,21 +102,21 @@ if ($type=='new' || $type=='editsave')
$funktion->updateamum=date('Y-m-d H:i:s');
$funktion->updatevon=$user;
}
else
else
{
$funktion->new=true;
$funktion->updateamum=date('Y-m-d H:i:s');
$funktion->updatevon=$user;
$funktion->insertamum=date('Y-m-d H:i:s');
$funktion->insertvon=$user;
}
}
if (!$funktion->save())
{
echo "Fehler: ".$funktion->errormsg;
}
}
else
else
echo "Studiengang muss angegeben werden";
}
@@ -122,7 +130,7 @@ if ($type=='delete')
{
echo "Benutzer_funktion_id ist keine Zahl";
}
else
else
{
if (!$funktion->delete($bn_funktion_id))
{
@@ -171,23 +179,23 @@ if (!$funktion->load($kurzbz))
if ($type!='edit')
{
// Personen holen
$qry = "SELECT
$qry = "SELECT
tbl_organisationseinheit.bezeichnung as oebezeichnung,
tbl_organisationseinheit.organisationseinheittyp_kurzbz as oetyp,
tbl_benutzer.uid as uid, *
FROM
public.tbl_benutzerfunktion,
public.tbl_person,
public.tbl_benutzer,
tbl_organisationseinheit.organisationseinheittyp_kurzbz as oetyp,
tbl_benutzer.uid as uid, *
FROM
public.tbl_benutzerfunktion,
public.tbl_person,
public.tbl_benutzer,
public.tbl_organisationseinheit
WHERE
WHERE
funktion_kurzbz=".$db->db_add_param($kurzbz)." AND
tbl_benutzerfunktion.uid=tbl_benutzer.uid AND
tbl_benutzer.person_id=tbl_person.person_id AND
tbl_benutzerfunktion.oe_kurzbz=tbl_organisationseinheit.oe_kurzbz";
if($result = $db->db_query($qry))
{
{
echo "<thead>
<tr class='liste'>
<th class='table-sortable:default'>Name</th>
@@ -200,10 +208,10 @@ if (!$funktion->load($kurzbz))
<th colspan=\"2\">Aktion</th>
</tr>
</thead>";
$j=0;
$j=0;
echo '<tbody>';
while($row = $db->db_fetch_object($result))
{
{
$j++;
echo "<tr>";
echo "<td>".$row->nachname.", ".$row->vorname."</td>";
@@ -219,21 +227,21 @@ if (!$funktion->load($kurzbz))
}
echo '</tbody>';
}
}
else
{
echo "Fehler: ". $db->db_last_error();
}
}
echo '
</table>
<hr>
<form action="funktion_det.php" method="post" name="persfunk_neu" id="persfunk_neu">
<p>
';
if ($type=='edit')
{
echo '<INPUT type="hidden" name="type" value="editsave">';
@@ -241,8 +249,8 @@ if (!$funktion->load($kurzbz))
}
else
echo '<INPUT type="hidden" name="type" value="new">';
echo '
echo '
<INPUT type="hidden" name="kurzbz" value="'.$kurzbz.'">
<table>
<tr>
@@ -261,13 +269,13 @@ if (!$funktion->load($kurzbz))
}
echo '</SELECT></td></tr>';
echo '<tr>
<td>Organisationseinheit: </td>
<td>
<SELECT name="oe_kurzbz">
<option value="-1">- auswählen -</option>';
// Auswahl der Organisationseinheit
$num_rows=$db->db_num_rows($result_oe);
while($row=$db->db_fetch_object($result_oe))
@@ -278,11 +286,11 @@ if (!$funktion->load($kurzbz))
echo ">$row->kurzbz $row->bezeichnung</option>";
}
echo '</SELECT></td></tr>';
$funktion = new funktion();
$funktion->load($funktion_kurzbz);
if($funktion->fachbereich)
{
echo '
@@ -291,10 +299,10 @@ if (!$funktion->load($kurzbz))
<td>
<SELECT name="fb_kurzbz">
<option value="-1">- auswählen -</option>';
// Auswahl Fachbereich
$fachbereich=new fachbereich();
if ($fachbereich->getAll())
if ($fachbereich->getAll())
{
foreach($fachbereich->result as $fb)
{
@@ -308,10 +316,10 @@ if (!$funktion->load($kurzbz))
{
echo "Fehler: ".$fb->errormsg;
}
echo '</SELECT></td></tr>';
}
if($funktion->semester)
{
echo '
@@ -320,7 +328,7 @@ if (!$funktion->load($kurzbz))
<td>
<SELECT name="semester">
<option value="">- auswählen -</option>';
for($i=1;$i<=8;$i++)
{
echo "<option value=\"$i\" ";
@@ -328,16 +336,16 @@ if (!$funktion->load($kurzbz))
echo 'selected ';
echo ">$i</option>";
}
echo '</SELECT></td></tr>';
}
echo '<tr><td>Datum Von:</td><td><input type="text" name="datumvon" value="'.$datumvon.'"></td></tr>';
echo '<tr><td>Datum Bis:</td><td><input type="text" name="datumbis" value="'.$datumbis.'"></td></tr>';
echo '</table>';
echo '<input type="submit" name="Submit" value="'.($type!='edit'?'Hinzufügen':'Speichern').'">';
echo '</p></form>';
?>
</body>
+20 -48
View File
@@ -20,30 +20,21 @@
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/basis_db.class.php');
include('../../include/functions.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('mitarbeiter'))
die($rechte->errormsg);
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
if(isset($_GET['fix']) && isset($_GET['uid']))
{
$sql_query = "UPDATE public.tbl_mitarbeiter SET fixangestellt=". ($_GET['fix']=='t'?'false':'true') ." WHERE mitarbeiter_uid='".addslashes($_GET['uid'])."'";
//echo $sql_query;
if(!($erg=$db->db_query($sql_query)))
die($db->db_last_error());
}
if(isset($_GET['lek']) && isset($_GET['uid']))
{
$sql_query = "UPDATE public.tbl_mitarbeiter SET lektor=". ($_GET['lek']=='t'?'false':'true') ." WHERE mitarbeiter_uid='".addslashes($_GET['uid'])."'";
//echo $sql_query;
if(!($erg=$db->db_query($sql_query)))
die($db->db_last_error());
}
?>
<html>
<head>
@@ -52,43 +43,30 @@ if(isset($_GET['lek']) && isset($_GET['uid']))
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../include/js/tablesort/table.css" type="text/css">
<script src="../../include/js/tablesort/table.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">
function confdel()
{
if(confirm("Diesen Datensatz wirklick loeschen?"))
return true;
return false;
}
</script>
</head>
<body class="background_main">
<h2>Mitarbeiter &Uuml;bersicht</h2><br>
<?php
if(isset($_GET['searchstr']))
$searchstr = $_GET['searchstr'];
else
else
$searchstr = '';
echo '
<form accept-charset="UTF-8" name="search" method="GET">
Bitte Suchbegriff eingeben:
<input type="text" name="searchstr" size="30" value="'.$searchstr.'">
Bitte Suchbegriff eingeben:
<input type="text" name="searchstr" size="30" value="'.$db->convert_html_chars($searchstr).'">
<input type="submit" value="Suchen">
</form>';
if(!isset($_GET['searchstr']))
</form>';
if(!isset($_GET['searchstr']))
exit;
$qry = "SELECT vw_mitarbeiter.*, tbl_standort.kurzbz as standort_kurzbz FROM campus.vw_mitarbeiter LEFT JOIN public.tbl_standort USING(standort_id)";
if(!empty($searchstr))
$qry.=" where nachname||' '||vorname ~* '".addslashes($searchstr)."' OR vorname||' '||nachname ~* '".addslashes($searchstr)."' OR uid ~* '".addslashes($searchstr)."' ";
if(isset($order))
$qry .= " ORDER BY $order";
else
$qry .= " ORDER BY nachname, vorname";
$qry.=" where nachname||' '||vorname ~* '".$db->db_escape($searchstr)."' OR vorname||' '||nachname ~* '".$db->db_escape($searchstr)."' OR uid ~* '".$db->db_escape($searchstr)."' ";
$qry .= " ORDER BY nachname, vorname";
if($result = $db->db_query($qry))
{
@@ -120,13 +98,12 @@ if(!isset($_GET['searchstr']))
echo "<td nowrap>".$row->titelpre."</td>";
echo "<td nowrap>".$row->vorname."</td>";
echo "<td nowrap>".$row->nachname."</td>";
echo "<td valign='middle' align='center' nowrap><a href='lektor_uebersicht.php?uid=".$row->uid."&fix=".$row->fixangestellt . (isset($order)?'&order='.$order:'') ."&searchstr=".$searchstr."'><img src='../../skin/images/".($row->fixangestellt=='t'?'true':'false').".png' height='20'></a></td>";
echo "<td valign='middle' align='center' nowrap><a href='lektor_uebersicht.php?uid=".$row->uid."&lek=".$row->lektor . (isset($order)?'&order='.$order:'') ."&searchstr=".$searchstr."'><img src='../../skin/images/".($row->lektor=='t'?'true':'false').".png' height='20'></a></td>";
echo "<td nowrap>".($row->fixangestellt=='t'?'Ja':'Nein')."</td>";
echo "<td nowrap>".($row->lektor=='t'?'Ja':'Nein')."</td>";
echo "<td nowrap>".$row->ort_kurzbz."</td>";
echo "<td nowrap>".$row->standort_kurzbz."</td>";
echo "<td nowrap>".$row->telefonklappe."</td>";
$email=$row->uid.'@'.DOMAIN;
echo "<td nowrap><a href='mailto:$email'>$email</a></td>";
echo "<td nowrap class='button'><a href='personen_details.php?uid=".$row->uid."'>Edit</a></td>";
@@ -142,11 +119,6 @@ if(!isset($_GET['searchstr']))
}
else
echo "Fehler beim Laden der Mitarbeiter: ".$db->db_last_error();
if(isset($_GET['fix']) || isset($_GET['lek'])) //Zum Anker hüpfen
{
echo "<script language='JavaScript'>this.location.hash='#anker1'</script>";
}
?>
</body>
+34 -27
View File
@@ -22,7 +22,7 @@
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/basis_db.class.php');
require_once('../../include/basis_db.class.php');
require_once('../../include/functions.inc.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/person.class.php');
@@ -31,15 +31,22 @@ require_once('../../include/student.class.php');
require_once('../../include/prestudent.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/authentication.class.php');
require_once('../../include/benutzerberechtigung.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$user=get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('basis/person') && !$rechte->isBerechtigt('student/stammdaten') && !$rechte->isBerechtigt('mitarbeiter/stammdaten'))
die($rechte->errormsg);
if(isset($_GET['searchstr']))
$searchstr = $_GET['searchstr'];
else
else
$searchstr = '';
$datum_obj = new datum();
echo '
@@ -52,7 +59,7 @@ echo '
<body class="background_main">
<h2>Personensuche</h2>';
$stg = new studiengang();
$stg->getAll('typ, kurzbz', false);
@@ -61,7 +68,7 @@ foreach ($stg->result as $row)
$stg_arr[$row->studiengang_kz]=$row->kuerzel;
echo '
<form accept-charset="UTF-8" name="search" method="GET">
Bitte Suchbegriff eingeben:
Bitte Suchbegriff eingeben:
<input type="text" name="searchstr" size="30" value="'.$db->convert_html_chars($searchstr).'">
<input type="submit" value="Suchen">
</form>';
@@ -70,18 +77,18 @@ if($searchstr!='')
{
$qry = "SELECT person_id FROM public.tbl_person WHERE person_id in(
SELECT distinct person_id FROM public.tbl_person LEFT JOIN public.tbl_benutzer USING(person_id) WHERE
nachname ~* '".$db->db_escape($searchstr)."' OR
nachname ~* '".$db->db_escape($searchstr)."' OR
vorname ~* '".$db->db_escape($searchstr)."' OR
alias ~* '".$db->db_escape($searchstr)."' OR
COALESCE(nachname,'') || ' ' || COALESCE(vorname,'') = '".$db->db_escape($searchstr)."' OR
COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') = '".$db->db_escape($searchstr)."' OR
COALESCE(nachname,'') || ' ' || COALESCE(vorname,'') = '".$db->db_escape($searchstr)."' OR
COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') = '".$db->db_escape($searchstr)."' OR
uid ~* '".$db->db_escape($searchstr)."'
) ORDER BY nachname, vorname;";
if($result = $db->db_query($qry))
{
{
$auth = new authentication();
echo $db->db_num_rows($result).' Person(en) gefunden<br><br>';
echo '<table>';
echo '<tr class="liste" align="center">';
@@ -109,7 +116,7 @@ if($searchstr!='')
echo "<td><b>updateAmUm</b></td>";
echo "<td><b>updateVon</b></td>";
echo '</tr>';
while($row = $db->db_fetch_object($result))
{
$qry = "SELECT * FROM public.tbl_person WHERE person_id='$row->person_id'";
@@ -136,18 +143,18 @@ if($searchstr!='')
echo "<td></td>";
echo "<td></td>";
echo '</tr>';
$content = '';
$qry = "SELECT
$qry = "SELECT
*, tbl_benutzer.updateamum as bnupdateamum, tbl_benutzer.updatevon as bnupdatevon,
tbl_mitarbeiter.updateamum as mupdateamum, tbl_mitarbeiter.updatevon as mupdatevon
FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer on(uid=mitarbeiter_uid)
FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer on(uid=mitarbeiter_uid)
WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER);
if($result_mitarbeiter = $db->db_query($qry))
{
if($db->db_num_rows($result_mitarbeiter)>0)
{
while($row_mitarbeiter = $db->db_fetch_object($result_mitarbeiter))
{
$content.= '<tr >';
@@ -159,8 +166,8 @@ if($searchstr!='')
$content.= "<td>Mitarbeiter</td>";
$content.= "<td><a href='personen_details.php?uid=$row_mitarbeiter->uid'>$row_mitarbeiter->uid</a></td>";
$content.= "<td>".($row_mitarbeiter->aktiv=='t'?'Ja':'Nein')."</td>";
$content.= "<td>";
$content.= "<td>";
if($auth->UserExternalExists($row_mitarbeiter->uid))
$content.="Ja";
else
@@ -168,7 +175,7 @@ if($searchstr!='')
$content.= "</td>";
//$content.= "<td>".($row_mitarbeiter->bnupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_mitarbeiter->bnupdateamum)):'')."</td>";
//$content.= "<td>$row_mitarbeiter->bnupdatevon</td>";
$content.= "<td>$row_mitarbeiter->telefonklappe</td>";
$content.= "<td>$row_mitarbeiter->ort_kurzbz</td>";
$content.= "<td>".($row_mitarbeiter->mupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_mitarbeiter->mupdateamum)):'')."</td>";
@@ -179,21 +186,21 @@ if($searchstr!='')
}
}
}
$qry = "SELECT *, tbl_benutzer.updateamum as bnupdateamum, tbl_benutzer.updatevon as bnupdatevon,
tbl_student.updateamum as supdateamum, tbl_student.updatevon as supdatevon
FROM public.tbl_student JOIN public.tbl_benutzer ON(student_uid=uid)
FROM public.tbl_student JOIN public.tbl_benutzer ON(student_uid=uid)
WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER);
if($result_student = $db->db_query($qry))
{
if($db->db_num_rows($result_student))
{
while($row_student = $db->db_fetch_object($result_student))
{
$student = new prestudent();
$student->getLastStatus($row_student->prestudent_id);
$content.= '<tr>';
$content.= '<td></td>';
$content.= '<td></td>';
@@ -203,7 +210,7 @@ if($searchstr!='')
$content.= "<td>$student->status_kurzbz</td>";
$content.= "<td><a href='personen_details.php?uid=$row_student->uid'>$row_student->uid</a></td>";
$content.= "<td>".($row_student->aktiv=='t'?'Ja':'Nein')."</td>";
$content.= "<td>";
if($auth->UserExternalExists($row_student->uid))
$content.="Ja";
@@ -212,7 +219,7 @@ if($searchstr!='')
$content.= "</td>";
//$content.= "<td>".($row_student->bnupdateamum!=''?date('d.m.Y H:i:s', $datum_obj->mktime_fromtimestamp($row_student->bnupdateamum)):'')."</td>";
//$content.= "<td>$row_student->bnupdatevon</td>";
$content.= "<td></td>";
$content.= "<td></td>";
$content.= "<td></td>";
@@ -225,14 +232,14 @@ if($searchstr!='')
}
}
}
echo $content;
}
}
}
echo '</table>';
}
}
?>
</body>
+16 -13
View File
@@ -26,21 +26,20 @@
* POST statt GET - ist aber Geschmacksache
*
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/basis_db.class.php');
include('../../include/functions.inc.php');
include('../../include/globals.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/globals.inc.php');
require_once('../../include/datum.class.php');
require_once('../../include/benutzerberechtigung.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
if (isset($_GET['uid']))
{
$uid=$_GET['uid'];
}
}
else if (isset($_POST['uid']))
{
$uid=$_POST['uid'];
@@ -50,6 +49,12 @@ if (!isset($uid))
die( "uid nicht gesetzt");
}
$uid_benutzer = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid_benutzer);
if(!$rechte->isBerechtigt('mitarbeiter'))
die($rechte->errormsg);
$datum_obj = new datum();
$updatevon = 0;
@@ -68,20 +73,19 @@ $updatevon = 0;
//echo $$var;
$gewicht=$_POST[$var];
$stunde=$i+1;
$query="SELECT * FROM campus.tbl_zeitwunsch WHERE mitarbeiter_uid='".addslashes($uid)."' AND stunde='$stunde' AND tag='$t'";
$query="SELECT * FROM campus.tbl_zeitwunsch WHERE mitarbeiter_uid=".$db->db_add_param($uid)." AND stunde=".$db->db_add_param($stunde, FHC_INTEGER)." AND tag=".$db->db_add_param($t, FHC_INTEGER);
if(! $erg_wunsch=$db->db_query($query))
die($db->db_last_error());
$num_rows_wunsch=$db->db_num_rows($erg_wunsch);
if ($num_rows_wunsch==0)
{
$query="INSERT INTO campus.tbl_zeitwunsch (mitarbeiter_uid, stunde, tag, gewicht, updateamum, updatevon) VALUES ('$uid', '$stunde', '$t', '$gewicht', now(), '$uid_benutzer')";
$query="INSERT INTO campus.tbl_zeitwunsch (mitarbeiter_uid, stunde, tag, gewicht, updateamum, updatevon) VALUES (".$db->db_add_param($uid).", ".$db->db_add_param($stunde).", ".$db->db_add_param($t).", ".$db->db_add_param($gewicht).", now(), ".$db->db_add_param($uid_benutzer).")";
if(!($erg=$db->db_query($query)))
die($db->db_last_error());
}
elseif ($num_rows_wunsch==1)
{
$query="UPDATE campus.tbl_zeitwunsch SET gewicht=$gewicht, updateamum=now(), updatevon='$uid_benutzer' WHERE mitarbeiter_uid='$uid' AND stunde='$stunde' AND tag='$t'";
//echo $query;
$query="UPDATE campus.tbl_zeitwunsch SET gewicht=".$db->db_add_param($gewicht).", updateamum=now(), updatevon=".$db->db_add_param($uid_benutzer)." WHERE mitarbeiter_uid=".$db->db_add_param($uid)." AND stunde=".$db->db_add_param($stunde)." AND tag=".$db->db_add_param($t);
if(!($erg=$db->db_query($query)))
die($db->db_last_error());
}
@@ -90,7 +94,7 @@ $updatevon = 0;
}
}
if(!($erg=$db->db_query("SELECT * FROM campus.tbl_zeitwunsch WHERE mitarbeiter_uid='$uid'")))
if(!($erg=$db->db_query("SELECT * FROM campus.tbl_zeitwunsch WHERE mitarbeiter_uid=".$db->db_add_param($uid))))
die($db->db_last_error());
$num_rows=$db->db_num_rows($erg);
for ($i=0;$i<$num_rows;$i++)
@@ -116,7 +120,7 @@ $updatevon = 0;
// Personendaten
if(! $result=$db->db_query("SELECT * FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid='$uid'"))
if(! $result=$db->db_query("SELECT * FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=".$db->db_add_param($uid)))
die($db->db_last_error());
if ($db->db_num_rows($result)==1)
$person=$db->db_fetch_object($result);
@@ -166,7 +170,7 @@ $updatevon = 0;
?>
</TABLE>
<br/>
<?php
<?php
if($updatevon!='')
{
echo 'Zeitwunsch zuletzt aktualisiert von ';
@@ -230,7 +234,6 @@ $updatevon = 0;
<LI>Es sollten f&uuml;r jede Stunde die tats&auml;chlich unterrichtet wird, mindestens das 3-fache an positiven Zeitw&uuml;nschen angegeben werden.<BR>
Beispiel: Sie unterrichten 4 Stunden/Woche, dann sollten Sie mindestens 12 Stunden im Raster mit positiven Werten ausf&uuml;llen.</LI>
</OL>
<P>Bei Problemen wenden Sie sich bitte an die <A href="mailto:lvplan@technikum-wien.at">Lehrveranstaltungsplanung</A>.</P>
<P>&nbsp;</P>
</body>
</html>
-291
View File
@@ -1,291 +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 >
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
// *****************************************
// * Script zum Zusammenlegen Doppelter LVs
// * Es werden zwei Listen mit LVs angezeigt
// * Links wird die LV markiert mit dem rechts
// * markierten zusammengelegt werden soll.
// * Die linke LV wird danach entfernt.
// ************************************
//DB Verbindung herstellen
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/lehrveranstaltung.class.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/functions.inc.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$msg='';
$outp='';
$smax=0;
$s=new studiengang();
$s->getAll('erhalter_kz,typ,kurzbzlang',false);
$studiengang=$s->result;
$user = get_uid();
if (isset($_GET['stg_kz']) || isset($_POST['stg_kz']))
$stg_kz=(isset($_GET['stg_kz'])?$_GET['stg_kz']:$_POST['stg_kz']);
else
$stg_kz=0;
if(!is_numeric($stg_kz))
$stg_kz=0;
if (isset($_GET['semester']) || isset($_POST['semester']))
{
$semester=(isset($_GET['semester'])?$_GET['semester']:$_POST['semester']);
if($semester>(isset($_GET['max'])?$_GET['max']:$_POST['max']))
$semester=(isset($_GET['max'])?$_GET['max']:$_POST['max']);
}
else
$semester=0;
if(!is_numeric($semester))
$semester=0;
if (isset($_GET['order_1']) || isset($_POST['order_1']))
{
$order_1=(isset($_GET['order_1'])?$_GET['order_1']:$_POST['order_1']);
}
else
{
$order_1='lehrveranstaltung_id';
}
if (isset($_GET['order_2']) || isset($_POST['order_2']))
{
$order_2=(isset($_GET['order_2'])?$_GET['order_2']:$_POST['order_2']);
}
else
{
$order_2='lehrveranstaltung_id';
}
if (isset($_GET['radio_1']) || isset($_POST['radio_1']))
{
$radio_1=(isset($_GET['radio_1'])?$_GET['radio_1']:$_POST['radio_1']);
}
else
{
$radio_1=-1;
}
if (isset($_GET['radio_2']) || isset($_POST['radio_2']))
{
$radio_2=(isset($_GET['radio_2'])?$_GET['radio_2']:$_POST['radio_2']);
}
else
{
$radio_2=-1;
}
$s=array();
foreach ($studiengang as $stg)
{
@$s[$stg->studiengang_kz]->max_sem=$stg->max_semester;
$s[$stg->studiengang_kz]->kurzbz=$stg->kurzbzlang;
$outp.= '<A href="lv_wartung.php?stg_kz='.$stg->studiengang_kz.'&semester='.$semester.'&max='.$stg->max_semester.'">'.$stg->kurzbzlang.' ('.strtoupper($stg->typ.$stg->kurzbz).') </A> - ';
}
$outp.= '<BR> -- ';
for ($i=0;$i<=$s[$stg_kz]->max_sem;$i++)
{
$outp.= '<A href="lv_wartung.php?stg_kz='.$stg_kz.'&semester='.$i.'&max='.$s[$stg_kz]->max_sem.'">'.$i.'</A> -- ';
}
//Initialisierung der Variablen
function kuerze($string)
{
if(strlen($string)>40)
{
return substr($string,0,35)."...";
}
else
{
return $string;
}
}
if(isset($radio_1) && isset($radio_2) && $radio_1>=0 && $radio_2>=0)
{
if($radio_1==$radio_2)
{
$msg="Die Datensaetze duerfen nicht die gleiche ID haben";
}
else
{
$sql_query_upd1="BEGIN;";
$sql_query_upd1.="UPDATE lehre.tbl_lehreinheit SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';";
$sql_query_upd1.="UPDATE lehre.tbl_zeugnisnote SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';";
$sql_query_upd1.="UPDATE campus.tbl_benutzerlvstudiensemester SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';";
$sql_query_upd1.="UPDATE campus.tbl_feedback SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';";
$sql_query_upd1.="UPDATE campus.tbl_lvgesamtnote SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';";
//updateamum vergleichen - jüngeres Datum gewinnt
$qry1="SELECT updateamum FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id='$radio_1';";
$qry2="SELECT updateamum FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id='$radio_1';";
if($result1=$db->db_query($qry1))
{
if($result2=$db->db_query($qry2))
{
if($row1 = $db->db_fetch_object($result1))
{
if($row2 = $db->db_fetch_object($result2))
{
if($row2->updateamum>$row1->updateamum)
{
//wenn lvinfo neuer als die bestehende, ersetzt sie diese
$sql_query_upd1.="DELETE FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id='$radio_2';";
$sql_query_upd1.="UPDATE campus.tbl_lvinfo SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';";
}
else
{
//wenn lvinfo älter als die bestehende, wird sie gelöscht
$sql_query_upd1.="DELETE FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id='$radio_1';";
}
}
}
}
}
$sql_query_upd1.="UPDATE campus.tbl_lvinfo SET lehrveranstaltung_id='$radio_2' WHERE lehrveranstaltung_id='$radio_1';";
$sql_query_upd1.="UPDATE sync.tbl_synclehrveranstaltung SET lva_vilesci='$radio_2' WHERE lva_vilesci='$radio_1';";
$sql_query_upd1.="DELETE FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id='$radio_1';";
if($db->db_query($sql_query_upd1))
{
$msg = "Daten Erfolgreich gespeichert<br>";
$db->db_query("COMMIT;");
$msg .= "<br>".mb_eregi_replace(';',';<br>',$sql_query_upd1)."COMMIT";
}
else
{
$msg = "Die Änderung konnte nicht durchgeführt werden!";
$db->db_query("ROLLBACK;");
$msg .= "<br>".mb_eregi_replace(';',';<br><b>',$sql_query_upd1)."ROLLBACK</b>";
}
}
}
if((isset($radio_1) && !isset($radio_2))||(!isset($radio_1) && isset($radio_2)) || ($radio_1<0 || $radio_2<0))
{
$msg="Es muß je ein Radio-Button pro Tabelle angeklickt werden";
}
?>
<!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 href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
<title>LV-Zusammenlegung</title>
</head>
<body>
<H1>Zusammenlegen von Lehrveranstaltungen (<?php echo $s[$stg_kz]->kurzbz.' - '.$semester; ?>)</H1>
<?php
echo $outp;
$smax=$s[$stg_kz]->max_sem;
//aufruf
?>
<br>
<center><h2><?php echo $msg; ?></h2></center>
<br>
<?php
//Tabellen anzeigen
echo "<form name='form_table' action='lv_wartung.php?stg_kz=$stg_kz&semester=$semester&max=$smax&order_1=$order_1&order_2=$order_2' method='POST'>";
echo "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";
echo "<tr>";
echo "<td valign='top'>Das wird gelöscht:";
//Tabelle 1
echo "<table class='liste'><tr class='liste'>";
echo "<th><a href='lv_wartung.php?stg_kz=$stg_kz&semester=$semester&max=$smax&order_1=lehrveranstaltung_id&order_2=$order_2'>ID</a></th>";
echo "<th><a href='lv_wartung.php?stg_kz=$stg_kz&semester=$semester&max=$smax&order_1=kurzbz&order_2=$order_2'>Kurzbz</a></th>";
echo "<th><a href='lv_wartung.php?stg_kz=$stg_kz&semester=$semester&max=$smax&order_1=bezeichnung&order_2=$order_2'>Bezeichnung</a></th>";
echo "<th>ECTS</th>";
echo "<th>SS</th>";
echo "<th>&nbsp;</th></tr>";
$lf = new lehrveranstaltung();
$lf->getTab($stg_kz,$semester, $order_1);
$i=0;
foreach($lf->lehrveranstaltungen as $l)
{
echo "<tr class='liste".($i%2)."'>";
echo "<td>$l->lehrveranstaltung_id</td>";
echo "<td>$l->kurzbz</td>";
echo "<td title='$l->bezeichnung'>".kuerze($l->bezeichnung)."</td>";
echo "<td>$l->ects</td>";
echo "<td>$l->semesterstunden</td>";
echo "<td><input type='radio' name='radio_1' value='$l->lehrveranstaltung_id' ".((isset($radio_1) && $radio_1==$l->lehrveranstaltung_id)?'checked':'')."></td>";
echo "</tr>";
$i++;
}
echo "</table>";
echo "</td>";
echo "<td valign='top'><input type='submit' value=' -> '></td>";
echo "<td valign='top'>Das bleibt:";
//Tabelle 2
echo "<table class='liste'><tr class='liste'>";
echo "<th>&nbsp;</th>";
echo "<th><a href='lv_wartung.php?stg_kz=$stg_kz&semester=$semester&max=$smax&order_1=$order_1&order_2=lehrveranstaltung_id'>ID</a></th>";
echo "<th><a href='lv_wartung.php?stg_kz=$stg_kz&semester=$semester&max=$smax&order_1=$order_1&order_2=kurzbz'>Kurzbz</a></th>";
echo "<th><a href='lv_wartung.php?stg_kz=$stg_kz&semester=$semester&max=$smax&order_1=$order_1&order_2=bezeichnung'>Bezeichnung</a></th>";
echo "<th>ECTS</th>";
echo "<th>SS</th></tr>";
$lf = new lehrveranstaltung();
$lf->getTab($stg_kz,$semester, $order_2);
$i=0;
foreach($lf->lehrveranstaltungen as $l)
{
echo "<tr class='liste".($i%2)."'>";
echo "<td><input type='radio' name='radio_2' value='$l->lehrveranstaltung_id' ".((isset($radio_2) && $radio_2==$l->lehrveranstaltung_id)?'checked':'')."></td>";
echo "<td>$l->lehrveranstaltung_id</td>";
echo "<td>$l->kurzbz</td>";
echo "<td title='$l->bezeichnung'>".kuerze($l->bezeichnung)."</td>";
echo "<td>$l->ects</td>";
echo "<td>$l->semesterstunden</td>";
echo "</tr>";
$i++;
}
echo "</table>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</form>";
?>
</tr>
</table>
</body>
</html>